--- linux-2.6.38.orig/dropped.txt +++ linux-2.6.38/dropped.txt @@ -0,0 +1,62 @@ +UBUNTU: ubuntu: AUFS -- aufs2 standalone patch for linux-2.6.34 +UBUNTU: SAUCE: AppArmor: -- mainline 2010-06-23 +UBUNTU: SAUCE: AppArmor 2.4 compatibility patch +UBUNTU: [Upstream] Input: evdev - convert to dynamic event buffer +UBUNTU: [Upstream] Input: evdev - use driver hint to compute size of event buffer +UBUNTU: [Upstream] Add support for the ATIF ACPI method to the radeon driver +perf probe: Support tracing an entry of array +perf probe: Support static and global variables +UBUNTU: SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-27 +UBUNTU: SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-29 +UBUNTU: SAUCE: AppArmor 2.4 compatibility patch +Input: introduce MT event slots +x86 platform driver: intelligent power sharing driver +UBUNTU: SAUCE: Bring in staging/lirc from 2.6.36 +UBUNTU: SAUCE: Update ir-core to linuxtv/other which should be merged for 2.6.36. +UBUNTU: SAUCE: Bring in streamzap support from linuxtv/other +(pre-stable) ALSA: HDA: Add Sony VAIO quirk for ALC269 +(pre-stable) ALSA: HDA: Fix front mic on Dell Precision M6500 +input: mt: Initialize slots to unused (rev2) +mt: Add support for the Bamboo Touch trackpad +x86, cpu: Package Level Thermal Control, Power Limit Notification definitions +x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver +hwmon: Package Level Thermal/Power: thermal throttling handler +drm/i915: fix VGA plane disable for Ironlake+ +e1000e: initial support for 82579 LOMs +(pre-stable) ALSA: hda - Add a new hp-laptop model for Conexant 5066, tested on HP G60 +agp/intel: Support the extended physical addressing bits on Sandybridge. +drm/i915,intel_agp: Add support for Sandybridge D0 +Revert input: mt: Add support for the Bamboo Touch trackpad +UBUNTU: SAUCE: Input: wacom - parse the Bamboo device family +UBUNTU: SAUCE: Input: wacom - collect device quirks into single function +UBUNTU: SAUCE: Input: wacom - add support for the Bamboo Touch trackpad +UBUNTU: SAUCE: Input: wacom - add a quirk for low resolution Bamboo devices +(pre-stable) drm/i915: don't enable self-refresh on Ironlake +PM / Runtime: Make runtime_status attribute not debug-only (v. 2) +UBUNTU: SAUCE: ALSA: HDA: Enable internal mic on Dell E6410 and Dell E6510 +UBUNTU: SAUCE: AppArmor: allow newer tools to load policy on older kernels +UBUNTU: SAUCE: Adding vdd_sdi regulator supply to OMAP3EVM +Revert UBUNTU: SAUCE: AppArmor: allow newer tools to load policy on older kernels +UBUNTU: SAUCE: AppArmor: allow newer tools to load policy on older kernels +UBUNTU: SAUCE: ir-core: Fix null dereferences in the protocols sysfs interface +ALSA: HDA: Enable internal speaker on Dell M101z +UBUNTU: SAUCE: drm -- stop early access to drm devices +UBUNTU: SAUCE: libata: Add ALPM power state accounting to the AHCI driver +UBUNTU: SAUCE: Added quirk to recognize GE0301 3G modem as an interface. +hid: 3m: Convert to MT slots +HID: magicmouse: don't allow hidinput to initialize the device +HID: magicmouse: simplify touch data bit manipulation +HID: magicmouse: simplify touch down logic +HID: magicmouse: enable Magic Trackpad support +UBUNTU: SAUCE: hid: ntrig: remove sysfs nodes +UBUNTU: SAUCE: hid: ntrig: Setup input filtering manually +UBUNTU: SAUCE: hid: ntrig: New ghost-filtering event logic +UBUNTU: SAUCE: hid: ntrig: identify firmware version (wiggled) +UBUNTU: (pre-stable): input: Support Clickpad devices in ClickZone mode +UBUNTU: SAUCE: KMS: cache the EDID information of the LVDS +UBUNTU: SAUCE: fbcon -- fix race between open and removal of framebuffers +UBUNTU: SAUCE: fbcon -- fix OOPs triggered by race prevention fixes +UBUNTU: SAUCE: x86: implement cs-limit nx-emulation for ia32 +UBUNTU: SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only +UBUNTU: SAUCE: [um] Don't use nx_enabled under UML +UBUNTU: SAUCE: x86: brk away from exec rand area --- linux-2.6.38.orig/Makefile +++ linux-2.6.38/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 38 -EXTRAVERSION = +EXTRAVERSION = .8 NAME = Flesh-Eating Bats with Fangs # *DOCUMENTATION* @@ -342,13 +342,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 \ @@ -487,7 +496,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/ @@ -1030,6 +1039,7 @@ $(error Headers not exportable for the $(SRCARCH) architecture)) $(Q)$(MAKE) $(hdr-inst)=include $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/asm $(hdr-dst) + $(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders= PHONY += headers_check_all headers_check_all: headers_install_all @@ -1039,6 +1049,7 @@ headers_check: headers_install $(Q)$(MAKE) $(hdr-inst)=include HDRCHECK=1 $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/asm $(hdr-dst) HDRCHECK=1 + $(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders= HDRCHECK=1 # --------------------------------------------------------------------------- # Modules @@ -1368,7 +1379,7 @@ clean: $(clean-dirs) $(call cmd,rmdirs) $(call cmd,rmfiles) - @find $(or $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \ + @find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \ \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \ -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \ -o -name '*.symtypes' -o -name 'modules.order' \ --- linux-2.6.38.orig/MAINTAINERS +++ linux-2.6.38/MAINTAINERS @@ -5944,7 +5944,6 @@ STABLE BRANCH M: Greg Kroah-Hartman -M: Chris Wright L: stable@kernel.org S: Maintained --- linux-2.6.38.orig/sound/drivers/aloop.c +++ linux-2.6.38/sound/drivers/aloop.c @@ -482,8 +482,9 @@ cable->streams[SNDRV_PCM_STREAM_CAPTURE]; unsigned long delta_play = 0, delta_capt = 0; unsigned int running; + unsigned long flags; - spin_lock(&cable->lock); + spin_lock_irqsave(&cable->lock, flags); running = cable->running ^ cable->pause; if (running & (1 << SNDRV_PCM_STREAM_PLAYBACK)) { delta_play = jiffies - dpcm_play->last_jiffies; @@ -495,10 +496,8 @@ dpcm_capt->last_jiffies += delta_capt; } - if (delta_play == 0 && delta_capt == 0) { - spin_unlock(&cable->lock); - return running; - } + if (delta_play == 0 && delta_capt == 0) + goto unlock; if (delta_play > delta_capt) { loopback_bytepos_update(dpcm_play, delta_play - delta_capt, @@ -510,14 +509,14 @@ delta_capt = delta_play; } - if (delta_play == 0 && delta_capt == 0) { - spin_unlock(&cable->lock); - return running; - } + if (delta_play == 0 && delta_capt == 0) + goto unlock; + /* note delta_capt == delta_play at this moment */ loopback_bytepos_update(dpcm_capt, delta_capt, BYTEPOS_UPDATE_COPY); loopback_bytepos_update(dpcm_play, delta_play, BYTEPOS_UPDATE_POSONLY); - spin_unlock(&cable->lock); + unlock: + spin_unlock_irqrestore(&cable->lock, flags); return running; } --- linux-2.6.38.orig/sound/pci/ens1370.c +++ linux-2.6.38/sound/pci/ens1370.c @@ -229,6 +229,7 @@ #define ES_REG_1371_CODEC 0x14 /* W/R: Codec Read/Write register address */ #define ES_1371_CODEC_RDY (1<<31) /* codec ready */ #define ES_1371_CODEC_WIP (1<<30) /* codec register access in progress */ +#define EV_1938_CODEC_MAGIC (1<<26) #define ES_1371_CODEC_PIRD (1<<23) /* codec read/write select register */ #define ES_1371_CODEC_WRITE(a,d) ((((a)&0x7f)<<16)|(((d)&0xffff)<<0)) #define ES_1371_CODEC_READS(a) ((((a)&0x7f)<<16)|ES_1371_CODEC_PIRD) @@ -603,12 +604,18 @@ #ifdef CHIP1371 +static inline bool is_ev1938(struct ensoniq *ensoniq) +{ + return ensoniq->pci->device == 0x8938; +} + static void snd_es1371_codec_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { struct ensoniq *ensoniq = ac97->private_data; - unsigned int t, x; + unsigned int t, x, flag; + flag = is_ev1938(ensoniq) ? EV_1938_CODEC_MAGIC : 0; mutex_lock(&ensoniq->src_mutex); for (t = 0; t < POLL_COUNT; t++) { if (!(inl(ES_REG(ensoniq, 1371_CODEC)) & ES_1371_CODEC_WIP)) { @@ -630,7 +637,8 @@ 0x00010000) break; } - outl(ES_1371_CODEC_WRITE(reg, val), ES_REG(ensoniq, 1371_CODEC)); + outl(ES_1371_CODEC_WRITE(reg, val) | flag, + ES_REG(ensoniq, 1371_CODEC)); /* restore SRC reg */ snd_es1371_wait_src_ready(ensoniq); outl(x, ES_REG(ensoniq, 1371_SMPRATE)); @@ -647,8 +655,9 @@ unsigned short reg) { struct ensoniq *ensoniq = ac97->private_data; - unsigned int t, x, fail = 0; + unsigned int t, x, flag, fail = 0; + flag = is_ev1938(ensoniq) ? EV_1938_CODEC_MAGIC : 0; __again: mutex_lock(&ensoniq->src_mutex); for (t = 0; t < POLL_COUNT; t++) { @@ -671,7 +680,8 @@ 0x00010000) break; } - outl(ES_1371_CODEC_READS(reg), ES_REG(ensoniq, 1371_CODEC)); + outl(ES_1371_CODEC_READS(reg) | flag, + ES_REG(ensoniq, 1371_CODEC)); /* restore SRC reg */ snd_es1371_wait_src_ready(ensoniq); outl(x, ES_REG(ensoniq, 1371_SMPRATE)); @@ -683,6 +693,11 @@ /* now wait for the stinkin' data (RDY) */ for (t = 0; t < POLL_COUNT; t++) { if ((x = inl(ES_REG(ensoniq, 1371_CODEC))) & ES_1371_CODEC_RDY) { + if (is_ev1938(ensoniq)) { + for (t = 0; t < 100; t++) + inl(ES_REG(ensoniq, CONTROL)); + x = inl(ES_REG(ensoniq, 1371_CODEC)); + } mutex_unlock(&ensoniq->src_mutex); return ES_1371_CODEC_READ(x); } --- linux-2.6.38.orig/sound/pci/asihpi/hpioctl.c +++ linux-2.6.38/sound/pci/asihpi/hpioctl.c @@ -155,6 +155,11 @@ goto out; } + if (hm->h.adapter_index >= HPI_MAX_ADAPTERS) { + err = -EINVAL; + goto out; + } + pa = &adapters[hm->h.adapter_index]; hr->h.size = 0; if (hm->h.object == HPI_OBJ_SUBSYSTEM) { --- linux-2.6.38.orig/sound/pci/ctxfi/ctatc.c +++ linux-2.6.38/sound/pci/ctxfi/ctatc.c @@ -869,7 +869,7 @@ mutex_lock(&atc->atc_mutex); dao->ops->get_spos(dao, &status); if (((status >> 24) & IEC958_AES3_CON_FS) != iec958_con_fs) { - status &= ((~IEC958_AES3_CON_FS) << 24); + status &= ~(IEC958_AES3_CON_FS << 24); status |= (iec958_con_fs << 24); dao->ops->set_spos(dao, status); dao->ops->commit_write(dao); --- linux-2.6.38.orig/sound/pci/ctxfi/ctdaio.c +++ linux-2.6.38/sound/pci/ctxfi/ctdaio.c @@ -176,6 +176,7 @@ if (!entry) return -ENOMEM; + dao->ops->clear_left_input(dao); /* Program master and conjugate resources */ input->ops->master(input); daio->rscl.ops->master(&daio->rscl); @@ -204,6 +205,7 @@ if (!entry) return -ENOMEM; + dao->ops->clear_right_input(dao); /* Program master and conjugate resources */ input->ops->master(input); daio->rscr.ops->master(&daio->rscr); --- linux-2.6.38.orig/sound/pci/ctxfi/ctmixer.c +++ linux-2.6.38/sound/pci/ctxfi/ctmixer.c @@ -566,19 +566,6 @@ return 0; } -static int ct_spdif_default_get(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - unsigned int status = SNDRV_PCM_DEFAULT_CON_SPDIF; - - ucontrol->value.iec958.status[0] = (status >> 0) & 0xff; - ucontrol->value.iec958.status[1] = (status >> 8) & 0xff; - ucontrol->value.iec958.status[2] = (status >> 16) & 0xff; - ucontrol->value.iec958.status[3] = (status >> 24) & 0xff; - - return 0; -} - static int ct_spdif_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { @@ -586,6 +573,10 @@ unsigned int status; atc->spdif_out_get_status(atc, &status); + + if (status == 0) + status = SNDRV_PCM_DEFAULT_CON_SPDIF; + ucontrol->value.iec958.status[0] = (status >> 0) & 0xff; ucontrol->value.iec958.status[1] = (status >> 8) & 0xff; ucontrol->value.iec958.status[2] = (status >> 16) & 0xff; @@ -629,7 +620,7 @@ .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, DEFAULT), .count = 1, .info = ct_spdif_info, - .get = ct_spdif_default_get, + .get = ct_spdif_get, .put = ct_spdif_put, .private_value = MIXER_IEC958_DEFAULT }; --- linux-2.6.38.orig/sound/pci/hda/patch_conexant.c +++ linux-2.6.38/sound/pci/hda/patch_conexant.c @@ -3130,6 +3130,9 @@ SND_PCI_QUIRK(0x17aa, 0x21c5, "Thinkpad Edge 13", CXT5066_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x21c6, "Thinkpad Edge 13", CXT5066_ASUS), SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo Thinkpad", CXT5066_THINKPAD), + SND_PCI_QUIRK(0x17aa, 0x21da, "Lenovo X220", CXT5066_THINKPAD), + SND_PCI_QUIRK(0x17aa, 0x21db, "Lenovo X220-tablet", CXT5066_THINKPAD), + SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo U350", CXT5066_ASUS), SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo G560", CXT5066_ASUS), SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo", CXT5066_IDEAPAD), /* Fallback for Lenovos without dock mic */ {} --- linux-2.6.38.orig/sound/pci/hda/patch_via.c +++ linux-2.6.38/sound/pci/hda/patch_via.c @@ -159,6 +159,7 @@ #endif }; +static enum VIA_HDA_CODEC get_codec_type(struct hda_codec *codec); static struct via_spec * via_new_spec(struct hda_codec *codec) { struct via_spec *spec; @@ -169,6 +170,10 @@ codec->spec = spec; spec->codec = codec; + spec->codec_type = get_codec_type(codec); + /* VT1708BCE & VT1708S are almost same */ + if (spec->codec_type == VT1708BCE) + spec->codec_type = VT1708S; return spec; } @@ -1101,6 +1106,7 @@ struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct via_spec *spec = codec->spec; unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); + int ret; if (!spec->mux_nids[adc_idx]) return -EINVAL; @@ -1109,12 +1115,14 @@ AC_VERB_GET_POWER_STATE, 0x00) != AC_PWRST_D0) snd_hda_codec_write(codec, spec->mux_nids[adc_idx], 0, AC_VERB_SET_POWER_STATE, AC_PWRST_D0); - /* update jack power state */ - set_jack_power_state(codec); - return snd_hda_input_mux_put(codec, spec->input_mux, ucontrol, + ret = snd_hda_input_mux_put(codec, spec->input_mux, ucontrol, spec->mux_nids[adc_idx], &spec->cur_mux[adc_idx]); + /* update jack power state */ + set_jack_power_state(codec); + + return ret; } static int via_independent_hp_info(struct snd_kcontrol *kcontrol, @@ -1188,8 +1196,16 @@ /* Get Independent Mode index of headphone pin widget */ spec->hp_independent_mode = spec->hp_independent_mode_index == pinsel ? 1 : 0; - snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CONNECT_SEL, pinsel); + if (spec->codec_type == VT1718S) + snd_hda_codec_write(codec, nid, 0, + AC_VERB_SET_CONNECT_SEL, pinsel ? 2 : 0); + else + snd_hda_codec_write(codec, nid, 0, + AC_VERB_SET_CONNECT_SEL, pinsel); + if (spec->codec_type == VT1812) + snd_hda_codec_write(codec, 0x35, 0, + AC_VERB_SET_CONNECT_SEL, pinsel); if (spec->multiout.hp_nid && spec->multiout.hp_nid != spec->multiout.dac_nids[HDA_FRONT]) snd_hda_codec_setup_stream(codec, spec->multiout.hp_nid, @@ -1208,6 +1224,8 @@ activate_ctl(codec, "Headphone Playback Switch", spec->hp_independent_mode); } + /* update jack power state */ + set_jack_power_state(codec); return 0; } @@ -1248,9 +1266,12 @@ break; } - nums = snd_hda_get_connections(codec, nid, conn, HDA_MAX_CONNECTIONS); - if (nums <= 1) - return 0; + if (spec->codec_type != VT1708) { + nums = snd_hda_get_connections(codec, nid, + conn, HDA_MAX_CONNECTIONS); + if (nums <= 1) + return 0; + } knew = via_clone_control(spec, &via_hp_mixer[0]); if (knew == NULL) @@ -1310,6 +1331,11 @@ start_idx = 2; end_idx = 4; break; + case VT1718S: + nid_mixer = 0x21; + start_idx = 1; + end_idx = 3; + break; default: return; } @@ -2185,10 +2211,6 @@ for (i = 0; i < spec->num_iverbs; i++) snd_hda_sequence_write(codec, spec->init_verbs[i]); - spec->codec_type = get_codec_type(codec); - if (spec->codec_type == VT1708BCE) - spec->codec_type = VT1708S; /* VT1708BCE & VT1708S are almost - same */ /* Lydia Add for EAPD enable */ if (!spec->dig_in_nid) { /* No Digital In connection */ if (spec->dig_in_pin) { @@ -2438,7 +2460,14 @@ else type_idx = 0; label = hda_get_autocfg_input_label(codec, cfg, i); - err = via_new_analog_input(spec, label, type_idx, idx, cap_nid); + if (spec->codec_type == VT1708S || + spec->codec_type == VT1702 || + spec->codec_type == VT1716S) + err = via_new_analog_input(spec, label, type_idx, + idx+1, cap_nid); + else + err = via_new_analog_input(spec, label, type_idx, + idx, cap_nid); if (err < 0) return err; snd_hda_add_imux_item(imux, label, idx, NULL); --- linux-2.6.38.orig/sound/pci/hda/patch_realtek.c +++ linux-2.6.38/sound/pci/hda/patch_realtek.c @@ -394,6 +394,7 @@ /* other flags */ unsigned int no_analog :1; /* digital I/O only */ unsigned int dual_adc_switch:1; /* switch ADCs (for ALC275) */ + unsigned int single_input_src:1; int init_amp; int codec_variant; /* flag for other variants */ @@ -1359,7 +1360,7 @@ case 0x10ec0883: case 0x10ec0885: case 0x10ec0887: - case 0x10ec0889: + /*case 0x10ec0889:*/ /* this causes an SPDIF problem */ alc889_coef_init(codec); break; case 0x10ec0888: @@ -1773,11 +1774,11 @@ codec->chip_name, fix->type); break; } - if (!fix[id].chained) + if (!fix->chained) break; if (++depth > 10) break; - id = fix[id].chain_id; + id = fix->chain_id; } } @@ -3919,6 +3920,8 @@ * Common callbacks */ +static void alc_init_special_input_src(struct hda_codec *codec); + static int alc_init(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; @@ -3929,6 +3932,7 @@ for (i = 0; i < spec->num_init_verbs; i++) snd_hda_sequence_write(codec, spec->init_verbs[i]); + alc_init_special_input_src(codec); if (spec->init_hook) spec->init_hook(codec); @@ -5151,7 +5155,9 @@ switch (cfg->line_out_type) { case AUTO_PIN_SPEAKER_OUT: - return "Speaker"; + if (cfg->line_outs == 1) + return "Speaker"; + break; case AUTO_PIN_HP_OUT: return "Headphone"; default: @@ -5205,16 +5211,19 @@ return err; } else { const char *name = pfx; - if (!name) + int index = i; + if (!name) { name = chname[i]; + index = 0; + } err = __add_pb_vol_ctrl(spec, ALC_CTL_WIDGET_VOL, - name, i, + name, index, HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT)); if (err < 0) return err; err = __add_pb_sw_ctrl(spec, ALC_CTL_BIND_MUTE, - name, i, + name, index, HDA_COMPOSE_AMP_VAL(nid, 3, 2, HDA_INPUT)); if (err < 0) @@ -5585,6 +5594,7 @@ spec->capsrc_nids += i; spec->adc_nids += i; spec->num_adc_nids = 1; + spec->single_input_src = 1; } } @@ -5596,6 +5606,16 @@ init_capsrc_for_pin(codec, spec->int_mic.pin); } +/* initialize some special cases for input sources */ +static void alc_init_special_input_src(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + if (spec->dual_adc_switch) + fixup_dual_adc_switch(codec); + else if (spec->single_input_src) + init_capsrc_for_pin(codec, spec->autocfg.inputs[0].pin); +} + static void set_capture_mixer(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; @@ -5611,7 +5631,7 @@ int mux = 0; int num_adcs = spec->num_adc_nids; if (spec->dual_adc_switch) - fixup_dual_adc_switch(codec); + num_adcs = 1; else if (spec->auto_mic) fixup_automic_adc(codec); else if (spec->input_mux) { @@ -5620,8 +5640,6 @@ else if (spec->input_mux->num_items == 1) fixup_single_adc(codec); } - if (spec->dual_adc_switch) - num_adcs = 1; spec->cap_mixer = caps[mux][num_adcs - 1]; } } @@ -10748,6 +10766,7 @@ */ enum { PINFIX_ABIT_AW9D_MAX, + PINFIX_LENOVO_Y530, PINFIX_PB_M5210, PINFIX_ACER_ASPIRE_7736, }; @@ -10762,6 +10781,14 @@ { } } }, + [PINFIX_LENOVO_Y530] = { + .type = ALC_FIXUP_PINS, + .v.pins = (const struct alc_pincfg[]) { + { 0x15, 0x99130112 }, /* rear int speakers */ + { 0x16, 0x99130111 }, /* subwoofer */ + { } + } + }, [PINFIX_PB_M5210] = { .type = ALC_FIXUP_VERBS, .v.verbs = (const struct hda_verb[]) { @@ -10777,6 +10804,7 @@ static struct snd_pci_quirk alc882_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", PINFIX_PB_M5210), + SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736), {} @@ -10829,23 +10857,28 @@ hda_nid_t pin, dac; int i; - for (i = 0; i < ARRAY_SIZE(spec->autocfg.hp_pins); i++) { - pin = spec->autocfg.hp_pins[i]; - if (!pin) - break; - dac = spec->multiout.hp_nid; - if (!dac) - dac = spec->multiout.dac_nids[0]; /* to front */ - alc882_auto_set_output_and_unmute(codec, pin, PIN_HP, dac); + if (spec->autocfg.line_out_type != AUTO_PIN_HP_OUT) { + for (i = 0; i < ARRAY_SIZE(spec->autocfg.hp_pins); i++) { + pin = spec->autocfg.hp_pins[i]; + if (!pin) + break; + dac = spec->multiout.hp_nid; + if (!dac) + dac = spec->multiout.dac_nids[0]; /* to front */ + alc882_auto_set_output_and_unmute(codec, pin, PIN_HP, dac); + } } - for (i = 0; i < ARRAY_SIZE(spec->autocfg.speaker_pins); i++) { - pin = spec->autocfg.speaker_pins[i]; - if (!pin) - break; - dac = spec->multiout.extra_out_nid[0]; - if (!dac) - dac = spec->multiout.dac_nids[0]; /* to front */ - alc882_auto_set_output_and_unmute(codec, pin, PIN_OUT, dac); + + if (spec->autocfg.line_out_type != AUTO_PIN_SPEAKER_OUT) { + for (i = 0; i < ARRAY_SIZE(spec->autocfg.speaker_pins); i++) { + pin = spec->autocfg.speaker_pins[i]; + if (!pin) + break; + dac = spec->multiout.extra_out_nid[0]; + if (!dac) + dac = spec->multiout.dac_nids[0]; /* to front */ + alc882_auto_set_output_and_unmute(codec, pin, PIN_OUT, dac); + } } } @@ -14158,7 +14191,7 @@ }; static hda_nid_t alc269_adc_candidates[] = { - 0x08, 0x09, 0x07, + 0x08, 0x09, 0x07, 0x11, }; #define alc269_modes alc260_modes @@ -14904,6 +14937,23 @@ alc_write_coef_idx(codec, 0x1e, coef | 0x80); } +static void alc271_fixup_dmic(struct hda_codec *codec, + const struct alc_fixup *fix, int action) +{ + static struct hda_verb verbs[] = { + {0x20, AC_VERB_SET_COEF_INDEX, 0x0d}, + {0x20, AC_VERB_SET_PROC_COEF, 0x4000}, + {} + }; + unsigned int cfg; + + if (strcmp(codec->chip_name, "ALC271X")) + return; + cfg = snd_hda_codec_get_pincfg(codec, 0x12); + if (get_defcfg_connect(cfg) == AC_JACK_PORT_FIXED) + snd_hda_sequence_write(codec, verbs); +} + enum { ALC269_FIXUP_SONY_VAIO, ALC275_FIXUP_SONY_VAIO_GPIO2, @@ -14912,6 +14962,7 @@ ALC269_FIXUP_ASUS_G73JW, ALC269_FIXUP_LENOVO_EAPD, ALC275_FIXUP_SONY_HWEQ, + ALC271_FIXUP_DMIC, }; static const struct alc_fixup alc269_fixups[] = { @@ -14965,7 +15016,11 @@ .v.func = alc269_fixup_hweq, .chained = true, .chain_id = ALC275_FIXUP_SONY_VAIO_GPIO2 - } + }, + [ALC271_FIXUP_DMIC] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc271_fixup_dmic, + }, }; static struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -14974,6 +15029,7 @@ SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), + SND_PCI_QUIRK_VENDOR(0x1025, "Acer Aspire", ALC271_FIXUP_DMIC), SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE), SND_PCI_QUIRK(0x17aa, 0x215e, "Thinkpad L512", ALC269_FIXUP_SKU_IGNORE), SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), @@ -16052,9 +16108,12 @@ return err; } else { const char *name = pfx; - if (!name) + int index = i; + if (!name) { name = chname[i]; - err = __alc861_create_out_sw(codec, name, nid, i, 3); + index = 0; + } + err = __alc861_create_out_sw(codec, name, nid, index, 3); if (err < 0) return err; } @@ -17205,16 +17264,19 @@ return err; } else { const char *name = pfx; - if (!name) + int index = i; + if (!name) { name = chname[i]; + index = 0; + } err = __add_pb_vol_ctrl(spec, ALC_CTL_WIDGET_VOL, - name, i, + name, index, HDA_COMPOSE_AMP_VAL(nid_v, 3, 0, HDA_OUTPUT)); if (err < 0) return err; err = __add_pb_sw_ctrl(spec, ALC_CTL_BIND_MUTE, - name, i, + name, index, HDA_COMPOSE_AMP_VAL(nid_s, 3, 2, HDA_INPUT)); if (err < 0) @@ -19263,12 +19325,15 @@ return err; } else { const char *name = pfx; - if (!name) + int index = i; + if (!name) { name = chname[i]; - err = __alc662_add_vol_ctl(spec, name, nid, i, 3); + index = 0; + } + err = __alc662_add_vol_ctl(spec, name, nid, index, 3); if (err < 0) return err; - err = __alc662_add_sw_ctl(spec, name, mix, i, 3); + err = __alc662_add_sw_ctl(spec, name, mix, index, 3); if (err < 0) return err; } @@ -19484,6 +19549,7 @@ ALC662_FIXUP_IDEAPAD, ALC272_FIXUP_MARIO, ALC662_FIXUP_CZC_P10T, + ALC662_FIXUP_SKU_IGNORE, }; static const struct alc_fixup alc662_fixups[] = { @@ -19512,10 +19578,15 @@ {} } }, + [ALC662_FIXUP_SKU_IGNORE] = { + .type = ALC_FIXUP_SKU, + .v.sku = ALC_FIXUP_SKU_IGNORE, + }, }; static struct snd_pci_quirk alc662_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), + SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE), 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), --- linux-2.6.38.orig/sound/pci/hda/patch_analog.c +++ linux-2.6.38/sound/pci/hda/patch_analog.c @@ -3167,6 +3167,7 @@ for (i = 0; i < cfg->num_inputs; i++) { hda_nid_t nid = cfg->inputs[i].pin; + int type = cfg->inputs[i].type; switch (nid) { case 0x15: /* port-C */ snd_hda_codec_write(codec, 0x33, 0, AC_VERB_SET_CONNECT_SEL, 0x0); @@ -3176,7 +3177,7 @@ break; } snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, - i == AUTO_PIN_MIC ? PIN_VREF80 : PIN_IN); + type == AUTO_PIN_MIC ? PIN_VREF80 : PIN_IN); if (nid != AD1988_PIN_CD_NID) snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE); @@ -4353,6 +4354,84 @@ } /* + * Precision R5500 + * 0x12 - HP/line-out + * 0x13 - speaker (mono) + * 0x15 - mic-in + */ + +static struct hda_verb ad1984a_precision_verbs[] = { + /* Unmute main output path */ + {0x03, AC_VERB_SET_AMP_GAIN_MUTE, 0x27}, /* 0dB */ + {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE + 0x1f}, /* 0dB */ + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(5) + 0x17}, /* 0dB */ + /* Analog mixer; mute as default */ + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)}, + /* Select mic as input */ + {0x0c, AC_VERB_SET_CONNECT_SEL, 0x1}, + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE + 0x27}, /* 0dB */ + /* Configure as mic */ + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0x7002}, /* raise mic as default */ + /* HP unmute */ + {0x12, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + /* turn on EAPD */ + {0x13, AC_VERB_SET_EAPD_BTLENABLE, 0x02}, + /* unsolicited event for pin-sense */ + {0x12, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | AD1884A_HP_EVENT}, + { } /* end */ +}; + +static struct snd_kcontrol_new ad1984a_precision_mixers[] = { + HDA_CODEC_VOLUME("Master Playback Volume", 0x21, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Master Playback Switch", 0x21, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("PCM Playback Volume", 0x20, 0x5, HDA_INPUT), + HDA_CODEC_MUTE("PCM Playback Switch", 0x20, 0x5, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x20, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x20, 0x01, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Boost Volume", 0x15, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Front Playback Switch", 0x12, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Speaker Playback Volume", 0x13, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Capture Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Capture Switch", 0x0c, 0x0, HDA_OUTPUT), + { } /* end */ +}; + + +/* mute internal speaker if HP is plugged */ +static void ad1984a_precision_automute(struct hda_codec *codec) +{ + unsigned int present; + + present = snd_hda_jack_detect(codec, 0x12); + snd_hda_codec_amp_stereo(codec, 0x13, HDA_OUTPUT, 0, + HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0); +} + + +/* unsolicited event for HP jack sensing */ +static void ad1984a_precision_unsol_event(struct hda_codec *codec, + unsigned int res) +{ + if ((res >> 26) != AD1884A_HP_EVENT) + return; + ad1984a_precision_automute(codec); +} + +/* initialize jack-sensing, too */ +static int ad1984a_precision_init(struct hda_codec *codec) +{ + ad198x_init(codec); + ad1984a_precision_automute(codec); + return 0; +} + + +/* * HP Touchsmart * port-A (0x11) - front hp-out * port-B (0x14) - unused @@ -4481,6 +4560,7 @@ AD1884A_MOBILE, AD1884A_THINKPAD, AD1984A_TOUCHSMART, + AD1984A_PRECISION, AD1884A_MODELS }; @@ -4490,9 +4570,11 @@ [AD1884A_MOBILE] = "mobile", [AD1884A_THINKPAD] = "thinkpad", [AD1984A_TOUCHSMART] = "touchsmart", + [AD1984A_PRECISION] = "precision", }; static struct snd_pci_quirk ad1884a_cfg_tbl[] = { + SND_PCI_QUIRK(0x1028, 0x04ac, "Precision R5500", AD1984A_PRECISION), SND_PCI_QUIRK(0x103c, 0x3030, "HP", AD1884A_MOBILE), SND_PCI_QUIRK(0x103c, 0x3037, "HP 2230s", AD1884A_LAPTOP), SND_PCI_QUIRK(0x103c, 0x3056, "HP", AD1884A_MOBILE), @@ -4586,6 +4668,14 @@ codec->patch_ops.unsol_event = ad1984a_thinkpad_unsol_event; codec->patch_ops.init = ad1984a_thinkpad_init; break; + case AD1984A_PRECISION: + spec->mixers[0] = ad1984a_precision_mixers; + spec->init_verbs[spec->num_init_verbs++] = + ad1984a_precision_verbs; + spec->multiout.dig_out_nid = 0; + codec->patch_ops.unsol_event = ad1984a_precision_unsol_event; + codec->patch_ops.init = ad1984a_precision_init; + break; case AD1984A_TOUCHSMART: spec->mixers[0] = ad1984a_touchsmart_mixers; spec->init_verbs[0] = ad1984a_touchsmart_verbs; --- linux-2.6.38.orig/sound/pci/hda/patch_sigmatel.c +++ linux-2.6.38/sound/pci/hda/patch_sigmatel.c @@ -94,6 +94,7 @@ STAC_92HD83XXX_REF, STAC_92HD83XXX_PWR_REF, STAC_DELL_S14, + STAC_DELL_E5520M, STAC_92HD83XXX_HP, STAC_HP_DV7_4000, STAC_92HD83XXX_MODELS @@ -757,7 +758,7 @@ struct sigmatel_spec *spec = codec->spec; unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); const struct hda_input_mux *imux = spec->input_mux; - unsigned int idx, prev_idx; + unsigned int idx, prev_idx, didx; idx = ucontrol->value.enumerated.item[0]; if (idx >= imux->num_items) @@ -769,7 +770,8 @@ snd_hda_codec_write_cache(codec, spec->mux_nids[adc_idx], 0, AC_VERB_SET_CONNECT_SEL, imux->items[idx].index); - if (prev_idx >= spec->num_analog_muxes) { + if (prev_idx >= spec->num_analog_muxes && + spec->mux_nids[adc_idx] != spec->dmux_nids[adc_idx]) { imux = spec->dinput_mux; /* 0 = analog */ snd_hda_codec_write_cache(codec, @@ -779,9 +781,13 @@ } } else { imux = spec->dinput_mux; + /* first dimux item is hardcoded to select analog imux, + * so lets skip it + */ + didx = idx - spec->num_analog_muxes + 1; snd_hda_codec_write_cache(codec, spec->dmux_nids[adc_idx], 0, AC_VERB_SET_CONNECT_SEL, - imux->items[idx - 1].index); + imux->items[didx].index); } spec->cur_mux[adc_idx] = idx; return 1; @@ -1628,7 +1634,7 @@ SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02fe, "Dell Studio XPS 1645", STAC_DELL_M6_BOTH), SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0413, - "Dell Studio 1558", STAC_DELL_M6_BOTH), + "Dell Studio 1558", STAC_DELL_M6_DMIC), {} /* terminator */ }; @@ -1652,6 +1658,13 @@ 0x40f000f0, 0x40f000f0, }; +/* Switch int mic from 0x20 to 0x11 */ +static unsigned int dell_e5520m_pin_configs[10] = { + 0x04a11020, 0x0421101f, 0x400000f0, 0x90170110, + 0x23011050, 0x23a1102e, 0x400000f3, 0xd5a30130, + 0x400000f0, 0x40f000f0, +}; + static unsigned int hp_dv7_4000_pin_configs[10] = { 0x03a12050, 0x0321201f, 0x40f000f0, 0x90170110, 0x40f000f0, 0x40f000f0, 0x90170110, 0xd5a30140, @@ -1662,6 +1675,7 @@ [STAC_92HD83XXX_REF] = ref92hd83xxx_pin_configs, [STAC_92HD83XXX_PWR_REF] = ref92hd83xxx_pin_configs, [STAC_DELL_S14] = dell_s14_pin_configs, + [STAC_DELL_E5520M] = dell_e5520m_pin_configs, [STAC_HP_DV7_4000] = hp_dv7_4000_pin_configs, }; @@ -1670,6 +1684,7 @@ [STAC_92HD83XXX_REF] = "ref", [STAC_92HD83XXX_PWR_REF] = "mic-ref", [STAC_DELL_S14] = "dell-s14", + [STAC_DELL_E5520M] = "dell-e5520m", [STAC_92HD83XXX_HP] = "hp", [STAC_HP_DV7_4000] = "hp-dv7-4000", }; @@ -1682,6 +1697,14 @@ "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, 0x049a, + "Dell E5520", STAC_DELL_E5520M), + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x049b, + "Dell E5420", STAC_DELL_E5520M), + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x04eb, + "Dell E5420m", STAC_DELL_E5520M), + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x04ec, + "Dell E5520m", STAC_DELL_E5520M), SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xff00, 0x3600, "HP", STAC_92HD83XXX_HP), {} /* terminator */ --- linux-2.6.38.orig/sound/pci/hda/patch_hdmi.c +++ linux-2.6.38/sound/pci/hda/patch_hdmi.c @@ -1276,6 +1276,39 @@ stream_tag, format, substream); } +static void nvhdmi_8ch_7x_set_info_frame_parameters(struct hda_codec *codec, + int channels) +{ + unsigned int chanmask; + int chan = channels ? (channels - 1) : 1; + + switch (channels) { + default: + case 0: + case 2: + chanmask = 0x00; + break; + case 4: + chanmask = 0x08; + break; + case 6: + chanmask = 0x0b; + break; + case 8: + chanmask = 0x13; + break; + } + + /* Set the audio infoframe channel allocation and checksum fields. The + * channel count is computed implicitly by the hardware. */ + snd_hda_codec_write(codec, 0x1, 0, + Nv_VERB_SET_Channel_Allocation, chanmask); + + snd_hda_codec_write(codec, 0x1, 0, + Nv_VERB_SET_Info_Frame_Checksum, + (0x71 - chan - chanmask)); +} + static int nvhdmi_8ch_7x_pcm_close(struct hda_pcm_stream *hinfo, struct hda_codec *codec, struct snd_pcm_substream *substream) @@ -1294,6 +1327,10 @@ AC_VERB_SET_STREAM_FORMAT, 0); } + /* The audio hardware sends a channel count of 0x7 (8ch) when all the + * streams are disabled. */ + nvhdmi_8ch_7x_set_info_frame_parameters(codec, 8); + return snd_hda_multi_out_dig_close(codec, &spec->multiout); } @@ -1304,37 +1341,16 @@ struct snd_pcm_substream *substream) { int chs; - unsigned int dataDCC1, dataDCC2, chan, chanmask, channel_id; + unsigned int dataDCC1, dataDCC2, channel_id; int i; mutex_lock(&codec->spdif_mutex); chs = substream->runtime->channels; - chan = chs ? (chs - 1) : 1; - switch (chs) { - default: - case 0: - case 2: - chanmask = 0x00; - break; - case 4: - chanmask = 0x08; - break; - case 6: - chanmask = 0x0b; - break; - case 8: - chanmask = 0x13; - break; - } dataDCC1 = AC_DIG1_ENABLE | AC_DIG1_COPYRIGHT; dataDCC2 = 0x2; - /* set the Audio InforFrame Channel Allocation */ - snd_hda_codec_write(codec, 0x1, 0, - Nv_VERB_SET_Channel_Allocation, chanmask); - /* turn off SPDIF once; otherwise the IEC958 bits won't be updated */ if (codec->spdif_status_reset && (codec->spdif_ctls & AC_DIG1_ENABLE)) snd_hda_codec_write(codec, @@ -1409,10 +1425,7 @@ } } - /* set the Audio Info Frame Checksum */ - snd_hda_codec_write(codec, 0x1, 0, - Nv_VERB_SET_Info_Frame_Checksum, - (0x71 - chan - chanmask)); + nvhdmi_8ch_7x_set_info_frame_parameters(codec, chs); mutex_unlock(&codec->spdif_mutex); return 0; @@ -1508,6 +1521,11 @@ spec->multiout.max_channels = 8; spec->pcm_playback = &nvhdmi_pcm_playback_8ch_7x; codec->patch_ops = nvhdmi_patch_ops_8ch_7x; + + /* Initialize the audio infoframe channel mask and checksum to something + * valid */ + nvhdmi_8ch_7x_set_info_frame_parameters(codec, 8); + return 0; } --- linux-2.6.38.orig/sound/pci/hda/hda_intel.c +++ linux-2.6.38/sound/pci/hda/hda_intel.c @@ -1088,7 +1088,13 @@ ? "Failed" : "OK"); } break; - + default: + /* AMD Hudson needs the similar snoop, as it seems... */ + if (chip->pci->vendor == PCI_VENDOR_ID_AMD) + update_pci_byte(chip->pci, + ATI_SB450_HDAUDIO_MISC_CNTR2_ADDR, + 0x07, ATI_SB450_HDAUDIO_ENABLE_SNOOP); + break; } } @@ -1443,6 +1449,17 @@ } } + /* AMD chipsets often cause the communication stalls upon certain + * sequence like the pin-detection. It seems that forcing the synced + * access works around the stall. Grrr... + */ + if (chip->pci->vendor == PCI_VENDOR_ID_AMD || + chip->pci->vendor == PCI_VENDOR_ID_ATI) { + snd_printk(KERN_INFO SFX "Enable sync_write for AMD chipset\n"); + chip->bus->sync_write = 1; + chip->bus->allow_bus_reset = 1; + } + /* Then create codec instances */ for (c = 0; c < max_slots; c++) { if ((chip->codec_mask & (1 << c)) & chip->codec_probe_mask) { @@ -2021,6 +2038,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", @@ -2054,10 +2072,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; } @@ -2346,9 +2375,16 @@ /* Check VIA/ATI HD Audio Controller exist */ switch (chip->driver_type) { case AZX_DRIVER_VIA: - case AZX_DRIVER_ATI: /* Use link position directly, avoid any transfer problem. */ return POS_FIX_VIACOMBO; + case AZX_DRIVER_ATI: + /* ATI chipsets don't work well with position-buffer */ + return POS_FIX_LPIB; + case AZX_DRIVER_GENERIC: + /* AMD chipsets also don't work with position-buffer */ + if (chip->pci->vendor == PCI_VENDOR_ID_AMD) + return POS_FIX_LPIB; + break; } return POS_FIX_AUTO; @@ -2546,6 +2582,13 @@ gcap &= ~ICH6_GCAP_64OK; pci_dev_put(p_smbus); } + } else { + /* FIXME: not sure whether this is really needed, but + * Hudson isn't stable enough for allowing everything... + * let's check later again. + */ + if (chip->pci->vendor == PCI_VENDOR_ID_AMD) + gcap &= ~ICH6_GCAP_64OK; } /* disable 64bit DMA address for Teradici */ --- linux-2.6.38.orig/sound/soc/samsung/s3c24xx_uda134x.c +++ linux-2.6.38/sound/soc/samsung/s3c24xx_uda134x.c @@ -226,7 +226,7 @@ static struct snd_soc_dai_link s3c24xx_uda134x_dai_link = { .name = "UDA134X", .stream_name = "UDA134X", - .codec_name = "uda134x-hifi", + .codec_name = "uda134x-codec", .codec_dai_name = "uda134x-hifi", .cpu_dai_name = "s3c24xx-iis", .ops = &s3c24xx_uda134x_ops, @@ -321,6 +321,7 @@ platform_set_drvdata(s3c24xx_uda134x_snd_device, &snd_soc_s3c24xx_uda134x); + platform_device_add_data(s3c24xx_uda134x_snd_device, &s3c24xx_uda134x, sizeof(s3c24xx_uda134x)); ret = platform_device_add(s3c24xx_uda134x_snd_device); if (ret) { printk(KERN_ERR "S3C24XX_UDA134X SoC Audio: Unable to add\n"); --- linux-2.6.38.orig/sound/soc/imx/imx-pcm-dma-mx2.c +++ linux-2.6.38/sound/soc/imx/imx-pcm-dma-mx2.c @@ -110,12 +110,12 @@ slave_config.direction = DMA_TO_DEVICE; slave_config.dst_addr = dma_params->dma_addr; slave_config.dst_addr_width = buswidth; - slave_config.dst_maxburst = dma_params->burstsize; + slave_config.dst_maxburst = dma_params->burstsize * buswidth; } else { slave_config.direction = DMA_FROM_DEVICE; slave_config.src_addr = dma_params->dma_addr; slave_config.src_addr_width = buswidth; - slave_config.src_maxburst = dma_params->burstsize; + slave_config.src_maxburst = dma_params->burstsize * buswidth; } ret = dmaengine_slave_config(iprtd->dma_chan, &slave_config); @@ -303,6 +303,11 @@ static int __devinit imx_soc_platform_probe(struct platform_device *pdev) { + struct imx_ssi *ssi = platform_get_drvdata(pdev); + + ssi->dma_params_tx.burstsize = 6; + ssi->dma_params_rx.burstsize = 4; + return snd_soc_register_platform(&pdev->dev, &imx_soc_platform_mx2); } --- linux-2.6.38.orig/sound/soc/imx/imx-ssi.h +++ linux-2.6.38/sound/soc/imx/imx-ssi.h @@ -234,7 +234,4 @@ */ #define IMX_SSI_DMABUF_SIZE (64 * 1024) -#define DMA_RXFIFO_BURST 0x4 -#define DMA_TXFIFO_BURST 0x6 - #endif /* _IMX_SSI_H */ --- linux-2.6.38.orig/sound/soc/codecs/jz4740.c +++ linux-2.6.38/sound/soc/codecs/jz4740.c @@ -308,8 +308,6 @@ snd_soc_dapm_add_routes(dapm, jz4740_codec_dapm_routes, ARRAY_SIZE(jz4740_codec_dapm_routes)); - snd_soc_dapm_new_widgets(codec); - jz4740_codec_set_bias_level(codec, SND_SOC_BIAS_STANDBY); return 0; --- linux-2.6.38.orig/sound/soc/codecs/wm_hubs.c +++ linux-2.6.38/sound/soc/codecs/wm_hubs.c @@ -739,12 +739,12 @@ { "SPKL", "Input Switch", "MIXINL" }, { "SPKL", "IN1LP Switch", "IN1LP" }, - { "SPKL", "Output Switch", "Left Output Mixer" }, + { "SPKL", "Output Switch", "Left Output PGA" }, { "SPKL", NULL, "TOCLK" }, { "SPKR", "Input Switch", "MIXINR" }, { "SPKR", "IN1RP Switch", "IN1RP" }, - { "SPKR", "Output Switch", "Right Output Mixer" }, + { "SPKR", "Output Switch", "Right Output PGA" }, { "SPKR", NULL, "TOCLK" }, { "SPKL Boost", "Direct Voice Switch", "Direct Voice" }, @@ -766,8 +766,8 @@ { "SPKOUTRP", NULL, "SPKR Driver" }, { "SPKOUTRN", NULL, "SPKR Driver" }, - { "Left Headphone Mux", "Mixer", "Left Output Mixer" }, - { "Right Headphone Mux", "Mixer", "Right Output Mixer" }, + { "Left Headphone Mux", "Mixer", "Left Output PGA" }, + { "Right Headphone Mux", "Mixer", "Right Output PGA" }, { "Headphone PGA", NULL, "Left Headphone Mux" }, { "Headphone PGA", NULL, "Right Headphone Mux" }, @@ -786,17 +786,17 @@ static const struct snd_soc_dapm_route lineout1_diff_routes[] = { { "LINEOUT1 Mixer", "IN1L Switch", "IN1L PGA" }, { "LINEOUT1 Mixer", "IN1R Switch", "IN1R PGA" }, - { "LINEOUT1 Mixer", "Output Switch", "Left Output Mixer" }, + { "LINEOUT1 Mixer", "Output Switch", "Left Output PGA" }, { "LINEOUT1N Driver", NULL, "LINEOUT1 Mixer" }, { "LINEOUT1P Driver", NULL, "LINEOUT1 Mixer" }, }; static const struct snd_soc_dapm_route lineout1_se_routes[] = { - { "LINEOUT1N Mixer", "Left Output Switch", "Left Output Mixer" }, - { "LINEOUT1N Mixer", "Right Output Switch", "Left Output Mixer" }, + { "LINEOUT1N Mixer", "Left Output Switch", "Left Output PGA" }, + { "LINEOUT1N Mixer", "Right Output Switch", "Right Output PGA" }, - { "LINEOUT1P Mixer", "Left Output Switch", "Left Output Mixer" }, + { "LINEOUT1P Mixer", "Left Output Switch", "Left Output PGA" }, { "LINEOUT1N Driver", NULL, "LINEOUT1N Mixer" }, { "LINEOUT1P Driver", NULL, "LINEOUT1P Mixer" }, @@ -805,17 +805,17 @@ static const struct snd_soc_dapm_route lineout2_diff_routes[] = { { "LINEOUT2 Mixer", "IN2L Switch", "IN2L PGA" }, { "LINEOUT2 Mixer", "IN2R Switch", "IN2R PGA" }, - { "LINEOUT2 Mixer", "Output Switch", "Right Output Mixer" }, + { "LINEOUT2 Mixer", "Output Switch", "Right Output PGA" }, { "LINEOUT2N Driver", NULL, "LINEOUT2 Mixer" }, { "LINEOUT2P Driver", NULL, "LINEOUT2 Mixer" }, }; static const struct snd_soc_dapm_route lineout2_se_routes[] = { - { "LINEOUT2N Mixer", "Left Output Switch", "Left Output Mixer" }, - { "LINEOUT2N Mixer", "Right Output Switch", "Left Output Mixer" }, + { "LINEOUT2N Mixer", "Left Output Switch", "Left Output PGA" }, + { "LINEOUT2N Mixer", "Right Output Switch", "Right Output PGA" }, - { "LINEOUT2P Mixer", "Right Output Switch", "Right Output Mixer" }, + { "LINEOUT2P Mixer", "Right Output Switch", "Right Output PGA" }, { "LINEOUT2N Driver", NULL, "LINEOUT2N Mixer" }, { "LINEOUT2P Driver", NULL, "LINEOUT2P Mixer" }, @@ -835,17 +835,21 @@ snd_soc_update_bits(codec, WM8993_RIGHT_LINE_INPUT_3_4_VOLUME, WM8993_IN2_VU, WM8993_IN2_VU); + snd_soc_update_bits(codec, WM8993_SPEAKER_VOLUME_LEFT, + WM8993_SPKOUT_VU, WM8993_SPKOUT_VU); snd_soc_update_bits(codec, WM8993_SPEAKER_VOLUME_RIGHT, WM8993_SPKOUT_VU, WM8993_SPKOUT_VU); snd_soc_update_bits(codec, WM8993_LEFT_OUTPUT_VOLUME, - WM8993_HPOUT1L_ZC, WM8993_HPOUT1L_ZC); + WM8993_HPOUT1_VU | WM8993_HPOUT1L_ZC, + WM8993_HPOUT1_VU | WM8993_HPOUT1L_ZC); snd_soc_update_bits(codec, WM8993_RIGHT_OUTPUT_VOLUME, WM8993_HPOUT1_VU | WM8993_HPOUT1R_ZC, WM8993_HPOUT1_VU | WM8993_HPOUT1R_ZC); snd_soc_update_bits(codec, WM8993_LEFT_OPGA_VOLUME, - WM8993_MIXOUTL_ZC, WM8993_MIXOUTL_ZC); + WM8993_MIXOUTL_ZC | WM8993_MIXOUT_VU, + WM8993_MIXOUTL_ZC | WM8993_MIXOUT_VU); snd_soc_update_bits(codec, WM8993_RIGHT_OPGA_VOLUME, WM8993_MIXOUTR_ZC | WM8993_MIXOUT_VU, WM8993_MIXOUTR_ZC | WM8993_MIXOUT_VU); --- linux-2.6.38.orig/sound/soc/codecs/uda134x.c +++ linux-2.6.38/sound/soc/codecs/uda134x.c @@ -486,7 +486,8 @@ static int uda134x_soc_probe(struct snd_soc_codec *codec) { struct uda134x_priv *uda134x; - struct uda134x_platform_data *pd = dev_get_drvdata(codec->card->dev); + struct uda134x_platform_data *pd = codec->card->dev->platform_data; + int ret; printk(KERN_INFO "UDA134X SoC Audio Codec\n"); @@ -600,9 +601,7 @@ .reg_cache_step = 1, .read = uda134x_read_reg_cache, .write = uda134x_write, -#ifdef POWER_OFF_ON_STANDBY .set_bias_level = uda134x_set_bias_level, -#endif }; static int __devinit uda134x_codec_probe(struct platform_device *pdev) --- linux-2.6.38.orig/sound/soc/codecs/ssm2602.c +++ linux-2.6.38/sound/soc/codecs/ssm2602.c @@ -139,7 +139,7 @@ SOC_DOUBLE_R("Capture Switch", SSM2602_LINVOL, SSM2602_RINVOL, 7, 1, 1), SOC_SINGLE("Mic Boost (+20dB)", SSM2602_APANA, 0, 1, 0), -SOC_SINGLE("Mic Boost2 (+20dB)", SSM2602_APANA, 7, 1, 0), +SOC_SINGLE("Mic Boost2 (+20dB)", SSM2602_APANA, 8, 1, 0), SOC_SINGLE("Mic Switch", SSM2602_APANA, 1, 1, 1), SOC_SINGLE("Sidetone Playback Volume", SSM2602_APANA, 6, 3, 1), --- linux-2.6.38.orig/sound/soc/pxa/z2.c +++ linux-2.6.38/sound/soc/pxa/z2.c @@ -147,7 +147,7 @@ snd_soc_dapm_disable_pin(dapm, "LINPUT3"); snd_soc_dapm_disable_pin(dapm, "RINPUT3"); snd_soc_dapm_disable_pin(dapm, "OUT3"); - snd_soc_dapm_disable_pin(dapm, "MONO"); + snd_soc_dapm_disable_pin(dapm, "MONO1"); /* Add z2 specific widgets */ snd_soc_dapm_new_controls(dapm, wm8750_dapm_widgets, --- linux-2.6.38.orig/sound/soc/pxa/corgi.c +++ linux-2.6.38/sound/soc/pxa/corgi.c @@ -310,7 +310,7 @@ .cpu_dai_name = "pxa2xx-i2s", .codec_dai_name = "wm8731-hifi", .platform_name = "pxa-pcm-audio", - .codec_name = "wm8731-codec-0.001b", + .codec_name = "wm8731-codec.0-001b", .init = corgi_wm8731_init, .ops = &corgi_ops, }; --- linux-2.6.38.orig/sound/core/init.c +++ linux-2.6.38/sound/core/init.c @@ -848,6 +848,7 @@ return -ENOMEM; mfile->file = file; mfile->disconnected_f_op = NULL; + INIT_LIST_HEAD(&mfile->shutdown_list); spin_lock(&card->files_lock); if (card->shutdown) { spin_unlock(&card->files_lock); @@ -883,6 +884,9 @@ list_for_each_entry(mfile, &card->files_list, list) { if (mfile->file == file) { list_del(&mfile->list); + spin_lock(&shutdown_lock); + list_del(&mfile->shutdown_list); + spin_unlock(&shutdown_lock); if (mfile->disconnected_f_op) fops_put(mfile->disconnected_f_op); found = mfile; --- linux-2.6.38.orig/sound/core/pcm_lib.c +++ linux-2.6.38/sound/core/pcm_lib.c @@ -375,6 +375,7 @@ } if (runtime->no_period_wakeup) { + snd_pcm_sframes_t xrun_threshold; /* * Without regular period interrupts, we have to check * the elapsed time to detect xruns. @@ -383,7 +384,8 @@ if (jdelta < runtime->hw_ptr_buffer_jiffies / 2) goto no_delta_check; hdelta = jdelta - delta * HZ / runtime->rate; - while (hdelta > runtime->hw_ptr_buffer_jiffies / 2 + 1) { + xrun_threshold = runtime->hw_ptr_buffer_jiffies / 2 + 1; + while (hdelta > xrun_threshold) { delta += runtime->buffer_size; hw_base += runtime->buffer_size; if (hw_base >= runtime->boundary) --- linux-2.6.38.orig/sound/core/pcm_native.c +++ linux-2.6.38/sound/core/pcm_native.c @@ -3201,15 +3201,6 @@ EXPORT_SYMBOL(snd_pcm_lib_mmap_iomem); #endif /* SNDRV_PCM_INFO_MMAP */ -/* mmap callback with pgprot_noncached */ -int snd_pcm_lib_mmap_noncached(struct snd_pcm_substream *substream, - struct vm_area_struct *area) -{ - area->vm_page_prot = pgprot_noncached(area->vm_page_prot); - return snd_pcm_default_mmap(substream, area); -} -EXPORT_SYMBOL(snd_pcm_lib_mmap_noncached); - /* * mmap DMA buffer */ --- linux-2.6.38.orig/sound/oss/sb_mixer.c +++ linux-2.6.38/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.38.orig/sound/oss/sequencer.c +++ linux-2.6.38/sound/oss/sequencer.c @@ -241,7 +241,7 @@ return -ENXIO; fmt = (*(short *) &event_rec[0]) & 0xffff; - err = synth_devs[dev]->load_patch(dev, fmt, buf, p + 4, c, 0); + err = synth_devs[dev]->load_patch(dev, fmt, buf + p, c, 0); if (err < 0) return err; --- linux-2.6.38.orig/sound/oss/midi_synth.h +++ linux-2.6.38/sound/oss/midi_synth.h @@ -8,7 +8,7 @@ void midi_synth_close (int dev); void midi_synth_hw_control (int dev, unsigned char *event); int midi_synth_load_patch (int dev, int format, const char __user * addr, - int offs, int count, int pmgr_flag); + int count, int pmgr_flag); void midi_synth_panning (int dev, int channel, int pressure); void midi_synth_aftertouch (int dev, int channel, int pressure); void midi_synth_controller (int dev, int channel, int ctrl_num, int value); --- linux-2.6.38.orig/sound/oss/ad1848.c +++ linux-2.6.38/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.38.orig/sound/oss/dev_table.h +++ linux-2.6.38/sound/oss/dev_table.h @@ -271,7 +271,7 @@ void (*reset) (int dev); void (*hw_control) (int dev, unsigned char *event); int (*load_patch) (int dev, int format, const char __user *addr, - int offs, int count, int pmgr_flag); + int count, int pmgr_flag); void (*aftertouch) (int dev, int voice, int pressure); void (*controller) (int dev, int voice, int ctrl_num, int value); void (*panning) (int dev, int voice, int value); --- linux-2.6.38.orig/sound/oss/opl3.c +++ linux-2.6.38/sound/oss/opl3.c @@ -820,7 +820,7 @@ } static int opl3_load_patch(int dev, int format, const char __user *addr, - int offs, int count, int pmgr_flag) + int count, int pmgr_flag) { struct sbi_instrument ins; @@ -830,11 +830,7 @@ return -EINVAL; } - /* - * What the fuck is going on here? We leave junk in the beginning - * of ins and then check the field pretty close to that beginning? - */ - if(copy_from_user(&((char *) &ins)[offs], addr + offs, sizeof(ins) - offs)) + if (copy_from_user(&ins, addr, sizeof(ins))) return -EFAULT; if (ins.channel < 0 || ins.channel >= SBFM_MAXINSTR) @@ -849,6 +845,10 @@ static void opl3_panning(int dev, int voice, int value) { + + if (voice < 0 || voice >= devc->nr_voice) + return; + devc->voc[voice].panning = value; } @@ -1066,8 +1066,15 @@ static void opl3_setup_voice(int dev, int voice, int chn) { - struct channel_info *info = - &synth_devs[dev]->chn_info[chn]; + struct channel_info *info; + + if (voice < 0 || voice >= devc->nr_voice) + return; + + if (chn < 0 || chn > 15) + return; + + info = &synth_devs[dev]->chn_info[chn]; opl3_set_instr(dev, voice, info->pgm_num); --- linux-2.6.38.orig/sound/oss/midi_synth.c +++ linux-2.6.38/sound/oss/midi_synth.c @@ -476,7 +476,7 @@ int midi_synth_load_patch(int dev, int format, const char __user *addr, - int offs, int count, int pmgr_flag) + int count, int pmgr_flag) { int orig_dev = synth_devs[dev]->midi_dev; @@ -491,33 +491,29 @@ if (!prefix_cmd(orig_dev, 0xf0)) return 0; + /* Invalid patch format */ if (format != SYSEX_PATCH) - { -/* printk("MIDI Error: Invalid patch format (key) 0x%x\n", format);*/ return -EINVAL; - } + + /* Patch header too short */ if (count < hdr_size) - { -/* printk("MIDI Error: Patch header too short\n");*/ return -EINVAL; - } + count -= hdr_size; /* - * Copy the header from user space but ignore the first bytes which have - * been transferred already. + * Copy the header from user space */ - if(copy_from_user(&((char *) &sysex)[offs], &(addr)[offs], hdr_size - offs)) + if (copy_from_user(&sysex, addr, hdr_size)) return -EFAULT; - - if (count < sysex.len) - { -/* printk(KERN_WARNING "MIDI Warning: Sysex record too short (%d<%d)\n", count, (int) sysex.len);*/ + + /* Sysex record too short */ + if ((unsigned)count < (unsigned)sysex.len) sysex.len = count; - } - left = sysex.len; - src_offs = 0; + + left = sysex.len; + src_offs = 0; for (i = 0; i < left && !signal_pending(current); i++) { --- linux-2.6.38.orig/include/Kbuild +++ linux-2.6.38/include/Kbuild @@ -9,4 +9,3 @@ header-y += video/ header-y += drm/ header-y += xen/ -header-y += scsi/ --- linux-2.6.38.orig/include/sound/soc-dapm.h +++ linux-2.6.38/include/sound/soc-dapm.h @@ -45,25 +45,25 @@ /* platform domain */ #define SND_SOC_DAPM_INPUT(wname) \ { .id = snd_soc_dapm_input, .name = wname, .kcontrols = NULL, \ - .num_kcontrols = 0} + .num_kcontrols = 0, .reg = SND_SOC_NOPM } #define SND_SOC_DAPM_OUTPUT(wname) \ { .id = snd_soc_dapm_output, .name = wname, .kcontrols = NULL, \ - .num_kcontrols = 0} + .num_kcontrols = 0, .reg = SND_SOC_NOPM } #define SND_SOC_DAPM_MIC(wname, wevent) \ { .id = snd_soc_dapm_mic, .name = wname, .kcontrols = NULL, \ - .num_kcontrols = 0, .event = wevent, \ + .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \ .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD} #define SND_SOC_DAPM_HP(wname, wevent) \ { .id = snd_soc_dapm_hp, .name = wname, .kcontrols = NULL, \ - .num_kcontrols = 0, .event = wevent, \ + .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \ .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD} #define SND_SOC_DAPM_SPK(wname, wevent) \ { .id = snd_soc_dapm_spk, .name = wname, .kcontrols = NULL, \ - .num_kcontrols = 0, .event = wevent, \ + .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \ .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD} #define SND_SOC_DAPM_LINE(wname, wevent) \ { .id = snd_soc_dapm_line, .name = wname, .kcontrols = NULL, \ - .num_kcontrols = 0, .event = wevent, \ + .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \ .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD} /* path domain */ @@ -177,11 +177,11 @@ /* events that are pre and post DAPM */ #define SND_SOC_DAPM_PRE(wname, wevent) \ { .id = snd_soc_dapm_pre, .name = wname, .kcontrols = NULL, \ - .num_kcontrols = 0, .event = wevent, \ + .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \ .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD} #define SND_SOC_DAPM_POST(wname, wevent) \ { .id = snd_soc_dapm_post, .name = wname, .kcontrols = NULL, \ - .num_kcontrols = 0, .event = wevent, \ + .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \ .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD} /* stream domain */ --- linux-2.6.38.orig/include/sound/pcm.h +++ linux-2.6.38/include/sound/pcm.h @@ -1030,9 +1030,7 @@ #define snd_pcm_lib_mmap_iomem NULL #endif -int snd_pcm_lib_mmap_noncached(struct snd_pcm_substream *substream, - struct vm_area_struct *area); -#define snd_pcm_lib_mmap_vmalloc snd_pcm_lib_mmap_noncached +#define snd_pcm_lib_mmap_vmalloc NULL static inline void snd_pcm_limit_isa_dma_size(int dma, size_t *max) { --- linux-2.6.38.orig/include/target/target_core_base.h +++ linux-2.6.38/include/target/target_core_base.h @@ -98,6 +98,7 @@ TRANSPORT_REMOVE = 14, TRANSPORT_FREE = 15, TRANSPORT_NEW_CMD_MAP = 16, + TRANSPORT_FREE_CMD_INTR = 17, }; /* Used for struct se_cmd->se_cmd_flags */ --- linux-2.6.38.orig/include/target/target_core_transport.h +++ linux-2.6.38/include/target/target_core_transport.h @@ -170,6 +170,7 @@ extern int transport_generic_handle_data(struct se_cmd *); extern void transport_new_cmd_failure(struct se_cmd *); extern int transport_generic_handle_tmr(struct se_cmd *); +extern void transport_generic_free_cmd_intr(struct se_cmd *); extern void __transport_stop_task_timer(struct se_task *, unsigned long *); extern unsigned char transport_asciihex_to_binaryhex(unsigned char val[2]); extern int transport_generic_map_mem_to_cmd(struct se_cmd *cmd, struct scatterlist *, u32, --- linux-2.6.38.orig/include/trace/events/vfs.h +++ linux-2.6.38/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.38.orig/include/trace/events/fs.h +++ linux-2.6.38/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.38.orig/include/asm-generic/vmlinux.lds.h +++ linux-2.6.38/include/asm-generic/vmlinux.lds.h @@ -623,6 +623,7 @@ *(.initcall0s.init) \ *(.initcall1.init) \ *(.initcall1s.init) \ + *(.initcallearlyrootfs.init) \ *(.initcall2.init) \ *(.initcall2s.init) \ *(.initcall3.init) \ --- linux-2.6.38.orig/include/asm-generic/resource.h +++ linux-2.6.38/include/asm-generic/resource.h @@ -78,7 +78,7 @@ [RLIMIT_CORE] = { 0, RLIM_INFINITY }, \ [RLIMIT_RSS] = { RLIM_INFINITY, RLIM_INFINITY }, \ [RLIMIT_NPROC] = { 0, 0 }, \ - [RLIMIT_NOFILE] = { INR_OPEN, INR_OPEN }, \ + [RLIMIT_NOFILE] = { INR_OPEN, INR_OPEN*4 }, \ [RLIMIT_MEMLOCK] = { MLOCK_LIMIT, MLOCK_LIMIT }, \ [RLIMIT_AS] = { RLIM_INFINITY, RLIM_INFINITY }, \ [RLIMIT_LOCKS] = { RLIM_INFINITY, RLIM_INFINITY }, \ --- linux-2.6.38.orig/include/drm/drm_pciids.h +++ linux-2.6.38/include/drm/drm_pciids.h @@ -153,6 +153,7 @@ {0x1002, 0x6729, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6738, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6739, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \ + {0x1002, 0x673e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6740, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6741, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6742, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ @@ -185,6 +186,7 @@ {0x1002, 0x688D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6898, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6899, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ + {0x1002, 0x689b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x689c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HEMLOCK|RADEON_NEW_MEMMAP}, \ {0x1002, 0x689d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HEMLOCK|RADEON_NEW_MEMMAP}, \ {0x1002, 0x689e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ @@ -195,7 +197,9 @@ {0x1002, 0x68b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x68b8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ {0x1002, 0x68b9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ + {0x1002, 0x68ba, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ {0x1002, 0x68be, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ + {0x1002, 0x68bf, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ {0x1002, 0x68c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x68c1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x68c7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ @@ -458,6 +462,8 @@ {0x1002, 0x9803, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0x1002, 0x9804, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0x1002, 0x9805, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x9806, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x9807, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0, 0, 0} #define r128_PCI_IDS \ --- linux-2.6.38.orig/include/drm/radeon_drm.h +++ linux-2.6.38/include/drm/radeon_drm.h @@ -908,6 +908,7 @@ #define RADEON_INFO_WANT_HYPERZ 0x07 #define RADEON_INFO_WANT_CMASK 0x08 /* get access to CMASK on r300 */ #define RADEON_INFO_CLOCK_CRYSTAL_FREQ 0x09 /* clock crystal frequency */ +#define RADEON_INFO_FUSION_GART_WORKING 0x0c /* fusion writes to GTT were broken before this */ struct drm_radeon_info { uint32_t request; --- linux-2.6.38.orig/include/drm/drm_fb_helper.h +++ linux-2.6.38/include/drm/drm_fb_helper.h @@ -118,6 +118,7 @@ unsigned transp, struct fb_info *info); +bool drm_fb_helper_restore_fbdev_mode(struct drm_fb_helper *fb_helper); void drm_fb_helper_restore(void); void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helper, uint32_t fb_width, uint32_t fb_height); --- linux-2.6.38.orig/include/xen/interface/io/blkif.h +++ linux-2.6.38/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.38.orig/include/linux/vt_kern.h +++ linux-2.6.38/include/linux/vt_kern.h @@ -130,7 +130,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.38.orig/include/linux/splice.h +++ linux-2.6.38/include/linux/splice.h @@ -89,4 +89,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *, struct splice_pipe_desc *); +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); + #endif --- linux-2.6.38.orig/include/linux/ftrace.h +++ linux-2.6.38/include/linux/ftrace.h @@ -428,6 +428,7 @@ extern void ftrace_graph_init_task(struct task_struct *t); extern void ftrace_graph_exit_task(struct task_struct *t); +extern void ftrace_graph_init_idle_task(struct task_struct *t, int cpu); static inline int task_curr_ret_stack(struct task_struct *t) { @@ -451,6 +452,7 @@ static inline void ftrace_graph_init_task(struct task_struct *t) { } static inline void ftrace_graph_exit_task(struct task_struct *t) { } +static inline void ftrace_graph_init_idle_task(struct task_struct *t, int cpu) { } static inline int register_ftrace_graph(trace_func_graph_ret_t retfunc, trace_func_graph_ent_t entryfunc) --- linux-2.6.38.orig/include/linux/moduleparam.h +++ linux-2.6.38/include/linux/moduleparam.h @@ -267,7 +267,7 @@ char *args, const 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.38.orig/include/linux/namei.h +++ linux-2.6.38/include/linux/namei.h @@ -79,6 +79,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_one(struct path *); --- linux-2.6.38.orig/include/linux/init.h +++ linux-2.6.38/include/linux/init.h @@ -195,6 +195,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.38.orig/include/linux/perf_event.h +++ linux-2.6.38/include/linux/perf_event.h @@ -1052,7 +1052,7 @@ { perf_sw_event(PERF_COUNT_SW_CONTEXT_SWITCHES, 1, 1, NULL, 0); - COND_STMT(&perf_task_events, __perf_event_task_sched_out(task, next)); + __perf_event_task_sched_out(task, next); } extern void perf_event_mmap(struct vm_area_struct *vma); --- linux-2.6.38.orig/include/linux/input.h +++ linux-2.6.38/include/linux/input.h @@ -91,7 +91,6 @@ * (depending on which element was used to perform lookup). */ struct input_keymap_entry { -#define INPUT_KEYMAP_BY_INDEX (1 << 0) __u8 flags; __u8 len; __u16 index; @@ -99,6 +98,8 @@ __u8 scancode[32]; }; +#define INPUT_KEYMAP_BY_INDEX (1 << 0) + #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 */ --- linux-2.6.38.orig/include/linux/libata.h +++ linux-2.6.38/include/linux/libata.h @@ -203,6 +203,7 @@ * management */ ATA_FLAG_SW_ACTIVITY = (1 << 22), /* driver supports sw activity * led */ + ATA_FLAG_NO_DIPM = (1 << 23), /* host not happy with DIPM */ /* bits 24:31 of ap->flags are reserved for LLD specific flags */ --- linux-2.6.38.orig/include/linux/cryptohash.h +++ linux-2.6.38/include/linux/cryptohash.h @@ -8,6 +8,11 @@ void sha_init(__u32 *buf); void sha_transform(__u32 *digest, const char *data, __u32 *W); +#define MD5_DIGEST_WORDS 4 +#define MD5_MESSAGE_BYTES 64 + +void md5_transform(__u32 *hash, __u32 const *in); + __u32 half_md4_transform(__u32 buf[4], __u32 const in[8]); #endif --- linux-2.6.38.orig/include/linux/huge_mm.h +++ linux-2.6.38/include/linux/huge_mm.h @@ -117,7 +117,7 @@ unsigned long end, long adjust_next) { - if (!vma->anon_vma || vma->vm_ops || vma->vm_file) + if (!vma->anon_vma || vma->vm_ops) return; __vma_adjust_trans_huge(vma, start, end, adjust_next); } --- linux-2.6.38.orig/include/linux/flex_array.h +++ linux-2.6.38/include/linux/flex_array.h @@ -61,7 +61,7 @@ struct flex_array *flex_array_alloc(int element_size, unsigned int total, gfp_t flags); int flex_array_prealloc(struct flex_array *fa, unsigned int start, - unsigned int end, gfp_t flags); + unsigned int nr_elements, gfp_t flags); void flex_array_free(struct flex_array *fa); void flex_array_free_parts(struct flex_array *fa); int flex_array_put(struct flex_array *fa, unsigned int element_nr, void *src, --- linux-2.6.38.orig/include/linux/blkdev.h +++ linux-2.6.38/include/linux/blkdev.h @@ -252,7 +252,7 @@ unsigned char misaligned; unsigned char discard_misaligned; unsigned char cluster; - signed char discard_zeroes_data; + unsigned char discard_zeroes_data; }; struct request_queue @@ -1032,13 +1032,16 @@ { unsigned int alignment = (sector << 9) & (lim->discard_granularity - 1); + if (!lim->max_discard_sectors) + return 0; + return (lim->discard_granularity + lim->discard_alignment - alignment) & (lim->discard_granularity - 1); } static inline unsigned int queue_discard_zeroes_data(struct request_queue *q) { - if (q->limits.discard_zeroes_data == 1) + if (q->limits.max_discard_sectors && q->limits.discard_zeroes_data == 1) return 1; return 0; --- linux-2.6.38.orig/include/linux/hid.h +++ linux-2.6.38/include/linux/hid.h @@ -638,7 +638,7 @@ struct hid_input *hidinput, struct hid_field *field, struct hid_usage *usage, unsigned long **bit, int *max); void (*feature_mapping)(struct hid_device *hdev, - struct hid_input *hidinput, struct hid_field *field, + struct hid_field *field, struct hid_usage *usage); #ifdef CONFIG_PM int (*suspend)(struct hid_device *hdev, pm_message_t message); --- linux-2.6.38.orig/include/linux/pci_ids.h +++ linux-2.6.38/include/linux/pci_ids.h @@ -607,6 +607,8 @@ #define PCI_DEVICE_ID_MATROX_G550 0x2527 #define PCI_DEVICE_ID_MATROX_VIA 0x4536 +#define PCI_VENDOR_ID_MOBILITY_ELECTRONICS 0x14f2 + #define PCI_VENDOR_ID_CT 0x102c #define PCI_DEVICE_ID_CT_69000 0x00c0 #define PCI_DEVICE_ID_CT_65545 0x00d8 @@ -1534,6 +1536,7 @@ #define PCI_DEVICE_ID_RICOH_RL5C476 0x0476 #define PCI_DEVICE_ID_RICOH_RL5C478 0x0478 #define PCI_DEVICE_ID_RICOH_R5C822 0x0822 +#define PCI_DEVICE_ID_RICOH_R5CE823 0xe823 #define PCI_DEVICE_ID_RICOH_R5C832 0x0832 #define PCI_DEVICE_ID_RICOH_R5C843 0x0843 --- linux-2.6.38.orig/include/linux/mm.h +++ linux-2.6.38/include/linux/mm.h @@ -137,7 +137,8 @@ #define VM_RandomReadHint(v) ((v)->vm_flags & VM_RAND_READ) /* - * special vmas that are non-mergable, non-mlock()able + * Special vmas that are non-mergable, non-mlock()able. + * Note: mm/huge_memory.c VM_NO_THP depends on this definition. */ #define VM_SPECIAL (VM_IO | VM_DONTEXPAND | VM_RESERVED | VM_PFNMAP) @@ -402,16 +403,23 @@ /* * PageBuddy() indicate that the page is free and in the buddy system * (see mm/page_alloc.c). + * + * PAGE_BUDDY_MAPCOUNT_VALUE must be <= -2 but better not too close to + * -2 so that an underflow of the page_mapcount() won't be mistaken + * for a genuine PAGE_BUDDY_MAPCOUNT_VALUE. -128 can be created very + * efficiently by most CPU architectures. */ +#define PAGE_BUDDY_MAPCOUNT_VALUE (-128) + static inline int PageBuddy(struct page *page) { - return atomic_read(&page->_mapcount) == -2; + return atomic_read(&page->_mapcount) == PAGE_BUDDY_MAPCOUNT_VALUE; } static inline void __SetPageBuddy(struct page *page) { VM_BUG_ON(atomic_read(&page->_mapcount) != -1); - atomic_set(&page->_mapcount, -2); + atomic_set(&page->_mapcount, PAGE_BUDDY_MAPCOUNT_VALUE); } static inline void __ClearPageBuddy(struct page *page) @@ -986,11 +994,33 @@ 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) +static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr) { return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN); } +static inline int stack_guard_page_start(struct vm_area_struct *vma, + unsigned long addr) +{ + return (vma->vm_flags & VM_GROWSDOWN) && + (vma->vm_start == addr) && + !vma_growsdown(vma->vm_prev, addr); +} + +/* Is the vma a continuation of the stack vma below it? */ +static inline int vma_growsup(struct vm_area_struct *vma, unsigned long addr) +{ + return vma && (vma->vm_start == addr) && (vma->vm_flags & VM_GROWSUP); +} + +static inline int stack_guard_page_end(struct vm_area_struct *vma, + unsigned long addr) +{ + return (vma->vm_flags & VM_GROWSUP) && + (vma->vm_end == addr) && + !vma_growsup(vma->vm_next, addr); +} + extern 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); @@ -1408,7 +1438,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, --- linux-2.6.38.orig/include/linux/pm_qos_params.h +++ linux-2.6.38/include/linux/pm_qos_params.h @@ -16,6 +16,10 @@ #define PM_QOS_NUM_CLASSES 4 #define PM_QOS_DEFAULT_VALUE -1 +#define PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE (2000 * USEC_PER_SEC) +#define PM_QOS_NETWORK_LAT_DEFAULT_VALUE (2000 * USEC_PER_SEC) +#define PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE 0 + struct pm_qos_request_list { struct plist_node list; int pm_qos_class; --- linux-2.6.38.orig/include/linux/swap.h +++ linux-2.6.38/include/linux/swap.h @@ -155,6 +155,15 @@ #define SWAP_CLUSTER_MAX 32 #define COMPACT_CLUSTER_MAX SWAP_CLUSTER_MAX +/* + * Ratio between the present memory in the zone and the "gap" that + * we're allowing kswapd to shrink in addition to the per-zone high + * wmark, even for zones that already have the high wmark satisfied, + * in order to provide better per-zone lru behavior. We are ok to + * spend not more than 1% of the memory for this zone balancing "gap". + */ +#define KSWAPD_ZONE_BALANCE_GAP_RATIO 100 + #define SWAP_MAP_MAX 0x3e /* Max duplication count, in first swap_map */ #define SWAP_MAP_BAD 0x3f /* Note pageblock is bad, in first swap_map */ #define SWAP_HAS_CACHE 0x40 /* Flag page is cached, in first swap_map */ @@ -185,6 +194,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 { @@ -344,6 +354,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.38.orig/include/linux/page-flags.h +++ linux-2.6.38/include/linux/page-flags.h @@ -107,6 +107,7 @@ #ifdef CONFIG_TRANSPARENT_HUGEPAGE PG_compound_lock, #endif + PG_readaheadunused, /* user oriented readahead as yet unused*/ __NR_PAGEFLAGS, /* Filesystems */ @@ -235,6 +236,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.38.orig/include/linux/kmod.h +++ linux-2.6.38/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.38.orig/include/linux/bootmem.h +++ linux-2.6.38/include/linux/bootmem.h @@ -115,6 +115,8 @@ __alloc_bootmem_nopanic(x, PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) #define alloc_bootmem_node(pgdat, x) \ __alloc_bootmem_node(pgdat, x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) +#define alloc_bootmem_node_nopanic(pgdat, x) \ + __alloc_bootmem_node_nopanic(pgdat, x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) #define alloc_bootmem_pages_node(pgdat, x) \ __alloc_bootmem_node(pgdat, x, PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) #define alloc_bootmem_pages_node_nopanic(pgdat, x) \ --- linux-2.6.38.orig/include/linux/mm_types.h +++ linux-2.6.38/include/linux/mm_types.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.38.orig/include/linux/prctl.h +++ linux-2.6.38/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.38.orig/include/linux/seqlock.h +++ linux-2.6.38/include/linux/seqlock.h @@ -88,12 +88,12 @@ unsigned ret; repeat: - ret = sl->sequence; - smp_rmb(); + ret = ACCESS_ONCE(sl->sequence); if (unlikely(ret & 1)) { cpu_relax(); goto repeat; } + smp_rmb(); return ret; } --- linux-2.6.38.orig/include/linux/kd.h +++ linux-2.6.38/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.38.orig/include/linux/atmdev.h +++ linux-2.6.38/include/linux/atmdev.h @@ -443,6 +443,7 @@ void vcc_insert_socket(struct sock *sk); +void atm_dev_release_vccs(struct atm_dev *dev); /* * This is approximately the algorithm used by alloc_skb. --- linux-2.6.38.orig/include/linux/lsm_audit.h +++ linux-2.6.38/include/linux/lsm_audit.h @@ -123,6 +123,10 @@ u32 denied; uid_t ouid; } fs; + struct { + int type, protocol; + struct sock *sk; + } net; }; } apparmor_audit_data; #endif --- linux-2.6.38.orig/include/linux/screen_info.h +++ linux-2.6.38/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.38.orig/include/linux/security.h +++ linux-2.6.38/include/linux/security.h @@ -636,6 +636,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. @@ -1490,6 +1493,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, @@ -1744,6 +1748,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); @@ -2250,6 +2255,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.38.orig/include/linux/fb.h +++ linux-2.6.38/include/linux/fb.h @@ -832,6 +832,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 */ @@ -871,6 +872,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.38.orig/include/linux/sched.h +++ linux-2.6.38/include/linux/sched.h @@ -100,6 +100,9 @@ struct fs_struct; struct perf_event_context; +extern int disable_nx; +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. @@ -388,6 +391,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, @@ -1254,6 +1261,9 @@ #endif struct mm_struct *mm, *active_mm; +#ifdef CONFIG_COMPAT_BRK + unsigned brk_randomized:1; +#endif #if defined(SPLIT_RSS_COUNTING) struct task_rss_stat rss_stat; #endif @@ -1528,6 +1538,9 @@ unsigned long memsw_bytes; /* uncharged mem+swap usage */ } memcg_batch; #endif +#ifdef CONFIG_HAVE_HW_BREAKPOINT + atomic_t ptrace_bp_refcnt; +#endif }; /* Future-safe accessor for struct task_struct's cpus_allowed. */ --- linux-2.6.38.orig/include/linux/ethtool.h +++ linux-2.6.38/include/linux/ethtool.h @@ -13,6 +13,9 @@ #ifndef _LINUX_ETHTOOL_H #define _LINUX_ETHTOOL_H +#ifdef __KERNEL__ +#include +#endif #include #include @@ -449,6 +452,37 @@ __u32 rule_locs[0]; }; +#ifdef __KERNEL__ +#ifdef CONFIG_COMPAT + +struct compat_ethtool_rx_flow_spec { + u32 flow_type; + union { + struct ethtool_tcpip4_spec tcp_ip4_spec; + struct ethtool_tcpip4_spec udp_ip4_spec; + struct ethtool_tcpip4_spec sctp_ip4_spec; + struct ethtool_ah_espip4_spec ah_ip4_spec; + struct ethtool_ah_espip4_spec esp_ip4_spec; + struct ethtool_usrip4_spec usr_ip4_spec; + struct ethhdr ether_spec; + u8 hdata[72]; + } h_u, m_u; + compat_u64 ring_cookie; + u32 location; +}; + +struct compat_ethtool_rxnfc { + u32 cmd; + u32 flow_type; + compat_u64 data; + struct compat_ethtool_rx_flow_spec fs; + u32 rule_cnt; + u32 rule_locs[0]; +}; + +#endif /* CONFIG_COMPAT */ +#endif /* __KERNEL__ */ + /** * struct ethtool_rxfh_indir - command to get or set RX flow hash indirection * @cmd: Specific command number - %ETHTOOL_GRXFHINDIR or %ETHTOOL_SRXFHINDIR @@ -557,6 +591,7 @@ u32 ethtool_op_get_flags(struct net_device *dev); int ethtool_op_set_flags(struct net_device *dev, u32 data, u32 supported); void ethtool_ntuple_flush(struct net_device *dev); +bool ethtool_invalid_flags(struct net_device *dev, u32 data, u32 supported); /** * ðtool_ops - Alter and report network device settings --- linux-2.6.38.orig/include/linux/compaction.h +++ linux-2.6.38/include/linux/compaction.h @@ -11,9 +11,6 @@ /* The full zone was compacted */ #define COMPACT_COMPLETE 3 -#define COMPACT_MODE_DIRECT_RECLAIM 0 -#define COMPACT_MODE_KSWAPD 1 - #ifdef CONFIG_COMPACTION extern int sysctl_compact_memory; extern int sysctl_compaction_handler(struct ctl_table *table, int write, @@ -28,8 +25,7 @@ bool sync); extern unsigned long compaction_suitable(struct zone *zone, int order); extern unsigned long compact_zone_order(struct zone *zone, int order, - gfp_t gfp_mask, bool sync, - int compact_mode); + gfp_t gfp_mask, bool sync); /* Do not skip compaction more than 64 times */ #define COMPACT_MAX_DEFER_SHIFT 6 @@ -74,8 +70,7 @@ } static inline unsigned long compact_zone_order(struct zone *zone, int order, - gfp_t gfp_mask, bool sync, - int compact_mode) + gfp_t gfp_mask, bool sync) { return COMPACT_CONTINUE; } --- linux-2.6.38.orig/include/linux/pci.h +++ linux-2.6.38/include/linux/pci.h @@ -1002,12 +1002,11 @@ #endif #ifndef CONFIG_PCIEASPM -static inline int pcie_aspm_enabled(void) -{ - return 0; -} +static inline int pcie_aspm_enabled(void) { return 0; } +static inline bool pcie_aspm_support_enabled(void) { return false; } #else extern int pcie_aspm_enabled(void); +extern bool pcie_aspm_support_enabled(void); #endif #ifdef CONFIG_PCIEAER --- linux-2.6.38.orig/include/linux/random.h +++ linux-2.6.38/include/linux/random.h @@ -57,17 +57,6 @@ extern void get_random_bytes(void *buf, int nbytes); void generate_random_uuid(unsigned char uuid_out[16]); -extern __u32 secure_ip_id(__be32 daddr); -extern u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport); -extern u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr, - __be16 dport); -extern __u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, - __be16 sport, __be16 dport); -extern __u32 secure_tcpv6_sequence_number(__be32 *saddr, __be32 *daddr, - __be16 sport, __be16 dport); -extern u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, - __be16 sport, __be16 dport); - #ifndef MODULE extern const struct file_operations random_fops, urandom_fops; #endif --- linux-2.6.38.orig/include/linux/kernel.h +++ linux-2.6.38/include/linux/kernel.h @@ -187,14 +187,76 @@ ATTRIB_NORET; NORET_TYPE void complete_and_exit(struct completion *, long) ATTRIB_NORET; + +/* Internal, do not use. */ +int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res); +int __must_check _kstrtol(const char *s, unsigned int base, long *res); + +int __must_check kstrtoull(const char *s, unsigned int base, unsigned long long *res); +int __must_check kstrtoll(const char *s, unsigned int base, long long *res); +static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res) +{ + /* + * We want to shortcut function call, but + * __builtin_types_compatible_p(unsigned long, unsigned long long) = 0. + */ + if (sizeof(unsigned long) == sizeof(unsigned long long) && + __alignof__(unsigned long) == __alignof__(unsigned long long)) + return kstrtoull(s, base, (unsigned long long *)res); + else + return _kstrtoul(s, base, res); +} + +static inline int __must_check kstrtol(const char *s, unsigned int base, long *res) +{ + /* + * We want to shortcut function call, but + * __builtin_types_compatible_p(long, long long) = 0. + */ + if (sizeof(long) == sizeof(long long) && + __alignof__(long) == __alignof__(long long)) + return kstrtoll(s, base, (long long *)res); + else + return _kstrtol(s, base, res); +} + +int __must_check kstrtouint(const char *s, unsigned int base, unsigned int *res); +int __must_check kstrtoint(const char *s, unsigned int base, int *res); + +static inline int __must_check kstrtou64(const char *s, unsigned int base, u64 *res) +{ + return kstrtoull(s, base, res); +} + +static inline int __must_check kstrtos64(const char *s, unsigned int base, s64 *res) +{ + return kstrtoll(s, base, res); +} + +static inline int __must_check kstrtou32(const char *s, unsigned int base, u32 *res) +{ + return kstrtouint(s, base, res); +} + +static inline int __must_check kstrtos32(const char *s, unsigned int base, s32 *res) +{ + return kstrtoint(s, base, res); +} + +int __must_check kstrtou16(const char *s, unsigned int base, u16 *res); +int __must_check kstrtos16(const char *s, unsigned int base, s16 *res); +int __must_check kstrtou8(const char *s, unsigned int base, u8 *res); +int __must_check kstrtos8(const char *s, unsigned int base, s8 *res); + extern unsigned long simple_strtoul(const char *,char **,unsigned int); extern long simple_strtol(const char *,char **,unsigned int); extern unsigned long long simple_strtoull(const char *,char **,unsigned int); extern long long simple_strtoll(const char *,char **,unsigned int); -extern int __must_check strict_strtoul(const char *, unsigned int, unsigned long *); -extern int __must_check strict_strtol(const char *, unsigned int, long *); -extern int __must_check strict_strtoull(const char *, unsigned int, unsigned long long *); -extern int __must_check strict_strtoll(const char *, unsigned int, long long *); +#define strict_strtoul kstrtoul +#define strict_strtol kstrtol +#define strict_strtoull kstrtoull +#define strict_strtoll kstrtoll + extern int sprintf(char * buf, const char * fmt, ...) __attribute__ ((format (printf, 2, 3))); extern int vsprintf(char *buf, const char *, va_list) --- linux-2.6.38.orig/include/linux/pid.h +++ linux-2.6.38/include/linux/pid.h @@ -117,7 +117,7 @@ */ extern struct pid *find_get_pid(int nr); extern struct pid *find_ge_pid(int nr, struct pid_namespace *); -int next_pidmap(struct pid_namespace *pid_ns, int last); +int next_pidmap(struct pid_namespace *pid_ns, unsigned int last); extern struct pid *alloc_pid(struct pid_namespace *ns); extern void free_pid(struct pid *pid); --- linux-2.6.38.orig/include/linux/genhd.h +++ linux-2.6.38/include/linux/genhd.h @@ -127,6 +127,7 @@ #define GENHD_FL_SUPPRESS_PARTITION_INFO 32 #define GENHD_FL_EXT_DEVT 64 /* allow extended devt */ #define GENHD_FL_NATIVE_CAPACITY 128 +#define GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE 256 enum { DISK_EVENT_MEDIA_CHANGE = 1 << 0, /* media changed */ --- linux-2.6.38.orig/include/linux/netdevice.h +++ linux-2.6.38/include/linux/netdevice.h @@ -1433,9 +1433,12 @@ static inline void *skb_gro_header_slow(struct sk_buff *skb, unsigned int hlen, unsigned int offset) { + if (!pskb_may_pull(skb, hlen)) + return NULL; + NAPI_GRO_CB(skb)->frag0 = NULL; NAPI_GRO_CB(skb)->frag0_len = 0; - return pskb_may_pull(skb, hlen) ? skb->data + offset : NULL; + return skb->data + offset; } static inline void *skb_gro_mac_header(struct sk_buff *skb) --- linux-2.6.38.orig/include/linux/ptrace.h +++ linux-2.6.38/include/linux/ptrace.h @@ -189,6 +189,10 @@ child->ptrace = current->ptrace; __ptrace_link(child, current->parent); } + +#ifdef CONFIG_HAVE_HW_BREAKPOINT + atomic_set(&child->ptrace_bp_refcnt, 1); +#endif } /** @@ -350,6 +354,13 @@ unsigned long args[6], unsigned int maxargs, unsigned long *sp, unsigned long *pc); -#endif +#ifdef CONFIG_HAVE_HW_BREAKPOINT +extern int ptrace_get_breakpoints(struct task_struct *tsk); +extern void ptrace_put_breakpoints(struct task_struct *tsk); +#else +static inline void ptrace_put_breakpoints(struct task_struct *tsk) { } +#endif /* CONFIG_HAVE_HW_BREAKPOINT */ + +#endif /* __KERNEL */ #endif --- linux-2.6.38.orig/include/linux/usb/ehci_def.h +++ linux-2.6.38/include/linux/usb/ehci_def.h @@ -52,7 +52,7 @@ #define HCC_PGM_FRAMELISTLEN(p) ((p)&(1 << 1)) /* true: periodic_size changes*/ #define HCC_64BIT_ADDR(p) ((p)&(1)) /* true: can use 64-bit addr */ u8 portroute[8]; /* nibbles for routing - offset 0xC */ -} __attribute__ ((packed)); +}; /* Section 2.3 Host Controller Operational Registers */ @@ -148,7 +148,7 @@ #define PORT_CSC (1<<1) /* connect status change */ #define PORT_CONNECT (1<<0) /* device connected */ #define PORT_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC) -} __attribute__ ((packed)); +}; #define USBMODE 0x68 /* USB Device mode */ #define USBMODE_SDIS (1<<3) /* Stream disable */ @@ -192,7 +192,7 @@ u32 data47; u32 address; #define DBGP_EPADDR(dev, ep) (((dev)<<8)|(ep)) -} __attribute__ ((packed)); +}; #ifdef CONFIG_EARLY_PRINTK_DBGP #include --- linux-2.6.38.orig/include/linux/usb/hcd.h +++ linux-2.6.38/include/linux/usb/hcd.h @@ -99,6 +99,8 @@ #define HCD_FLAG_POLL_RH 2 /* poll for rh status? */ #define HCD_FLAG_POLL_PENDING 3 /* status has changed? */ #define HCD_FLAG_WAKEUP_PENDING 4 /* root hub is resuming? */ +#define HCD_FLAG_RH_RUNNING 5 /* root hub is running? */ +#define HCD_FLAG_DEAD 6 /* controller has died? */ /* The flags can be tested using these macros; they are likely to * be slightly faster than test_bit(). @@ -108,6 +110,8 @@ #define HCD_POLL_RH(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_RH)) #define HCD_POLL_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_PENDING)) #define HCD_WAKEUP_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_WAKEUP_PENDING)) +#define HCD_RH_RUNNING(hcd) ((hcd)->flags & (1U << HCD_FLAG_RH_RUNNING)) +#define HCD_DEAD(hcd) ((hcd)->flags & (1U << HCD_FLAG_DEAD)) /* Flags that get set only during HCD registration or removal. */ unsigned rh_registered:1;/* is root hub registered? */ --- linux-2.6.38.orig/include/linux/usb/ch9.h +++ linux-2.6.38/include/linux/usb/ch9.h @@ -585,6 +585,8 @@ #define USB_DT_SS_EP_COMP_SIZE 6 /* Bits 4:0 of bmAttributes if this is a bulk endpoint */ #define USB_SS_MAX_STREAMS(p) (1 << (p & 0x1f)) +/* Bits 1:0 of bmAttributes if this is an isoc endpoint */ +#define USB_SS_MULT(p) (1 + ((p) & 0x3)) /*-------------------------------------------------------------------------*/ --- linux-2.6.38.orig/include/linux/usb/serial.h +++ linux-2.6.38/include/linux/usb/serial.h @@ -191,7 +191,8 @@ * @id_table: pointer to a list of usb_device_id structures that define all * of the devices this structure can support. * @num_ports: the number of different ports this device will have. - * @bulk_in_size: bytes to allocate for bulk-in buffer (0 = end-point size) + * @bulk_in_size: minimum number of bytes to allocate for bulk-in buffer + * (0 = end-point size) * @bulk_out_size: bytes to allocate for bulk-out buffer (0 = end-point size) * @calc_num_ports: pointer to a function to determine how many ports this * device has dynamically. It will be called after the probe() --- linux-2.6.38.orig/include/net/rose.h +++ linux-2.6.38/include/net/rose.h @@ -14,6 +14,12 @@ #define ROSE_MIN_LEN 3 +#define ROSE_CALL_REQ_ADDR_LEN_OFF 3 +#define ROSE_CALL_REQ_ADDR_LEN_VAL 0xAA /* each address is 10 digits */ +#define ROSE_CALL_REQ_DEST_ADDR_OFF 4 +#define ROSE_CALL_REQ_SRC_ADDR_OFF 9 +#define ROSE_CALL_REQ_FACILITIES_OFF 14 + #define ROSE_GFI 0x10 #define ROSE_Q_BIT 0x80 #define ROSE_D_BIT 0x40 @@ -214,7 +220,7 @@ extern int rose_validate_nr(struct sock *, unsigned short); extern void rose_write_internal(struct sock *, int); extern int rose_decode(struct sk_buff *, int *, int *, int *, int *, int *); -extern int rose_parse_facilities(unsigned char *, struct rose_facilities_struct *); +extern int rose_parse_facilities(unsigned char *, unsigned int, struct rose_facilities_struct *); extern void rose_disconnect(struct sock *, int, int, int); /* rose_timer.c */ --- linux-2.6.38.orig/include/net/secure_seq.h +++ linux-2.6.38/include/net/secure_seq.h @@ -0,0 +1,20 @@ +#ifndef _NET_SECURE_SEQ +#define _NET_SECURE_SEQ + +#include + +extern __u32 secure_ip_id(__be32 daddr); +extern __u32 secure_ipv6_id(const __be32 daddr[4]); +extern u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport); +extern u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr, + __be16 dport); +extern __u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, + __be16 sport, __be16 dport); +extern __u32 secure_tcpv6_sequence_number(__be32 *saddr, __be32 *daddr, + __be16 sport, __be16 dport); +extern u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, + __be16 sport, __be16 dport); +extern u64 secure_dccpv6_sequence_number(__be32 *saddr, __be32 *daddr, + __be16 sport, __be16 dport); + +#endif /* _NET_SECURE_SEQ */ --- linux-2.6.38.orig/include/net/ipv6.h +++ linux-2.6.38/include/net/ipv6.h @@ -460,17 +460,7 @@ return __ipv6_addr_diff(a1, a2, sizeof(struct in6_addr)); } -static __inline__ void ipv6_select_ident(struct frag_hdr *fhdr) -{ - static u32 ipv6_fragmentation_id = 1; - static DEFINE_SPINLOCK(ip6_id_lock); - - spin_lock_bh(&ip6_id_lock); - fhdr->identification = htonl(ipv6_fragmentation_id); - if (++ipv6_fragmentation_id == 0) - ipv6_fragmentation_id = 1; - spin_unlock_bh(&ip6_id_lock); -} +extern void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt); /* * Prototypes exported by ipv6 --- linux-2.6.38.orig/include/net/transp_v6.h +++ linux-2.6.38/include/net/transp_v6.h @@ -16,6 +16,8 @@ struct flowi; +extern void initialize_hashidentrnd(void); + /* extention headers */ extern int ipv6_exthdrs_init(void); extern void ipv6_exthdrs_exit(void); --- linux-2.6.38.orig/include/net/bluetooth/hci.h +++ linux-2.6.38/include/net/bluetooth/hci.h @@ -76,6 +76,8 @@ HCI_INQUIRY, HCI_RAW, + + HCI_RESET, }; /* HCI ioctl defines */ --- linux-2.6.38.orig/include/scsi/scsi_device.h +++ linux-2.6.38/include/scsi/scsi_device.h @@ -461,7 +461,7 @@ } static inline int scsi_device_enclosure(struct scsi_device *sdev) { - return sdev->inquiry[6] & (1<<6); + return sdev->inquiry ? (sdev->inquiry[6] & (1<<6)) : 1; } static inline int scsi_device_protection(struct scsi_device *sdev) --- linux-2.6.38.orig/crypto/md5.c +++ linux-2.6.38/crypto/md5.c @@ -21,99 +21,9 @@ #include #include #include +#include #include -#define F1(x, y, z) (z ^ (x & (y ^ z))) -#define F2(x, y, z) F1(z, x, y) -#define F3(x, y, z) (x ^ y ^ z) -#define F4(x, y, z) (y ^ (x | ~z)) - -#define MD5STEP(f, w, x, y, z, in, s) \ - (w += f(x, y, z) + in, w = (w<>(32-s)) + x) - -static void md5_transform(u32 *hash, u32 const *in) -{ - u32 a, b, c, d; - - a = hash[0]; - b = hash[1]; - c = hash[2]; - d = hash[3]; - - MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); - MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); - MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); - MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); - MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); - MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); - MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); - MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); - MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); - MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); - MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); - MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); - MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); - MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); - MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); - MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); - - MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); - MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); - MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); - MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); - MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); - MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); - MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); - MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); - MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); - MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); - MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); - MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); - MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); - MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); - MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); - MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); - - MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); - MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); - MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); - MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); - MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); - MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); - MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); - MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); - MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); - MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); - MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); - MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); - MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); - MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); - MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); - MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); - - MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); - MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); - MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); - MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); - MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); - MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); - MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); - MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); - MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); - MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); - MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); - MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); - MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); - MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); - MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); - MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); - - hash[0] += a; - hash[1] += b; - hash[2] += c; - hash[3] += d; -} - /* XXX: this stuff can be optimized */ static inline void le32_to_cpu_array(u32 *buf, unsigned int words) { --- linux-2.6.38.orig/drivers/pnp/isapnp/core.c +++ linux-2.6.38/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.38.orig/drivers/misc/ep93xx_pwm.c +++ linux-2.6.38/drivers/misc/ep93xx_pwm.c @@ -249,11 +249,11 @@ static DEVICE_ATTR(min_freq, S_IRUGO, ep93xx_pwm_get_min_freq, NULL); static DEVICE_ATTR(max_freq, S_IRUGO, ep93xx_pwm_get_max_freq, NULL); -static DEVICE_ATTR(freq, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(freq, S_IWUSR | S_IRUGO, ep93xx_pwm_get_freq, ep93xx_pwm_set_freq); -static DEVICE_ATTR(duty_percent, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(duty_percent, S_IWUSR | S_IRUGO, ep93xx_pwm_get_duty_percent, ep93xx_pwm_set_duty_percent); -static DEVICE_ATTR(invert, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(invert, S_IWUSR | S_IRUGO, ep93xx_pwm_get_invert, ep93xx_pwm_set_invert); static struct attribute *ep93xx_pwm_attrs[] = { --- linux-2.6.38.orig/drivers/mtd/mtdconcat.c +++ linux-2.6.38/drivers/mtd/mtdconcat.c @@ -319,7 +319,7 @@ if (!(mtd->flags & MTD_WRITEABLE)) return -EROFS; - ops->retlen = 0; + ops->retlen = ops->oobretlen = 0; for (i = 0; i < concat->num_subdev; i++) { struct mtd_info *subdev = concat->subdev[i]; @@ -334,7 +334,7 @@ devops.len = subdev->size - to; err = subdev->write_oob(subdev, to, &devops); - ops->retlen += devops.retlen; + ops->retlen += devops.oobretlen; if (err) return err; --- linux-2.6.38.orig/drivers/mtd/nand/nand_base.c +++ linux-2.6.38/drivers/mtd/nand/nand_base.c @@ -3111,6 +3111,8 @@ chip->chip_shift += 32 - 1; } + chip->badblockbits = 8; + /* Set the bad block position */ if (mtd->writesize > 512 || (busw & NAND_BUSWIDTH_16)) chip->badblockpos = NAND_LARGE_BADBLOCK_POS; --- linux-2.6.38.orig/drivers/ide/ide-cd.c +++ linux-2.6.38/drivers/ide/ide-cd.c @@ -1177,7 +1177,7 @@ .open = ide_cdrom_open_real, .release = ide_cdrom_release_real, .drive_status = ide_cdrom_drive_status, - .media_changed = ide_cdrom_check_media_change_real, + .check_events = ide_cdrom_check_events_real, .tray_move = ide_cdrom_tray_move, .lock_door = ide_cdrom_lock_door, .select_speed = ide_cdrom_select_speed, @@ -1702,10 +1702,11 @@ } -static int idecd_media_changed(struct gendisk *disk) +static unsigned int idecd_check_events(struct gendisk *disk, + unsigned int clearing) { struct cdrom_info *info = ide_drv_g(disk, cdrom_info); - return cdrom_media_changed(&info->devinfo); + return cdrom_check_events(&info->devinfo, clearing); } static int idecd_revalidate_disk(struct gendisk *disk) @@ -1723,7 +1724,7 @@ .open = idecd_open, .release = idecd_release, .ioctl = idecd_ioctl, - .media_changed = idecd_media_changed, + .check_events = idecd_check_events, .revalidate_disk = idecd_revalidate_disk }; @@ -1789,7 +1790,8 @@ ide_cd_read_toc(drive, &sense); g->fops = &idecd_ops; - g->flags |= GENHD_FL_REMOVABLE; + g->flags |= GENHD_FL_REMOVABLE | GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE; + g->events = DISK_EVENT_MEDIA_CHANGE; add_disk(g); return 0; --- linux-2.6.38.orig/drivers/ide/ide-cd.h +++ linux-2.6.38/drivers/ide/ide-cd.h @@ -111,7 +111,8 @@ int ide_cdrom_open_real(struct cdrom_device_info *, int); void ide_cdrom_release_real(struct cdrom_device_info *); int ide_cdrom_drive_status(struct cdrom_device_info *, int); -int ide_cdrom_check_media_change_real(struct cdrom_device_info *, int); +unsigned int ide_cdrom_check_events_real(struct cdrom_device_info *, + unsigned int clearing, int slot_nr); int ide_cdrom_tray_move(struct cdrom_device_info *, int); int ide_cdrom_lock_door(struct cdrom_device_info *, int); int ide_cdrom_select_speed(struct cdrom_device_info *, int); --- linux-2.6.38.orig/drivers/ide/ide-gd.c +++ linux-2.6.38/drivers/ide/ide-gd.c @@ -285,11 +285,12 @@ return 0; } -static int ide_gd_media_changed(struct gendisk *disk) +static unsigned int ide_gd_check_events(struct gendisk *disk, + unsigned int clearing) { struct ide_disk_obj *idkp = ide_drv_g(disk, ide_disk_obj); ide_drive_t *drive = idkp->drive; - int ret; + bool ret; /* do not scan partitions twice if this is a removable device */ if (drive->dev_flags & IDE_DFLAG_ATTACH) { @@ -297,10 +298,10 @@ return 0; } - ret = !!(drive->dev_flags & IDE_DFLAG_MEDIA_CHANGED); + ret = drive->dev_flags & IDE_DFLAG_MEDIA_CHANGED; drive->dev_flags &= ~IDE_DFLAG_MEDIA_CHANGED; - return ret; + return ret ? DISK_EVENT_MEDIA_CHANGE : 0; } static void ide_gd_unlock_native_capacity(struct gendisk *disk) @@ -318,7 +319,7 @@ struct ide_disk_obj *idkp = ide_drv_g(disk, ide_disk_obj); ide_drive_t *drive = idkp->drive; - if (ide_gd_media_changed(disk)) + if (ide_gd_check_events(disk, 0)) drive->disk_ops->get_capacity(drive); set_capacity(disk, ide_gd_capacity(drive)); @@ -340,7 +341,7 @@ .release = ide_gd_release, .ioctl = ide_gd_ioctl, .getgeo = ide_gd_getgeo, - .media_changed = ide_gd_media_changed, + .check_events = ide_gd_check_events, .unlock_native_capacity = ide_gd_unlock_native_capacity, .revalidate_disk = ide_gd_revalidate_disk }; @@ -412,6 +413,7 @@ if (drive->dev_flags & IDE_DFLAG_REMOVABLE) g->flags = GENHD_FL_REMOVABLE; g->fops = &ide_gd_ops; + g->events = DISK_EVENT_MEDIA_CHANGE; add_disk(g); return 0; --- linux-2.6.38.orig/drivers/ide/ide-cd_ioctl.c +++ linux-2.6.38/drivers/ide/ide-cd_ioctl.c @@ -79,8 +79,8 @@ return CDS_DRIVE_NOT_READY; } -int ide_cdrom_check_media_change_real(struct cdrom_device_info *cdi, - int slot_nr) +unsigned int ide_cdrom_check_events_real(struct cdrom_device_info *cdi, + unsigned int clearing, int slot_nr) { ide_drive_t *drive = cdi->handle; int retval; @@ -89,9 +89,9 @@ (void) cdrom_check_status(drive, NULL); retval = (drive->dev_flags & IDE_DFLAG_MEDIA_CHANGED) ? 1 : 0; drive->dev_flags &= ~IDE_DFLAG_MEDIA_CHANGED; - return retval; + return retval ? DISK_EVENT_MEDIA_CHANGE : 0; } else { - return -EINVAL; + return 0; } } --- linux-2.6.38.orig/drivers/virtio/virtio_ring.c +++ linux-2.6.38/drivers/virtio/virtio_ring.c @@ -371,6 +371,7 @@ /* detach_buf clears data, so grab it now. */ buf = vq->data[i]; detach_buf(vq, i); + vq->vring.avail->idx--; END_USE(vq); return buf; } --- linux-2.6.38.orig/drivers/cdrom/gdrom.c +++ linux-2.6.38/drivers/cdrom/gdrom.c @@ -395,10 +395,12 @@ return CDS_NO_INFO; } -static int gdrom_mediachanged(struct cdrom_device_info *cd_info, int ignore) +static unsigned int gdrom_check_events(struct cdrom_device_info *cd_info, + unsigned int clearing, int ignore) { /* check the sense key */ - return (__raw_readb(GDROM_ERROR_REG) & 0xF0) == 0x60; + return (__raw_readb(GDROM_ERROR_REG) & 0xF0) == 0x60 ? + DISK_EVENT_MEDIA_CHANGE : 0; } /* reset the G1 bus */ @@ -483,7 +485,7 @@ .open = gdrom_open, .release = gdrom_release, .drive_status = gdrom_drivestatus, - .media_changed = gdrom_mediachanged, + .check_events = gdrom_check_events, .get_last_session = gdrom_get_last_session, .reset = gdrom_hardreset, .audio_ioctl = gdrom_audio_ioctl, @@ -509,9 +511,10 @@ return 0; } -static int gdrom_bdops_mediachanged(struct gendisk *disk) +static unsigned int gdrom_bdops_check_events(struct gendisk *disk, + unsigned int clearing) { - return cdrom_media_changed(gd.cd_info); + return cdrom_check_events(gd.cd_info, clearing); } static int gdrom_bdops_ioctl(struct block_device *bdev, fmode_t mode, @@ -530,7 +533,7 @@ .owner = THIS_MODULE, .open = gdrom_bdops_open, .release = gdrom_bdops_release, - .media_changed = gdrom_bdops_mediachanged, + .check_events = gdrom_bdops_check_events, .ioctl = gdrom_bdops_ioctl, }; @@ -800,6 +803,7 @@ goto probe_fail_cdrom_register; } gd.disk->fops = &gdrom_bdops; + gd.disk->events = DISK_EVENT_MEDIA_CHANGE; /* latch on to the interrupt */ err = gdrom_set_interrupt_handlers(); if (err) --- linux-2.6.38.orig/drivers/cdrom/cdrom.c +++ linux-2.6.38/drivers/cdrom/cdrom.c @@ -292,7 +292,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 */ @@ -986,6 +986,9 @@ cdinfo(CD_OPEN, "entering cdrom_open\n"); + /* open is event synchronization point, check events first */ + check_disk_change(bdev); + /* if this was a O_NONBLOCK open and we should honor the flags, * do a quick open without drive/disc integrity checks. */ cdi->use_count++; @@ -1012,9 +1015,6 @@ cdinfo(CD_OPEN, "Use count for \"/dev/%s\" now %d\n", cdi->name, cdi->use_count); - /* Do this on open. Don't wait for mount, because they might - not be mounting, but opening with O_NONBLOCK */ - check_disk_change(bdev); return 0; err_release: if (CDROM_CAN(CDC_LOCK) && cdi->options & CDO_LOCK) { --- linux-2.6.38.orig/drivers/cdrom/viocd.c +++ linux-2.6.38/drivers/cdrom/viocd.c @@ -186,10 +186,11 @@ return ret; } -static int viocd_blk_media_changed(struct gendisk *disk) +static unsigned int viocd_blk_check_events(struct gendisk *disk, + unsigned int clearing) { struct disk_info *di = disk->private_data; - return cdrom_media_changed(&di->viocd_info); + return cdrom_check_events(&di->viocd_info, clearing); } static const struct block_device_operations viocd_fops = { @@ -197,7 +198,7 @@ .open = viocd_blk_open, .release = viocd_blk_release, .ioctl = viocd_blk_ioctl, - .media_changed = viocd_blk_media_changed, + .check_events = viocd_blk_check_events, }; static int viocd_open(struct cdrom_device_info *cdi, int purpose) @@ -320,7 +321,8 @@ } } -static int viocd_media_changed(struct cdrom_device_info *cdi, int disc_nr) +static unsigned int viocd_check_events(struct cdrom_device_info *cdi, + unsigned int clearing, int disc_nr) { struct viocd_waitevent we; HvLpEvent_Rc hvrc; @@ -340,7 +342,7 @@ if (hvrc != 0) { pr_warning("bad rc on HvCallEvent_signalLpEventFast %d\n", (int)hvrc); - return -EIO; + return 0; } wait_for_completion(&we.com); @@ -354,7 +356,7 @@ return 0; } - return we.changed; + return we.changed ? DISK_EVENT_MEDIA_CHANGE : 0; } static int viocd_lock_door(struct cdrom_device_info *cdi, int locking) @@ -550,7 +552,7 @@ static struct cdrom_device_ops viocd_dops = { .open = viocd_open, .release = viocd_release, - .media_changed = viocd_media_changed, + .check_events = viocd_check_events, .lock_door = viocd_lock_door, .generic_packet = viocd_packet, .audio_ioctl = viocd_audio_ioctl, @@ -623,7 +625,9 @@ blk_queue_max_hw_sectors(q, 4096 / 512); gendisk->queue = q; gendisk->fops = &viocd_fops; - gendisk->flags = GENHD_FL_CD|GENHD_FL_REMOVABLE; + gendisk->flags = GENHD_FL_CD | GENHD_FL_REMOVABLE | + GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE; + gendisk->events = DISK_EVENT_MEDIA_CHANGE; set_capacity(gendisk, 0); gendisk->private_data = d; d->viocd_disk = gendisk; --- linux-2.6.38.orig/drivers/edac/amd64_edac.c +++ linux-2.6.38/drivers/edac/amd64_edac.c @@ -2765,7 +2765,7 @@ mcis = kzalloc(amd_nb_num() * sizeof(mcis[0]), GFP_KERNEL); ecc_stngs = kzalloc(amd_nb_num() * sizeof(ecc_stngs[0]), GFP_KERNEL); if (!(mcis && ecc_stngs)) - goto err_ret; + goto err_free; msrs = msrs_alloc(); if (!msrs) --- linux-2.6.38.orig/drivers/leds/leds-lp5521.c +++ linux-2.6.38/drivers/leds/leds-lp5521.c @@ -534,7 +534,7 @@ } /* led class device attributes */ -static DEVICE_ATTR(led_current, S_IRUGO | S_IWUGO, show_current, store_current); +static DEVICE_ATTR(led_current, S_IRUGO | S_IWUSR, show_current, store_current); static DEVICE_ATTR(max_current, S_IRUGO , show_max_current, NULL); static struct attribute *lp5521_led_attributes[] = { @@ -548,15 +548,15 @@ }; /* device attributes */ -static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUGO, +static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUSR, show_engine1_mode, store_engine1_mode); -static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUGO, +static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUSR, show_engine2_mode, store_engine2_mode); -static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUGO, +static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUSR, show_engine3_mode, store_engine3_mode); -static DEVICE_ATTR(engine1_load, S_IWUGO, NULL, store_engine1_load); -static DEVICE_ATTR(engine2_load, S_IWUGO, NULL, store_engine2_load); -static DEVICE_ATTR(engine3_load, S_IWUGO, NULL, store_engine3_load); +static DEVICE_ATTR(engine1_load, S_IWUSR, NULL, store_engine1_load); +static DEVICE_ATTR(engine2_load, S_IWUSR, NULL, store_engine2_load); +static DEVICE_ATTR(engine3_load, S_IWUSR, NULL, store_engine3_load); static DEVICE_ATTR(selftest, S_IRUGO, lp5521_selftest, NULL); static struct attribute *lp5521_attributes[] = { --- linux-2.6.38.orig/drivers/leds/leds-lp5523.c +++ linux-2.6.38/drivers/leds/leds-lp5523.c @@ -713,7 +713,7 @@ } /* led class device attributes */ -static DEVICE_ATTR(led_current, S_IRUGO | S_IWUGO, show_current, store_current); +static DEVICE_ATTR(led_current, S_IRUGO | S_IWUSR, show_current, store_current); static DEVICE_ATTR(max_current, S_IRUGO , show_max_current, NULL); static struct attribute *lp5523_led_attributes[] = { @@ -727,21 +727,21 @@ }; /* device attributes */ -static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUGO, +static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUSR, show_engine1_mode, store_engine1_mode); -static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUGO, +static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUSR, show_engine2_mode, store_engine2_mode); -static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUGO, +static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUSR, show_engine3_mode, store_engine3_mode); -static DEVICE_ATTR(engine1_leds, S_IRUGO | S_IWUGO, +static DEVICE_ATTR(engine1_leds, S_IRUGO | S_IWUSR, show_engine1_leds, store_engine1_leds); -static DEVICE_ATTR(engine2_leds, S_IRUGO | S_IWUGO, +static DEVICE_ATTR(engine2_leds, S_IRUGO | S_IWUSR, show_engine2_leds, store_engine2_leds); -static DEVICE_ATTR(engine3_leds, S_IRUGO | S_IWUGO, +static DEVICE_ATTR(engine3_leds, S_IRUGO | S_IWUSR, show_engine3_leds, store_engine3_leds); -static DEVICE_ATTR(engine1_load, S_IWUGO, NULL, store_engine1_load); -static DEVICE_ATTR(engine2_load, S_IWUGO, NULL, store_engine2_load); -static DEVICE_ATTR(engine3_load, S_IWUGO, NULL, store_engine3_load); +static DEVICE_ATTR(engine1_load, S_IWUSR, NULL, store_engine1_load); +static DEVICE_ATTR(engine2_load, S_IWUSR, NULL, store_engine2_load); +static DEVICE_ATTR(engine3_load, S_IWUSR, NULL, store_engine3_load); static DEVICE_ATTR(selftest, S_IRUGO, lp5523_selftest, NULL); static struct attribute *lp5523_attributes[] = { --- linux-2.6.38.orig/drivers/video/Kconfig +++ linux-2.6.38/drivers/video/Kconfig @@ -792,8 +792,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.38.orig/drivers/video/vesafb.c +++ linux-2.6.38/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, uint, 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.38.orig/drivers/video/fbmem.c +++ linux-2.6.38/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 *info = file->private_data; u8 *buffer, *dst; u8 __iomem *src; int c, 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->state != FBINFO_STATE_RUNNING) { + err = -EPERM; + goto out_fb_info; + } - if (info->fbops->fb_read) - return info->fbops->fb_read(info, buf, count, ppos); + 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 = (u8 __iomem *) (info->screen_base + p); @@ -751,19 +762,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 *info = file->private_data; u8 *buffer, *src; u8 __iomem *dst; int c, cnt = 0, err = 0; @@ -772,8 +785,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); @@ -783,8 +801,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; @@ -800,8 +820,10 @@ buffer = kmalloc((count > PAGE_SIZE) ? PAGE_SIZE : count, GFP_KERNEL); - if (!buffer) - return -ENOMEM; + if (!buffer) { + err = -ENOMEM; + goto out_fb_info; + } dst = (u8 __iomem *) (info->screen_base + p); @@ -825,10 +847,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 @@ -1303,8 +1329,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; @@ -1316,6 +1341,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); @@ -1352,6 +1382,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) @@ -1363,13 +1422,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; @@ -1386,6 +1449,8 @@ #endif out: mutex_unlock(&info->lock); + if (res) + put_framebuffer_info(info); return res; } @@ -1401,6 +1466,7 @@ info->fbops->fb_release(info,1); module_put(info->fbops->owner); mutex_unlock(&info->lock); + put_framebuffer_info(info); return 0; } @@ -1549,6 +1615,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); @@ -1592,7 +1659,6 @@ return 0; } - /** * unregister_framebuffer - releases a frame buffer device * @fb_info: frame buffer info structure @@ -1627,6 +1693,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) { @@ -1646,8 +1722,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.38.orig/drivers/video/via/viafbdev.h +++ linux-2.6.38/drivers/video/via/viafbdev.h @@ -94,9 +94,6 @@ extern int viafb_DVI_ON; extern int viafb_hotplug; -extern int strict_strtoul(const char *cp, unsigned int base, - unsigned long *res); - u8 viafb_gpio_i2c_read_lvds(struct lvds_setting_information *plvds_setting_info, struct lvds_chip_information *plvds_chip_info, u8 index); --- linux-2.6.38.orig/drivers/video/console/tileblit.c +++ linux-2.6.38/drivers/video/console/tileblit.c @@ -83,7 +83,7 @@ int softback_lines, int fg, int bg) { struct fb_tilecursor cursor; - int use_sw = (vc->vc_cursor_type & 0x01); + int use_sw = (vc->vc_cursor_type & 0x10); cursor.sx = vc->vc_x; cursor.sy = vc->vc_y; --- linux-2.6.38.orig/drivers/video/omap2/dss/dispc.c +++ linux-2.6.38/drivers/video/omap2/dss/dispc.c @@ -2199,7 +2199,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 || @@ -2232,7 +2232,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.38.orig/drivers/video/omap2/dss/dpi.c +++ linux-2.6.38/drivers/video/omap2/dss/dpi.c @@ -181,7 +181,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.38.orig/drivers/target/target_core_device.c +++ linux-2.6.38/drivers/target/target_core_device.c @@ -151,13 +151,13 @@ { struct se_device *dev = se_lun->lun_se_dev; - spin_lock(&dev->stats_lock); + spin_lock_irq(&dev->stats_lock); dev->num_cmds++; if (se_cmd->data_direction == DMA_TO_DEVICE) dev->write_bytes += se_cmd->data_length; else if (se_cmd->data_direction == DMA_FROM_DEVICE) dev->read_bytes += se_cmd->data_length; - spin_unlock(&dev->stats_lock); + spin_unlock_irq(&dev->stats_lock); } /* --- linux-2.6.38.orig/drivers/target/target_core_cdb.c +++ linux-2.6.38/drivers/target/target_core_cdb.c @@ -667,7 +667,13 @@ { struct se_device *dev = SE_DEV(cmd); unsigned char *buf = cmd->t_task->t_task_buf; - u32 blocks = dev->transport->get_blocks(dev); + unsigned long long blocks_long = dev->transport->get_blocks(dev); + u32 blocks; + + if (blocks_long >= 0x00000000ffffffff) + blocks = 0xffffffff; + else + blocks = (u32)blocks_long; buf[0] = (blocks >> 24) & 0xff; buf[1] = (blocks >> 16) & 0xff; --- linux-2.6.38.orig/drivers/target/target_core_transport.c +++ linux-2.6.38/drivers/target/target_core_transport.c @@ -765,7 +765,6 @@ transport_all_task_dev_remove_state(cmd); spin_unlock_irqrestore(&T_TASK(cmd)->t_state_lock, flags); - transport_free_dev_tasks(cmd); check_lun: spin_lock_irqsave(&lun->lun_cmd_lock, flags); @@ -1198,6 +1197,7 @@ break; list_del(&task->t_execute_list); + atomic_set(&task->task_execute_queue, 0); atomic_dec(&dev->execute_tasks); return task; @@ -1213,8 +1213,14 @@ { unsigned long flags; + if (atomic_read(&task->task_execute_queue) == 0) { + dump_stack(); + return; + } + spin_lock_irqsave(&dev->execute_task_lock, flags); list_del(&task->t_execute_list); + atomic_set(&task->task_execute_queue, 0); atomic_dec(&dev->execute_tasks); spin_unlock_irqrestore(&dev->execute_task_lock, flags); } @@ -2062,6 +2068,13 @@ } EXPORT_SYMBOL(transport_generic_handle_tmr); +void transport_generic_free_cmd_intr( + struct se_cmd *cmd) +{ + transport_add_cmd_to_queue(cmd, TRANSPORT_FREE_CMD_INTR); +} +EXPORT_SYMBOL(transport_generic_free_cmd_intr); + static int transport_stop_tasks_for_cmd(struct se_cmd *cmd) { struct se_task *task, *task_tmp; @@ -4777,18 +4790,20 @@ sg_end_cur->page_link &= ~0x02; sg_chain(sg_head, task_sg_num, sg_head_cur); - sg_count += (task->task_sg_num + 1); - } else sg_count += task->task_sg_num; + task_sg_num = (task->task_sg_num + 1); + } else { + sg_chain(sg_head, task_sg_num, sg_head_cur); + sg_count += task->task_sg_num; + task_sg_num = task->task_sg_num; + } sg_head = sg_head_cur; sg_link = sg_link_cur; - task_sg_num = task->task_sg_num; continue; } sg_head = sg_first = &task->task_sg[0]; sg_link = &task->task_sg[task->task_sg_num]; - task_sg_num = task->task_sg_num; /* * Check for single task.. */ @@ -4799,9 +4814,12 @@ */ sg_end = &task->task_sg[task->task_sg_num - 1]; sg_end->page_link &= ~0x02; - sg_count += (task->task_sg_num + 1); - } else sg_count += task->task_sg_num; + task_sg_num = (task->task_sg_num + 1); + } else { + sg_count += task->task_sg_num; + task_sg_num = task->task_sg_num; + } } /* * Setup the starting pointer and total t_tasks_sg_linked_no including @@ -4810,21 +4828,20 @@ T_TASK(cmd)->t_tasks_sg_chained = sg_first; T_TASK(cmd)->t_tasks_sg_chained_no = sg_count; - DEBUG_CMD_M("Setup T_TASK(cmd)->t_tasks_sg_chained: %p and" - " t_tasks_sg_chained_no: %u\n", T_TASK(cmd)->t_tasks_sg_chained, + DEBUG_CMD_M("Setup cmd: %p T_TASK(cmd)->t_tasks_sg_chained: %p and" + " t_tasks_sg_chained_no: %u\n", cmd, T_TASK(cmd)->t_tasks_sg_chained, T_TASK(cmd)->t_tasks_sg_chained_no); for_each_sg(T_TASK(cmd)->t_tasks_sg_chained, sg, T_TASK(cmd)->t_tasks_sg_chained_no, i) { - DEBUG_CMD_M("SG: %p page: %p length: %d offset: %d\n", - sg, sg_page(sg), sg->length, sg->offset); + DEBUG_CMD_M("SG[%d]: %p page: %p length: %d offset: %d, magic: 0x%08x\n", + i, sg, sg_page(sg), sg->length, sg->offset, sg->sg_magic); if (sg_is_chain(sg)) DEBUG_CMD_M("SG: %p sg_is_chain=1\n", sg); if (sg_is_last(sg)) DEBUG_CMD_M("SG: %p sg_is_last=1\n", sg); } - } EXPORT_SYMBOL(transport_do_task_sg_chain); @@ -5298,6 +5315,8 @@ if (wait_for_tasks && cmd->transport_wait_for_tasks) cmd->transport_wait_for_tasks(cmd, 0, 0); + transport_free_dev_tasks(cmd); + transport_generic_remove(cmd, release_to_pool, session_reinstatement); } @@ -6138,6 +6157,9 @@ case TRANSPORT_REMOVE: transport_generic_remove(cmd, 1, 0); break; + case TRANSPORT_FREE_CMD_INTR: + transport_generic_free_cmd(cmd, 0, 1, 0); + break; case TRANSPORT_PROCESS_TMR: transport_generic_do_tmr(cmd); break; --- linux-2.6.38.orig/drivers/target/target_core_tmr.c +++ linux-2.6.38/drivers/target/target_core_tmr.c @@ -55,7 +55,8 @@ { struct se_tmr_req *tmr; - tmr = kmem_cache_zalloc(se_tmr_req_cache, GFP_KERNEL); + tmr = kmem_cache_zalloc(se_tmr_req_cache, (in_interrupt()) ? + GFP_ATOMIC : GFP_KERNEL); if (!(tmr)) { printk(KERN_ERR "Unable to allocate struct se_tmr_req\n"); return ERR_PTR(-ENOMEM); @@ -398,9 +399,9 @@ printk(KERN_INFO "LUN_RESET: SCSI-2 Released reservation\n"); } - spin_lock(&dev->stats_lock); + spin_lock_irq(&dev->stats_lock); dev->num_resets++; - spin_unlock(&dev->stats_lock); + spin_unlock_irq(&dev->stats_lock); DEBUG_LR("LUN_RESET: %s for [%s] Complete\n", (preempt_and_abort_list) ? "Preempt" : "TMR", --- linux-2.6.38.orig/drivers/gpu/drm/drm_irq.c +++ linux-2.6.38/drivers/gpu/drm/drm_irq.c @@ -942,11 +942,34 @@ void drm_vblank_off(struct drm_device *dev, int crtc) { + struct drm_pending_vblank_event *e, *t; + struct timeval now; unsigned long irqflags; + unsigned int seq; spin_lock_irqsave(&dev->vbl_lock, irqflags); vblank_disable_and_save(dev, crtc); DRM_WAKEUP(&dev->vbl_queue[crtc]); + + /* Send any queued vblank events, lest the natives grow disquiet */ + seq = drm_vblank_count_and_time(dev, crtc, &now); + list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) { + if (e->pipe != crtc) + continue; + DRM_DEBUG("Sending premature vblank event on disable: \ + wanted %d, current %d\n", + e->event.sequence, seq); + + e->event.sequence = seq; + e->event.tv_sec = now.tv_sec; + e->event.tv_usec = now.tv_usec; + drm_vblank_put(dev, e->pipe); + list_move_tail(&e->base.link, &e->base.file_priv->event_list); + wake_up_interruptible(&e->base.file_priv->event_wait); + trace_drm_vblank_event_delivered(e->base.pid, e->pipe, + e->event.sequence); + } + spin_unlock_irqrestore(&dev->vbl_lock, irqflags); } EXPORT_SYMBOL(drm_vblank_off); --- linux-2.6.38.orig/drivers/gpu/drm/drm_sysfs.c +++ linux-2.6.38/drivers/gpu/drm/drm_sysfs.c @@ -158,8 +158,15 @@ { struct drm_connector *connector = to_drm_connector(device); enum drm_connector_status status; + int ret; + + ret = mutex_lock_interruptible(&connector->dev->mode_config.mutex); + if (ret) + return ret; status = connector->funcs->detect(connector, true); + mutex_unlock(&connector->dev->mode_config.mutex); + return snprintf(buf, PAGE_SIZE, "%s\n", drm_get_connector_status_name(status)); } --- linux-2.6.38.orig/drivers/gpu/drm/drm_stub.c +++ linux-2.6.38/drivers/gpu/drm/drm_stub.c @@ -346,7 +346,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); --- linux-2.6.38.orig/drivers/gpu/drm/Kconfig +++ linux-2.6.38/drivers/gpu/drm/Kconfig @@ -24,6 +24,7 @@ depends on DRM select FB select FRAMEBUFFER_CONSOLE if !EXPERT + select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE help FB and CRTC helpers for KMS drivers. --- linux-2.6.38.orig/drivers/gpu/drm/drm_platform.c +++ linux-2.6.38/drivers/gpu/drm/drm_platform.c @@ -89,6 +89,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); + mutex_unlock(&drm_global_mutex); DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n", --- linux-2.6.38.orig/drivers/gpu/drm/drm_fb_helper.c +++ linux-2.6.38/drivers/gpu/drm/drm_fb_helper.c @@ -342,9 +342,22 @@ } EXPORT_SYMBOL(drm_fb_helper_debug_leave); +bool drm_fb_helper_restore_fbdev_mode(struct drm_fb_helper *fb_helper) +{ + bool error = false; + int i, ret; + for (i = 0; i < fb_helper->crtc_count; i++) { + struct drm_mode_set *mode_set = &fb_helper->crtc_info[i].mode_set; + ret = drm_crtc_helper_set_config(mode_set); + if (ret) + error = true; + } + return error; +} +EXPORT_SYMBOL(drm_fb_helper_restore_fbdev_mode); + bool drm_fb_helper_force_kernel_mode(void) { - int i = 0; bool ret, error = false; struct drm_fb_helper *helper; @@ -352,12 +365,12 @@ return false; list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) { - for (i = 0; i < helper->crtc_count; i++) { - struct drm_mode_set *mode_set = &helper->crtc_info[i].mode_set; - ret = drm_crtc_helper_set_config(mode_set); - if (ret) - error = true; - } + if (helper->dev->switch_power_state == DRM_SWITCH_POWER_OFF) + continue; + + ret = drm_fb_helper_restore_fbdev_mode(helper); + if (ret) + error = true; } return error; } --- linux-2.6.38.orig/drivers/gpu/drm/drm_crtc.c +++ linux-2.6.38/drivers/gpu/drm/drm_crtc.c @@ -1073,6 +1073,9 @@ uint32_t __user *encoder_id; struct drm_mode_group *mode_group; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); /* @@ -1244,6 +1247,9 @@ struct drm_mode_object *obj; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, crtc_resp->crtc_id, @@ -1312,6 +1318,9 @@ uint64_t __user *prop_values; uint32_t __user *encoder_ptr; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + memset(&u_mode, 0, sizeof(struct drm_mode_modeinfo)); DRM_DEBUG_KMS("[CONNECTOR:%d:?]\n", out_resp->connector_id); @@ -1431,6 +1440,9 @@ struct drm_encoder *encoder; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, enc_resp->encoder_id, DRM_MODE_OBJECT_ENCODER); @@ -1486,6 +1498,9 @@ int ret = 0; int i; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, crtc_req->crtc_id, DRM_MODE_OBJECT_CRTC); @@ -1603,6 +1618,9 @@ struct drm_crtc *crtc; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + if (!req->flags) { DRM_ERROR("no operation set\n"); return -EINVAL; @@ -1667,6 +1685,9 @@ struct drm_framebuffer *fb; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + if ((config->min_width > r->width) || (r->width > config->max_width)) { DRM_ERROR("mode new framebuffer width not within limits\n"); return -EINVAL; @@ -1724,6 +1745,9 @@ int ret = 0; int found = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, *id, DRM_MODE_OBJECT_FB); /* TODO check that we realy get a framebuffer back. */ @@ -1780,6 +1804,9 @@ struct drm_framebuffer *fb; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, r->fb_id, DRM_MODE_OBJECT_FB); if (!obj) { @@ -1813,6 +1840,9 @@ int num_clips; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, r->fb_id, DRM_MODE_OBJECT_FB); if (!obj) { @@ -1996,6 +2026,9 @@ struct drm_mode_modeinfo *umode = &mode_cmd->mode; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, mode_cmd->connector_id, DRM_MODE_OBJECT_CONNECTOR); @@ -2042,6 +2075,9 @@ struct drm_mode_modeinfo *umode = &mode_cmd->mode; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, mode_cmd->connector_id, DRM_MODE_OBJECT_CONNECTOR); @@ -2211,6 +2247,9 @@ uint64_t __user *values_ptr; uint32_t __user *blob_length_ptr; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, out_resp->prop_id, DRM_MODE_OBJECT_PROPERTY); if (!obj) { @@ -2333,6 +2372,9 @@ int ret = 0; void *blob_ptr; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, out_resp->blob_id, DRM_MODE_OBJECT_BLOB); if (!obj) { @@ -2393,6 +2435,9 @@ int ret = -EINVAL; int i; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, out_resp->connector_id, DRM_MODE_OBJECT_CONNECTOR); @@ -2509,6 +2554,9 @@ int size; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, crtc_lut->crtc_id, DRM_MODE_OBJECT_CRTC); if (!obj) { @@ -2560,6 +2608,9 @@ int size; int ret = 0; + if (!drm_core_check_feature(dev, DRIVER_MODESET)) + return -EINVAL; + mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, crtc_lut->crtc_id, DRM_MODE_OBJECT_CRTC); if (!obj) { --- linux-2.6.38.orig/drivers/gpu/drm/drm_pci.c +++ linux-2.6.38/drivers/gpu/drm/drm_pci.c @@ -197,6 +197,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.38.orig/drivers/gpu/drm/drm_gem.c +++ linux-2.6.38/drivers/gpu/drm/drm_gem.c @@ -498,11 +498,12 @@ void drm_gem_vm_close(struct vm_area_struct *vma) { struct drm_gem_object *obj = vma->vm_private_data; + struct drm_device *dev = obj->dev; - mutex_lock(&obj->dev->struct_mutex); + mutex_lock(&dev->struct_mutex); drm_vm_close_locked(vma); drm_gem_object_unreference(obj); - mutex_unlock(&obj->dev->struct_mutex); + mutex_unlock(&dev->struct_mutex); } EXPORT_SYMBOL(drm_gem_vm_close); --- linux-2.6.38.orig/drivers/gpu/drm/drm_fops.c +++ linux-2.6.38/drivers/gpu/drm/drm_fops.c @@ -128,7 +128,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; @@ -176,7 +177,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.38.orig/drivers/gpu/drm/i915/i915_irq.c +++ linux-2.6.38/drivers/gpu/drm/i915/i915_irq.c @@ -1377,7 +1377,12 @@ else i915_enable_pipestat(dev_priv, pipe, PIPE_VBLANK_INTERRUPT_ENABLE); + + /* maintain vblank delivery even in deep C-states */ + if (dev_priv->info->gen == 3) + I915_WRITE(INSTPM, INSTPM_AGPBUSY_DIS << 16); spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags); + return 0; } @@ -1390,6 +1395,10 @@ unsigned long irqflags; spin_lock_irqsave(&dev_priv->irq_lock, irqflags); + if (dev_priv->info->gen == 3) + I915_WRITE(INSTPM, + INSTPM_AGPBUSY_DIS << 16 | INSTPM_AGPBUSY_DIS); + if (HAS_PCH_SPLIT(dev)) ironlake_disable_display_irq(dev_priv, (pipe == 0) ? DE_PIPEA_VBLANK: DE_PIPEB_VBLANK); @@ -1592,6 +1601,16 @@ drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; I915_WRITE(HWSTAM, 0xeffe); + if (IS_GEN6(dev)) { + /* Workaround stalls observed on Sandy Bridge GPUs by + * making the blitter command streamer generate a + * write to the Hardware Status Page for + * MI_USER_INTERRUPT. This appears to serialize the + * previous seqno write out before the interrupt + * happens. + */ + I915_WRITE(GEN6_BLITTER_HWSTAM, ~GEN6_BLITTER_USER_INTERRUPT); + } /* XXX hotplug from PCH */ --- linux-2.6.38.orig/drivers/gpu/drm/i915/intel_fb.c +++ linux-2.6.38/drivers/gpu/drm/i915/intel_fb.c @@ -264,3 +264,13 @@ drm_i915_private_t *dev_priv = dev->dev_private; drm_fb_helper_hotplug_event(&dev_priv->fbdev->helper); } + +void intel_fb_restore_mode(struct drm_device *dev) +{ + int ret; + drm_i915_private_t *dev_priv = dev->dev_private; + + ret = drm_fb_helper_restore_fbdev_mode(&dev_priv->fbdev->helper); + if (ret) + DRM_DEBUG("failed to restore crtc mode\n"); +} --- linux-2.6.38.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ linux-2.6.38/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -388,6 +388,10 @@ uint32_t __iomem *reloc_entry; void __iomem *reloc_page; + /* We can't wait for rendering with pagefaults disabled */ + if (obj->active && in_atomic()) + return -EFAULT; + ret = i915_gem_object_set_to_gtt_domain(obj, 1); if (ret) return ret; @@ -461,15 +465,24 @@ struct list_head *objects) { struct drm_i915_gem_object *obj; - int ret; + int ret = 0; + /* This is the fast path and we cannot handle a pagefault whilst + * holding the struct mutex lest the user pass in the relocations + * contained within a mmaped bo. For in such a case we, the page + * fault handler would call i915_gem_fault() and we would try to + * acquire the struct mutex again. Obviously this is bad and so + * lockdep complains vehemently. + */ + pagefault_disable(); list_for_each_entry(obj, objects, exec_list) { ret = i915_gem_execbuffer_relocate_object(obj, eb); if (ret) - return ret; + break; } + pagefault_enable(); - return 0; + return ret; } static int --- linux-2.6.38.orig/drivers/gpu/drm/i915/i915_gem.c +++ linux-2.6.38/drivers/gpu/drm/i915/i915_gem.c @@ -1749,8 +1749,10 @@ return; spin_lock(&file_priv->mm.lock); - list_del(&request->client_list); - request->file_priv = NULL; + if (request->file_priv) { + list_del(&request->client_list); + request->file_priv = NULL; + } spin_unlock(&file_priv->mm.lock); } @@ -2544,8 +2546,25 @@ reg = &dev_priv->fence_regs[obj->fence_reg]; list_move_tail(®->lru_list, &dev_priv->mm.fence_list); - if (!obj->fenced_gpu_access && !obj->last_fenced_seqno) - pipelined = NULL; + if (obj->tiling_changed) { + ret = i915_gem_object_flush_fence(obj, + pipelined, + interruptible); + if (ret) + return ret; + + if (!obj->fenced_gpu_access && !obj->last_fenced_seqno) + pipelined = NULL; + + if (pipelined) { + reg->setup_seqno = + i915_gem_next_request_seqno(dev, pipelined); + obj->last_fenced_seqno = reg->setup_seqno; + obj->last_fenced_ring = pipelined; + } + + goto update; + } if (!pipelined) { if (reg->setup_seqno) { @@ -2568,31 +2587,6 @@ interruptible); if (ret) return ret; - } else if (obj->tiling_changed) { - if (obj->fenced_gpu_access) { - if (obj->base.write_domain & I915_GEM_GPU_DOMAINS) { - ret = i915_gem_flush_ring(obj->base.dev, obj->ring, - 0, obj->base.write_domain); - if (ret) - return ret; - } - - obj->fenced_gpu_access = false; - } - } - - if (!obj->fenced_gpu_access && !obj->last_fenced_seqno) - pipelined = NULL; - BUG_ON(!pipelined && reg->setup_seqno); - - if (obj->tiling_changed) { - if (pipelined) { - reg->setup_seqno = - i915_gem_next_request_seqno(dev, pipelined); - obj->last_fenced_seqno = reg->setup_seqno; - obj->last_fenced_ring = pipelined; - } - goto update; } return 0; --- linux-2.6.38.orig/drivers/gpu/drm/i915/intel_drv.h +++ linux-2.6.38/drivers/gpu/drm/i915/intel_drv.h @@ -329,4 +329,5 @@ struct drm_file *file_priv); extern void intel_fb_output_poll_changed(struct drm_device *dev); +extern void intel_fb_restore_mode(struct drm_device *dev); #endif /* __INTEL_DRV_H__ */ --- linux-2.6.38.orig/drivers/gpu/drm/i915/intel_panel.c +++ linux-2.6.38/drivers/gpu/drm/i915/intel_panel.c @@ -83,11 +83,15 @@ u32 scaled_height = mode->hdisplay * adjusted_mode->vdisplay; if (scaled_width > scaled_height) { /* pillar */ width = scaled_height / mode->vdisplay; + if (width & 1) + width++; x = (adjusted_mode->hdisplay - width + 1) / 2; y = 0; height = adjusted_mode->vdisplay; } else if (scaled_width < scaled_height) { /* letter */ height = scaled_width / mode->hdisplay; + if (height & 1) + height++; y = (adjusted_mode->vdisplay - height + 1) / 2; x = 0; width = adjusted_mode->hdisplay; --- linux-2.6.38.orig/drivers/gpu/drm/i915/i915_dma.c +++ linux-2.6.38/drivers/gpu/drm/i915/i915_dma.c @@ -2191,7 +2191,7 @@ drm_i915_private_t *dev_priv = dev->dev_private; if (!dev_priv || drm_core_check_feature(dev, DRIVER_MODESET)) { - drm_fb_helper_restore(); + intel_fb_restore_mode(dev); vga_switcheroo_process_delayed_switch(); return; } --- linux-2.6.38.orig/drivers/gpu/drm/i915/intel_ringbuffer.c +++ linux-2.6.38/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -684,12 +684,37 @@ static bool bsd_ring_get_irq(struct intel_ring_buffer *ring) { - return ring_get_irq(ring, GT_BSD_USER_INTERRUPT); + struct drm_device *dev = ring->dev; + drm_i915_private_t *dev_priv = dev->dev_private; + + if (!dev->irq_enabled) + return false; + + spin_lock(&ring->irq_lock); + if (ring->irq_refcount++ == 0) { + if (IS_G4X(dev)) + i915_enable_irq(dev_priv, I915_BSD_USER_INTERRUPT); + else + ironlake_enable_irq(dev_priv, GT_BSD_USER_INTERRUPT); + } + spin_unlock(&ring->irq_lock); + + return true; } static void bsd_ring_put_irq(struct intel_ring_buffer *ring) { - ring_put_irq(ring, GT_BSD_USER_INTERRUPT); + struct drm_device *dev = ring->dev; + drm_i915_private_t *dev_priv = dev->dev_private; + + spin_lock(&ring->irq_lock); + if (--ring->irq_refcount == 0) { + if (IS_G4X(dev)) + i915_disable_irq(dev_priv, I915_BSD_USER_INTERRUPT); + else + ironlake_disable_irq(dev_priv, GT_BSD_USER_INTERRUPT); + } + spin_unlock(&ring->irq_lock); } static int --- linux-2.6.38.orig/drivers/gpu/drm/i915/intel_display.c +++ linux-2.6.38/drivers/gpu/drm/i915/intel_display.c @@ -5630,36 +5630,6 @@ return ret; } -static void intel_crtc_reset(struct drm_crtc *crtc) -{ - struct intel_crtc *intel_crtc = to_intel_crtc(crtc); - - /* Reset flags back to the 'unknown' status so that they - * will be correctly set on the initial modeset. - */ - intel_crtc->dpms_mode = -1; -} - -static struct drm_crtc_helper_funcs intel_helper_funcs = { - .dpms = intel_crtc_dpms, - .mode_fixup = intel_crtc_mode_fixup, - .mode_set = intel_crtc_mode_set, - .mode_set_base = intel_pipe_set_base, - .mode_set_base_atomic = intel_pipe_set_base_atomic, - .load_lut = intel_crtc_load_lut, - .disable = intel_crtc_disable, -}; - -static const struct drm_crtc_funcs intel_crtc_funcs = { - .reset = intel_crtc_reset, - .cursor_set = intel_crtc_cursor_set, - .cursor_move = intel_crtc_cursor_move, - .gamma_set = intel_crtc_gamma_set, - .set_config = drm_crtc_helper_set_config, - .destroy = intel_crtc_destroy, - .page_flip = intel_crtc_page_flip, -}; - static void intel_sanitize_modesetting(struct drm_device *dev, int pipe, int plane) { @@ -5710,6 +5680,42 @@ } } +static void intel_crtc_reset(struct drm_crtc *crtc) +{ + struct drm_device *dev = crtc->dev; + struct intel_crtc *intel_crtc = to_intel_crtc(crtc); + + /* Reset flags back to the 'unknown' status so that they + * will be correctly set on the initial modeset. + */ + intel_crtc->dpms_mode = -1; + + /* We need to fix up any BIOS configuration that conflicts with + * our expectations. + */ + intel_sanitize_modesetting(dev, intel_crtc->pipe, intel_crtc->plane); +} + +static struct drm_crtc_helper_funcs intel_helper_funcs = { + .dpms = intel_crtc_dpms, + .mode_fixup = intel_crtc_mode_fixup, + .mode_set = intel_crtc_mode_set, + .mode_set_base = intel_pipe_set_base, + .mode_set_base_atomic = intel_pipe_set_base_atomic, + .load_lut = intel_crtc_load_lut, + .disable = intel_crtc_disable, +}; + +static const struct drm_crtc_funcs intel_crtc_funcs = { + .reset = intel_crtc_reset, + .cursor_set = intel_crtc_cursor_set, + .cursor_move = intel_crtc_cursor_move, + .gamma_set = intel_crtc_gamma_set, + .set_config = drm_crtc_helper_set_config, + .destroy = intel_crtc_destroy, + .page_flip = intel_crtc_page_flip, +}; + static void intel_crtc_init(struct drm_device *dev, int pipe) { drm_i915_private_t *dev_priv = dev->dev_private; @@ -5759,8 +5765,6 @@ setup_timer(&intel_crtc->idle_timer, intel_crtc_idle_timer, (unsigned long)intel_crtc); - - intel_sanitize_modesetting(dev, intel_crtc->pipe, intel_crtc->plane); } int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data, @@ -6001,8 +6005,10 @@ return ERR_PTR(-ENOENT); intel_fb = kzalloc(sizeof(*intel_fb), GFP_KERNEL); - if (!intel_fb) + if (!intel_fb) { + drm_gem_object_unreference_unlocked(&obj->base); return ERR_PTR(-ENOMEM); + } ret = intel_framebuffer_init(dev, intel_fb, mode_cmd, obj); if (ret) { --- linux-2.6.38.orig/drivers/gpu/drm/i915/intel_tv.c +++ linux-2.6.38/drivers/gpu/drm/i915/intel_tv.c @@ -1380,7 +1380,9 @@ if (type < 0) return connector_status_disconnected; + intel_tv->type = type; intel_tv_find_better_format(connector); + return connector_status_connected; } --- linux-2.6.38.orig/drivers/gpu/drm/i915/intel_dp.c +++ linux-2.6.38/drivers/gpu/drm/i915/intel_dp.c @@ -1455,7 +1455,8 @@ if (!HAS_PCH_CPT(dev) && I915_READ(intel_dp->output_reg) & DP_PIPEB_SELECT) { - struct intel_crtc *intel_crtc = to_intel_crtc(intel_dp->base.base.crtc); + struct drm_crtc *crtc = intel_dp->base.base.crtc; + /* Hardware workaround: leaving our transcoder select * set to transcoder B while it's off will prevent the * corresponding HDMI output on transcoder A. @@ -1470,7 +1471,19 @@ /* Changes to enable or select take place the vblank * after being written. */ - intel_wait_for_vblank(dev, intel_crtc->pipe); + if (crtc == NULL) { + /* We can arrive here never having been attached + * to a CRTC, for instance, due to inheriting + * random state from the BIOS. + * + * If the pipe is not running, play safe and + * wait for the clocks to stabilise before + * continuing. + */ + POSTING_READ(intel_dp->output_reg); + msleep(50); + } else + intel_wait_for_vblank(dev, to_intel_crtc(crtc)->pipe); } I915_WRITE(intel_dp->output_reg, DP & ~DP_PORT_EN); --- linux-2.6.38.orig/drivers/gpu/drm/i915/intel_lvds.c +++ linux-2.6.38/drivers/gpu/drm/i915/intel_lvds.c @@ -540,6 +540,9 @@ struct drm_device *dev = dev_priv->dev; struct drm_connector *connector = dev_priv->int_lvds_connector; + if (dev->switch_power_state != DRM_SWITCH_POWER_ON) + return NOTIFY_OK; + /* * check and update the status of LVDS connector after receiving * the LID nofication event. --- linux-2.6.38.orig/drivers/gpu/drm/i915/i915_reg.h +++ linux-2.6.38/drivers/gpu/drm/i915/i915_reg.h @@ -405,9 +405,12 @@ #define I915_ERROR_INSTRUCTION (1<<0) #define INSTPM 0x020c0 #define INSTPM_SELF_EN (1<<12) /* 915GM only */ +#define INSTPM_AGPBUSY_DIS (1<<11) /* gen3: when disabled, pending interrupts + will not assert AGPBUSY# and will only + be delivered when out of C3. */ #define ACTHD 0x020c8 #define FW_BLC 0x020d8 -#define FW_BLC2 0x020dc +#define FW_BLC2 0x020dc #define FW_BLC_SELF 0x020e0 /* 915+ only */ #define FW_BLC_SELF_EN_MASK (1<<31) #define FW_BLC_SELF_FIFO_MASK (1<<16) /* 945 only */ --- linux-2.6.38.orig/drivers/gpu/drm/radeon/radeon_fence.c +++ linux-2.6.38/drivers/gpu/drm/radeon/radeon_fence.c @@ -80,7 +80,7 @@ scratch_index = R600_WB_EVENT_OFFSET + rdev->fence_drv.scratch_reg - rdev->scratch.reg_base; else scratch_index = RADEON_WB_SCRATCH_OFFSET + rdev->fence_drv.scratch_reg - rdev->scratch.reg_base; - seq = rdev->wb.wb[scratch_index/4]; + seq = le32_to_cpu(rdev->wb.wb[scratch_index/4]); } else seq = RREG32(rdev->fence_drv.scratch_reg); if (seq != rdev->fence_drv.last_seq) { --- linux-2.6.38.orig/drivers/gpu/drm/radeon/radeon_kms.c +++ linux-2.6.38/drivers/gpu/drm/radeon/radeon_kms.c @@ -205,6 +205,9 @@ /* return clock value in KHz */ value = rdev->clock.spll.reference_freq * 10; break; + case RADEON_INFO_FUSION_GART_WORKING: + value = 1; + break; default: DRM_DEBUG_KMS("Invalid request %d\n", info->request); return -EINVAL; --- linux-2.6.38.orig/drivers/gpu/drm/radeon/evergreen.c +++ linux-2.6.38/drivers/gpu/drm/radeon/evergreen.c @@ -869,9 +869,15 @@ SYSTEM_ACCESS_MODE_NOT_IN_SYS | SYSTEM_APERTURE_UNMAPPED_ACCESS_PASS_THRU | EFFECTIVE_L1_TLB_SIZE(5) | EFFECTIVE_L1_QUEUE_SIZE(5); - WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp); - WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp); - WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp); + if (rdev->flags & RADEON_IS_IGP) { + WREG32(FUS_MC_VM_MD_L1_TLB0_CNTL, tmp); + WREG32(FUS_MC_VM_MD_L1_TLB1_CNTL, tmp); + WREG32(FUS_MC_VM_MD_L1_TLB2_CNTL, tmp); + } else { + WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp); + WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp); + WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp); + } WREG32(MC_VM_MB_L1_TLB0_CNTL, tmp); WREG32(MC_VM_MB_L1_TLB1_CNTL, tmp); WREG32(MC_VM_MB_L1_TLB2_CNTL, tmp); @@ -1579,7 +1585,7 @@ u32 sq_stack_resource_mgmt_2; u32 sq_stack_resource_mgmt_3; u32 vgt_cache_invalidation; - u32 hdp_host_path_cntl; + u32 hdp_host_path_cntl, tmp; int i, j, num_shader_engines, ps_thread_count; switch (rdev->family) { @@ -2139,6 +2145,10 @@ for (i = SQ_ALU_CONST_BUFFER_SIZE_HS_0; i < 0x29000; i += 4) WREG32(i, 0); + tmp = RREG32(HDP_MISC_CNTL); + tmp |= HDP_FLUSH_INVALIDATE_CACHE; + WREG32(HDP_MISC_CNTL, tmp); + hdp_host_path_cntl = RREG32(HDP_HOST_PATH_CNTL); WREG32(HDP_HOST_PATH_CNTL, hdp_host_path_cntl); @@ -2930,11 +2940,6 @@ rdev->asic->copy = NULL; dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r); } - /* XXX: ontario has problems blitting to gart at the moment */ - if (rdev->family == CHIP_PALM) { - rdev->asic->copy = NULL; - radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size); - } /* allocate wb buffer */ r = radeon_wb_init(rdev); --- linux-2.6.38.orig/drivers/gpu/drm/radeon/radeon_mode.h +++ linux-2.6.38/drivers/gpu/drm/radeon/radeon_mode.h @@ -239,6 +239,7 @@ struct drm_property *underscan_vborder_property; /* hardcoded DFP edid from BIOS */ struct edid *bios_hardcoded_edid; + int bios_hardcoded_edid_size; /* pointer to fbdev info structure */ struct radeon_fbdev *rfbdev; --- linux-2.6.38.orig/drivers/gpu/drm/radeon/radeon_ring.c +++ linux-2.6.38/drivers/gpu/drm/radeon/radeon_ring.c @@ -248,7 +248,7 @@ void radeon_ring_free_size(struct radeon_device *rdev) { if (rdev->wb.enabled) - rdev->cp.rptr = rdev->wb.wb[RADEON_WB_CP_RPTR_OFFSET/4]; + rdev->cp.rptr = le32_to_cpu(rdev->wb.wb[RADEON_WB_CP_RPTR_OFFSET/4]); else { if (rdev->family >= CHIP_R600) rdev->cp.rptr = RREG32(R600_CP_RB_RPTR); --- linux-2.6.38.orig/drivers/gpu/drm/radeon/evergreend.h +++ linux-2.6.38/drivers/gpu/drm/radeon/evergreend.h @@ -64,6 +64,8 @@ #define GB_BACKEND_MAP 0x98FC #define DMIF_ADDR_CONFIG 0xBD4 #define HDP_ADDR_CONFIG 0x2F48 +#define HDP_MISC_CNTL 0x2F4C +#define HDP_FLUSH_INVALIDATE_CACHE (1 << 0) #define CC_SYS_RB_BACKEND_DISABLE 0x3F88 #define GC_USER_RB_BACKEND_DISABLE 0x9B7C @@ -221,6 +223,11 @@ #define MC_VM_MD_L1_TLB0_CNTL 0x2654 #define MC_VM_MD_L1_TLB1_CNTL 0x2658 #define MC_VM_MD_L1_TLB2_CNTL 0x265C + +#define FUS_MC_VM_MD_L1_TLB0_CNTL 0x265C +#define FUS_MC_VM_MD_L1_TLB1_CNTL 0x2660 +#define FUS_MC_VM_MD_L1_TLB2_CNTL 0x2664 + #define MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR 0x203C #define MC_VM_SYSTEM_APERTURE_HIGH_ADDR 0x2038 #define MC_VM_SYSTEM_APERTURE_LOW_ADDR 0x2034 --- linux-2.6.38.orig/drivers/gpu/drm/radeon/atombios_crtc.c +++ linux-2.6.38/drivers/gpu/drm/radeon/atombios_crtc.c @@ -61,8 +61,8 @@ args.usOverscanLeft = cpu_to_le16((adjusted_mode->crtc_hdisplay - (a2 / mode->crtc_vdisplay)) / 2); args.usOverscanRight = cpu_to_le16((adjusted_mode->crtc_hdisplay - (a2 / mode->crtc_vdisplay)) / 2); } else if (a2 > a1) { - args.usOverscanLeft = cpu_to_le16((adjusted_mode->crtc_vdisplay - (a1 / mode->crtc_hdisplay)) / 2); - args.usOverscanRight = cpu_to_le16((adjusted_mode->crtc_vdisplay - (a1 / mode->crtc_hdisplay)) / 2); + args.usOverscanTop = cpu_to_le16((adjusted_mode->crtc_vdisplay - (a1 / mode->crtc_hdisplay)) / 2); + args.usOverscanBottom = cpu_to_le16((adjusted_mode->crtc_vdisplay - (a1 / mode->crtc_hdisplay)) / 2); } break; case RMX_FULL: @@ -531,6 +531,9 @@ pll->flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; else pll->flags |= RADEON_PLL_PREFER_LOW_REF_DIV; + + if (rdev->family < CHIP_RV770) + pll->flags |= RADEON_PLL_PREFER_MINM_OVER_MAXP; } else { pll->flags |= RADEON_PLL_LEGACY; @@ -559,7 +562,6 @@ if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { if (ss_enabled) { if (ss->refdiv) { - pll->flags |= RADEON_PLL_PREFER_MINM_OVER_MAXP; pll->flags |= RADEON_PLL_USE_REF_DIV; pll->reference_div = ss->refdiv; if (ASIC_IS_AVIVO(rdev)) @@ -957,7 +959,11 @@ /* adjust pixel clock as needed */ adjusted_clock = atombios_adjust_pll(crtc, mode, pll, ss_enabled, &ss); - if (ASIC_IS_AVIVO(rdev)) + if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT)) + /* TV seems to prefer the legacy algo on some boards */ + radeon_compute_pll_legacy(pll, adjusted_clock, &pll_clock, &fb_div, &frac_fb_div, + &ref_div, &post_div); + else if (ASIC_IS_AVIVO(rdev)) radeon_compute_pll_avivo(pll, adjusted_clock, &pll_clock, &fb_div, &frac_fb_div, &ref_div, &post_div); else --- linux-2.6.38.orig/drivers/gpu/drm/radeon/radeon_combios.c +++ linux-2.6.38/drivers/gpu/drm/radeon/radeon_combios.c @@ -448,7 +448,7 @@ bool radeon_combios_check_hardcoded_edid(struct radeon_device *rdev) { - int edid_info; + int edid_info, size; struct edid *edid; unsigned char *raw; edid_info = combios_get_table_offset(rdev->ddev, COMBIOS_HARDCODED_EDID_TABLE); @@ -456,11 +456,12 @@ return false; raw = rdev->bios + edid_info; - edid = kmalloc(EDID_LENGTH * (raw[0x7e] + 1), GFP_KERNEL); + size = EDID_LENGTH * (raw[0x7e] + 1); + edid = kmalloc(size, GFP_KERNEL); if (edid == NULL) return false; - memcpy((unsigned char *)edid, raw, EDID_LENGTH * (raw[0x7e] + 1)); + memcpy((unsigned char *)edid, raw, size); if (!drm_edid_is_valid(edid)) { kfree(edid); @@ -468,6 +469,7 @@ } rdev->mode_info.bios_hardcoded_edid = edid; + rdev->mode_info.bios_hardcoded_edid_size = size; return true; } @@ -475,8 +477,17 @@ struct edid * radeon_bios_get_hardcoded_edid(struct radeon_device *rdev) { - if (rdev->mode_info.bios_hardcoded_edid) - return rdev->mode_info.bios_hardcoded_edid; + struct edid *edid; + + if (rdev->mode_info.bios_hardcoded_edid) { + edid = kmalloc(rdev->mode_info.bios_hardcoded_edid_size, GFP_KERNEL); + if (edid) { + memcpy((unsigned char *)edid, + (unsigned char *)rdev->mode_info.bios_hardcoded_edid, + rdev->mode_info.bios_hardcoded_edid_size); + return edid; + } + } return NULL; } --- linux-2.6.38.orig/drivers/gpu/drm/radeon/atom.c +++ linux-2.6.38/drivers/gpu/drm/radeon/atom.c @@ -32,6 +32,7 @@ #include "atom.h" #include "atom-names.h" #include "atom-bits.h" +#include "radeon.h" #define ATOM_COND_ABOVE 0 #define ATOM_COND_ABOVEOREQUAL 1 @@ -101,7 +102,9 @@ static uint32_t atom_iio_execute(struct atom_context *ctx, int base, uint32_t index, uint32_t data) { + struct radeon_device *rdev = ctx->card->dev->dev_private; uint32_t temp = 0xCDCDCDCD; + while (1) switch (CU8(base)) { case ATOM_IIO_NOP: @@ -112,7 +115,8 @@ base += 3; break; case ATOM_IIO_WRITE: - (void)ctx->card->ioreg_read(ctx->card, CU16(base + 1)); + if (rdev->family == CHIP_RV515) + (void)ctx->card->ioreg_read(ctx->card, CU16(base + 1)); ctx->card->ioreg_write(ctx->card, CU16(base + 1), temp); base += 3; break; @@ -131,7 +135,7 @@ case ATOM_IIO_MOVE_INDEX: temp &= ~((0xFFFFFFFF >> (32 - CU8(base + 1))) << - CU8(base + 2)); + CU8(base + 3)); temp |= ((index >> CU8(base + 2)) & (0xFFFFFFFF >> (32 - CU8(base + 1)))) << CU8(base + @@ -141,7 +145,7 @@ case ATOM_IIO_MOVE_DATA: temp &= ~((0xFFFFFFFF >> (32 - CU8(base + 1))) << - CU8(base + 2)); + CU8(base + 3)); temp |= ((data >> CU8(base + 2)) & (0xFFFFFFFF >> (32 - CU8(base + 1)))) << CU8(base + @@ -151,7 +155,7 @@ case ATOM_IIO_MOVE_ATTR: temp &= ~((0xFFFFFFFF >> (32 - CU8(base + 1))) << - CU8(base + 2)); + CU8(base + 3)); temp |= ((ctx-> io_attr >> CU8(base + 2)) & (0xFFFFFFFF >> (32 - --- linux-2.6.38.orig/drivers/gpu/drm/radeon/radeon_connectors.c +++ linux-2.6.38/drivers/gpu/drm/radeon/radeon_connectors.c @@ -629,6 +629,8 @@ static enum drm_connector_status radeon_vga_detect(struct drm_connector *connector, bool force) { + struct drm_device *dev = connector->dev; + struct radeon_device *rdev = dev->dev_private; struct radeon_connector *radeon_connector = to_radeon_connector(connector); struct drm_encoder *encoder; struct drm_encoder_helper_funcs *encoder_funcs; @@ -679,6 +681,17 @@ if (ret == connector_status_connected) ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true); + + /* RN50 and some RV100 asics in servers often have a hardcoded EDID in the + * vbios to deal with KVMs. If we have one and are not able to detect a monitor + * by other means, assume the CRT is connected and use that EDID. + */ + if ((!rdev->is_atom_bios) && + (ret == connector_status_disconnected) && + rdev->mode_info.bios_hardcoded_edid_size) { + ret = connector_status_connected; + } + radeon_connector_update_scratch_regs(connector, ret); return ret; } @@ -790,6 +803,8 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connector, bool force) { + struct drm_device *dev = connector->dev; + struct radeon_device *rdev = dev->dev_private; struct radeon_connector *radeon_connector = to_radeon_connector(connector); struct drm_encoder *encoder = NULL; struct drm_encoder_helper_funcs *encoder_funcs; @@ -829,8 +844,6 @@ * you don't really know what's connected to which port as both are digital. */ if (radeon_connector->shared_ddc && (ret == connector_status_connected)) { - struct drm_device *dev = connector->dev; - struct radeon_device *rdev = dev->dev_private; struct drm_connector *list_connector; struct radeon_connector *list_radeon_connector; list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { @@ -895,6 +908,19 @@ ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true); } + /* RN50 and some RV100 asics in servers often have a hardcoded EDID in the + * vbios to deal with KVMs. If we have one and are not able to detect a monitor + * by other means, assume the DFP is connected and use that EDID. In most + * cases the DVI port is actually a virtual KVM port connected to the service + * processor. + */ + if ((!rdev->is_atom_bios) && + (ret == connector_status_disconnected) && + rdev->mode_info.bios_hardcoded_edid_size) { + radeon_connector->use_digital = true; + ret = connector_status_connected; + } + out: /* updated in get modes as well since we need to know if it's analog or digital */ radeon_connector_update_scratch_regs(connector, ret); --- linux-2.6.38.orig/drivers/gpu/drm/radeon/radeon_asic.c +++ linux-2.6.38/drivers/gpu/drm/radeon/radeon_asic.c @@ -782,6 +782,7 @@ .hpd_fini = &evergreen_hpd_fini, .hpd_sense = &evergreen_hpd_sense, .hpd_set_polarity = &evergreen_hpd_set_polarity, + .ioctl_wait_idle = r600_ioctl_wait_idle, .gui_idle = &r600_gui_idle, .pm_misc = &evergreen_pm_misc, .pm_prepare = &evergreen_pm_prepare, @@ -828,6 +829,7 @@ .hpd_fini = &evergreen_hpd_fini, .hpd_sense = &evergreen_hpd_sense, .hpd_set_polarity = &evergreen_hpd_set_polarity, + .ioctl_wait_idle = r600_ioctl_wait_idle, .gui_idle = &r600_gui_idle, .pm_misc = &evergreen_pm_misc, .pm_prepare = &evergreen_pm_prepare, @@ -874,6 +876,8 @@ .hpd_fini = &evergreen_hpd_fini, .hpd_sense = &evergreen_hpd_sense, .hpd_set_polarity = &evergreen_hpd_set_polarity, + .ioctl_wait_idle = r600_ioctl_wait_idle, + .ioctl_wait_idle = r600_ioctl_wait_idle, .gui_idle = &r600_gui_idle, .pm_misc = &evergreen_pm_misc, .pm_prepare = &evergreen_pm_prepare, --- linux-2.6.38.orig/drivers/gpu/drm/radeon/radeon_atombios.c +++ linux-2.6.38/drivers/gpu/drm/radeon/radeon_atombios.c @@ -431,7 +431,7 @@ } } - /* Acer laptop (Acer TravelMate 5730G) has an HDMI port + /* Acer laptop (Acer TravelMate 5730/5730G) has an HDMI port * on the laptop and a DVI port on the docking station and * both share the same encoder, hpd pin, and ddc line. * So while the bios table is technically correct, @@ -440,7 +440,7 @@ * with different crtcs which isn't possible on the hardware * side and leaves no crtcs for LVDS or VGA. */ - if ((dev->pdev->device == 0x95c4) && + if (((dev->pdev->device == 0x95c4) || (dev->pdev->device == 0x9591)) && (dev->pdev->subsystem_vendor == 0x1025) && (dev->pdev->subsystem_device == 0x013c)) { if ((*connector_type == DRM_MODE_CONNECTOR_DVII) && @@ -675,7 +675,8 @@ ATOM_ENCODER_CAP_RECORD *cap_record; u16 caps = 0; - while (record->ucRecordType > 0 && + while (record->ucRecordSize > 0 && + record->ucRecordType > 0 && record->ucRecordType <= ATOM_MAX_OBJECT_RECORD_NUMBER) { switch (record->ucRecordType) { case ATOM_ENCODER_CAP_RECORD_TYPE: @@ -720,7 +721,8 @@ break; } - while (record->ucRecordType > 0 && + while (record->ucRecordSize > 0 && + record->ucRecordType > 0 && record->ucRecordType <= ATOM_MAX_OBJECT_RECORD_NUMBER) { switch (record->ucRecordType) { case ATOM_I2C_RECORD_TYPE: @@ -782,10 +784,9 @@ ATOM_HPD_INT_RECORD *hpd_record; ATOM_I2C_ID_CONFIG_ACCESS *i2c_config; - while (record->ucRecordType > 0 - && record-> - ucRecordType <= - ATOM_MAX_OBJECT_RECORD_NUMBER) { + while (record->ucRecordSize > 0 && + record->ucRecordType > 0 && + record->ucRecordType <= ATOM_MAX_OBJECT_RECORD_NUMBER) { switch (record->ucRecordType) { case ATOM_I2C_RECORD_TYPE: i2c_record = @@ -1573,9 +1574,17 @@ ATOM_FAKE_EDID_PATCH_RECORD *fake_edid_record; ATOM_PANEL_RESOLUTION_PATCH_RECORD *panel_res_record; bool bad_record = false; - u8 *record = (u8 *)(mode_info->atom_context->bios + - data_offset + - le16_to_cpu(lvds_info->info.usModePatchTableOffset)); + u8 *record; + + if ((frev == 1) && (crev < 2)) + /* absolute */ + record = (u8 *)(mode_info->atom_context->bios + + le16_to_cpu(lvds_info->info.usModePatchTableOffset)); + else + /* relative */ + record = (u8 *)(mode_info->atom_context->bios + + data_offset + + le16_to_cpu(lvds_info->info.usModePatchTableOffset)); while (*record != ATOM_RECORD_END_TYPE) { switch (*record) { case LCD_MODE_PATCH_RECORD_MODE_TYPE: @@ -1598,9 +1607,10 @@ memcpy((u8 *)edid, (u8 *)&fake_edid_record->ucFakeEDIDString[0], fake_edid_record->ucFakeEDIDLength); - if (drm_edid_is_valid(edid)) + if (drm_edid_is_valid(edid)) { rdev->mode_info.bios_hardcoded_edid = edid; - else + rdev->mode_info.bios_hardcoded_edid_size = edid_size; + } else kfree(edid); } } --- linux-2.6.38.orig/drivers/gpu/drm/nouveau/nv50_evo.c +++ linux-2.6.38/drivers/gpu/drm/nouveau/nv50_evo.c @@ -182,6 +182,7 @@ nv_mask(dev, 0x610028, 0x00000000, 0x00010001 << id); evo->dma.max = (4096/4) - 2; + evo->dma.max &= ~7; evo->dma.put = 0; evo->dma.cur = evo->dma.put; evo->dma.free = evo->dma.max - evo->dma.cur; --- linux-2.6.38.orig/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ linux-2.6.38/drivers/gpu/drm/nouveau/nouveau_fbcon.c @@ -181,13 +181,13 @@ OUT_RING (chan, 0); } - nouveau_bo_wr32(chan->notifier_bo, chan->m2mf_ntfy + 3, 0xffffffff); + nouveau_bo_wr32(chan->notifier_bo, chan->m2mf_ntfy/4 + 3, 0xffffffff); FIRE_RING(chan); mutex_unlock(&chan->mutex); ret = -EBUSY; for (i = 0; i < 100000; i++) { - if (!nouveau_bo_rd32(chan->notifier_bo, chan->m2mf_ntfy + 3)) { + if (!nouveau_bo_rd32(chan->notifier_bo, chan->m2mf_ntfy/4 + 3)) { ret = 0; break; } --- linux-2.6.38.orig/drivers/media/video/tea6415c.c +++ linux-2.6.38/drivers/media/video/tea6415c.c @@ -152,7 +152,7 @@ v4l_info(client, "chip found @ 0x%x (%s)\n", client->addr << 1, client->adapter->name); - sd = kmalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); + sd = kzalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); if (sd == NULL) return -ENOMEM; v4l2_i2c_subdev_init(sd, client, &tea6415c_ops); --- linux-2.6.38.orig/drivers/media/video/upd64083.c +++ linux-2.6.38/drivers/media/video/upd64083.c @@ -202,7 +202,7 @@ v4l_info(client, "chip found @ 0x%x (%s)\n", client->addr << 1, client->adapter->name); - state = kmalloc(sizeof(struct upd64083_state), GFP_KERNEL); + state = kzalloc(sizeof(struct upd64083_state), GFP_KERNEL); if (state == NULL) return -ENOMEM; sd = &state->sd; --- linux-2.6.38.orig/drivers/media/video/upd64031a.c +++ linux-2.6.38/drivers/media/video/upd64031a.c @@ -230,7 +230,7 @@ v4l_info(client, "chip found @ 0x%x (%s)\n", client->addr << 1, client->adapter->name); - state = kmalloc(sizeof(struct upd64031a_state), GFP_KERNEL); + state = kzalloc(sizeof(struct upd64031a_state), GFP_KERNEL); if (state == NULL) return -ENOMEM; sd = &state->sd; --- linux-2.6.38.orig/drivers/media/video/tda9840.c +++ linux-2.6.38/drivers/media/video/tda9840.c @@ -171,7 +171,7 @@ v4l_info(client, "chip found @ 0x%x (%s)\n", client->addr << 1, client->adapter->name); - sd = kmalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); + sd = kzalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); if (sd == NULL) return -ENOMEM; v4l2_i2c_subdev_init(sd, client, &tda9840_ops); --- linux-2.6.38.orig/drivers/media/video/m52790.c +++ linux-2.6.38/drivers/media/video/m52790.c @@ -174,7 +174,7 @@ v4l_info(client, "chip found @ 0x%x (%s)\n", client->addr << 1, client->adapter->name); - state = kmalloc(sizeof(struct m52790_state), GFP_KERNEL); + state = kzalloc(sizeof(struct m52790_state), GFP_KERNEL); if (state == NULL) return -ENOMEM; --- linux-2.6.38.orig/drivers/media/video/tea6420.c +++ linux-2.6.38/drivers/media/video/tea6420.c @@ -125,7 +125,7 @@ v4l_info(client, "chip found @ 0x%x (%s)\n", client->addr << 1, client->adapter->name); - sd = kmalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); + sd = kzalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); if (sd == NULL) return -ENOMEM; v4l2_i2c_subdev_init(sd, client, &tea6420_ops); --- linux-2.6.38.orig/drivers/media/video/v4l2-device.c +++ linux-2.6.38/drivers/media/video/v4l2-device.c @@ -131,14 +131,17 @@ sd->v4l2_dev = v4l2_dev; if (sd->internal_ops && sd->internal_ops->registered) { err = sd->internal_ops->registered(sd); - if (err) + if (err) { + module_put(sd->owner); return err; + } } /* This just returns 0 if either of the two args is NULL */ err = v4l2_ctrl_add_handler(v4l2_dev->ctrl_handler, sd->ctrl_handler); if (err) { if (sd->internal_ops && sd->internal_ops->unregistered) sd->internal_ops->unregistered(sd); + module_put(sd->owner); return err; } spin_lock(&v4l2_dev->lock); --- linux-2.6.38.orig/drivers/media/video/tlg2300/pd-video.c +++ linux-2.6.38/drivers/media/video/tlg2300/pd-video.c @@ -764,10 +764,8 @@ } ret |= send_set_req(pd, VIDEO_ROSOLU_SEL, vid_resol, &cmd_status); - if (ret || cmd_status) { - mutex_unlock(&pd->lock); + if (ret || cmd_status) return -EBUSY; - } pix_def->pixelformat = pix->pixelformat; /* save it */ pix->height = (context->tvnormid & V4L2_STD_525_60) ? 480 : 576; --- linux-2.6.38.orig/drivers/media/video/uvc/uvc_driver.c +++ linux-2.6.38/drivers/media/video/uvc/uvc_driver.c @@ -1264,6 +1264,14 @@ break; + case UVC_OTT_VENDOR_SPECIFIC: + case UVC_OTT_DISPLAY: + case UVC_OTT_MEDIA_TRANSPORT_OUTPUT: + if (uvc_trace_param & UVC_TRACE_PROBE) + printk(" OT %d", entity->id); + + break; + case UVC_TT_STREAMING: if (UVC_ENTITY_IS_ITERM(entity)) { if (uvc_trace_param & UVC_TRACE_PROBE) --- linux-2.6.38.orig/drivers/media/video/uvc/uvc_video.c +++ linux-2.6.38/drivers/media/video/uvc/uvc_video.c @@ -89,15 +89,19 @@ static void uvc_fixup_video_ctrl(struct uvc_streaming *stream, struct uvc_streaming_control *ctrl) { - struct uvc_format *format; + struct uvc_format *format = NULL; struct uvc_frame *frame = NULL; unsigned int i; - if (ctrl->bFormatIndex <= 0 || - ctrl->bFormatIndex > stream->nformats) - return; + for (i = 0; i < stream->nformats; ++i) { + if (stream->format[i].index == ctrl->bFormatIndex) { + format = &stream->format[i]; + break; + } + } - format = &stream->format[ctrl->bFormatIndex - 1]; + if (format == NULL) + return; for (i = 0; i < format->nframes; ++i) { if (format->frame[i].bFrameIndex == ctrl->bFrameIndex) { --- linux-2.6.38.orig/drivers/media/video/cx88/cx88-mpeg.c +++ linux-2.6.38/drivers/media/video/cx88/cx88-mpeg.c @@ -624,13 +624,11 @@ if (drv->advise_acquire) { - mutex_lock(&drv->core->lock); core->active_ref++; if (core->active_type_id == CX88_BOARD_NONE) { core->active_type_id = drv->type_id; drv->advise_acquire(drv); } - mutex_unlock(&drv->core->lock); mpeg_dbg(1,"%s() Post acquire GPIO=%x\n", __func__, cx_read(MO_GP0_IO)); } @@ -643,14 +641,12 @@ { struct cx88_core *core = drv->core; - mutex_lock(&drv->core->lock); if (drv->advise_release && --core->active_ref == 0) { drv->advise_release(drv); core->active_type_id = CX88_BOARD_NONE; mpeg_dbg(1,"%s() Post release GPIO=%x\n", __func__, cx_read(MO_GP0_IO)); } - mutex_unlock(&drv->core->lock); return 0; } @@ -713,18 +709,17 @@ drv->request_release = cx8802_request_release; memcpy(driver, drv, sizeof(*driver)); + mutex_lock(&drv->core->lock); err = drv->probe(driver); if (err == 0) { i++; - mutex_lock(&drv->core->lock); list_add_tail(&driver->drvlist, &dev->drvlist); - mutex_unlock(&drv->core->lock); } else { printk(KERN_ERR "%s/2: cx8802 probe failed, err = %d\n", dev->core->name, err); } - + mutex_unlock(&drv->core->lock); } return i ? 0 : -ENODEV; @@ -748,6 +743,8 @@ dev->pci->subsystem_device, dev->core->board.name, dev->core->boardnr); + mutex_lock(&dev->core->lock); + list_for_each_entry_safe(d, dtmp, &dev->drvlist, drvlist) { /* only unregister the correct driver type */ if (d->type_id != drv->type_id) @@ -755,15 +752,14 @@ err = d->remove(d); if (err == 0) { - mutex_lock(&drv->core->lock); list_del(&d->drvlist); - mutex_unlock(&drv->core->lock); kfree(d); } else printk(KERN_ERR "%s/2: cx8802 driver remove " "failed (%d)\n", dev->core->name, err); } + mutex_unlock(&dev->core->lock); } return err; @@ -827,6 +823,8 @@ flush_request_modules(dev); + mutex_lock(&dev->core->lock); + if (!list_empty(&dev->drvlist)) { struct cx8802_driver *drv, *tmp; int err; @@ -838,9 +836,7 @@ list_for_each_entry_safe(drv, tmp, &dev->drvlist, drvlist) { err = drv->remove(drv); if (err == 0) { - mutex_lock(&drv->core->lock); list_del(&drv->drvlist); - mutex_unlock(&drv->core->lock); } else printk(KERN_ERR "%s/2: cx8802 driver remove " "failed (%d)\n", dev->core->name, err); @@ -848,6 +844,8 @@ } } + mutex_unlock(&dev->core->lock); + /* Destroy any 8802 reference. */ dev->core->dvbdev = NULL; --- linux-2.6.38.orig/drivers/media/video/cx88/cx88-dvb.c +++ linux-2.6.38/drivers/media/video/cx88/cx88-dvb.c @@ -132,6 +132,7 @@ return -EINVAL; } + mutex_lock(&dev->core->lock); drv = cx8802_get_driver(dev, CX88_MPEG_DVB); if (drv) { if (acquire){ @@ -142,6 +143,7 @@ dev->frontends.active_fe_id = 0; } } + mutex_unlock(&dev->core->lock); return ret; } --- linux-2.6.38.orig/drivers/media/video/cx88/cx88-input.c +++ linux-2.6.38/drivers/media/video/cx88/cx88-input.c @@ -283,7 +283,7 @@ case CX88_BOARD_PCHDTV_HD3000: case CX88_BOARD_PCHDTV_HD5500: case CX88_BOARD_HAUPPAUGE_IRONLY: - ir_codes = RC_MAP_HAUPPAUGE_NEW; + ir_codes = RC_MAP_RC5_HAUPPAUGE_NEW; ir->sampling = 1; break; case CX88_BOARD_WINFAST_DTV2000H: @@ -523,7 +523,7 @@ for (todo = 32; todo > 0; todo -= bits) { ev.pulse = samples & 0x80000000 ? false : true; bits = min(todo, 32U - fls(ev.pulse ? samples : ~samples)); - ev.duration = (bits * NSEC_PER_SEC) / (1000 * ir_samplerate); + ev.duration = (bits * (NSEC_PER_SEC / 1000)) / ir_samplerate; ir_raw_event_store_with_filter(ir->dev, &ev); samples <<= bits; } --- linux-2.6.38.orig/drivers/media/video/cx88/cx88.h +++ linux-2.6.38/drivers/media/video/cx88/cx88.h @@ -495,6 +495,8 @@ int (*suspend)(struct pci_dev *pci_dev, pm_message_t state); int (*resume)(struct pci_dev *pci_dev); + /* Callers to the following functions must hold core->lock */ + /* MPEG 8802 -> mini driver - Driver probe and configuration */ int (*probe)(struct cx8802_driver *drv); int (*remove)(struct cx8802_driver *drv); @@ -551,8 +553,9 @@ /* for switching modulation types */ unsigned char ts_gen_cntrl; - /* List of attached drivers */ + /* List of attached drivers; must hold core->lock to access */ struct list_head drvlist; + struct work_struct request_module_wk; }; @@ -675,6 +678,8 @@ int cx8802_register_driver(struct cx8802_driver *drv); int cx8802_unregister_driver(struct cx8802_driver *drv); + +/* Caller must hold core->lock */ struct cx8802_driver * cx8802_get_driver(struct cx8802_dev *dev, enum cx88_board_type btype); /* ----------------------------------------------------------- */ --- linux-2.6.38.orig/drivers/media/video/cx88/cx88-blackbird.c +++ linux-2.6.38/drivers/media/video/cx88/cx88-blackbird.c @@ -1122,7 +1122,6 @@ mutex_lock(&dev->core->lock); file->private_data = NULL; kfree(fh); - mutex_unlock(&dev->core->lock); /* Make sure we release the hardware */ drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD); @@ -1131,6 +1130,8 @@ atomic_dec(&dev->core->mpeg_users); + mutex_unlock(&dev->core->lock); + return 0; } @@ -1334,11 +1335,9 @@ blackbird_register_video(dev); /* initial device configuration: needed ? */ - mutex_lock(&dev->core->lock); // init_controls(core); cx88_set_tvnorm(core,core->tvnorm); cx88_video_mux(core,0); - mutex_unlock(&dev->core->lock); return 0; --- linux-2.6.38.orig/drivers/media/video/sn9c102/sn9c102_core.c +++ linux-2.6.38/drivers/media/video/sn9c102/sn9c102_core.c @@ -1430,9 +1430,9 @@ sn9c102_show_i2c_reg, sn9c102_store_i2c_reg); static DEVICE_ATTR(i2c_val, S_IRUGO | S_IWUSR, sn9c102_show_i2c_val, sn9c102_store_i2c_val); -static DEVICE_ATTR(green, S_IWUGO, NULL, sn9c102_store_green); -static DEVICE_ATTR(blue, S_IWUGO, NULL, sn9c102_store_blue); -static DEVICE_ATTR(red, S_IWUGO, NULL, sn9c102_store_red); +static DEVICE_ATTR(green, S_IWUSR, NULL, sn9c102_store_green); +static DEVICE_ATTR(blue, S_IWUSR, NULL, sn9c102_store_blue); +static DEVICE_ATTR(red, S_IWUSR, NULL, sn9c102_store_red); static DEVICE_ATTR(frame_header, S_IRUGO, sn9c102_show_frame_header, NULL); --- linux-2.6.38.orig/drivers/media/dvb/b2c2/flexcop-pci.c +++ linux-2.6.38/drivers/media/dvb/b2c2/flexcop-pci.c @@ -38,7 +38,7 @@ DEBSTATUS); #define DRIVER_VERSION "0.1" -#define DRIVER_NAME "Technisat/B2C2 FlexCop II/IIb/III Digital TV PCI Driver" +#define DRIVER_NAME "flexcop-pci" #define DRIVER_AUTHOR "Patrick Boettcher " struct flexcop_pci { --- linux-2.6.38.orig/drivers/media/rc/imon.c +++ linux-2.6.38/drivers/media/rc/imon.c @@ -46,7 +46,7 @@ #define MOD_AUTHOR "Jarod Wilson " #define MOD_DESC "Driver for SoundGraph iMON MultiMedia IR/Display" #define MOD_NAME "imon" -#define MOD_VERSION "0.9.2" +#define MOD_VERSION "0.9.3" #define DISPLAY_MINOR_BASE 144 #define DEVICE_NAME "lcd%d" @@ -451,8 +451,9 @@ } /** - * Sends a packet to the device -- this function must be called - * with ictx->lock held. + * Sends a packet to the device -- this function must be called with + * ictx->lock held, or its unlock/lock sequence while waiting for tx + * to complete can/will lead to a deadlock. */ static int send_packet(struct imon_context *ictx) { @@ -982,12 +983,21 @@ * the iMON remotes, and those used by the Windows MCE remotes (which is * really just RC-6), but only one or the other at a time, as the signals * are decoded onboard the receiver. + * + * This function gets called two different ways, one way is from + * rc_register_device, for initial protocol selection/setup, and the other is + * via a userspace-initiated protocol change request, either by direct sysfs + * prodding or by something like ir-keytable. In the rc_register_device case, + * the imon context lock is already held, but when initiated from userspace, + * it is not, so we must acquire it prior to calling send_packet, which + * requires that the lock is held. */ static int imon_ir_change_protocol(struct rc_dev *rc, u64 rc_type) { int retval; struct imon_context *ictx = rc->priv; struct device *dev = ictx->dev; + bool unlock = false; unsigned char ir_proto_packet[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86 }; @@ -1020,6 +1030,11 @@ memcpy(ictx->usb_tx_buf, &ir_proto_packet, sizeof(ir_proto_packet)); + if (!mutex_is_locked(&ictx->lock)) { + unlock = true; + mutex_lock(&ictx->lock); + } + retval = send_packet(ictx); if (retval) goto out; @@ -1028,6 +1043,9 @@ ictx->pad_mouse = false; out: + if (unlock) + mutex_unlock(&ictx->lock); + return retval; } @@ -2125,6 +2143,7 @@ goto rdev_setup_failed; } + mutex_unlock(&ictx->lock); return ictx; rdev_setup_failed: @@ -2196,6 +2215,7 @@ goto urb_submit_failed; } + mutex_unlock(&ictx->lock); return ictx; urb_submit_failed: @@ -2290,6 +2310,8 @@ usb_set_intfdata(interface, ictx); if (ifnum == 0) { + mutex_lock(&ictx->lock); + if (product == 0xffdc && ictx->rf_device) { sysfs_err = sysfs_create_group(&interface->dev.kobj, &imon_rf_attr_group); @@ -2300,13 +2322,14 @@ if (ictx->display_supported) imon_init_display(ictx, interface); + + mutex_unlock(&ictx->lock); } dev_info(dev, "iMON device (%04x:%04x, intf%d) on " "usb<%d:%d> initialized\n", vendor, product, ifnum, usbdev->bus->busnum, usbdev->devnum); - mutex_unlock(&ictx->lock); mutex_unlock(&driver_lock); return 0; --- linux-2.6.38.orig/drivers/media/radio/saa7706h.c +++ linux-2.6.38/drivers/media/radio/saa7706h.c @@ -376,7 +376,7 @@ v4l_info(client, "chip found @ 0x%02x (%s)\n", client->addr << 1, client->adapter->name); - state = kmalloc(sizeof(struct saa7706h_state), GFP_KERNEL); + state = kzalloc(sizeof(struct saa7706h_state), GFP_KERNEL); if (state == NULL) return -ENOMEM; sd = &state->sd; --- linux-2.6.38.orig/drivers/media/radio/Kconfig +++ linux-2.6.38/drivers/media/radio/Kconfig @@ -441,6 +441,7 @@ config RADIO_WL1273 tristate "Texas Instruments WL1273 I2C FM Radio" depends on I2C && VIDEO_V4L2 + select MFD_CORE select MFD_WL1273_CORE select FW_LOADER ---help--- --- linux-2.6.38.orig/drivers/media/radio/si4713-i2c.c +++ linux-2.6.38/drivers/media/radio/si4713-i2c.c @@ -1033,7 +1033,7 @@ char ps_name[MAX_RDS_PS_NAME + 1]; len = control->size - 1; - if (len > MAX_RDS_PS_NAME) { + if (len < 0 || len > MAX_RDS_PS_NAME) { rval = -ERANGE; goto exit; } @@ -1057,7 +1057,7 @@ char radio_text[MAX_RDS_RADIO_TEXT + 1]; len = control->size - 1; - if (len > MAX_RDS_RADIO_TEXT) { + if (len < 0 || len > MAX_RDS_RADIO_TEXT) { rval = -ERANGE; goto exit; } --- linux-2.6.38.orig/drivers/media/radio/tef6862.c +++ linux-2.6.38/drivers/media/radio/tef6862.c @@ -176,7 +176,7 @@ v4l_info(client, "chip found @ 0x%02x (%s)\n", client->addr << 1, client->adapter->name); - state = kmalloc(sizeof(struct tef6862_state), GFP_KERNEL); + state = kzalloc(sizeof(struct tef6862_state), GFP_KERNEL); if (state == NULL) return -ENOMEM; state->freq = TEF6862_LO_FREQ; --- linux-2.6.38.orig/drivers/base/Kconfig +++ linux-2.6.38/drivers/base/Kconfig @@ -168,4 +168,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.38.orig/drivers/base/power/main.c +++ linux-2.6.38/drivers/base/power/main.c @@ -389,6 +389,24 @@ dev_name(dev), 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; @@ -419,6 +437,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); @@ -428,6 +447,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) { @@ -509,6 +529,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); @@ -548,6 +569,7 @@ error = legacy_resume(dev, dev->class->resume); } } + device_show_time(dev, starttime, state, NULL); End: device_unlock(dev); complete_all(&dev->power.completion); @@ -728,6 +750,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 "); @@ -746,6 +769,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: @@ -824,6 +848,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); @@ -867,6 +892,7 @@ } } + device_show_time(dev, starttime, state, NULL); End: device_unlock(dev); complete_all(&dev->power.completion); --- linux-2.6.38.orig/drivers/md/bitmap.c +++ linux-2.6.38/drivers/md/bitmap.c @@ -493,11 +493,11 @@ spin_unlock_irqrestore(&bitmap->lock, flags); sb = kmap_atomic(bitmap->sb_page, KM_USER0); sb->events = cpu_to_le64(bitmap->mddev->events); - if (bitmap->mddev->events < bitmap->events_cleared) { + if (bitmap->mddev->events < bitmap->events_cleared) /* rocking back to read-only */ bitmap->events_cleared = bitmap->mddev->events; - sb->events_cleared = cpu_to_le64(bitmap->events_cleared); - } + sb->events_cleared = cpu_to_le64(bitmap->events_cleared); + sb->state = cpu_to_le32(bitmap->flags); /* Just in case these have been changed via sysfs: */ sb->daemon_sleep = cpu_to_le32(bitmap->mddev->bitmap_info.daemon_sleep/HZ); sb->write_behind = cpu_to_le32(bitmap->mddev->bitmap_info.max_write_behind); @@ -618,7 +618,7 @@ if (le32_to_cpu(sb->version) == BITMAP_MAJOR_HOSTENDIAN) bitmap->flags |= BITMAP_HOSTENDIAN; bitmap->events_cleared = le64_to_cpu(sb->events_cleared); - if (sb->state & cpu_to_le32(BITMAP_STALE)) + if (bitmap->flags & BITMAP_STALE) bitmap->events_cleared = bitmap->mddev->events; err = 0; out: @@ -652,9 +652,11 @@ switch (op) { case MASK_SET: sb->state |= cpu_to_le32(bits); + bitmap->flags |= bits; break; case MASK_UNSET: sb->state &= cpu_to_le32(~bits); + bitmap->flags &= ~bits; break; default: BUG(); --- linux-2.6.38.orig/drivers/md/dm.c +++ linux-2.6.38/drivers/md/dm.c @@ -2600,6 +2600,7 @@ { return md->disk; } +EXPORT_SYMBOL_GPL(dm_disk); struct kobject *dm_kobject(struct mapped_device *md) { --- linux-2.6.38.orig/drivers/md/dm-table.c +++ linux-2.6.38/drivers/md/dm-table.c @@ -361,6 +361,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev, sector_t start, sector_t len, void *data) { + struct request_queue *q; struct queue_limits *limits = data; struct block_device *bdev = dev->bdev; sector_t dev_size = @@ -369,6 +370,22 @@ limits->logical_block_size >> SECTOR_SHIFT; char b[BDEVNAME_SIZE]; + /* + * Some devices exist without request functions, + * such as loop devices not yet bound to backing files. + * Forbid the use of such devices. + */ + q = bdev_get_queue(bdev); + if (!q || !q->make_request_fn) { + DMWARN("%s: %s is not yet initialised: " + "start=%llu, len=%llu, dev_size=%llu", + dm_device_name(ti->table->md), bdevname(bdev, b), + (unsigned long long)start, + (unsigned long long)len, + (unsigned long long)dev_size); + return 1; + } + if (!dev_size) return 0; --- linux-2.6.38.orig/drivers/md/md.c +++ linux-2.6.38/drivers/md/md.c @@ -4335,13 +4335,19 @@ disk->fops = &md_fops; disk->private_data = mddev; disk->queue = mddev->queue; + blk_queue_flush(mddev->queue, REQ_FLUSH | REQ_FUA); /* Allow extended partitions. This makes the * 'mdp' device redundant, but we can't really * remove it now. */ disk->flags |= GENHD_FL_EXT_DEVT; - add_disk(disk); mddev->gendisk = disk; + /* As soon as we call add_disk(), another thread could get + * through to md_open, so make sure it doesn't get too far + */ + mutex_lock(&mddev->open_mutex); + add_disk(disk); + error = kobject_init_and_add(&mddev->kobj, &md_ktype, &disk_to_dev(disk)->kobj, "%s", "md"); if (error) { @@ -4355,8 +4361,7 @@ if (mddev->kobj.sd && sysfs_create_group(&mddev->kobj, &md_bitmap_group)) printk(KERN_DEBUG "pointless warning\n"); - - blk_queue_flush(mddev->queue, REQ_FLUSH | REQ_FUA); + mutex_unlock(&mddev->open_mutex); abort: mutex_unlock(&disks_mutex); if (!error && mddev->kobj.sd) { --- linux-2.6.38.orig/drivers/platform/x86/intel_ips.c +++ linux-2.6.38/drivers/platform/x86/intel_ips.c @@ -1111,7 +1111,7 @@ last_msecs = jiffies_to_msecs(jiffies); expire = jiffies + msecs_to_jiffies(IPS_SAMPLE_PERIOD); - __set_current_state(TASK_UNINTERRUPTIBLE); + __set_current_state(TASK_INTERRUPTIBLE); mod_timer(&timer, expire); schedule(); --- linux-2.6.38.orig/drivers/platform/x86/eeepc-wmi.c +++ linux-2.6.38/drivers/platform/x86/eeepc-wmi.c @@ -37,9 +37,12 @@ #include #include #include +#include +#include #include #include #include +#include #include #include @@ -57,35 +60,75 @@ MODULE_ALIAS("wmi:"EEEPC_WMI_EVENT_GUID); MODULE_ALIAS("wmi:"EEEPC_WMI_MGMT_GUID); -#define NOTIFY_BRNUP_MIN 0x11 -#define NOTIFY_BRNUP_MAX 0x1f -#define NOTIFY_BRNDOWN_MIN 0x20 -#define NOTIFY_BRNDOWN_MAX 0x2e - -#define EEEPC_WMI_METHODID_DEVS 0x53564544 -#define EEEPC_WMI_METHODID_DSTS 0x53544344 -#define EEEPC_WMI_METHODID_CFVS 0x53564643 +#define NOTIFY_BRNUP_MIN 0x11 +#define NOTIFY_BRNUP_MAX 0x1f +#define NOTIFY_BRNDOWN_MIN 0x20 +#define NOTIFY_BRNDOWN_MAX 0x2e + +/* WMI Methods */ +#define EEEPC_WMI_METHODID_DSTS 0x53544344 +#define EEEPC_WMI_METHODID_DEVS 0x53564544 +#define EEEPC_WMI_METHODID_CFVS 0x53564643 -#define EEEPC_WMI_DEVID_BACKLIGHT 0x00050012 -#define EEEPC_WMI_DEVID_TPDLED 0x00100011 +/* Wireless */ #define EEEPC_WMI_DEVID_WLAN 0x00010011 #define EEEPC_WMI_DEVID_BLUETOOTH 0x00010013 +#define EEEPC_WMI_DEVID_WIMAX 0x00010017 #define EEEPC_WMI_DEVID_WWAN3G 0x00010019 +/* Backlight and Brightness */ +#define EEEPC_WMI_DEVID_BACKLIGHT 0x00050011 +#define EEEPC_WMI_DEVID_BRIGHTNESS 0x00050012 + +/* Misc */ +#define EEEPC_WMI_DEVID_CAMERA 0x00060013 + +/* Storage */ +#define EEEPC_WMI_DEVID_CARDREADER 0x00080013 + +/* Input */ +#define EEEPC_WMI_DEVID_TOUCHPAD 0x00100011 +#define EEEPC_WMI_DEVID_TOUCHPAD_LED 0x00100012 + +/* DSTS masks */ +#define EEEPC_WMI_DSTS_STATUS_BIT 0x00000001 +#define EEEPC_WMI_DSTS_PRESENCE_BIT 0x00010000 +#define EEEPC_WMI_DSTS_BRIGHTNESS_MASK 0x000000FF +#define EEEPC_WMI_DSTS_MAX_BRIGTH_MASK 0x0000FF00 + +static bool hotplug_wireless; + +module_param(hotplug_wireless, bool, 0444); +MODULE_PARM_DESC(hotplug_wireless, + "Enable hotplug for wireless device. " + "If your laptop needs that, please report to " + "acpi4asus-user@lists.sourceforge.net."); + +/* Values for T101MT "Home" key */ +#define HOME_PRESS 0xe4 +#define HOME_HOLD 0xea +#define HOME_RELEASE 0xe5 + +#define EEEPC_WMI_KEY_IGNORE (-1) + 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, 0xcc, { KEY_SWITCHVIDEOMODE } }, + { KE_KEY, 0x30, { KEY_VOLUMEUP } }, + { KE_KEY, 0x31, { KEY_VOLUMEDOWN } }, + { KE_KEY, 0x32, { KEY_MUTE } }, + { KE_KEY, 0x5c, { KEY_F15 } }, /* Power Gear key */ + { KE_KEY, 0x5d, { KEY_WLAN } }, { KE_KEY, 0x6b, { KEY_F13 } }, /* Disable Touchpad */ - { KE_KEY, 0xe1, { KEY_F14 } }, - { KE_KEY, 0xe9, { KEY_DISPLAY_OFF } }, - { KE_KEY, 0xe0, { KEY_PROG1 } }, - { KE_KEY, 0x5c, { KEY_F15 } }, + { KE_KEY, 0x88, { KEY_WLAN } }, + { KE_KEY, 0xbd, { KEY_CAMERA } }, + { KE_KEY, 0xcc, { KEY_SWITCHVIDEOMODE } }, + { KE_KEY, 0xe0, { KEY_PROG1 } }, /* Task Manager */ + { KE_KEY, 0xe1, { KEY_F14 } }, /* Change Resolution */ + { KE_KEY, HOME_PRESS, { KEY_CONFIG } }, + { KE_KEY, 0xe8, { KEY_SCREENLOCK } }, + { KE_KEY, 0xe9, { KEY_BRIGHTNESS_ZERO } }, { KE_END, 0}, }; @@ -108,6 +151,8 @@ }; struct eeepc_wmi { + bool hotplug_wireless; + struct input_dev *inputdev; struct backlight_device *backlight_device; struct platform_device *platform_device; @@ -119,14 +164,18 @@ struct rfkill *wlan_rfkill; struct rfkill *bluetooth_rfkill; + struct rfkill *wimax_rfkill; struct rfkill *wwan3g_rfkill; + struct hotplug_slot *hotplug_slot; + struct mutex hotplug_lock; + struct mutex wmi_lock; + struct workqueue_struct *hotplug_workqueue; + struct work_struct hotplug_work; + struct eeepc_wmi_debug debug; }; -/* Only used in eeepc_wmi_init() and eeepc_wmi_exit() */ -static struct platform_device *platform_device; - static int eeepc_wmi_input_init(struct eeepc_wmi *eeepc) { int err; @@ -139,6 +188,7 @@ eeepc->inputdev->phys = EEEPC_WMI_FILE "/input0"; eeepc->inputdev->id.bustype = BUS_HOST; eeepc->inputdev->dev.parent = &eeepc->platform_device->dev; + __set_bit(EV_REP, eeepc->inputdev->evbit); err = sparse_keymap_setup(eeepc->inputdev, eeepc_wmi_keymap, NULL); if (err) @@ -176,7 +226,8 @@ u32 tmp; status = wmi_evaluate_method(EEEPC_WMI_MGMT_GUID, - 1, EEEPC_WMI_METHODID_DSTS, &input, &output); + 1, EEEPC_WMI_METHODID_DSTS, + &input, &output); if (ACPI_FAILURE(status)) return status; @@ -236,6 +287,28 @@ return status; } +/* Helper for special devices with magic return codes */ +static int eeepc_wmi_get_devstate_bits(u32 dev_id, u32 mask) +{ + u32 retval = 0; + acpi_status status; + + status = eeepc_wmi_get_devstate(dev_id, &retval); + + if (ACPI_FAILURE(status)) + return -EINVAL; + + if (!(retval & EEEPC_WMI_DSTS_PRESENCE_BIT)) + return -ENODEV; + + return retval & mask; +} + +static int eeepc_wmi_get_devstate_simple(u32 dev_id) +{ + return eeepc_wmi_get_devstate_bits(dev_id, EEEPC_WMI_DSTS_STATUS_BIT); +} + /* * LEDs */ @@ -253,7 +326,7 @@ eeepc = container_of(work, struct eeepc_wmi, tpd_led_work); ctrl_param = eeepc->tpd_led_wk; - eeepc_wmi_set_devstate(EEEPC_WMI_DEVID_TPDLED, ctrl_param, NULL); + eeepc_wmi_set_devstate(EEEPC_WMI_DEVID_TOUCHPAD_LED, ctrl_param, NULL); } static void tpd_led_set(struct led_classdev *led_cdev, @@ -267,25 +340,9 @@ queue_work(eeepc->led_workqueue, &eeepc->tpd_led_work); } -static int read_tpd_state(struct eeepc_wmi *eeepc) +static int read_tpd_led_state(struct eeepc_wmi *eeepc) { - u32 retval; - acpi_status status; - - status = eeepc_wmi_get_devstate(EEEPC_WMI_DEVID_TPDLED, &retval); - - if (ACPI_FAILURE(status)) - return -1; - else if (!retval || retval == 0x00060000) - /* - * if touchpad led is present, DSTS will set some bits, - * usually 0x00020000. - * 0x00060000 means that the device is not supported - */ - return -ENODEV; - else - /* Status is stored in the first bit */ - return retval & 0x1; + return eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_TOUCHPAD_LED); } static enum led_brightness tpd_led_get(struct led_classdev *led_cdev) @@ -294,14 +351,14 @@ eeepc = container_of(led_cdev, struct eeepc_wmi, tpd_led); - return read_tpd_state(eeepc); + return read_tpd_led_state(eeepc); } static int eeepc_wmi_led_init(struct eeepc_wmi *eeepc) { int rv; - if (read_tpd_state(eeepc) < 0) + if (read_tpd_led_state(eeepc) < 0) return 0; eeepc->led_workqueue = create_singlethread_workqueue("led_workqueue"); @@ -333,30 +390,280 @@ } /* + * PCI hotplug (for wlan rfkill) + */ +static bool eeepc_wlan_rfkill_blocked(struct eeepc_wmi *eeepc) +{ + int result = eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_WLAN); + + if (result < 0) + return false; + return !result; +} + +static void eeepc_rfkill_hotplug(struct eeepc_wmi *eeepc) +{ + struct pci_dev *dev; + struct pci_bus *bus; + bool blocked; + bool absent; + u32 l; + + mutex_lock(&eeepc->wmi_lock); + blocked = eeepc_wlan_rfkill_blocked(eeepc); + mutex_unlock(&eeepc->wmi_lock); + + mutex_lock(&eeepc->hotplug_lock); + + if (eeepc->wlan_rfkill) + rfkill_set_sw_state(eeepc->wlan_rfkill, blocked); + + if (eeepc->hotplug_slot) { + bus = pci_find_bus(0, 1); + if (!bus) { + pr_warning("Unable to find PCI bus 1?\n"); + goto out_unlock; + } + + if (pci_bus_read_config_dword(bus, 0, PCI_VENDOR_ID, &l)) { + pr_err("Unable to read PCI config space?\n"); + goto out_unlock; + } + absent = (l == 0xffffffff); + + if (blocked != absent) { + pr_warning("BIOS says wireless lan is %s, " + "but the pci device is %s\n", + blocked ? "blocked" : "unblocked", + absent ? "absent" : "present"); + pr_warning("skipped wireless hotplug as probably " + "inappropriate for this model\n"); + goto out_unlock; + } + + if (!blocked) { + dev = pci_get_slot(bus, 0); + if (dev) { + /* Device already present */ + pci_dev_put(dev); + goto out_unlock; + } + dev = pci_scan_single_device(bus, 0); + if (dev) { + pci_bus_assign_resources(bus); + if (pci_bus_add_device(dev)) + pr_err("Unable to hotplug wifi\n"); + } + } else { + dev = pci_get_slot(bus, 0); + if (dev) { + pci_remove_bus_device(dev); + pci_dev_put(dev); + } + } + } + +out_unlock: + mutex_unlock(&eeepc->hotplug_lock); +} + +static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data) +{ + struct eeepc_wmi *eeepc = data; + + if (event != ACPI_NOTIFY_BUS_CHECK) + return; + + /* + * We can't call directly eeepc_rfkill_hotplug because most + * of the time WMBC is still being executed and not reetrant. + * There is currently no way to tell ACPICA that we want this + * method to be serialized, we schedule a eeepc_rfkill_hotplug + * call later, in a safer context. + */ + queue_work(eeepc->hotplug_workqueue, &eeepc->hotplug_work); +} + +static int eeepc_register_rfkill_notifier(struct eeepc_wmi *eeepc, + char *node) +{ + acpi_status status; + acpi_handle handle; + + status = acpi_get_handle(NULL, node, &handle); + + if (ACPI_SUCCESS(status)) { + status = acpi_install_notify_handler(handle, + ACPI_SYSTEM_NOTIFY, + eeepc_rfkill_notify, + eeepc); + if (ACPI_FAILURE(status)) + pr_warning("Failed to register notify on %s\n", node); + } else + return -ENODEV; + + return 0; +} + +static void eeepc_unregister_rfkill_notifier(struct eeepc_wmi *eeepc, + char *node) +{ + acpi_status status = AE_OK; + acpi_handle handle; + + status = acpi_get_handle(NULL, node, &handle); + + if (ACPI_SUCCESS(status)) { + status = acpi_remove_notify_handler(handle, + ACPI_SYSTEM_NOTIFY, + eeepc_rfkill_notify); + if (ACPI_FAILURE(status)) + pr_err("Error removing rfkill notify handler %s\n", + node); + } +} + +static int eeepc_get_adapter_status(struct hotplug_slot *hotplug_slot, + u8 *value) +{ + int result = eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_WLAN); + + if (result < 0) + return result; + + *value = !!result; + return 0; +} + +static void eeepc_cleanup_pci_hotplug(struct hotplug_slot *hotplug_slot) +{ + kfree(hotplug_slot->info); + kfree(hotplug_slot); +} + +static struct hotplug_slot_ops eeepc_hotplug_slot_ops = { + .owner = THIS_MODULE, + .get_adapter_status = eeepc_get_adapter_status, + .get_power_status = eeepc_get_adapter_status, +}; + +static void eeepc_hotplug_work(struct work_struct *work) +{ + struct eeepc_wmi *eeepc; + + eeepc = container_of(work, struct eeepc_wmi, hotplug_work); + eeepc_rfkill_hotplug(eeepc); +} + +static int eeepc_setup_pci_hotplug(struct eeepc_wmi *eeepc) +{ + int ret = -ENOMEM; + struct pci_bus *bus = pci_find_bus(0, 1); + + if (!bus) { + pr_err("Unable to find wifi PCI bus\n"); + return -ENODEV; + } + + eeepc->hotplug_workqueue = + create_singlethread_workqueue("hotplug_workqueue"); + if (!eeepc->hotplug_workqueue) + goto error_workqueue; + + INIT_WORK(&eeepc->hotplug_work, eeepc_hotplug_work); + + eeepc->hotplug_slot = kzalloc(sizeof(struct hotplug_slot), GFP_KERNEL); + if (!eeepc->hotplug_slot) + goto error_slot; + + eeepc->hotplug_slot->info = kzalloc(sizeof(struct hotplug_slot_info), + GFP_KERNEL); + if (!eeepc->hotplug_slot->info) + goto error_info; + + eeepc->hotplug_slot->private = eeepc; + eeepc->hotplug_slot->release = &eeepc_cleanup_pci_hotplug; + eeepc->hotplug_slot->ops = &eeepc_hotplug_slot_ops; + eeepc_get_adapter_status(eeepc->hotplug_slot, + &eeepc->hotplug_slot->info->adapter_status); + + ret = pci_hp_register(eeepc->hotplug_slot, bus, 0, "eeepc-wifi"); + if (ret) { + pr_err("Unable to register hotplug slot - %d\n", ret); + goto error_register; + } + + return 0; + +error_register: + kfree(eeepc->hotplug_slot->info); +error_info: + kfree(eeepc->hotplug_slot); + eeepc->hotplug_slot = NULL; +error_slot: + destroy_workqueue(eeepc->hotplug_workqueue); +error_workqueue: + return ret; +} + +/* * Rfkill devices */ static int eeepc_rfkill_set(void *data, bool blocked) { int dev_id = (unsigned long)data; u32 ctrl_param = !blocked; + acpi_status status; + + status = eeepc_wmi_set_devstate(dev_id, ctrl_param, NULL); - return eeepc_wmi_set_devstate(dev_id, ctrl_param, NULL); + if (ACPI_FAILURE(status)) + return -EIO; + + return 0; } static void eeepc_rfkill_query(struct rfkill *rfkill, void *data) { int dev_id = (unsigned long)data; - u32 retval; - acpi_status status; + int result; - status = eeepc_wmi_get_devstate(dev_id, &retval); + result = eeepc_wmi_get_devstate_simple(dev_id); - if (ACPI_FAILURE(status)) + if (result < 0) return ; - rfkill_set_sw_state(rfkill, !(retval & 0x1)); + rfkill_set_sw_state(rfkill, !result); +} + +static int eeepc_rfkill_wlan_set(void *data, bool blocked) +{ + struct eeepc_wmi *eeepc = data; + int ret; + + /* + * This handler is enabled only if hotplug is enabled. + * In this case, the eeepc_wmi_set_devstate() will + * trigger a wmi notification and we need to wait + * this call to finish before being able to call + * any wmi method + */ + mutex_lock(&eeepc->wmi_lock); + ret = eeepc_rfkill_set((void *)(long)EEEPC_WMI_DEVID_WLAN, blocked); + mutex_unlock(&eeepc->wmi_lock); + return ret; } +static void eeepc_rfkill_wlan_query(struct rfkill *rfkill, void *data) +{ + eeepc_rfkill_query(rfkill, (void *)(long)EEEPC_WMI_DEVID_WLAN); +} + +static const struct rfkill_ops eeepc_rfkill_wlan_ops = { + .set_block = eeepc_rfkill_wlan_set, + .query = eeepc_rfkill_wlan_query, +}; + static const struct rfkill_ops eeepc_rfkill_ops = { .set_block = eeepc_rfkill_set, .query = eeepc_rfkill_query, @@ -367,31 +674,22 @@ const char *name, enum rfkill_type type, int dev_id) { - int result; - u32 retval; - acpi_status status; + int result = eeepc_wmi_get_devstate_simple(dev_id); - status = eeepc_wmi_get_devstate(dev_id, &retval); - - if (ACPI_FAILURE(status)) - return -1; - - /* If the device is present, DSTS will always set some bits - * 0x00070000 - 1110000000000000000 - device supported - * 0x00060000 - 1100000000000000000 - not supported - * 0x00020000 - 0100000000000000000 - device supported - * 0x00010000 - 0010000000000000000 - not supported / special mode ? - */ - if (!retval || retval == 0x00060000) - return -ENODEV; + if (result < 0) + return result; - *rfkill = rfkill_alloc(name, &eeepc->platform_device->dev, type, - &eeepc_rfkill_ops, (void *)(long)dev_id); + if (dev_id == EEEPC_WMI_DEVID_WLAN && eeepc->hotplug_wireless) + *rfkill = rfkill_alloc(name, &eeepc->platform_device->dev, type, + &eeepc_rfkill_wlan_ops, eeepc); + else + *rfkill = rfkill_alloc(name, &eeepc->platform_device->dev, type, + &eeepc_rfkill_ops, (void *)(long)dev_id); if (!*rfkill) return -EINVAL; - rfkill_init_sw_state(*rfkill, !(retval & 0x1)); + rfkill_init_sw_state(*rfkill, !result); result = rfkill_register(*rfkill); if (result) { rfkill_destroy(*rfkill); @@ -403,16 +701,34 @@ static void eeepc_wmi_rfkill_exit(struct eeepc_wmi *eeepc) { + eeepc_unregister_rfkill_notifier(eeepc, "\\_SB.PCI0.P0P5"); + eeepc_unregister_rfkill_notifier(eeepc, "\\_SB.PCI0.P0P6"); + eeepc_unregister_rfkill_notifier(eeepc, "\\_SB.PCI0.P0P7"); if (eeepc->wlan_rfkill) { rfkill_unregister(eeepc->wlan_rfkill); rfkill_destroy(eeepc->wlan_rfkill); eeepc->wlan_rfkill = NULL; } + /* + * Refresh pci hotplug in case the rfkill state was changed after + * eeepc_unregister_rfkill_notifier() + */ + eeepc_rfkill_hotplug(eeepc); + if (eeepc->hotplug_slot) + pci_hp_deregister(eeepc->hotplug_slot); + if (eeepc->hotplug_workqueue) + destroy_workqueue(eeepc->hotplug_workqueue); + if (eeepc->bluetooth_rfkill) { rfkill_unregister(eeepc->bluetooth_rfkill); rfkill_destroy(eeepc->bluetooth_rfkill); eeepc->bluetooth_rfkill = NULL; } + if (eeepc->wimax_rfkill) { + rfkill_unregister(eeepc->wimax_rfkill); + rfkill_destroy(eeepc->wimax_rfkill); + eeepc->wimax_rfkill = NULL; + } if (eeepc->wwan3g_rfkill) { rfkill_unregister(eeepc->wwan3g_rfkill); rfkill_destroy(eeepc->wwan3g_rfkill); @@ -424,6 +740,9 @@ { int result = 0; + mutex_init(&eeepc->hotplug_lock); + mutex_init(&eeepc->wmi_lock); + result = eeepc_new_rfkill(eeepc, &eeepc->wlan_rfkill, "eeepc-wlan", RFKILL_TYPE_WLAN, EEEPC_WMI_DEVID_WLAN); @@ -438,6 +757,13 @@ if (result && result != -ENODEV) goto exit; + result = eeepc_new_rfkill(eeepc, &eeepc->wimax_rfkill, + "eeepc-wimax", RFKILL_TYPE_WIMAX, + EEEPC_WMI_DEVID_WIMAX); + + if (result && result != -ENODEV) + goto exit; + result = eeepc_new_rfkill(eeepc, &eeepc->wwan3g_rfkill, "eeepc-wwan3g", RFKILL_TYPE_WWAN, EEEPC_WMI_DEVID_WWAN3G); @@ -445,6 +771,26 @@ if (result && result != -ENODEV) goto exit; + if (!eeepc->hotplug_wireless) + goto exit; + + result = eeepc_setup_pci_hotplug(eeepc); + /* + * If we get -EBUSY then something else is handling the PCI hotplug - + * don't fail in this case + */ + if (result == -EBUSY) + result = 0; + + eeepc_register_rfkill_notifier(eeepc, "\\_SB.PCI0.P0P5"); + eeepc_register_rfkill_notifier(eeepc, "\\_SB.PCI0.P0P6"); + eeepc_register_rfkill_notifier(eeepc, "\\_SB.PCI0.P0P7"); + /* + * Refresh pci hotplug in case the rfkill state was changed during + * setup. + */ + eeepc_rfkill_hotplug(eeepc); + exit: if (result && result != -ENODEV) eeepc_wmi_rfkill_exit(eeepc); @@ -458,34 +804,53 @@ /* * Backlight */ +static int read_backlight_power(void) +{ + int ret = eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_BACKLIGHT); + + if (ret < 0) + return ret; + + return ret ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN; +} + static int read_brightness(struct backlight_device *bd) { u32 retval; acpi_status status; - status = eeepc_wmi_get_devstate(EEEPC_WMI_DEVID_BACKLIGHT, &retval); + status = eeepc_wmi_get_devstate(EEEPC_WMI_DEVID_BRIGHTNESS, &retval); if (ACPI_FAILURE(status)) - return -1; + return -EIO; else - return retval & 0xFF; + return retval & EEEPC_WMI_DSTS_BRIGHTNESS_MASK; } static int update_bl_status(struct backlight_device *bd) { - u32 ctrl_param; acpi_status status; + int power; ctrl_param = bd->props.brightness; - status = eeepc_wmi_set_devstate(EEEPC_WMI_DEVID_BACKLIGHT, + status = eeepc_wmi_set_devstate(EEEPC_WMI_DEVID_BRIGHTNESS, ctrl_param, NULL); if (ACPI_FAILURE(status)) - return -1; - else - return 0; + return -EIO; + + power = read_backlight_power(); + if (power != -ENODEV && bd->props.power != power) { + ctrl_param = !!(bd->props.power == FB_BLANK_UNBLANK); + status = eeepc_wmi_set_devstate(EEEPC_WMI_DEVID_BACKLIGHT, + ctrl_param, NULL); + + if (ACPI_FAILURE(status)) + return -EIO; + } + return 0; } static const struct backlight_ops eeepc_wmi_bl_ops = { @@ -515,9 +880,29 @@ { struct backlight_device *bd; struct backlight_properties props; + int max; + int power; + + max = eeepc_wmi_get_devstate_bits(EEEPC_WMI_DEVID_BRIGHTNESS, + EEEPC_WMI_DSTS_MAX_BRIGTH_MASK); + power = read_backlight_power(); + + if (max < 0 && power < 0) { + /* Try to keep the original error */ + if (max == -ENODEV && power == -ENODEV) + return -ENODEV; + if (max != -ENODEV) + return max; + else + return power; + } + if (max == -ENODEV) + max = 0; + if (power == -ENODEV) + power = FB_BLANK_UNBLANK; memset(&props, 0, sizeof(struct backlight_properties)); - props.max_brightness = 15; + props.max_brightness = max; bd = backlight_device_register(EEEPC_WMI_FILE, &eeepc->platform_device->dev, eeepc, &eeepc_wmi_bl_ops, &props); @@ -529,7 +914,7 @@ eeepc->backlight_device = bd; bd->props.brightness = read_brightness(bd); - bd->props.power = FB_BLANK_UNBLANK; + bd->props.power = power; backlight_update_status(bd); return 0; @@ -543,6 +928,25 @@ eeepc->backlight_device = NULL; } +static void eeepc_wmi_homekey_filter(struct eeepc_wmi *eeepc, int *code, + unsigned int *value, bool *autorelease) +{ + switch (*code) { + case HOME_PRESS: + *value = 1; + *autorelease = 0; + break; + case HOME_HOLD: + *code = EEEPC_WMI_KEY_IGNORE; + break; + case HOME_RELEASE: + *code = HOME_PRESS; + *value = 0; + *autorelease = 0; + break; + } +} + static void eeepc_wmi_notify(u32 value, void *context) { struct eeepc_wmi *eeepc = context; @@ -551,6 +955,8 @@ acpi_status status; int code; int orig_code; + unsigned int key_value = 1; + bool autorelease = 1; status = wmi_get_event_data(value, &response); if (status != AE_OK) { @@ -564,6 +970,11 @@ code = obj->integer.value; orig_code = code; + eeepc_wmi_homekey_filter(eeepc, &code, &key_value, + &autorelease); + if (code == EEEPC_WMI_KEY_IGNORE) + goto exit; + if (code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNUP_MAX) code = NOTIFY_BRNUP_MIN; else if (code >= NOTIFY_BRNDOWN_MIN && @@ -575,14 +986,80 @@ eeepc_wmi_backlight_notify(eeepc, orig_code); } - if (!sparse_keymap_report_event(eeepc->inputdev, - code, 1, true)) + if (!sparse_keymap_report_event(eeepc->inputdev, code, + key_value, autorelease)) pr_info("Unknown key %x pressed\n", code); } +exit: kfree(obj); } +/* + * Sys helpers + */ +static int parse_arg(const char *buf, unsigned long count, int *val) +{ + if (!count) + return 0; + if (sscanf(buf, "%i", val) != 1) + return -EINVAL; + return count; +} + +static ssize_t store_sys_wmi(int devid, const char *buf, size_t count) +{ + acpi_status status; + u32 retval; + int rv, value; + + value = eeepc_wmi_get_devstate_simple(devid); + if (value == -ENODEV) /* Check device presence */ + return value; + + rv = parse_arg(buf, count, &value); + status = eeepc_wmi_set_devstate(devid, value, &retval); + + if (ACPI_FAILURE(status)) + return -EIO; + return rv; +} + +static ssize_t show_sys_wmi(int devid, char *buf) +{ + int value = eeepc_wmi_get_devstate_simple(devid); + + if (value < 0) + return value; + + return sprintf(buf, "%d\n", value); +} + +#define EEEPC_WMI_CREATE_DEVICE_ATTR(_name, _mode, _cm) \ + static ssize_t show_##_name(struct device *dev, \ + struct device_attribute *attr, \ + char *buf) \ + { \ + return show_sys_wmi(_cm, buf); \ + } \ + static ssize_t store_##_name(struct device *dev, \ + struct device_attribute *attr, \ + const char *buf, size_t count) \ + { \ + return store_sys_wmi(_cm, buf, count); \ + } \ + static struct device_attribute dev_attr_##_name = { \ + .attr = { \ + .name = __stringify(_name), \ + .mode = _mode }, \ + .show = show_##_name, \ + .store = store_##_name, \ + } + +EEEPC_WMI_CREATE_DEVICE_ATTR(touchpad, 0644, EEEPC_WMI_DEVID_TOUCHPAD); +EEEPC_WMI_CREATE_DEVICE_ATTR(camera, 0644, EEEPC_WMI_DEVID_CAMERA); +EEEPC_WMI_CREATE_DEVICE_ATTR(cardr, 0644, EEEPC_WMI_DEVID_CARDREADER); + static ssize_t store_cpufv(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { @@ -608,11 +1085,35 @@ static struct attribute *platform_attributes[] = { &dev_attr_cpufv.attr, + &dev_attr_camera.attr, + &dev_attr_cardr.attr, + &dev_attr_touchpad.attr, NULL }; +static mode_t eeepc_sysfs_is_visible(struct kobject *kobj, + struct attribute *attr, + int idx) +{ + bool supported = true; + int devid = -1; + + if (attr == &dev_attr_camera.attr) + devid = EEEPC_WMI_DEVID_CAMERA; + else if (attr == &dev_attr_cardr.attr) + devid = EEEPC_WMI_DEVID_CARDREADER; + else if (attr == &dev_attr_touchpad.attr) + devid = EEEPC_WMI_DEVID_TOUCHPAD; + + if (devid != -1) + supported = eeepc_wmi_get_devstate_simple(devid) != -ENODEV; + + return supported ? attr->mode : 0; +} + static struct attribute_group platform_attribute_group = { - .attrs = platform_attributes + .is_visible = eeepc_sysfs_is_visible, + .attrs = platform_attributes }; static void eeepc_wmi_sysfs_exit(struct platform_device *device) @@ -630,33 +1131,12 @@ */ static int __init eeepc_wmi_platform_init(struct eeepc_wmi *eeepc) { - int err; - - eeepc->platform_device = platform_device_alloc(EEEPC_WMI_FILE, -1); - if (!eeepc->platform_device) - return -ENOMEM; - platform_set_drvdata(eeepc->platform_device, eeepc); - - err = platform_device_add(eeepc->platform_device); - if (err) - goto fail_platform_device; - - err = eeepc_wmi_sysfs_init(eeepc->platform_device); - if (err) - goto fail_sysfs; - return 0; - -fail_sysfs: - platform_device_del(eeepc->platform_device); -fail_platform_device: - platform_device_put(eeepc->platform_device); - return err; + return eeepc_wmi_sysfs_init(eeepc->platform_device); } static void eeepc_wmi_platform_exit(struct eeepc_wmi *eeepc) { eeepc_wmi_sysfs_exit(eeepc->platform_device); - platform_device_unregister(eeepc->platform_device); } /* @@ -770,7 +1250,29 @@ /* * WMI Driver */ -static struct platform_device * __init eeepc_wmi_add(void) +static void eeepc_dmi_check(struct eeepc_wmi *eeepc) +{ + const char *model; + + model = dmi_get_system_info(DMI_PRODUCT_NAME); + if (!model) + return; + + /* + * Whitelist for wlan hotplug + * + * Eeepc 1000H needs the current hotplug code to handle + * Fn+F2 correctly. We may add other Eeepc here later, but + * it seems that most of the laptops supported by eeepc-wmi + * don't need to be on this list + */ + if (strcmp(model, "1000H") == 0) { + eeepc->hotplug_wireless = true; + pr_info("wlan hotplug enabled\n"); + } +} + +static int __init eeepc_wmi_add(struct platform_device *pdev) { struct eeepc_wmi *eeepc; acpi_status status; @@ -778,12 +1280,14 @@ eeepc = kzalloc(sizeof(struct eeepc_wmi), GFP_KERNEL); if (!eeepc) - return ERR_PTR(-ENOMEM); + return -ENOMEM; + + eeepc->platform_device = pdev; + platform_set_drvdata(eeepc->platform_device, eeepc); + + eeepc->hotplug_wireless = hotplug_wireless; + eeepc_dmi_check(eeepc); - /* - * Register the platform device first. It is used as a parent for the - * sub-devices below. - */ err = eeepc_wmi_platform_init(eeepc); if (err) goto fail_platform; @@ -802,7 +1306,7 @@ if (!acpi_video_backlight_support()) { err = eeepc_wmi_backlight_init(eeepc); - if (err) + if (err && err != -ENODEV) goto fail_backlight; } else pr_info("Backlight controlled by ACPI video driver\n"); @@ -820,7 +1324,7 @@ if (err) goto fail_debugfs; - return eeepc->platform_device; + return 0; fail_debugfs: wmi_remove_notify_handler(EEEPC_WMI_EVENT_GUID); @@ -836,10 +1340,10 @@ eeepc_wmi_platform_exit(eeepc); fail_platform: kfree(eeepc); - return ERR_PTR(err); + return err; } -static int eeepc_wmi_remove(struct platform_device *device) +static int __exit eeepc_wmi_remove(struct platform_device *device) { struct eeepc_wmi *eeepc; @@ -856,10 +1360,64 @@ return 0; } +/* + * Platform driver - hibernate/resume callbacks + */ +static int eeepc_hotk_thaw(struct device *device) +{ + struct eeepc_wmi *eeepc = dev_get_drvdata(device); + + if (eeepc->wlan_rfkill) { + bool wlan; + + /* + * Work around bios bug - acpi _PTS turns off the wireless led + * during suspend. Normally it restores it on resume, but + * we should kick it ourselves in case hibernation is aborted. + */ + wlan = eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_WLAN); + eeepc_wmi_set_devstate(EEEPC_WMI_DEVID_WLAN, wlan, NULL); + } + + return 0; +} + +static int eeepc_hotk_restore(struct device *device) +{ + struct eeepc_wmi *eeepc = dev_get_drvdata(device); + int bl; + + /* Refresh both wlan rfkill state and pci hotplug */ + if (eeepc->wlan_rfkill) + eeepc_rfkill_hotplug(eeepc); + + if (eeepc->bluetooth_rfkill) { + bl = !eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_BLUETOOTH); + rfkill_set_sw_state(eeepc->bluetooth_rfkill, bl); + } + if (eeepc->wimax_rfkill) { + bl = !eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_WIMAX); + rfkill_set_sw_state(eeepc->wimax_rfkill, bl); + } + if (eeepc->wwan3g_rfkill) { + bl = !eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_WWAN3G); + rfkill_set_sw_state(eeepc->wwan3g_rfkill, bl); + } + + return 0; +} + +static const struct dev_pm_ops eeepc_pm_ops = { + .thaw = eeepc_hotk_thaw, + .restore = eeepc_hotk_restore, +}; + static struct platform_driver platform_driver = { + .remove = __exit_p(eeepc_wmi_remove), .driver = { .name = EEEPC_WMI_FILE, .owner = THIS_MODULE, + .pm = &eeepc_pm_ops, }, }; @@ -884,10 +1442,8 @@ return -1; } -static int __init eeepc_wmi_init(void) +static int __init eeepc_wmi_probe(struct platform_device *pdev) { - int err; - if (!wmi_has_guid(EEEPC_WMI_EVENT_GUID) || !wmi_has_guid(EEEPC_WMI_MGMT_GUID)) { pr_warning("No known WMI GUID found\n"); @@ -904,29 +1460,24 @@ return -ENODEV; } - platform_device = eeepc_wmi_add(); - if (IS_ERR(platform_device)) { - err = PTR_ERR(platform_device); - goto fail_eeepc_wmi; - } + return eeepc_wmi_add(pdev); +} - err = platform_driver_register(&platform_driver); - if (err) { - pr_warning("Unable to register platform driver\n"); - goto fail_platform_driver; - } +static struct platform_device *platform_device; +static int __init eeepc_wmi_init(void) +{ + platform_device = platform_create_bundle(&platform_driver, + eeepc_wmi_probe, + NULL, 0, NULL, 0); + if (IS_ERR(platform_device)) + return PTR_ERR(platform_device); return 0; - -fail_platform_driver: - eeepc_wmi_remove(platform_device); -fail_eeepc_wmi: - return err; } static void __exit eeepc_wmi_exit(void) { - eeepc_wmi_remove(platform_device); + platform_device_unregister(platform_device); platform_driver_unregister(&platform_driver); } --- linux-2.6.38.orig/drivers/platform/x86/thinkpad_acpi.c +++ linux-2.6.38/drivers/platform/x86/thinkpad_acpi.c @@ -128,7 +128,8 @@ }; /* ACPI HIDs */ -#define TPACPI_ACPI_HKEY_HID "IBM0068" +#define TPACPI_ACPI_IBM_HKEY_HID "IBM0068" +#define TPACPI_ACPI_LENOVO_HKEY_HID "LEN0068" #define TPACPI_ACPI_EC_HID "PNP0C09" /* Input IDs */ @@ -3879,7 +3880,8 @@ } static const struct acpi_device_id ibm_htk_device_ids[] = { - {TPACPI_ACPI_HKEY_HID, 0}, + {TPACPI_ACPI_IBM_HKEY_HID, 0}, + {TPACPI_ACPI_LENOVO_HKEY_HID, 0}, {"", 0}, }; --- linux-2.6.38.orig/drivers/platform/x86/sony-laptop.c +++ linux-2.6.38/drivers/platform/x86/sony-laptop.c @@ -1460,6 +1460,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; @@ -1470,6 +1474,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; @@ -2901,6 +2906,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: @@ -2971,6 +2982,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", @@ -2985,6 +3006,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.38.orig/drivers/platform/x86/dell-laptop.c +++ linux-2.6.38/drivers/platform/x86/dell-laptop.c @@ -290,12 +290,9 @@ dell_send_request(buffer, 17, 11); /* If the hardware switch controls this radio, and the hardware - switch is disabled, don't allow changing the software state. - If the hardware switch is reported as not supported, always - fire the SMI to toggle the killswitch. */ + switch is disabled, don't allow changing the software state */ if ((hwswitch_state & BIT(hwswitch_bit)) && - !(buffer->output[1] & BIT(16)) && - (buffer->output[1] & BIT(0))) { + !(buffer->output[1] & BIT(16))) { ret = -EINVAL; goto out; } @@ -401,23 +398,6 @@ static void dell_update_rfkill(struct work_struct *ignored) { - int status; - - get_buffer(); - dell_send_request(buffer, 17, 11); - status = buffer->output[1]; - release_buffer(); - - /* if hardware rfkill is not supported, set it explicitly */ - if (!(status & BIT(0))) { - if (wifi_rfkill) - dell_rfkill_set((void *)1, !((status & BIT(17)) >> 17)); - if (bluetooth_rfkill) - dell_rfkill_set((void *)2, !((status & BIT(18)) >> 18)); - if (wwan_rfkill) - dell_rfkill_set((void *)3, !((status & BIT(19)) >> 19)); - } - if (wifi_rfkill) dell_rfkill_query(wifi_rfkill, (void *)1); if (bluetooth_rfkill) --- linux-2.6.38.orig/drivers/platform/x86/Kconfig +++ linux-2.6.38/drivers/platform/x86/Kconfig @@ -101,6 +101,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 --- linux-2.6.38.orig/drivers/platform/x86/ideapad-laptop.c +++ linux-2.6.38/drivers/platform/x86/ideapad-laptop.c @@ -459,6 +459,8 @@ if (test_bit(vpc_bit, &vpc1)) { if (vpc_bit == 9) ideapad_sync_rfk_state(adevice); + else if (vpc_bit == 4) + read_ec_data(handle, 0x12, &vpc2); else ideapad_input_report(priv, vpc_bit); } --- linux-2.6.38.orig/drivers/platform/x86/Makefile +++ linux-2.6.38/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 --- linux-2.6.38.orig/drivers/platform/x86/dell-wmi-aio.c +++ linux-2.6.38/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.38.orig/drivers/platform/x86/acer-wmi.c +++ linux-2.6.38/drivers/platform/x86/acer-wmi.c @@ -103,6 +103,7 @@ static const struct key_entry acer_wmi_keymap[] = { {KE_KEY, 0x01, {KEY_WLAN} }, /* WiFi */ + {KE_KEY, 0x04, {KEY_WLAN} }, /* WiFi */ {KE_KEY, 0x12, {KEY_BLUETOOTH} }, /* BT */ {KE_KEY, 0x21, {KEY_PROG1} }, /* Backup */ {KE_KEY, 0x22, {KEY_PROG2} }, /* Arcade */ @@ -222,6 +223,7 @@ static struct rfkill *wireless_rfkill; static struct rfkill *bluetooth_rfkill; static struct rfkill *threeg_rfkill; +static bool rfkill_inited; /* Each low-level interface must define at least some of the following */ struct wmi_interface { @@ -1161,9 +1163,13 @@ { acpi_status status; u32 cap = (unsigned long)data; - status = set_u32(!blocked, cap); - if (ACPI_FAILURE(status)) - return -ENODEV; + + if (rfkill_inited) { + status = set_u32(!blocked, cap); + if (ACPI_FAILURE(status)) + return -ENODEV; + } + return 0; } @@ -1187,14 +1193,16 @@ return ERR_PTR(-ENOMEM); status = get_device_status(&state, cap); - if (ACPI_SUCCESS(status)) - rfkill_init_sw_state(rfkill_dev, !state); err = rfkill_register(rfkill_dev); if (err) { rfkill_destroy(rfkill_dev); return ERR_PTR(err); } + + if (ACPI_SUCCESS(status)) + rfkill_set_sw_state(rfkill_dev, !state); + return rfkill_dev; } @@ -1229,14 +1237,19 @@ } } - schedule_delayed_work(&acer_rfkill_work, round_jiffies_relative(HZ)); + rfkill_inited = true; + + if (ec_raw_mode || !wmi_has_guid(ACERWMID_EVENT_GUID)) + schedule_delayed_work(&acer_rfkill_work, + round_jiffies_relative(HZ)); return 0; } static void acer_rfkill_exit(void) { - cancel_delayed_work_sync(&acer_rfkill_work); + if (ec_raw_mode || !wmi_has_guid(ACERWMID_EVENT_GUID)) + cancel_delayed_work_sync(&acer_rfkill_work); rfkill_unregister(wireless_rfkill); rfkill_destroy(wireless_rfkill); @@ -1306,6 +1319,8 @@ union acpi_object *obj; struct event_return_value return_value; acpi_status status; + u16 device_state; + const struct key_entry *key; status = wmi_get_event_data(value, &response); if (status != AE_OK) { @@ -1335,10 +1350,32 @@ switch (return_value.function) { case WMID_HOTKEY_EVENT: - if (!sparse_keymap_report_event(acer_wmi_input_dev, - return_value.key_num, 1, true)) + device_state = return_value.device_state; + pr_debug("device state: 0x%x\n", device_state); + + key = sparse_keymap_entry_from_scancode(acer_wmi_input_dev, + return_value.key_num); + if (!key) { printk(ACER_WARNING "Unknown key number - 0x%x\n", return_value.key_num); + } else { + switch (key->keycode) { + case KEY_WLAN: + case KEY_BLUETOOTH: + if (has_cap(ACER_CAP_WIRELESS)) + rfkill_set_sw_state(wireless_rfkill, + !(device_state & ACER_WMID3_GDS_WIRELESS)); + if (has_cap(ACER_CAP_THREEG)) + rfkill_set_sw_state(threeg_rfkill, + !(device_state & ACER_WMID3_GDS_THREEG)); + if (has_cap(ACER_CAP_BLUETOOTH)) + rfkill_set_sw_state(bluetooth_rfkill, + !(device_state & ACER_WMID3_GDS_BLUETOOTH)); + break; + } + sparse_keymap_report_entry(acer_wmi_input_dev, key, + 1, true); + } break; default: printk(ACER_WARNING "Unknown function number - %d - %d\n", --- linux-2.6.38.orig/drivers/input/sparse-keymap.c +++ linux-2.6.38/drivers/input/sparse-keymap.c @@ -208,6 +208,12 @@ } } + if (test_bit(EV_KEY, dev->evbit)) { + __set_bit(KEY_UNKNOWN, dev->keybit); + __set_bit(EV_MSC, dev->evbit); + __set_bit(MSC_SCAN, dev->mscbit); + } + dev->keycode = map; dev->keycodemax = map_size; dev->getkeycode_new = sparse_keymap_getkeycode; @@ -268,6 +274,7 @@ { switch (ke->type) { case KE_KEY: + input_event(dev, EV_MSC, MSC_SCAN, ke->code); input_report_key(dev, ke->keycode, value); input_sync(dev); if (value && autorelease) { @@ -305,12 +312,19 @@ { const struct key_entry *ke = sparse_keymap_entry_from_scancode(dev, code); + struct key_entry unknown_ke; if (ke) { sparse_keymap_report_entry(dev, ke, value, autorelease); return true; } + /* Report an unknown key event as a debugging aid */ + unknown_ke.type = KE_KEY; + unknown_ke.code = code; + unknown_ke.keycode = KEY_UNKNOWN; + sparse_keymap_report_entry(dev, &unknown_ke, value, true); + return false; } EXPORT_SYMBOL(sparse_keymap_report_event); --- linux-2.6.38.orig/drivers/input/xen-kbdfront.c +++ linux-2.6.38/drivers/input/xen-kbdfront.c @@ -110,7 +110,7 @@ static int __devinit xenkbd_probe(struct xenbus_device *dev, const struct xenbus_device_id *id) { - int ret, i; + int ret, i, abs; struct xenkbd_info *info; struct input_dev *kbd, *ptr; @@ -128,6 +128,11 @@ if (!info->page) goto error_nomem; + if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-abs-pointer", "%d", &abs) < 0) + abs = 0; + if (abs) + xenbus_printf(XBT_NIL, dev->nodename, "request-abs-pointer", "1"); + /* keyboard */ kbd = input_allocate_device(); if (!kbd) @@ -137,11 +142,12 @@ kbd->id.bustype = BUS_PCI; kbd->id.vendor = 0x5853; kbd->id.product = 0xffff; - kbd->evbit[0] = BIT(EV_KEY); + + __set_bit(EV_KEY, kbd->evbit); for (i = KEY_ESC; i < KEY_UNKNOWN; i++) - set_bit(i, kbd->keybit); + __set_bit(i, kbd->keybit); for (i = KEY_OK; i < KEY_MAX; i++) - set_bit(i, kbd->keybit); + __set_bit(i, kbd->keybit); ret = input_register_device(kbd); if (ret) { @@ -160,12 +166,20 @@ ptr->id.bustype = BUS_PCI; ptr->id.vendor = 0x5853; ptr->id.product = 0xfffe; - ptr->evbit[0] = BIT(EV_KEY) | BIT(EV_REL) | BIT(EV_ABS); + + if (abs) { + __set_bit(EV_ABS, ptr->evbit); + input_set_abs_params(ptr, ABS_X, 0, XENFB_WIDTH, 0, 0); + input_set_abs_params(ptr, ABS_Y, 0, XENFB_HEIGHT, 0, 0); + } else { + input_set_capability(ptr, EV_REL, REL_X); + input_set_capability(ptr, EV_REL, REL_Y); + } + input_set_capability(ptr, EV_REL, REL_WHEEL); + + __set_bit(EV_KEY, ptr->evbit); for (i = BTN_LEFT; i <= BTN_TASK; i++) - set_bit(i, ptr->keybit); - ptr->relbit[0] = BIT(REL_X) | BIT(REL_Y) | BIT(REL_WHEEL); - input_set_abs_params(ptr, ABS_X, 0, XENFB_WIDTH, 0, 0); - input_set_abs_params(ptr, ABS_Y, 0, XENFB_HEIGHT, 0, 0); + __set_bit(i, ptr->keybit); ret = input_register_device(ptr); if (ret) { --- linux-2.6.38.orig/drivers/input/keyboard/atkbd.c +++ linux-2.6.38/drivers/input/keyboard/atkbd.c @@ -936,6 +936,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[] = { @@ -1709,6 +1717,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.38.orig/drivers/input/tablet/wacom_wac.c +++ linux-2.6.38/drivers/input/tablet/wacom_wac.c @@ -1431,6 +1431,8 @@ { "Wacom ISDv4 E2", WACOM_PKGLEN_TPC2FG, 26202, 16325, 255, 0, TABLETPC2FG }; static const struct wacom_features wacom_features_0xE3 = { "Wacom ISDv4 E3", WACOM_PKGLEN_TPC2FG, 26202, 16325, 255, 0, TABLETPC2FG }; +static const struct wacom_features wacom_features_0xE6 = + { "ISD-V4", WACOM_PKGLEN_TPC2FG, 27760, 15694, 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 = @@ -1541,6 +1543,7 @@ { USB_DEVICE_WACOM(0x9F) }, { USB_DEVICE_WACOM(0xE2) }, { USB_DEVICE_WACOM(0xE3) }, + { USB_DEVICE_WACOM(0xE6) }, { USB_DEVICE_WACOM(0x47) }, { USB_DEVICE_LENOVO(0x6004) }, { } --- linux-2.6.38.orig/drivers/input/mouse/synaptics.c +++ linux-2.6.38/drivers/input/mouse/synaptics.c @@ -836,8 +836,8 @@ }, }, - { } #endif + { } }; static bool broken_olpc_ec; @@ -851,8 +851,8 @@ DMI_MATCH(DMI_PRODUCT_NAME, "XO"), }, }, - { } #endif + { } }; void __init synaptics_module_init(void) --- linux-2.6.38.orig/drivers/input/mouse/alps.h +++ linux-2.6.38/drivers/input/mouse/alps.h @@ -26,6 +26,12 @@ struct timer_list timer; }; +struct alps_model_quirk { +unsigned char signature[3]; +int (*alps_model_quirk_hw_init)(void *data); +void (*alps_model_quirk_init)(void *data); +}; + #ifdef CONFIG_MOUSE_PS2_ALPS int alps_detect(struct psmouse *psmouse, bool set_properties); int alps_init(struct psmouse *psmouse); --- linux-2.6.38.orig/drivers/input/mouse/psmouse-base.c +++ linux-2.6.38/drivers/input/mouse/psmouse-base.c @@ -661,7 +661,8 @@ ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS); if (alps_detect(psmouse, set_properties) == 0) { if (!set_properties || alps_init(psmouse) == 0) - return PSMOUSE_ALPS; +/* If ALPS model quirk was applied, don't change the settings */ + return psmouse->type ? psmouse->type : PSMOUSE_ALPS; /* * Init failed, try basic relative protocols */ --- linux-2.6.38.orig/drivers/input/mouse/bcm5974.c +++ linux-2.6.38/drivers/input/mouse/bcm5974.c @@ -63,6 +63,10 @@ #define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI 0x0242 #define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO 0x0243 #define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS 0x0244 +/* Macbook8 (unibody, March 2011) */ +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI 0x0245 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ISO 0x0246 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_JIS 0x0247 #define BCM5974_DEVICE(prod) { \ .match_flags = (USB_DEVICE_ID_MATCH_DEVICE | \ @@ -96,6 +100,10 @@ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI), BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO), BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS), + /* MacbookPro8 */ + BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI), + BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5_ISO), + BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5_JIS), /* Terminating entry */ {} }; @@ -274,6 +282,18 @@ { DIM_X, DIM_X / SN_COORD, -4616, 5112 }, { DIM_Y, DIM_Y / SN_COORD, -142, 5234 } }, + { + USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI, + USB_DEVICE_ID_APPLE_WELLSPRING5_ISO, + USB_DEVICE_ID_APPLE_WELLSPRING5_JIS, + HAS_INTEGRATED_BUTTON, + 0x84, sizeof(struct bt_data), + 0x81, TYPE2, FINGER_TYPE2, FINGER_TYPE2 + SIZEOF_ALL_FINGERS, + { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 300 }, + { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 }, + { DIM_X, DIM_X / SN_COORD, -4415, 5050 }, + { DIM_Y, DIM_Y / SN_COORD, -55, 6680 } + }, {} }; --- linux-2.6.38.orig/drivers/input/mouse/alps.c +++ linux-2.6.38/drivers/input/mouse/alps.c @@ -15,6 +15,7 @@ * the Free Software Foundation. */ +#include #include #include #include @@ -63,6 +64,8 @@ /* Dell Latitude E5500, E6400, E6500, Precision M4400 */ { { 0x62, 0x02, 0x14 }, 0xcf, 0xcf, ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, + /* Dell Precision 4500 */ + { { 0x73, 0x02, 0x64 }, 0x80, 0x80, 0 }, { { 0x73, 0x02, 0x50 }, 0xcf, 0xcf, ALPS_FOUR_BUTTONS }, /* Dell Vostro 1400 */ { { 0x52, 0x01, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Toshiba Tecra A11-11L */ @@ -111,6 +114,97 @@ * on a dualpoint, etc. */ +static const struct dmi_system_id dell_quirk_table[] = { + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_CHASSIS_TYPE, "8"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_CHASSIS_TYPE, "9"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "ZHAOYANG E47"), + }, + }, + { } +}; + +int alps_model_quirk_enabled; +static void dell_e2_model_init(void *data); + + /* Magic Sequence to enable Intellimouse Mode on Dell E2 Touchpads*/ + +static int dell_e2_setup_intellimouse_mode(void *data) +{ + struct psmouse *psmouse = (struct psmouse *)(data); + struct ps2dev *ps2dev = &psmouse->ps2dev; + unsigned char param[] = {0, 0, 0}; + + if (!dmi_check_system(dell_quirk_table)) + return -1; + + if (ps2_command(ps2dev, param, 0x00f5) || + ps2_command(ps2dev, param, 0x00ea) || + ps2_command(ps2dev, param, 0x00ec) || + ps2_command(ps2dev, param, 0x00ec) || + ps2_command(ps2dev, param, 0x00ec) || + ps2_command(ps2dev, param, 0x03e9)) + return -1; + + dbg("alps:dell_e2_setup: param[0]: %x," + "param[1]: %x, param[2]: %x\n", param[0], + param[1], param[2]); + /* Check for supported model to continue */ + + if (!((param[0] == 0x88) && (param[1] == 0x07) + && ((param[2] == 0x9D) || (param[2] == 0x9B)))) + return -1; + + if (ps2_command(ps2dev, NULL, 0x00ec) || + ps2_command(ps2dev, NULL, 0x00f0) || + ps2_command(ps2dev, NULL, 0x00f0) || + ps2_command(ps2dev, NULL, 0x00f0) || + ps2_command(ps2dev, NULL, 0x00f3) || + ps2_command(ps2dev, NULL, 0x0028) || + ps2_command(ps2dev, NULL, 0x00f0) || + ps2_command(ps2dev, NULL, 0x00f6) || + ps2_command(ps2dev, NULL, 0x00ea) || + ps2_command(ps2dev, NULL, 0x00f4)) + return -1; + + return 0; +} + +static const struct alps_model_quirk alps_model_init_quirk_tbl[] = { + + { {0x73, 0x02, 0x64}, dell_e2_setup_intellimouse_mode, dell_e2_model_init } +}; + +static int alps_model_hw_init_quirk(struct psmouse *psmouse, + const struct alps_model_info *model) +{ + int rc = 1; + int i; + + for (i = 0; i < ARRAY_SIZE(alps_model_init_quirk_tbl); i++) { + if (!memcmp(model->signature, + alps_model_init_quirk_tbl[i].signature, + sizeof(alps_model_init_quirk_tbl[i].signature))) { + rc = alps_model_init_quirk_tbl[i].alps_model_quirk_hw_init(psmouse); + alps_model_quirk_enabled = i + 1; + break; + } + } + + return rc; +} + static bool alps_is_valid_first_byte(const struct alps_model_info *model, unsigned char data) { @@ -599,6 +693,10 @@ struct alps_data *priv = psmouse->private; const struct alps_model_info *model = priv->i; + if (alps_model_hw_init_quirk(psmouse, model)) { + alps_model_quirk_enabled = 0; + } + if ((model->flags & ALPS_PASS) && alps_passthrough_mode(psmouse, true)) { return -1; @@ -647,10 +745,26 @@ psmouse_reset(psmouse); del_timer_sync(&priv->timer); - input_unregister_device(priv->dev2); + if (!alps_model_quirk_enabled) + input_unregister_device(priv->dev2); kfree(priv); } +static void dell_e2_model_init(void *data) +{ + struct psmouse *psmouse = (struct psmouse *)(data); + struct input_dev *dev = psmouse->dev; + + __set_bit(BTN_MIDDLE, dev->keybit); + __set_bit(REL_WHEEL, dev->relbit); + + psmouse->pktsize = 4; + psmouse->type = PSMOUSE_IMPS; + psmouse->disconnect = alps_disconnect; + psmouse->reconnect = alps_reconnect; + +} + int alps_init(struct psmouse *psmouse) { struct alps_data *priv; @@ -677,6 +791,12 @@ if (alps_hw_init(psmouse)) goto init_fail; + if (alps_model_quirk_enabled) { + printk(KERN_WARNING "alps.c: Enabled hardware quirk, falling back to psmouse-core\n"); + alps_model_init_quirk_tbl[alps_model_quirk_enabled-1].alps_model_quirk_init(psmouse); + return 0; + } + /* * Undo part of setup done for us by psmouse core since touchpad * is not a relative device. --- linux-2.6.38.orig/drivers/mmc/host/sdhci.c +++ linux-2.6.38/drivers/mmc/host/sdhci.c @@ -1334,6 +1334,13 @@ host = (struct sdhci_host*)param; + /* + * If this tasklet gets rescheduled while running, it will + * be run again afterwards but without any active request. + */ + if (!host->mrq) + return; + spin_lock_irqsave(&host->lock, flags); del_timer(&host->timer); @@ -1345,7 +1352,7 @@ * upon error conditions. */ if (!(host->flags & SDHCI_DEVICE_DEAD) && - (mrq->cmd->error || + ((mrq->cmd && mrq->cmd->error) || (mrq->data && (mrq->data->error || (mrq->data->stop && mrq->data->stop->error))) || (host->quirks & SDHCI_QUIRK_RESET_AFTER_REQUEST))) { --- linux-2.6.38.orig/drivers/mmc/host/sdhci-pci.c +++ linux-2.6.38/drivers/mmc/host/sdhci-pci.c @@ -547,6 +547,14 @@ }, { + .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_ENE, .device = PCI_DEVICE_ID_ENE_CB712_SD, .subvendor = PCI_ANY_ID, @@ -953,6 +961,7 @@ host->ioaddr = pci_ioremap_bar(pdev, bar); if (!host->ioaddr) { dev_err(&pdev->dev, "failed to remap registers\n"); + ret = -ENOMEM; goto release; } --- linux-2.6.38.orig/drivers/mmc/host/omap_hsmmc.c +++ linux-2.6.38/drivers/mmc/host/omap_hsmmc.c @@ -2058,7 +2058,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); --- linux-2.6.38.orig/drivers/mmc/core/sdio.c +++ linux-2.6.38/drivers/mmc/core/sdio.c @@ -395,6 +395,14 @@ if (err) goto remove; + /* + * Update oldcard with the new RCA received from the SDIO + * device -- we're doing this so that it's updated in the + * "card" struct when oldcard overwrites that later. + */ + if (oldcard) + oldcard->rca = card->rca; + mmc_set_bus_mode(host, MMC_BUSMODE_PUSHPULL); } --- linux-2.6.38.orig/drivers/mmc/core/host.c +++ linux-2.6.38/drivers/mmc/core/host.c @@ -388,3 +388,4 @@ } EXPORT_SYMBOL(mmc_free_host); + --- linux-2.6.38.orig/drivers/cpuidle/governors/menu.c +++ linux-2.6.38/drivers/cpuidle/governors/menu.c @@ -237,6 +237,7 @@ unsigned int power_usage = -1; int i; int multiplier; + struct timespec t; if (data->needs_update) { menu_update(dev); @@ -251,8 +252,9 @@ return 0; /* determine the expected residency time, round up */ + t = ktime_to_timespec(tick_nohz_get_sleep_length()); data->expected_us = - DIV_ROUND_UP((u32)ktime_to_ns(tick_nohz_get_sleep_length()), 1000); + t.tv_sec * USEC_PER_SEC + t.tv_nsec / NSEC_PER_USEC; data->bucket = which_bucket(data->expected_us); --- linux-2.6.38.orig/drivers/ata/libata-eh.c +++ linux-2.6.38/drivers/ata/libata-eh.c @@ -1618,7 +1618,7 @@ * host links. For disabled PMP links, only N bit is * considered as X bit is left at 1 for link plugging. */ - if (link->lpm_policy != ATA_LPM_MAX_POWER) + if (link->lpm_policy > ATA_LPM_MAX_POWER) hotplug_mask = 0; /* hotplug doesn't work w/ LPM */ else if (!(link->flags & ATA_LFLAG_DISABLED) || ata_is_host_link(link)) hotplug_mask = SERR_PHYRDY_CHG | SERR_DEV_XCHG; @@ -3276,6 +3276,7 @@ struct ata_eh_context *ehc = &link->eh_context; struct ata_device *dev, *link_dev = NULL, *lpm_dev = NULL; enum ata_lpm_policy old_policy = link->lpm_policy; + bool no_dipm = link->ap->flags & ATA_FLAG_NO_DIPM; unsigned int hints = ATA_LPM_EMPTY | ATA_LPM_HIPM; unsigned int err_mask; int rc; @@ -3292,7 +3293,7 @@ */ ata_for_each_dev(dev, link, ENABLED) { bool hipm = ata_id_has_hipm(dev->id); - bool dipm = ata_id_has_dipm(dev->id); + bool dipm = ata_id_has_dipm(dev->id) && !no_dipm; /* find the first enabled and LPM enabled devices */ if (!link_dev) @@ -3349,7 +3350,8 @@ /* host config updated, enable DIPM if transitioning to MIN_POWER */ ata_for_each_dev(dev, link, ENABLED) { - if (policy == ATA_LPM_MIN_POWER && ata_id_has_dipm(dev->id)) { + if (policy == ATA_LPM_MIN_POWER && !no_dipm && + ata_id_has_dipm(dev->id)) { err_mask = ata_dev_set_feature(dev, SETFEATURES_SATA_ENABLE, SATA_DIPM); if (err_mask && err_mask != AC_ERR_DEV) { --- linux-2.6.38.orig/drivers/ata/libahci.c +++ linux-2.6.38/drivers/ata/libahci.c @@ -1897,7 +1897,17 @@ ahci_enable_fbs(ap); pp->intr_mask |= PORT_IRQ_BAD_PMP; - writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); + + /* + * We must not change the port interrupt mask register if the + * port is marked frozen, the value in pp->intr_mask will be + * restored later when the port is thawed. + * + * Note that during initialization, the port is marked as + * frozen since the irq handler is not yet registered. + */ + if (!(ap->pflags & ATA_PFLAG_FROZEN)) + writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); } static void ahci_pmp_detach(struct ata_port *ap) @@ -1913,7 +1923,10 @@ writel(cmd, port_mmio + PORT_CMD); pp->intr_mask &= ~PORT_IRQ_BAD_PMP; - writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); + + /* see comment above in ahci_pmp_attach() */ + if (!(ap->pflags & ATA_PFLAG_FROZEN)) + writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); } int ahci_port_resume(struct ata_port *ap) --- linux-2.6.38.orig/drivers/ata/pata_marvell.c +++ linux-2.6.38/drivers/ata/pata_marvell.c @@ -161,6 +161,9 @@ { PCI_DEVICE(0x11AB, 0x6121), }, { PCI_DEVICE(0x11AB, 0x6123), }, { PCI_DEVICE(0x11AB, 0x6145), }, + { PCI_DEVICE(0x1B4B, 0x91A0), }, + { PCI_DEVICE(0x1B4B, 0x91A4), }, + { } /* terminate list */ }; --- linux-2.6.38.orig/drivers/ata/libata-core.c +++ linux-2.6.38/drivers/ata/libata-core.c @@ -5479,8 +5479,8 @@ ap = kzalloc(sizeof(*ap), GFP_KERNEL); if (!ap) return NULL; - - ap->pflags |= ATA_PFLAG_INITIALIZING; + + ap->pflags |= ATA_PFLAG_INITIALIZING | ATA_PFLAG_FROZEN; ap->lock = &host->lock; ap->print_id = -1; ap->host = host; --- linux-2.6.38.orig/drivers/ata/ahci.c +++ linux-2.6.38/drivers/ata/ahci.c @@ -150,7 +150,7 @@ { AHCI_HFLAGS (AHCI_HFLAG_NO_FPDMA_AA | AHCI_HFLAG_NO_PMP | AHCI_HFLAG_YES_NCQ), - .flags = AHCI_FLAG_COMMON, + .flags = AHCI_FLAG_COMMON | ATA_FLAG_NO_DIPM, .pio_mask = ATA_PIO4, .udma_mask = ATA_UDMA6, .port_ops = &ahci_ops, @@ -260,6 +260,7 @@ { PCI_VDEVICE(INTEL, 0x1d02), board_ahci }, /* PBG AHCI */ { PCI_VDEVICE(INTEL, 0x1d04), board_ahci }, /* PBG RAID */ { PCI_VDEVICE(INTEL, 0x1d06), board_ahci }, /* PBG RAID */ + { PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* PBG RAID */ { PCI_VDEVICE(INTEL, 0x2323), board_ahci }, /* DH89xxCC AHCI */ /* JMicron 360/1/3/5/6, match class to avoid IDE function */ @@ -383,6 +384,10 @@ .class = PCI_CLASS_STORAGE_SATA_AHCI, .class_mask = 0xffffff, .driver_data = board_ahci_yes_fbs }, /* 88se9128 */ + { PCI_DEVICE(0x1b4b, 0x9125), + .driver_data = board_ahci_yes_fbs }, /* 88se9125 */ + { PCI_DEVICE(0x1b4b, 0x91a3), + .driver_data = board_ahci_yes_fbs }, /* Promise */ { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ --- linux-2.6.38.orig/drivers/ata/pata_cmd64x.c +++ linux-2.6.38/drivers/ata/pata_cmd64x.c @@ -41,6 +41,9 @@ enum { CFR = 0x50, CFR_INTR_CH0 = 0x04, + CNTRL = 0x51, + CNTRL_CH0 = 0x04, + CNTRL_CH1 = 0x08, CMDTIM = 0x52, ARTTIM0 = 0x53, DRWTIM0 = 0x54, @@ -328,9 +331,19 @@ .port_ops = &cmd648_port_ops } }; - const struct ata_port_info *ppi[] = { &cmd_info[id->driver_data], NULL }; - u8 mrdmode; + const struct ata_port_info *ppi[] = { + &cmd_info[id->driver_data], + &cmd_info[id->driver_data], + NULL + }; + u8 mrdmode, reg; int rc; + struct pci_dev *bridge = pdev->bus->self; + /* mobility split bridges don't report enabled ports correctly */ + int port_ok = !(bridge && bridge->vendor == + PCI_VENDOR_ID_MOBILITY_ELECTRONICS); + /* all (with exceptions below) apart from 643 have CNTRL_CH0 bit */ + int cntrl_ch0_ok = (id->driver_data != 0); rc = pcim_enable_device(pdev); if (rc) @@ -341,11 +354,18 @@ if (pdev->device == PCI_DEVICE_ID_CMD_646) { /* Does UDMA work ? */ - if (pdev->revision > 4) + if (pdev->revision > 4) { ppi[0] = &cmd_info[2]; + ppi[1] = &cmd_info[2]; + } /* Early rev with other problems ? */ - else if (pdev->revision == 1) + else if (pdev->revision == 1) { ppi[0] = &cmd_info[3]; + ppi[1] = &cmd_info[3]; + } + /* revs 1,2 have no CNTRL_CH0 */ + if (pdev->revision < 3) + cntrl_ch0_ok = 0; } pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 64); @@ -354,6 +374,20 @@ mrdmode |= 0x02; /* Memory read line enable */ pci_write_config_byte(pdev, MRDMODE, mrdmode); + /* check for enabled ports */ + pci_read_config_byte(pdev, CNTRL, ®); + if (!port_ok) + dev_printk(KERN_NOTICE, &pdev->dev, "Mobility Bridge detected, ignoring CNTRL port enable/disable\n"); + if (port_ok && cntrl_ch0_ok && !(reg & CNTRL_CH0)) { + dev_printk(KERN_NOTICE, &pdev->dev, "Primary port is disabled\n"); + ppi[0] = &ata_dummy_port_info; + + } + if (port_ok && !(reg & CNTRL_CH1)) { + dev_printk(KERN_NOTICE, &pdev->dev, "Secondary port is disabled\n"); + ppi[1] = &ata_dummy_port_info; + } + /* Force PIO 0 here.. */ /* PPC specific fixup copied from old driver */ --- linux-2.6.38.orig/drivers/watchdog/pnx4008_wdt.c +++ linux-2.6.38/drivers/watchdog/pnx4008_wdt.c @@ -254,7 +254,6 @@ static int __devinit pnx4008_wdt_probe(struct platform_device *pdev) { int ret = 0, size; - struct resource *res; if (heartbeat < 1 || heartbeat > MAX_HEARTBEAT) heartbeat = DEFAULT_HEARTBEAT; @@ -262,42 +261,42 @@ printk(KERN_INFO MODULE_NAME "PNX4008 Watchdog Timer: heartbeat %d sec\n", heartbeat); - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (res == NULL) { + wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (wdt_mem == NULL) { printk(KERN_INFO MODULE_NAME "failed to get memory region resouce\n"); return -ENOENT; } - size = resource_size(res); - wdt_mem = request_mem_region(res->start, size, pdev->name); + size = resource_size(wdt_mem); - if (wdt_mem == NULL) { + if (!request_mem_region(wdt_mem->start, size, pdev->name)) { printk(KERN_INFO MODULE_NAME "failed to get memory region\n"); return -ENOENT; } - wdt_base = (void __iomem *)IO_ADDRESS(res->start); + wdt_base = (void __iomem *)IO_ADDRESS(wdt_mem->start); wdt_clk = clk_get(&pdev->dev, NULL); if (IS_ERR(wdt_clk)) { ret = PTR_ERR(wdt_clk); - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, size); + wdt_mem = NULL; goto out; } ret = clk_enable(wdt_clk); if (ret) { - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, size); + wdt_mem = NULL; + clk_put(wdt_clk); goto out; } ret = misc_register(&pnx4008_wdt_miscdev); if (ret < 0) { printk(KERN_ERR MODULE_NAME "cannot register misc device\n"); - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, size); + wdt_mem = NULL; clk_disable(wdt_clk); clk_put(wdt_clk); } else { @@ -320,8 +319,7 @@ clk_put(wdt_clk); if (wdt_mem) { - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, resource_size(wdt_mem)); wdt_mem = NULL; } return 0; --- linux-2.6.38.orig/drivers/watchdog/davinci_wdt.c +++ linux-2.6.38/drivers/watchdog/davinci_wdt.c @@ -202,7 +202,6 @@ static int __devinit davinci_wdt_probe(struct platform_device *pdev) { int ret = 0, size; - struct resource *res; struct device *dev = &pdev->dev; wdt_clk = clk_get(dev, NULL); @@ -216,31 +215,31 @@ dev_info(dev, "heartbeat %d sec\n", heartbeat); - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (res == NULL) { + wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (wdt_mem == NULL) { dev_err(dev, "failed to get memory region resource\n"); return -ENOENT; } - size = resource_size(res); - wdt_mem = request_mem_region(res->start, size, pdev->name); - - if (wdt_mem == NULL) { + size = resource_size(wdt_mem); + if (!request_mem_region(wdt_mem->start, size, pdev->name)) { dev_err(dev, "failed to get memory region\n"); return -ENOENT; } - wdt_base = ioremap(res->start, size); + wdt_base = ioremap(wdt_mem->start, size); if (!wdt_base) { dev_err(dev, "failed to map memory region\n"); + release_mem_region(wdt_mem->start, size); + wdt_mem = NULL; return -ENOMEM; } ret = misc_register(&davinci_wdt_miscdev); if (ret < 0) { dev_err(dev, "cannot register misc device\n"); - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, size); + wdt_mem = NULL; } else { set_bit(WDT_DEVICE_INITED, &wdt_status); } @@ -253,8 +252,7 @@ { misc_deregister(&davinci_wdt_miscdev); if (wdt_mem) { - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, resource_size(wdt_mem)); wdt_mem = NULL; } --- linux-2.6.38.orig/drivers/watchdog/s3c2410_wdt.c +++ linux-2.6.38/drivers/watchdog/s3c2410_wdt.c @@ -402,7 +402,6 @@ static int __devinit s3c2410wdt_probe(struct platform_device *pdev) { - struct resource *res; struct device *dev; unsigned int wtcon; int started = 0; @@ -416,20 +415,19 @@ /* get the memory region for the watchdog timer */ - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (res == NULL) { + wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (wdt_mem == NULL) { dev_err(dev, "no memory resource specified\n"); return -ENOENT; } - size = resource_size(res); - wdt_mem = request_mem_region(res->start, size, pdev->name); - if (wdt_mem == NULL) { + size = resource_size(wdt_mem); + if (!request_mem_region(wdt_mem->start, size, pdev->name)) { dev_err(dev, "failed to get memory region\n"); return -EBUSY; } - wdt_base = ioremap(res->start, size); + wdt_base = ioremap(wdt_mem->start, size); if (wdt_base == NULL) { dev_err(dev, "failed to ioremap() region\n"); ret = -EINVAL; @@ -524,8 +522,8 @@ iounmap(wdt_base); err_req: - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, size); + wdt_mem = NULL; return ret; } @@ -545,8 +543,7 @@ iounmap(wdt_base); - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, resource_size(wdt_mem)); wdt_mem = NULL; return 0; } --- linux-2.6.38.orig/drivers/watchdog/max63xx_wdt.c +++ linux-2.6.38/drivers/watchdog/max63xx_wdt.c @@ -270,7 +270,6 @@ { int ret = 0; int size; - struct resource *res; struct device *dev = &pdev->dev; struct max63xx_timeout *table; @@ -294,21 +293,19 @@ max63xx_pdev = pdev; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (res == NULL) { + wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (wdt_mem == NULL) { dev_err(dev, "failed to get memory region resource\n"); return -ENOENT; } - size = resource_size(res); - wdt_mem = request_mem_region(res->start, size, pdev->name); - - if (wdt_mem == NULL) { + size = resource_size(wdt_mem); + if (!request_mem_region(wdt_mem->start, size, pdev->name)) { dev_err(dev, "failed to get memory region\n"); return -ENOENT; } - wdt_base = ioremap(res->start, size); + wdt_base = ioremap(wdt_mem->start, size); if (!wdt_base) { dev_err(dev, "failed to map memory region\n"); ret = -ENOMEM; @@ -326,8 +323,8 @@ out_unmap: iounmap(wdt_base); out_request: - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, size); + wdt_mem = NULL; return ret; } @@ -336,8 +333,7 @@ { misc_deregister(&max63xx_wdt_miscdev); if (wdt_mem) { - release_resource(wdt_mem); - kfree(wdt_mem); + release_mem_region(wdt_mem->start, resource_size(wdt_mem)); wdt_mem = NULL; } --- linux-2.6.38.orig/drivers/watchdog/sp5100_tco.c +++ linux-2.6.38/drivers/watchdog/sp5100_tco.c @@ -42,6 +42,7 @@ #define PFX TCO_MODULE_NAME ": " /* internal variables */ +static u32 tcobase_phys; static void __iomem *tcobase; static unsigned int pm_iobase; static DEFINE_SPINLOCK(tco_lock); /* Guards the hardware */ @@ -305,10 +306,18 @@ /* Low three bits of BASE0 are reserved. */ val = val << 8 | (inb(SP5100_IO_PM_DATA_REG) & 0xf8); + if (!request_mem_region_exclusive(val, SP5100_WDT_MEM_MAP_SIZE, + "SP5100 TCO")) { + printk(KERN_ERR PFX "mmio address 0x%04x already in use\n", + val); + goto unreg_region; + } + tcobase_phys = val; + tcobase = ioremap(val, SP5100_WDT_MEM_MAP_SIZE); if (tcobase == 0) { printk(KERN_ERR PFX "failed to get tcobase address\n"); - goto unreg_region; + goto unreg_mem_region; } /* Enable watchdog decode bit */ @@ -346,7 +355,8 @@ /* Done */ return 1; - iounmap(tcobase); +unreg_mem_region: + release_mem_region(tcobase_phys, SP5100_WDT_MEM_MAP_SIZE); unreg_region: release_region(pm_iobase, SP5100_PM_IOPORTS_SIZE); exit: @@ -401,6 +411,7 @@ exit: iounmap(tcobase); + release_mem_region(tcobase_phys, SP5100_WDT_MEM_MAP_SIZE); release_region(pm_iobase, SP5100_PM_IOPORTS_SIZE); return ret; } @@ -414,6 +425,7 @@ /* Deregister */ misc_deregister(&sp5100_tco_miscdev); iounmap(tcobase); + release_mem_region(tcobase_phys, SP5100_WDT_MEM_MAP_SIZE); release_region(pm_iobase, SP5100_PM_IOPORTS_SIZE); } --- linux-2.6.38.orig/drivers/infiniband/core/cm.c +++ linux-2.6.38/drivers/infiniband/core/cm.c @@ -2989,6 +2989,7 @@ goto out; /* No match. */ } atomic_inc(&cur_cm_id_priv->refcount); + atomic_inc(&cm_id_priv->refcount); spin_unlock_irq(&cm.lock); cm_id_priv->id.cm_handler = cur_cm_id_priv->id.cm_handler; --- linux-2.6.38.orig/drivers/infiniband/core/cma.c +++ linux-2.6.38/drivers/infiniband/core/cma.c @@ -1210,6 +1210,11 @@ cm_id->context = conn_id; cm_id->cm_handler = cma_ib_handler; + /* + * Protect against the user destroying conn_id from another thread + * until we're done accessing it. + */ + atomic_inc(&conn_id->refcount); ret = conn_id->id.event_handler(&conn_id->id, &event); if (!ret) { /* @@ -1222,8 +1227,10 @@ ib_send_cm_mra(cm_id, CMA_CM_MRA_SETTING, NULL, 0); mutex_unlock(&lock); mutex_unlock(&conn_id->handler_mutex); + cma_deref_id(conn_id); goto out; } + cma_deref_id(conn_id); /* Destroy the CM ID by returning a non-zero value. */ conn_id->cm_id.ib = NULL; @@ -1425,17 +1432,25 @@ event.param.conn.private_data_len = iw_event->private_data_len; event.param.conn.initiator_depth = attr.max_qp_init_rd_atom; event.param.conn.responder_resources = attr.max_qp_rd_atom; + + /* + * Protect against the user destroying conn_id from another thread + * until we're done accessing it. + */ + atomic_inc(&conn_id->refcount); ret = conn_id->id.event_handler(&conn_id->id, &event); if (ret) { /* User wants to destroy the CM ID */ conn_id->cm_id.iw = NULL; cma_exch(conn_id, CMA_DESTROYING); mutex_unlock(&conn_id->handler_mutex); + cma_deref_id(conn_id); rdma_destroy_id(&conn_id->id); goto out; } mutex_unlock(&conn_id->handler_mutex); + cma_deref_id(conn_id); out: if (dev) --- linux-2.6.38.orig/drivers/dma/pch_dma.c +++ linux-2.6.38/drivers/dma/pch_dma.c @@ -24,6 +24,7 @@ #include #include #include +#include #define DRV_NAME "pch-dma" --- linux-2.6.38.orig/drivers/mfd/ab3550-core.c +++ linux-2.6.38/drivers/mfd/ab3550-core.c @@ -1053,17 +1053,17 @@ goto exit_destroy_dir; ab3550_bank_file = debugfs_create_file("register-bank", - (S_IRUGO | S_IWUGO), ab3550_dir, ab, &ab3550_bank_fops); + (S_IRUGO | S_IWUSR), ab3550_dir, ab, &ab3550_bank_fops); if (!ab3550_bank_file) goto exit_destroy_reg; ab3550_address_file = debugfs_create_file("register-address", - (S_IRUGO | S_IWUGO), ab3550_dir, ab, &ab3550_address_fops); + (S_IRUGO | S_IWUSR), ab3550_dir, ab, &ab3550_address_fops); if (!ab3550_address_file) goto exit_destroy_bank; ab3550_val_file = debugfs_create_file("register-value", - (S_IRUGO | S_IWUGO), ab3550_dir, ab, &ab3550_val_fops); + (S_IRUGO | S_IWUSR), ab3550_dir, ab, &ab3550_val_fops); if (!ab3550_val_file) goto exit_destroy_address; --- linux-2.6.38.orig/drivers/mfd/ab3100-core.c +++ linux-2.6.38/drivers/mfd/ab3100-core.c @@ -613,7 +613,7 @@ ab3100_get_priv.ab3100 = ab3100; ab3100_get_priv.mode = false; ab3100_get_reg_file = debugfs_create_file("get_reg", - S_IWUGO, ab3100_dir, &ab3100_get_priv, + S_IWUSR, ab3100_dir, &ab3100_get_priv, &ab3100_get_set_reg_fops); if (!ab3100_get_reg_file) { err = -ENOMEM; @@ -623,7 +623,7 @@ ab3100_set_priv.ab3100 = ab3100; ab3100_set_priv.mode = true; ab3100_set_reg_file = debugfs_create_file("set_reg", - S_IWUGO, ab3100_dir, &ab3100_set_priv, + S_IWUSR, ab3100_dir, &ab3100_set_priv, &ab3100_get_set_reg_fops); if (!ab3100_set_reg_file) { err = -ENOMEM; --- linux-2.6.38.orig/drivers/mfd/ab8500-debugfs.c +++ linux-2.6.38/drivers/mfd/ab8500-debugfs.c @@ -585,18 +585,18 @@ goto exit_destroy_dir; ab8500_bank_file = debugfs_create_file("register-bank", - (S_IRUGO | S_IWUGO), ab8500_dir, &plf->dev, &ab8500_bank_fops); + (S_IRUGO | S_IWUSR), ab8500_dir, &plf->dev, &ab8500_bank_fops); if (!ab8500_bank_file) goto exit_destroy_reg; ab8500_address_file = debugfs_create_file("register-address", - (S_IRUGO | S_IWUGO), ab8500_dir, &plf->dev, + (S_IRUGO | S_IWUSR), ab8500_dir, &plf->dev, &ab8500_address_fops); if (!ab8500_address_file) goto exit_destroy_bank; ab8500_val_file = debugfs_create_file("register-value", - (S_IRUGO | S_IWUGO), ab8500_dir, &plf->dev, &ab8500_val_fops); + (S_IRUGO | S_IWUSR), ab8500_dir, &plf->dev, &ab8500_val_fops); if (!ab8500_val_file) goto exit_destroy_address; --- linux-2.6.38.orig/drivers/bluetooth/ath3k.c +++ linux-2.6.38/drivers/bluetooth/ath3k.c @@ -36,9 +36,6 @@ /* Atheros AR3011 */ { USB_DEVICE(0x0CF3, 0x3000) }, - /* Atheros AR3011 with sflash firmware*/ - { USB_DEVICE(0x0CF3, 0x3002) }, - /* Atheros AR9285 Malbec with sflash firmware */ { USB_DEVICE(0x03F0, 0x311D) }, --- linux-2.6.38.orig/drivers/bluetooth/btusb.c +++ linux-2.6.38/drivers/bluetooth/btusb.c @@ -71,6 +71,9 @@ /* Apple MacBookAir3,1, MacBookAir3,2 */ { USB_DEVICE(0x05ac, 0x821b) }, + /* Apple MacBookPro8,2 */ + { USB_DEVICE(0x05ac, 0x821a) }, + /* AVM BlueFRITZ! USB v2.0 */ { USB_DEVICE(0x057c, 0x3800) }, @@ -99,9 +102,6 @@ /* Broadcom BCM2033 without firmware */ { USB_DEVICE(0x0a5c, 0x2033), .driver_info = BTUSB_IGNORE }, - /* Atheros 3011 with sflash firmware */ - { USB_DEVICE(0x0cf3, 0x3002), .driver_info = BTUSB_IGNORE }, - /* Atheros AR9285 Malbec with sflash firmware */ { USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE }, --- linux-2.6.38.orig/drivers/parport/Kconfig +++ linux-2.6.38/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.38.orig/drivers/block/xen-blkfront.c +++ linux-2.6.38/drivers/block/xen-blkfront.c @@ -72,7 +72,8 @@ static DEFINE_MUTEX(blkfront_mutex); static const struct block_device_operations xlvbd_block_fops; -#define BLK_RING_SIZE __CONST_RING_SIZE(blkif, PAGE_SIZE) +#define BLK_MAX_RING_AREA_SIZE (BLKIF_MAX_NUM_RING_PAGES * PAGE_SIZE) +#define BLK_MAX_RING_SIZE __CONST_RING_SIZE(blkif, BLK_MAX_RING_AREA_SIZE) /* * We have one of these per vbd, whether ide, scsi or 'other'. They @@ -87,14 +88,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; unsigned int feature_flush; int is_ready; @@ -126,7 +128,8 @@ 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; @@ -584,6 +587,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 ? @@ -599,10 +604,17 @@ flush_work_sync(&info->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) @@ -705,27 +717,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) @@ -754,7 +771,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); @@ -768,11 +791,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); @@ -820,6 +862,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, @@ -833,6 +876,10 @@ return err; } } + err = xenbus_scanf(XBT_NIL, dev->otherend, + "max-ring-pages", "%u", &max_ring_pages); + if (err != 1) + max_ring_pages = 1; if (xen_hvm_domain()) { char *type; @@ -875,9 +922,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); @@ -890,6 +941,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; } @@ -900,6 +954,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), @@ -910,13 +965,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) continue; @@ -1318,3 +1373,4 @@ MODULE_ALIAS_BLOCKDEV_MAJOR(XENVBD_MAJOR); MODULE_ALIAS("xen:vbd"); MODULE_ALIAS("xenblk"); + --- linux-2.6.38.orig/drivers/block/brd.c +++ linux-2.6.38/drivers/block/brd.c @@ -552,7 +552,7 @@ struct kobject *kobj; mutex_lock(&brd_devices_mutex); - brd = brd_init_one(dev & MINORMASK); + brd = brd_init_one(MINOR(dev) >> part_shift); kobj = brd ? get_disk(brd->brd_disk) : ERR_PTR(-ENOMEM); mutex_unlock(&brd_devices_mutex); @@ -585,15 +585,18 @@ if (max_part > 0) part_shift = fls(max_part); + if ((1UL << part_shift) > DISK_MAX_PARTS) + return -EINVAL; + if (rd_nr > 1UL << (MINORBITS - part_shift)) return -EINVAL; if (rd_nr) { nr = rd_nr; - range = rd_nr; + range = rd_nr << part_shift; } else { nr = CONFIG_BLK_DEV_RAM_COUNT; - range = 1UL << (MINORBITS - part_shift); + range = 1UL << MINORBITS; } if (register_blkdev(RAMDISK_MAJOR, "ramdisk")) @@ -632,7 +635,7 @@ unsigned long range; struct brd_device *brd, *next; - range = rd_nr ? rd_nr : 1UL << (MINORBITS - part_shift); + range = rd_nr ? rd_nr << part_shift : 1UL << MINORBITS; list_for_each_entry_safe(brd, next, &brd_devices, brd_list) brd_del_one(brd); --- linux-2.6.38.orig/drivers/block/cciss.h +++ linux-2.6.38/drivers/block/cciss.h @@ -222,6 +222,7 @@ h->ctlr, c->busaddr); #endif /* CCISS_DEBUG */ writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET); + readl(h->vaddr + SA5_REQUEST_PORT_OFFSET); h->commands_outstanding++; if ( h->commands_outstanding > h->max_outstanding) h->max_outstanding = h->commands_outstanding; --- linux-2.6.38.orig/drivers/block/nbd.c +++ linux-2.6.38/drivers/block/nbd.c @@ -58,7 +58,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.38.orig/drivers/block/loop.c +++ linux-2.6.38/drivers/block/loop.c @@ -1674,7 +1674,7 @@ struct kobject *kobj; mutex_lock(&loop_devices_mutex); - lo = loop_init_one(dev & MINORMASK); + lo = loop_init_one(MINOR(dev) >> part_shift); kobj = lo ? get_disk(lo->lo_disk) : ERR_PTR(-ENOMEM); mutex_unlock(&loop_devices_mutex); @@ -1707,15 +1707,18 @@ if (max_part > 0) part_shift = fls(max_part); + if ((1UL << part_shift) > DISK_MAX_PARTS) + return -EINVAL; + if (max_loop > 1UL << (MINORBITS - part_shift)) return -EINVAL; if (max_loop) { nr = max_loop; - range = max_loop; + range = max_loop << part_shift; } else { nr = 8; - range = 1UL << (MINORBITS - part_shift); + range = 1UL << MINORBITS; } if (register_blkdev(LOOP_MAJOR, "loop")) @@ -1754,7 +1757,7 @@ unsigned long range; struct loop_device *lo, *next; - range = max_loop ? max_loop : 1UL << (MINORBITS - part_shift); + range = max_loop ? max_loop << part_shift : 1UL << MINORBITS; list_for_each_entry_safe(lo, next, &loop_devices, lo_list) loop_del_one(lo); --- linux-2.6.38.orig/drivers/block/paride/pf.c +++ linux-2.6.38/drivers/block/paride/pf.c @@ -243,7 +243,8 @@ static int pf_identify(struct pf_unit *pf); static void pf_lock(struct pf_unit *pf, int func); static void pf_eject(struct pf_unit *pf); -static int pf_check_media(struct gendisk *disk); +static unsigned int pf_check_events(struct gendisk *disk, + unsigned int clearing); static char pf_scratch[512]; /* scratch block buffer */ @@ -270,7 +271,7 @@ .release = pf_release, .ioctl = pf_ioctl, .getgeo = pf_getgeo, - .media_changed = pf_check_media, + .check_events = pf_check_events, }; static void __init pf_init_units(void) @@ -293,6 +294,7 @@ disk->first_minor = unit; strcpy(disk->disk_name, pf->name); disk->fops = &pf_fops; + disk->events = DISK_EVENT_MEDIA_CHANGE; if (!(*drives[unit])[D_PRT]) pf_drive_count++; } @@ -377,9 +379,9 @@ } -static int pf_check_media(struct gendisk *disk) +static unsigned int pf_check_events(struct gendisk *disk, unsigned int clearing) { - return 1; + return DISK_EVENT_MEDIA_CHANGE; } static inline int status_reg(struct pf_unit *pf) --- linux-2.6.38.orig/drivers/block/paride/pd.c +++ linux-2.6.38/drivers/block/paride/pd.c @@ -794,7 +794,7 @@ return 0; } -static int pd_check_media(struct gendisk *p) +static unsigned int pd_check_events(struct gendisk *p, unsigned int clearing) { struct pd_unit *disk = p->private_data; int r; @@ -803,7 +803,7 @@ pd_special_command(disk, pd_media_check); r = disk->changed; disk->changed = 0; - return r; + return r ? DISK_EVENT_MEDIA_CHANGE : 0; } static int pd_revalidate(struct gendisk *p) @@ -822,7 +822,7 @@ .release = pd_release, .ioctl = pd_ioctl, .getgeo = pd_getgeo, - .media_changed = pd_check_media, + .check_events = pd_check_events, .revalidate_disk= pd_revalidate }; @@ -837,6 +837,7 @@ p->fops = &pd_fops; p->major = major; p->first_minor = (disk - pd) << PD_BITS; + p->events = DISK_EVENT_MEDIA_CHANGE; disk->gd = p; p->private_data = disk; p->queue = pd_queue; --- linux-2.6.38.orig/drivers/block/paride/pcd.c +++ linux-2.6.38/drivers/block/paride/pcd.c @@ -172,7 +172,8 @@ static int pcd_open(struct cdrom_device_info *cdi, int purpose); static void pcd_release(struct cdrom_device_info *cdi); static int pcd_drive_status(struct cdrom_device_info *cdi, int slot_nr); -static int pcd_media_changed(struct cdrom_device_info *cdi, int slot_nr); +static unsigned int pcd_check_events(struct cdrom_device_info *cdi, + unsigned int clearing, int slot_nr); static int pcd_tray_move(struct cdrom_device_info *cdi, int position); static int pcd_lock_door(struct cdrom_device_info *cdi, int lock); static int pcd_drive_reset(struct cdrom_device_info *cdi); @@ -257,10 +258,11 @@ return ret; } -static int pcd_block_media_changed(struct gendisk *disk) +static unsigned int pcd_block_check_events(struct gendisk *disk, + unsigned int clearing) { struct pcd_unit *cd = disk->private_data; - return cdrom_media_changed(&cd->info); + return cdrom_check_events(&cd->info, clearing); } static const struct block_device_operations pcd_bdops = { @@ -268,14 +270,14 @@ .open = pcd_block_open, .release = pcd_block_release, .ioctl = pcd_block_ioctl, - .media_changed = pcd_block_media_changed, + .check_events = pcd_block_check_events, }; static struct cdrom_device_ops pcd_dops = { .open = pcd_open, .release = pcd_release, .drive_status = pcd_drive_status, - .media_changed = pcd_media_changed, + .check_events = pcd_check_events, .tray_move = pcd_tray_move, .lock_door = pcd_lock_door, .get_mcn = pcd_get_mcn, @@ -318,6 +320,8 @@ disk->first_minor = unit; strcpy(disk->disk_name, cd->name); /* umm... */ disk->fops = &pcd_bdops; + disk->flags = GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE; + disk->events = DISK_EVENT_MEDIA_CHANGE; } } @@ -502,13 +506,14 @@ #define DBMSG(msg) ((verbose>1)?(msg):NULL) -static int pcd_media_changed(struct cdrom_device_info *cdi, int slot_nr) +static unsigned int pcd_check_events(struct cdrom_device_info *cdi, + unsigned int clearing, int slot_nr) { struct pcd_unit *cd = cdi->handle; int res = cd->changed; if (res) cd->changed = 0; - return res; + return res ? DISK_EVENT_MEDIA_CHANGE : 0; } static int pcd_lock_door(struct cdrom_device_info *cdi, int lock) --- linux-2.6.38.orig/drivers/char/virtio_console.c +++ linux-2.6.38/drivers/char/virtio_console.c @@ -1280,18 +1280,7 @@ spin_lock_irq(&pdrvdata_lock); list_del(&port->cons.list); spin_unlock_irq(&pdrvdata_lock); -#if 0 - /* - * hvc_remove() not called as removing one hvc port - * results in other hvc ports getting frozen. - * - * Once this is resolved in hvc, this functionality - * will be enabled. Till that is done, the -EPIPE - * return from get_chars() above will help - * hvc_console.c to clean up on ports we remove here. - */ hvc_remove(port->cons.hvc); -#endif } /* Remove unused data this port might have received. */ --- linux-2.6.38.orig/drivers/char/random.c +++ linux-2.6.38/drivers/char/random.c @@ -1293,330 +1293,14 @@ }; #endif /* CONFIG_SYSCTL */ -/******************************************************************** - * - * Random functions for networking - * - ********************************************************************/ - -/* - * TCP initial sequence number picking. This uses the random number - * generator to pick an initial secret value. This value is hashed - * along with the TCP endpoint information to provide a unique - * starting point for each pair of TCP endpoints. This defeats - * attacks which rely on guessing the initial TCP sequence number. - * This algorithm was suggested by Steve Bellovin. - * - * Using a very strong hash was taking an appreciable amount of the total - * TCP connection establishment time, so this is a weaker hash, - * compensated for by changing the secret periodically. - */ - -/* F, G and H are basic MD4 functions: selection, majority, parity */ -#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) -#define G(x, y, z) (((x) & (y)) + (((x) ^ (y)) & (z))) -#define H(x, y, z) ((x) ^ (y) ^ (z)) - -/* - * The generic round function. The application is so specific that - * we don't bother protecting all the arguments with parens, as is generally - * good macro practice, in favor of extra legibility. - * Rotation is separate from addition to prevent recomputation - */ -#define ROUND(f, a, b, c, d, x, s) \ - (a += f(b, c, d) + x, a = (a << s) | (a >> (32 - s))) -#define K1 0 -#define K2 013240474631UL -#define K3 015666365641UL - -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) - -static __u32 twothirdsMD4Transform(__u32 const buf[4], __u32 const in[12]) -{ - __u32 a = buf[0], b = buf[1], c = buf[2], d = buf[3]; - - /* Round 1 */ - ROUND(F, a, b, c, d, in[ 0] + K1, 3); - ROUND(F, d, a, b, c, in[ 1] + K1, 7); - ROUND(F, c, d, a, b, in[ 2] + K1, 11); - ROUND(F, b, c, d, a, in[ 3] + K1, 19); - ROUND(F, a, b, c, d, in[ 4] + K1, 3); - ROUND(F, d, a, b, c, in[ 5] + K1, 7); - ROUND(F, c, d, a, b, in[ 6] + K1, 11); - ROUND(F, b, c, d, a, in[ 7] + K1, 19); - ROUND(F, a, b, c, d, in[ 8] + K1, 3); - ROUND(F, d, a, b, c, in[ 9] + K1, 7); - ROUND(F, c, d, a, b, in[10] + K1, 11); - ROUND(F, b, c, d, a, in[11] + K1, 19); - - /* Round 2 */ - ROUND(G, a, b, c, d, in[ 1] + K2, 3); - ROUND(G, d, a, b, c, in[ 3] + K2, 5); - ROUND(G, c, d, a, b, in[ 5] + K2, 9); - ROUND(G, b, c, d, a, in[ 7] + K2, 13); - ROUND(G, a, b, c, d, in[ 9] + K2, 3); - ROUND(G, d, a, b, c, in[11] + K2, 5); - ROUND(G, c, d, a, b, in[ 0] + K2, 9); - ROUND(G, b, c, d, a, in[ 2] + K2, 13); - ROUND(G, a, b, c, d, in[ 4] + K2, 3); - ROUND(G, d, a, b, c, in[ 6] + K2, 5); - ROUND(G, c, d, a, b, in[ 8] + K2, 9); - ROUND(G, b, c, d, a, in[10] + K2, 13); - - /* Round 3 */ - ROUND(H, a, b, c, d, in[ 3] + K3, 3); - ROUND(H, d, a, b, c, in[ 7] + K3, 9); - ROUND(H, c, d, a, b, in[11] + K3, 11); - ROUND(H, b, c, d, a, in[ 2] + K3, 15); - ROUND(H, a, b, c, d, in[ 6] + K3, 3); - ROUND(H, d, a, b, c, in[10] + K3, 9); - ROUND(H, c, d, a, b, in[ 1] + K3, 11); - ROUND(H, b, c, d, a, in[ 5] + K3, 15); - ROUND(H, a, b, c, d, in[ 9] + K3, 3); - ROUND(H, d, a, b, c, in[ 0] + K3, 9); - ROUND(H, c, d, a, b, in[ 4] + K3, 11); - ROUND(H, b, c, d, a, in[ 8] + K3, 15); - - return buf[1] + b; /* "most hashed" word */ - /* Alternative: return sum of all words? */ -} -#endif - -#undef ROUND -#undef F -#undef G -#undef H -#undef K1 -#undef K2 -#undef K3 - -/* This should not be decreased so low that ISNs wrap too fast. */ -#define REKEY_INTERVAL (300 * HZ) -/* - * Bit layout of the tcp sequence numbers (before adding current time): - * bit 24-31: increased after every key exchange - * bit 0-23: hash(source,dest) - * - * The implementation is similar to the algorithm described - * in the Appendix of RFC 1185, except that - * - it uses a 1 MHz clock instead of a 250 kHz clock - * - it performs a rekey every 5 minutes, which is equivalent - * to a (source,dest) tulple dependent forward jump of the - * clock by 0..2^(HASH_BITS+1) - * - * Thus the average ISN wraparound time is 68 minutes instead of - * 4.55 hours. - * - * SMP cleanup and lock avoidance with poor man's RCU. - * Manfred Spraul - * - */ -#define COUNT_BITS 8 -#define COUNT_MASK ((1 << COUNT_BITS) - 1) -#define HASH_BITS 24 -#define HASH_MASK ((1 << HASH_BITS) - 1) - -static struct keydata { - __u32 count; /* already shifted to the final position */ - __u32 secret[12]; -} ____cacheline_aligned ip_keydata[2]; +static u32 random_int_secret[MD5_MESSAGE_BYTES / 4] ____cacheline_aligned; -static unsigned int ip_cnt; - -static void rekey_seq_generator(struct work_struct *work); - -static DECLARE_DELAYED_WORK(rekey_work, rekey_seq_generator); - -/* - * Lock avoidance: - * The ISN generation runs lockless - it's just a hash over random data. - * State changes happen every 5 minutes when the random key is replaced. - * Synchronization is performed by having two copies of the hash function - * state and rekey_seq_generator always updates the inactive copy. - * The copy is then activated by updating ip_cnt. - * The implementation breaks down if someone blocks the thread - * that processes SYN requests for more than 5 minutes. Should never - * happen, and even if that happens only a not perfectly compliant - * ISN is generated, nothing fatal. - */ -static void rekey_seq_generator(struct work_struct *work) +static int __init random_int_secret_init(void) { - struct keydata *keyptr = &ip_keydata[1 ^ (ip_cnt & 1)]; - - get_random_bytes(keyptr->secret, sizeof(keyptr->secret)); - keyptr->count = (ip_cnt & COUNT_MASK) << HASH_BITS; - smp_wmb(); - ip_cnt++; - schedule_delayed_work(&rekey_work, - round_jiffies_relative(REKEY_INTERVAL)); -} - -static inline struct keydata *get_keyptr(void) -{ - struct keydata *keyptr = &ip_keydata[ip_cnt & 1]; - - smp_rmb(); - - return keyptr; -} - -static __init int seqgen_init(void) -{ - rekey_seq_generator(NULL); + get_random_bytes(random_int_secret, sizeof(random_int_secret)); return 0; } -late_initcall(seqgen_init); - -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -__u32 secure_tcpv6_sequence_number(__be32 *saddr, __be32 *daddr, - __be16 sport, __be16 dport) -{ - __u32 seq; - __u32 hash[12]; - struct keydata *keyptr = get_keyptr(); - - /* The procedure is the same as for IPv4, but addresses are longer. - * Thus we must use twothirdsMD4Transform. - */ - - memcpy(hash, saddr, 16); - hash[4] = ((__force u16)sport << 16) + (__force u16)dport; - memcpy(&hash[5], keyptr->secret, sizeof(__u32) * 7); - - seq = twothirdsMD4Transform((const __u32 *)daddr, hash) & HASH_MASK; - seq += keyptr->count; - - seq += ktime_to_ns(ktime_get_real()); - - return seq; -} -EXPORT_SYMBOL(secure_tcpv6_sequence_number); -#endif - -/* The code below is shamelessly stolen from secure_tcp_sequence_number(). - * All blames to Andrey V. Savochkin . - */ -__u32 secure_ip_id(__be32 daddr) -{ - struct keydata *keyptr; - __u32 hash[4]; - - keyptr = get_keyptr(); - - /* - * Pick a unique starting offset for each IP destination. - * The dest ip address is placed in the starting vector, - * which is then hashed with random data. - */ - hash[0] = (__force __u32)daddr; - hash[1] = keyptr->secret[9]; - hash[2] = keyptr->secret[10]; - hash[3] = keyptr->secret[11]; - - return half_md4_transform(hash, keyptr->secret); -} - -#ifdef CONFIG_INET - -__u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, - __be16 sport, __be16 dport) -{ - __u32 seq; - __u32 hash[4]; - struct keydata *keyptr = get_keyptr(); - - /* - * Pick a unique starting offset for each TCP connection endpoints - * (saddr, daddr, sport, dport). - * Note that the words are placed into the starting vector, which is - * then mixed with a partial MD4 over random data. - */ - hash[0] = (__force u32)saddr; - hash[1] = (__force u32)daddr; - hash[2] = ((__force u16)sport << 16) + (__force u16)dport; - hash[3] = keyptr->secret[11]; - - seq = half_md4_transform(hash, keyptr->secret) & HASH_MASK; - seq += keyptr->count; - /* - * As close as possible to RFC 793, which - * suggests using a 250 kHz clock. - * Further reading shows this assumes 2 Mb/s networks. - * For 10 Mb/s Ethernet, a 1 MHz clock is appropriate. - * For 10 Gb/s Ethernet, a 1 GHz clock should be ok, but - * we also need to limit the resolution so that the u32 seq - * overlaps less than one time per MSL (2 minutes). - * Choosing a clock of 64 ns period is OK. (period of 274 s) - */ - seq += ktime_to_ns(ktime_get_real()) >> 6; - - return seq; -} - -/* Generate secure starting point for ephemeral IPV4 transport port search */ -u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport) -{ - struct keydata *keyptr = get_keyptr(); - u32 hash[4]; - - /* - * Pick a unique starting offset for each ephemeral port search - * (saddr, daddr, dport) and 48bits of random data. - */ - hash[0] = (__force u32)saddr; - hash[1] = (__force u32)daddr; - hash[2] = (__force u32)dport ^ keyptr->secret[10]; - hash[3] = keyptr->secret[11]; - - return half_md4_transform(hash, keyptr->secret); -} -EXPORT_SYMBOL_GPL(secure_ipv4_port_ephemeral); - -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr, - __be16 dport) -{ - struct keydata *keyptr = get_keyptr(); - u32 hash[12]; - - memcpy(hash, saddr, 16); - hash[4] = (__force u32)dport; - memcpy(&hash[5], keyptr->secret, sizeof(__u32) * 7); - - return twothirdsMD4Transform((const __u32 *)daddr, hash); -} -#endif - -#if defined(CONFIG_IP_DCCP) || defined(CONFIG_IP_DCCP_MODULE) -/* Similar to secure_tcp_sequence_number but generate a 48 bit value - * bit's 32-47 increase every key exchange - * 0-31 hash(source, dest) - */ -u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, - __be16 sport, __be16 dport) -{ - u64 seq; - __u32 hash[4]; - struct keydata *keyptr = get_keyptr(); - - hash[0] = (__force u32)saddr; - hash[1] = (__force u32)daddr; - hash[2] = ((__force u16)sport << 16) + (__force u16)dport; - hash[3] = keyptr->secret[11]; - - seq = half_md4_transform(hash, keyptr->secret); - seq |= ((u64)keyptr->count) << (32 - HASH_BITS); - - seq += ktime_to_ns(ktime_get_real()); - seq &= (1ull << 48) - 1; - - return seq; -} -EXPORT_SYMBOL(secure_dccp_sequence_number); -#endif - -#endif /* CONFIG_INET */ - +late_initcall(random_int_secret_init); /* * Get a random word for internal kernel use only. Similar to urandom but @@ -1624,17 +1308,15 @@ * value is not cryptographically secure but for several uses the cost of * depleting entropy is too high */ -DEFINE_PER_CPU(__u32 [4], get_random_int_hash); +DEFINE_PER_CPU(__u32 [MD5_DIGEST_WORDS], get_random_int_hash); unsigned int get_random_int(void) { - struct keydata *keyptr; __u32 *hash = get_cpu_var(get_random_int_hash); - int ret; + unsigned int ret; - keyptr = get_keyptr(); hash[0] += current->pid + jiffies + get_cycles(); - - ret = half_md4_transform(hash, keyptr->secret); + md5_transform(hash, random_int_secret); + ret = hash[0]; put_cpu_var(get_random_int_hash); return ret; --- linux-2.6.38.orig/drivers/char/i8k.c +++ linux-2.6.38/drivers/char/i8k.c @@ -139,8 +139,8 @@ "movl %%edi,20(%%rax)\n\t" "popq %%rdx\n\t" "movl %%edx,0(%%rax)\n\t" - "lahf\n\t" - "shrl $8,%%eax\n\t" + "pushfq\n\t" + "popq %%rax\n\t" "andl $1,%%eax\n" :"=a"(rc) : "a"(regs) --- linux-2.6.38.orig/drivers/char/agp/generic.c +++ linux-2.6.38/drivers/char/agp/generic.c @@ -115,6 +115,9 @@ struct agp_memory *new; unsigned long alloc_size = num_agp_pages*sizeof(struct page *); + if (INT_MAX/sizeof(struct page *) < num_agp_pages) + return NULL; + new = kzalloc(sizeof(struct agp_memory), GFP_KERNEL); if (new == NULL) return NULL; @@ -234,11 +237,14 @@ int scratch_pages; struct agp_memory *new; size_t i; + int cur_memory; if (!bridge) return NULL; - if ((atomic_read(&bridge->current_memory_agp) + page_count) > bridge->max_memory_agp) + cur_memory = atomic_read(&bridge->current_memory_agp); + if ((cur_memory + page_count > bridge->max_memory_agp) || + (cur_memory + page_count < page_count)) return NULL; if (type >= AGP_USER_TYPES) { @@ -1089,8 +1095,8 @@ return -EINVAL; } - /* AK: could wrap */ - if ((pg_start + mem->page_count) > num_entries) + if (((pg_start + mem->page_count) > num_entries) || + ((pg_start + mem->page_count) < pg_start)) return -EINVAL; j = pg_start; @@ -1124,7 +1130,7 @@ { size_t i; struct agp_bridge_data *bridge; - int mask_type; + int mask_type, num_entries; bridge = mem->bridge; if (!bridge) @@ -1136,6 +1142,11 @@ if (type != mem->type) return -EINVAL; + num_entries = agp_num_entries(); + if (((pg_start + mem->page_count) > num_entries) || + ((pg_start + mem->page_count) < pg_start)) + return -EINVAL; + mask_type = bridge->driver->agp_type_to_mask_type(bridge, type); if (mask_type != 0) { /* The generic routines know nothing of memory types */ --- linux-2.6.38.orig/drivers/char/tpm/tpm.c +++ linux-2.6.38/drivers/char/tpm/tpm.c @@ -980,7 +980,7 @@ return -EBUSY; } - chip->data_buffer = kmalloc(TPM_BUFSIZE * sizeof(u8), GFP_KERNEL); + chip->data_buffer = kzalloc(TPM_BUFSIZE, GFP_KERNEL); if (chip->data_buffer == NULL) { clear_bit(0, &chip->is_open); put_device(chip->dev); --- linux-2.6.38.orig/drivers/atm/solos-pci.c +++ linux-2.6.38/drivers/atm/solos-pci.c @@ -165,7 +165,6 @@ static irqreturn_t solos_irq(int irq, void *dev_id); static struct atm_vcc* find_vcc(struct atm_dev *dev, short vpi, int vci); static int list_vccs(int vci); -static void release_vccs(struct atm_dev *dev); static int atm_init(struct solos_card *, struct device *); static void atm_remove(struct solos_card *); static int send_command(struct solos_card *card, int dev, const char *buf, size_t size); @@ -384,7 +383,6 @@ /* Anything but 'Showtime' is down */ if (strcmp(state_str, "Showtime")) { atm_dev_signal_change(card->atmdev[port], ATM_PHY_SIG_LOST); - release_vccs(card->atmdev[port]); dev_info(&card->dev->dev, "Port %d: %s\n", port, state_str); return 0; } @@ -697,7 +695,7 @@ size); } if (atmdebug) { - dev_info(&card->dev->dev, "Received: device %d\n", port); + dev_info(&card->dev->dev, "Received: port %d\n", port); dev_info(&card->dev->dev, "size: %d VPI: %d VCI: %d\n", size, le16_to_cpu(header->vpi), le16_to_cpu(header->vci)); @@ -830,28 +828,6 @@ return num_found; } -static void release_vccs(struct atm_dev *dev) -{ - int i; - - write_lock_irq(&vcc_sklist_lock); - for (i = 0; i < VCC_HTABLE_SIZE; i++) { - struct hlist_head *head = &vcc_hash[i]; - struct hlist_node *node, *tmp; - struct sock *s; - struct atm_vcc *vcc; - - sk_for_each_safe(s, node, tmp, head) { - vcc = atm_sk(s); - if (vcc->dev == dev) { - vcc_release_async(vcc, -EPIPE); - sk_del_node_init(s); - } - } - } - write_unlock_irq(&vcc_sklist_lock); -} - static int popen(struct atm_vcc *vcc) { @@ -1018,8 +994,15 @@ /* Clean up and free oldskb now it's gone */ if (atmdebug) { + struct pkt_hdr *header = (void *)oldskb->data; + int size = le16_to_cpu(header->size); + + skb_pull(oldskb, sizeof(*header)); dev_info(&card->dev->dev, "Transmitted: port %d\n", port); + dev_info(&card->dev->dev, "size: %d VPI: %d VCI: %d\n", + size, le16_to_cpu(header->vpi), + le16_to_cpu(header->vci)); print_buffer(oldskb); } @@ -1262,7 +1245,7 @@ card->atmdev[i]->ci_range.vci_bits = 16; card->atmdev[i]->dev_data = card; card->atmdev[i]->phy_data = (void *)(unsigned long)i; - atm_dev_signal_change(card->atmdev[i], ATM_PHY_SIG_UNKNOWN); + atm_dev_signal_change(card->atmdev[i], ATM_PHY_SIG_FOUND); skb = alloc_skb(sizeof(*header), GFP_ATOMIC); if (!skb) { --- linux-2.6.38.orig/drivers/cpufreq/cpufreq_stats.c +++ linux-2.6.38/drivers/cpufreq/cpufreq_stats.c @@ -165,17 +165,27 @@ return -1; } +/* should be called late in the CPU removal sequence so that the stats + * memory is still available in case someone tries to use it. + */ static void cpufreq_stats_free_table(unsigned int cpu) { struct cpufreq_stats *stat = per_cpu(cpufreq_stats_table, cpu); - struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); - if (policy && policy->cpu == cpu) - sysfs_remove_group(&policy->kobj, &stats_attr_group); if (stat) { kfree(stat->time_in_state); kfree(stat); } per_cpu(cpufreq_stats_table, cpu) = NULL; +} + +/* must be called early in the CPU removal sequence (before + * cpufreq_remove_dev) so that policy is still valid. + */ +static void cpufreq_stats_free_sysfs(unsigned int cpu) +{ + struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); + if (policy && policy->cpu == cpu) + sysfs_remove_group(&policy->kobj, &stats_attr_group); if (policy) cpufreq_cpu_put(policy); } @@ -316,6 +326,9 @@ case CPU_ONLINE_FROZEN: cpufreq_update_policy(cpu); break; + case CPU_DOWN_PREPARE: + cpufreq_stats_free_sysfs(cpu); + break; case CPU_DEAD: case CPU_DEAD_FROZEN: cpufreq_stats_free_table(cpu); @@ -324,9 +337,11 @@ return NOTIFY_OK; } +/* priority=1 so this will get called before cpufreq_remove_dev */ static struct notifier_block cpufreq_stat_cpu_notifier __refdata = { .notifier_call = cpufreq_stat_cpu_callback, + .priority = 1, }; static struct notifier_block notifier_policy_block = { --- linux-2.6.38.orig/drivers/cpufreq/cpufreq.c +++ linux-2.6.38/drivers/cpufreq/cpufreq.c @@ -1207,12 +1207,28 @@ cpufreq_driver->exit(data); unlock_policy_rwsem_write(cpu); + cpufreq_debug_enable_ratelimit(); + +#ifdef CONFIG_HOTPLUG_CPU + /* when the CPU which is the parent of the kobj is hotplugged + * offline, check for siblings, and create cpufreq sysfs interface + * and symlinks + */ + if (unlikely(cpumask_weight(data->cpus) > 1)) { + /* first sibling now owns the new sysfs dir */ + cpumask_clear_cpu(cpu, data->cpus); + cpufreq_add_dev(get_cpu_sysdev(cpumask_first(data->cpus))); + + /* finally remove our own symlink */ + lock_policy_rwsem_write(cpu); + __cpufreq_remove_dev(sys_dev); + } +#endif + free_cpumask_var(data->related_cpus); free_cpumask_var(data->cpus); kfree(data); - per_cpu(cpufreq_cpu_data, cpu) = NULL; - cpufreq_debug_enable_ratelimit(); return 0; } --- linux-2.6.38.orig/drivers/sh/clk/cpg.c +++ linux-2.6.38/drivers/sh/clk/cpg.c @@ -105,7 +105,7 @@ /* Rebuild the frequency table */ clk_rate_table_build(clk, clk->freq_table, table->nr_divisors, - table, &clk->arch_flags); + table, NULL); return 0; } --- linux-2.6.38.orig/drivers/acpi/Makefile +++ linux-2.6.38/drivers/acpi/Makefile @@ -39,7 +39,7 @@ acpi-y += power.o acpi-y += event.o acpi-y += sysfs.o -acpi-$(CONFIG_DEBUG_FS) += debugfs.o +#acpi-$(CONFIG_DEBUG_FS) += debugfs.o acpi-$(CONFIG_ACPI_NUMA) += numa.o acpi-$(CONFIG_ACPI_PROCFS_POWER) += cm_sbs.o ifdef CONFIG_ACPI_VIDEO --- linux-2.6.38.orig/drivers/acpi/battery.c +++ linux-2.6.38/drivers/acpi/battery.c @@ -33,6 +33,7 @@ #include #include #include +#include #ifdef CONFIG_ACPI_PROCFS_POWER #include @@ -102,6 +103,7 @@ struct mutex lock; struct power_supply bat; struct acpi_device *device; + struct notifier_block pm_nb; unsigned long update_time; int rate_now; int capacity_now; @@ -940,6 +942,21 @@ power_supply_changed(&battery->bat); } +static int battery_notify(struct notifier_block *nb, + unsigned long mode, void *_unused) +{ + struct acpi_battery *battery = container_of(nb, struct acpi_battery, + pm_nb); + switch (mode) { + case PM_POST_SUSPEND: + sysfs_remove_battery(battery); + sysfs_add_battery(battery); + break; + } + + return 0; +} + static int acpi_battery_add(struct acpi_device *device) { int result = 0; @@ -972,6 +989,10 @@ #endif kfree(battery); } + + battery->pm_nb.notifier_call = battery_notify; + register_pm_notifier(&battery->pm_nb); + return result; } @@ -982,6 +1003,7 @@ if (!device || !acpi_driver_data(device)) return -EINVAL; battery = acpi_driver_data(device); + unregister_pm_notifier(&battery->pm_nb); #ifdef CONFIG_ACPI_PROCFS_POWER acpi_battery_remove_fs(device); #endif --- linux-2.6.38.orig/drivers/acpi/pci_root.c +++ linux-2.6.38/drivers/acpi/pci_root.c @@ -564,7 +564,7 @@ /* Indicate support for various _OSC capabilities. */ if (pci_ext_cfg_avail(root->bus->self)) flags |= OSC_EXT_PCI_CONFIG_SUPPORT; - if (pcie_aspm_enabled()) + if (pcie_aspm_support_enabled()) flags |= OSC_ACTIVE_STATE_PWR_SUPPORT | OSC_CLOCK_PWR_CAPABILITY_SUPPORT; if (pci_msi_enabled()) --- linux-2.6.38.orig/drivers/acpi/scan.c +++ linux-2.6.38/drivers/acpi/scan.c @@ -944,6 +944,10 @@ if (ACPI_SUCCESS(status)) device->flags.lockable = 1; + /* Power resources cannot be power manageable. */ + if (device->device_type == ACPI_BUS_TYPE_POWER) + return 0; + /* Presence of _PS0|_PR0 indicates 'power manageable' */ status = acpi_get_handle(device->handle, "_PS0", &temp); if (ACPI_FAILURE(status)) --- linux-2.6.38.orig/drivers/acpi/video.c +++ linux-2.6.38/drivers/acpi/video.c @@ -1414,7 +1414,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.38.orig/drivers/acpi/bus.c +++ linux-2.6.38/drivers/acpi/bus.c @@ -1041,7 +1041,7 @@ acpi_scan_init(); acpi_ec_init(); - acpi_debugfs_init(); + /*acpi_debugfs_init();*/ acpi_sleep_proc_init(); acpi_wakeup_device_init(); return result; --- linux-2.6.38.orig/drivers/staging/Kconfig +++ linux-2.6.38/drivers/staging/Kconfig @@ -87,6 +87,8 @@ source "drivers/staging/rtl8712/Kconfig" +source "drivers/staging/rts_pstor/Kconfig" + source "drivers/staging/frontier/Kconfig" source "drivers/staging/pohmelfs/Kconfig" --- linux-2.6.38.orig/drivers/staging/Makefile +++ linux-2.6.38/drivers/staging/Makefile @@ -27,6 +27,7 @@ obj-$(CONFIG_RTL8192U) += rtl8192u/ obj-$(CONFIG_RTL8192E) += rtl8192e/ obj-$(CONFIG_R8712U) += rtl8712/ +obj-$(CONFIG_RTS_PSTOR) += rts_pstor/ obj-$(CONFIG_SPECTRA) += spectra/ obj-$(CONFIG_TRANZPORT) += frontier/ obj-$(CONFIG_POHMELFS) += pohmelfs/ --- linux-2.6.38.orig/drivers/staging/brcm80211/util/siutils.c +++ linux-2.6.38/drivers/staging/brcm80211/util/siutils.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #ifdef BRCM_FULLMAC #include --- linux-2.6.38.orig/drivers/staging/brcm80211/util/nicpci.c +++ linux-2.6.38/drivers/staging/brcm80211/util/nicpci.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include --- linux-2.6.38.orig/drivers/staging/brcm80211/util/bcmotp.c +++ linux-2.6.38/drivers/staging/brcm80211/util/bcmotp.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx_chip.h +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx_chip.h @@ -0,0 +1,989 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_CHIP_H +#define __REALTEK_RTSX_CHIP_H + +#include "rtsx.h" + +#define SUPPORT_CPRM +#define SUPPORT_OCP +#define SUPPORT_SDIO_ASPM +#define SUPPORT_MAGIC_GATE +#define SUPPORT_MSXC +#define SUPPORT_SD_LOCK +/* Hardware switch bus_ctl and cd_ctl automatically */ +#define HW_AUTO_SWITCH_SD_BUS +/* Enable hardware interrupt write clear */ +#define HW_INT_WRITE_CLR +/* #define LED_AUTO_BLINK */ +/* #define DISABLE_CARD_INT */ + +#ifdef SUPPORT_MAGIC_GATE + /* Using NORMAL_WRITE instead of AUTO_WRITE to set ICV */ + #define MG_SET_ICV_SLOW + /* HW may miss ERR/CMDNK signal when sampling INT status. */ + #define MS_SAMPLE_INT_ERR + /* HW DO NOT support Wait_INT function during READ_BYTES transfer mode */ + #define READ_BYTES_WAIT_INT +#endif + +#ifdef SUPPORT_MSXC +#define XC_POWERCLASS +#define SUPPORT_PCGL_1P18 +#endif + +#ifndef LED_AUTO_BLINK +#define REGULAR_BLINK +#endif + +#define LED_BLINK_SPEED 5 +#define LED_TOGGLE_INTERVAL 6 +#define GPIO_TOGGLE_THRESHOLD 1024 +#define LED_GPIO 0 + +#define POLLING_INTERVAL 30 + +#define TRACE_ITEM_CNT 64 + +#ifndef STATUS_SUCCESS +#define STATUS_SUCCESS 0 +#endif +#ifndef STATUS_FAIL +#define STATUS_FAIL 1 +#endif +#ifndef STATUS_TIMEDOUT +#define STATUS_TIMEDOUT 2 +#endif +#ifndef STATUS_NOMEM +#define STATUS_NOMEM 3 +#endif +#ifndef STATUS_READ_FAIL +#define STATUS_READ_FAIL 4 +#endif +#ifndef STATUS_WRITE_FAIL +#define STATUS_WRITE_FAIL 5 +#endif +#ifndef STATUS_ERROR +#define STATUS_ERROR 10 +#endif + +#define PM_S1 1 +#define PM_S3 3 + +/* + * Transport return codes + */ + +#define TRANSPORT_GOOD 0 /* Transport good, command good */ +#define TRANSPORT_FAILED 1 /* Transport good, command failed */ +#define TRANSPORT_NO_SENSE 2 /* Command failed, no auto-sense */ +#define TRANSPORT_ERROR 3 /* Transport bad (i.e. device dead) */ + + +/*----------------------------------- + Start-Stop-Unit +-----------------------------------*/ +#define STOP_MEDIUM 0x00 /* access disable */ +#define MAKE_MEDIUM_READY 0x01 /* access enable */ +#define UNLOAD_MEDIUM 0x02 /* unload */ +#define LOAD_MEDIUM 0x03 /* load */ + +/*----------------------------------- + STANDARD_INQUIRY +-----------------------------------*/ +#define QULIFIRE 0x00 +#define AENC_FNC 0x00 +#define TRML_IOP 0x00 +#define REL_ADR 0x00 +#define WBUS_32 0x00 +#define WBUS_16 0x00 +#define SYNC 0x00 +#define LINKED 0x00 +#define CMD_QUE 0x00 +#define SFT_RE 0x00 + +#define VEN_ID_LEN 8 /* Vendor ID Length */ +#define PRDCT_ID_LEN 16 /* Product ID Length */ +#define PRDCT_REV_LEN 4 /* Product LOT Length */ + +/* Dynamic flag definitions: used in set_bit() etc. */ +#define RTSX_FLIDX_TRANS_ACTIVE 18 /* 0x00040000 transfer is active */ +#define RTSX_FLIDX_ABORTING 20 /* 0x00100000 abort is in progress */ +#define RTSX_FLIDX_DISCONNECTING 21 /* 0x00200000 disconnect in progress */ +#define ABORTING_OR_DISCONNECTING ((1UL << US_FLIDX_ABORTING) | \ + (1UL << US_FLIDX_DISCONNECTING)) +#define RTSX_FLIDX_RESETTING 22 /* 0x00400000 device reset in progress */ +#define RTSX_FLIDX_TIMED_OUT 23 /* 0x00800000 SCSI midlayer timed out */ + +#define DRCT_ACCESS_DEV 0x00 /* Direct Access Device */ +#define RMB_DISC 0x80 /* The Device is Removable */ +#define ANSI_SCSI2 0x02 /* Based on ANSI-SCSI2 */ + +#define SCSI 0x00 /* Interface ID */ + +#define WRITE_PROTECTED_MEDIA 0x07 + +/*---- sense key ----*/ +#define ILI 0x20 /* ILI bit is on */ + +#define NO_SENSE 0x00 /* not exist sense key */ +#define RECOVER_ERR 0x01 /* Target/Logical unit is recoverd */ +#define NOT_READY 0x02 /* Logical unit is not ready */ +#define MEDIA_ERR 0x03 /* medium/data error */ +#define HARDWARE_ERR 0x04 /* hardware error */ +#define ILGAL_REQ 0x05 /* CDB/parameter/identify msg error */ +#define UNIT_ATTENTION 0x06 /* unit attention condition occur */ +#define DAT_PRTCT 0x07 /* read/write is desable */ +#define BLNC_CHK 0x08 /* find blank/DOF in read */ + /* write to unblank area */ +#define CPY_ABRT 0x0a /* Copy/Compare/Copy&Verify illgal */ +#define ABRT_CMD 0x0b /* Target make the command in error */ +#define EQUAL 0x0c /* Search Data end with Equal */ +#define VLM_OVRFLW 0x0d /* Some data are left in buffer */ +#define MISCMP 0x0e /* find inequality */ + +#define READ_ERR -1 +#define WRITE_ERR -2 + +#define FIRST_RESET 0x01 +#define USED_EXIST 0x02 + +/*----------------------------------- + SENSE_DATA +-----------------------------------*/ +/*---- valid ----*/ +#define SENSE_VALID 0x80 /* Sense data is valid as SCSI2 */ +#define SENSE_INVALID 0x00 /* Sense data is invalid as SCSI2 */ + +/*---- error code ----*/ +#define CUR_ERR 0x70 /* current error */ +#define DEF_ERR 0x71 /* specific command error */ + +/*---- sense key Infomation ----*/ +#define SNSKEYINFO_LEN 3 /* length of sense key infomation */ + +#define SKSV 0x80 +#define CDB_ILLEGAL 0x40 +#define DAT_ILLEGAL 0x00 +#define BPV 0x08 +#define BIT_ILLEGAL0 0 /* bit0 is illegal */ +#define BIT_ILLEGAL1 1 /* bit1 is illegal */ +#define BIT_ILLEGAL2 2 /* bit2 is illegal */ +#define BIT_ILLEGAL3 3 /* bit3 is illegal */ +#define BIT_ILLEGAL4 4 /* bit4 is illegal */ +#define BIT_ILLEGAL5 5 /* bit5 is illegal */ +#define BIT_ILLEGAL6 6 /* bit6 is illegal */ +#define BIT_ILLEGAL7 7 /* bit7 is illegal */ + +/*---- ASC ----*/ +#define ASC_NO_INFO 0x00 +#define ASC_MISCMP 0x1d +#define ASC_INVLD_CDB 0x24 +#define ASC_INVLD_PARA 0x26 +#define ASC_LU_NOT_READY 0x04 +#define ASC_WRITE_ERR 0x0c +#define ASC_READ_ERR 0x11 +#define ASC_LOAD_EJCT_ERR 0x53 +#define ASC_MEDIA_NOT_PRESENT 0x3A +#define ASC_MEDIA_CHANGED 0x28 +#define ASC_MEDIA_IN_PROCESS 0x04 +#define ASC_WRITE_PROTECT 0x27 +#define ASC_LUN_NOT_SUPPORTED 0x25 + +/*---- ASQC ----*/ +#define ASCQ_NO_INFO 0x00 +#define ASCQ_MEDIA_IN_PROCESS 0x01 +#define ASCQ_MISCMP 0x00 +#define ASCQ_INVLD_CDB 0x00 +#define ASCQ_INVLD_PARA 0x02 +#define ASCQ_LU_NOT_READY 0x02 +#define ASCQ_WRITE_ERR 0x02 +#define ASCQ_READ_ERR 0x00 +#define ASCQ_LOAD_EJCT_ERR 0x00 +#define ASCQ_WRITE_PROTECT 0x00 + + +struct sense_data_t { + unsigned char err_code; /* error code */ + /* bit7 : valid */ + /* (1 : SCSI2) */ + /* (0 : Vendor specific) */ + /* bit6-0 : error code */ + /* (0x70 : current error) */ + /* (0x71 : specific command error) */ + unsigned char seg_no; /* segment No. */ + unsigned char sense_key; /* byte5 : ILI */ + /* bit3-0 : sense key */ + unsigned char info[4]; /* infomation */ + unsigned char ad_sense_len; /* additional sense data length */ + unsigned char cmd_info[4]; /* command specific infomation */ + unsigned char asc; /* ASC */ + unsigned char ascq; /* ASCQ */ + unsigned char rfu; /* FRU */ + unsigned char sns_key_info[3]; /* sense key specific infomation */ +}; + +/* PCI Operation Register Address */ +#define RTSX_HCBAR 0x00 +#define RTSX_HCBCTLR 0x04 +#define RTSX_HDBAR 0x08 +#define RTSX_HDBCTLR 0x0C +#define RTSX_HAIMR 0x10 +#define RTSX_BIPR 0x14 +#define RTSX_BIER 0x18 + +/* Host command buffer control register */ +#define STOP_CMD (0x01 << 28) + +/* Host data buffer control register */ +#define SDMA_MODE 0x00 +#define ADMA_MODE (0x02 << 26) +#define STOP_DMA (0x01 << 28) +#define TRIG_DMA (0x01 << 31) + +/* Bus interrupt pending register */ +#define CMD_DONE_INT (1 << 31) +#define DATA_DONE_INT (1 << 30) +#define TRANS_OK_INT (1 << 29) +#define TRANS_FAIL_INT (1 << 28) +#define XD_INT (1 << 27) +#define MS_INT (1 << 26) +#define SD_INT (1 << 25) +#define GPIO0_INT (1 << 24) +#define OC_INT (1 << 23) +#define SD_WRITE_PROTECT (1 << 19) +#define XD_EXIST (1 << 18) +#define MS_EXIST (1 << 17) +#define SD_EXIST (1 << 16) +#define DELINK_INT GPIO0_INT +#define MS_OC_INT (1 << 23) +#define SD_OC_INT (1 << 22) + +#define CARD_INT (XD_INT | MS_INT | SD_INT) +#define NEED_COMPLETE_INT (DATA_DONE_INT | TRANS_OK_INT | TRANS_FAIL_INT) +#define RTSX_INT (CMD_DONE_INT | NEED_COMPLETE_INT | CARD_INT | GPIO0_INT | OC_INT) + +#define CARD_EXIST (XD_EXIST | MS_EXIST | SD_EXIST) + +/* Bus interrupt enable register */ +#define CMD_DONE_INT_EN (1 << 31) +#define DATA_DONE_INT_EN (1 << 30) +#define TRANS_OK_INT_EN (1 << 29) +#define TRANS_FAIL_INT_EN (1 << 28) +#define XD_INT_EN (1 << 27) +#define MS_INT_EN (1 << 26) +#define SD_INT_EN (1 << 25) +#define GPIO0_INT_EN (1 << 24) +#define OC_INT_EN (1 << 23) +#define DELINK_INT_EN GPIO0_INT_EN +#define MS_OC_INT_EN (1 << 23) +#define SD_OC_INT_EN (1 << 22) + + +#define READ_REG_CMD 0 +#define WRITE_REG_CMD 1 +#define CHECK_REG_CMD 2 + +#define HOST_TO_DEVICE 0 +#define DEVICE_TO_HOST 1 + + +#define RTSX_RESV_BUF_LEN 4096 +#define HOST_CMDS_BUF_LEN 1024 +#define HOST_SG_TBL_BUF_LEN (RTSX_RESV_BUF_LEN - HOST_CMDS_BUF_LEN) + +#define SD_NR 2 +#define MS_NR 3 +#define XD_NR 4 +#define SPI_NR 7 +#define SD_CARD (1 << SD_NR) +#define MS_CARD (1 << MS_NR) +#define XD_CARD (1 << XD_NR) +#define SPI_CARD (1 << SPI_NR) + +#define MAX_ALLOWED_LUN_CNT 8 + +#define XD_FREE_TABLE_CNT 1200 +#define MS_FREE_TABLE_CNT 512 + + +/* Bit Operation */ +#define SET_BIT(data, idx) ((data) |= 1 << (idx)) +#define CLR_BIT(data, idx) ((data) &= ~(1 << (idx))) +#define CHK_BIT(data, idx) ((data) & (1 << (idx))) + +/* SG descriptor */ +#define SG_INT 0x04 +#define SG_END 0x02 +#define SG_VALID 0x01 + +#define SG_NO_OP 0x00 +#define SG_TRANS_DATA (0x02 << 4) +#define SG_LINK_DESC (0x03 << 4) + +struct rtsx_chip; + +typedef int (*card_rw_func)(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 sec_addr, u16 sec_cnt); + +/* Supported Clock */ +enum card_clock {CLK_20 = 1, CLK_30, CLK_40, CLK_50, CLK_60, CLK_80, CLK_100, CLK_120, CLK_150, CLK_200}; + +enum RTSX_STAT {RTSX_STAT_INIT, RTSX_STAT_IDLE, RTSX_STAT_RUN, RTSX_STAT_SS, + RTSX_STAT_DELINK, RTSX_STAT_SUSPEND, RTSX_STAT_ABORT, RTSX_STAT_DISCONNECT}; +enum IC_VER {IC_VER_AB, IC_VER_C = 2, IC_VER_D = 3}; + +#define MAX_RESET_CNT 3 + +/* For MS Card */ +#define MAX_DEFECTIVE_BLOCK 10 + +struct zone_entry { + u16 *l2p_table; + u16 *free_table; + u16 defect_list[MAX_DEFECTIVE_BLOCK]; /* For MS card only */ + int set_index; + int get_index; + int unused_blk_cnt; + int disable_count; + /* To indicate whether the L2P table of this zone has been built. */ + int build_flag; +}; + +#define TYPE_SD 0x0000 +#define TYPE_MMC 0x0001 + +/* TYPE_SD */ +#define SD_HS 0x0100 +#define SD_SDR50 0x0200 +#define SD_DDR50 0x0400 +#define SD_SDR104 0x0800 +#define SD_HCXC 0x1000 + +/* TYPE_MMC */ +#define MMC_26M 0x0100 +#define MMC_52M 0x0200 +#define MMC_4BIT 0x0400 +#define MMC_8BIT 0x0800 +#define MMC_SECTOR_MODE 0x1000 +#define MMC_DDR52 0x2000 + +/* SD card */ +#define CHK_SD(sd_card) (((sd_card)->sd_type & 0xFF) == TYPE_SD) +#define CHK_SD_HS(sd_card) (CHK_SD(sd_card) && ((sd_card)->sd_type & SD_HS)) +#define CHK_SD_SDR50(sd_card) (CHK_SD(sd_card) && ((sd_card)->sd_type & SD_SDR50)) +#define CHK_SD_DDR50(sd_card) (CHK_SD(sd_card) && ((sd_card)->sd_type & SD_DDR50)) +#define CHK_SD_SDR104(sd_card) (CHK_SD(sd_card) && ((sd_card)->sd_type & SD_SDR104)) +#define CHK_SD_HCXC(sd_card) (CHK_SD(sd_card) && ((sd_card)->sd_type & SD_HCXC)) +#define CHK_SD_HC(sd_card) (CHK_SD_HCXC(sd_card) && ((sd_card)->capacity <= 0x4000000)) +#define CHK_SD_XC(sd_card) (CHK_SD_HCXC(sd_card) && ((sd_card)->capacity > 0x4000000)) +#define CHK_SD30_SPEED(sd_card) (CHK_SD_SDR50(sd_card) || CHK_SD_DDR50(sd_card) || CHK_SD_SDR104(sd_card)) + +#define SET_SD(sd_card) ((sd_card)->sd_type = TYPE_SD) +#define SET_SD_HS(sd_card) ((sd_card)->sd_type |= SD_HS) +#define SET_SD_SDR50(sd_card) ((sd_card)->sd_type |= SD_SDR50) +#define SET_SD_DDR50(sd_card) ((sd_card)->sd_type |= SD_DDR50) +#define SET_SD_SDR104(sd_card) ((sd_card)->sd_type |= SD_SDR104) +#define SET_SD_HCXC(sd_card) ((sd_card)->sd_type |= SD_HCXC) + +#define CLR_SD_HS(sd_card) ((sd_card)->sd_type &= ~SD_HS) +#define CLR_SD_SDR50(sd_card) ((sd_card)->sd_type &= ~SD_SDR50) +#define CLR_SD_DDR50(sd_card) ((sd_card)->sd_type &= ~SD_DDR50) +#define CLR_SD_SDR104(sd_card) ((sd_card)->sd_type &= ~SD_SDR104) +#define CLR_SD_HCXC(sd_card) ((sd_card)->sd_type &= ~SD_HCXC) + +/* MMC card */ +#define CHK_MMC(sd_card) (((sd_card)->sd_type & 0xFF) == TYPE_MMC) +#define CHK_MMC_26M(sd_card) (CHK_MMC(sd_card) && ((sd_card)->sd_type & MMC_26M)) +#define CHK_MMC_52M(sd_card) (CHK_MMC(sd_card) && ((sd_card)->sd_type & MMC_52M)) +#define CHK_MMC_4BIT(sd_card) (CHK_MMC(sd_card) && ((sd_card)->sd_type & MMC_4BIT)) +#define CHK_MMC_8BIT(sd_card) (CHK_MMC(sd_card) && ((sd_card)->sd_type & MMC_8BIT)) +#define CHK_MMC_SECTOR_MODE(sd_card) (CHK_MMC(sd_card) && ((sd_card)->sd_type & MMC_SECTOR_MODE)) +#define CHK_MMC_DDR52(sd_card) (CHK_MMC(sd_card) && ((sd_card)->sd_type & MMC_DDR52)) + +#define SET_MMC(sd_card) ((sd_card)->sd_type = TYPE_MMC) +#define SET_MMC_26M(sd_card) ((sd_card)->sd_type |= MMC_26M) +#define SET_MMC_52M(sd_card) ((sd_card)->sd_type |= MMC_52M) +#define SET_MMC_4BIT(sd_card) ((sd_card)->sd_type |= MMC_4BIT) +#define SET_MMC_8BIT(sd_card) ((sd_card)->sd_type |= MMC_8BIT) +#define SET_MMC_SECTOR_MODE(sd_card) ((sd_card)->sd_type |= MMC_SECTOR_MODE) +#define SET_MMC_DDR52(sd_card) ((sd_card)->sd_type |= MMC_DDR52) + +#define CLR_MMC_26M(sd_card) ((sd_card)->sd_type &= ~MMC_26M) +#define CLR_MMC_52M(sd_card) ((sd_card)->sd_type &= ~MMC_52M) +#define CLR_MMC_4BIT(sd_card) ((sd_card)->sd_type &= ~MMC_4BIT) +#define CLR_MMC_8BIT(sd_card) ((sd_card)->sd_type &= ~MMC_8BIT) +#define CLR_MMC_SECTOR_MODE(sd_card) ((sd_card)->sd_type &= ~MMC_SECTOR_MODE) +#define CLR_MMC_DDR52(sd_card) ((sd_card)->sd_type &= ~MMC_DDR52) + +#define CHK_MMC_HS(sd_card) (CHK_MMC_52M(sd_card) && CHK_MMC_26M(sd_card)) +#define CLR_MMC_HS(sd_card) \ +do { \ + CLR_MMC_DDR52(sd_card); \ + CLR_MMC_52M(sd_card); \ + CLR_MMC_26M(sd_card); \ +} while (0) + +#define SD_SUPPORT_CLASS_TEN 0x01 +#define SD_SUPPORT_1V8 0x02 + +#define SD_SET_CLASS_TEN(sd_card) ((sd_card)->sd_setting |= SD_SUPPORT_CLASS_TEN) +#define SD_CHK_CLASS_TEN(sd_card) ((sd_card)->sd_setting & SD_SUPPORT_CLASS_TEN) +#define SD_CLR_CLASS_TEN(sd_card) ((sd_card)->sd_setting &= ~SD_SUPPORT_CLASS_TEN) +#define SD_SET_1V8(sd_card) ((sd_card)->sd_setting |= SD_SUPPORT_1V8) +#define SD_CHK_1V8(sd_card) ((sd_card)->sd_setting & SD_SUPPORT_1V8) +#define SD_CLR_1V8(sd_card) ((sd_card)->sd_setting &= ~SD_SUPPORT_1V8) + +struct sd_info { + u16 sd_type; + u8 err_code; + u8 sd_data_buf_ready; + u32 sd_addr; + u32 capacity; + + u8 raw_csd[16]; + u8 raw_scr[8]; + + /* Sequential RW */ + int seq_mode; + enum dma_data_direction pre_dir; + u32 pre_sec_addr; + u16 pre_sec_cnt; + + int cleanup_counter; + + int sd_clock; + + int mmc_dont_switch_bus; + +#ifdef SUPPORT_CPRM + int sd_pass_thru_en; + int pre_cmd_err; + u8 last_rsp_type; + u8 rsp[17]; +#endif + + u8 func_group1_mask; + u8 func_group2_mask; + u8 func_group3_mask; + u8 func_group4_mask; + + u8 sd_switch_fail; + u8 sd_read_phase; + +#ifdef SUPPORT_SD_LOCK + u8 sd_lock_status; + u8 sd_erase_status; + u8 sd_lock_notify; +#endif + int need_retune; +}; + +struct xd_delay_write_tag { + u32 old_phyblock; + u32 new_phyblock; + u32 logblock; + u8 pageoff; + u8 delay_write_flag; +}; + +struct xd_info { + u8 maker_code; + u8 device_code; + u8 block_shift; + u8 page_off; + u8 addr_cycle; + u16 cis_block; + u8 multi_flag; + u8 err_code; + u32 capacity; + + struct zone_entry *zone; + int zone_cnt; + + struct xd_delay_write_tag delay_write; + int cleanup_counter; + + int xd_clock; +}; + +#define MODE_512_SEQ 0x01 +#define MODE_2K_SEQ 0x02 + +#define TYPE_MS 0x0000 +#define TYPE_MSPRO 0x0001 + +#define MS_4BIT 0x0100 +#define MS_8BIT 0x0200 +#define MS_HG 0x0400 +#define MS_XC 0x0800 + +#define HG8BIT (MS_HG | MS_8BIT) + +#define CHK_MSPRO(ms_card) (((ms_card)->ms_type & 0xFF) == TYPE_MSPRO) +#define CHK_HG8BIT(ms_card) (CHK_MSPRO(ms_card) && (((ms_card)->ms_type & HG8BIT) == HG8BIT)) +#define CHK_MSXC(ms_card) (CHK_MSPRO(ms_card) && ((ms_card)->ms_type & MS_XC)) +#define CHK_MSHG(ms_card) (CHK_MSPRO(ms_card) && ((ms_card)->ms_type & MS_HG)) + +#define CHK_MS8BIT(ms_card) (((ms_card)->ms_type & MS_8BIT)) +#define CHK_MS4BIT(ms_card) (((ms_card)->ms_type & MS_4BIT)) + +struct ms_delay_write_tag { + u16 old_phyblock; + u16 new_phyblock; + u16 logblock; + u8 pageoff; + u8 delay_write_flag; +}; + +struct ms_info { + u16 ms_type; + u8 block_shift; + u8 page_off; + u16 total_block; + u16 boot_block; + u32 capacity; + + u8 check_ms_flow; + u8 switch_8bit_fail; + u8 err_code; + + struct zone_entry *segment; + int segment_cnt; + + int pro_under_formatting; + int format_status; + u16 progress; + u8 raw_sys_info[96]; +#ifdef SUPPORT_PCGL_1P18 + u8 raw_model_name[48]; +#endif + + u8 multi_flag; + + /* Sequential RW */ + u8 seq_mode; + enum dma_data_direction pre_dir; + u32 pre_sec_addr; + u16 pre_sec_cnt; + u32 total_sec_cnt; + + struct ms_delay_write_tag delay_write; + + int cleanup_counter; + + int ms_clock; + +#ifdef SUPPORT_MAGIC_GATE + u8 magic_gate_id[16]; + u8 mg_entry_num; + int mg_auth; /* flag to indicate authentication process */ +#endif +}; + +struct spi_info { + u8 use_clk; + u8 write_en; + u16 clk_div; + u8 err_code; + + int spi_clock; +}; + + +#ifdef _MSG_TRACE +struct trace_msg_t { + u16 line; +#define MSG_FUNC_LEN 64 + char func[MSG_FUNC_LEN]; +#define MSG_FILE_LEN 32 + char file[MSG_FILE_LEN]; +#define TIME_VAL_LEN 16 + u8 timeval_buf[TIME_VAL_LEN]; + u8 valid; +}; +#endif + +/************/ +/* LUN mode */ +/************/ +/* Single LUN, support xD/SD/MS */ +#define DEFAULT_SINGLE 0 +/* 2 LUN mode, support SD/MS */ +#define SD_MS_2LUN 1 +/* Single LUN, but only support SD/MS, for Barossa LQFP */ +#define SD_MS_1LUN 2 + +#define LAST_LUN_MODE 2 + +/* Barossa package */ +#define QFN 0 +#define LQFP 1 + +/******************/ +/* sd_ctl bit map */ +/******************/ +/* SD push point control, bit 0, 1 */ +#define SD_PUSH_POINT_CTL_MASK 0x03 +#define SD_PUSH_POINT_DELAY 0x01 +#define SD_PUSH_POINT_AUTO 0x02 +/* SD sample point control, bit 2, 3 */ +#define SD_SAMPLE_POINT_CTL_MASK 0x0C +#define SD_SAMPLE_POINT_DELAY 0x04 +#define SD_SAMPLE_POINT_AUTO 0x08 +/* SD DDR Tx phase set by user, bit 4 */ +#define SD_DDR_TX_PHASE_SET_BY_USER 0x10 +/* MMC DDR Tx phase set by user, bit 5 */ +#define MMC_DDR_TX_PHASE_SET_BY_USER 0x20 +/* Support MMC DDR mode, bit 6 */ +#define SUPPORT_MMC_DDR_MODE 0x40 +/* Reset MMC at first */ +#define RESET_MMC_FIRST 0x80 + +#define SEQ_START_CRITERIA 0x20 + +/* MS Power Class En */ +#define POWER_CLASS_2_EN 0x02 +#define POWER_CLASS_1_EN 0x01 + +#define MAX_SHOW_CNT 10 +#define MAX_RESET_CNT 3 + +#define SDIO_EXIST 0x01 +#define SDIO_IGNORED 0x02 + +#define CHK_SDIO_EXIST(chip) ((chip)->sdio_func_exist & SDIO_EXIST) +#define SET_SDIO_EXIST(chip) ((chip)->sdio_func_exist |= SDIO_EXIST) +#define CLR_SDIO_EXIST(chip) ((chip)->sdio_func_exist &= ~SDIO_EXIST) + +#define CHK_SDIO_IGNORED(chip) ((chip)->sdio_func_exist & SDIO_IGNORED) +#define SET_SDIO_IGNORED(chip) ((chip)->sdio_func_exist |= SDIO_IGNORED) +#define CLR_SDIO_IGNORED(chip) ((chip)->sdio_func_exist &= ~SDIO_IGNORED) + +struct rtsx_chip { + rtsx_dev_t *rtsx; + + u32 int_reg; /* Bus interrupt pending register */ + char max_lun; + void *context; + + void *host_cmds_ptr; /* host commands buffer pointer */ + dma_addr_t host_cmds_addr; + int ci; /* Command Index */ + + void *host_sg_tbl_ptr; /* SG descriptor table */ + dma_addr_t host_sg_tbl_addr; + int sgi; /* SG entry index */ + + struct scsi_cmnd *srb; /* current srb */ + struct sense_data_t sense_buffer[MAX_ALLOWED_LUN_CNT]; + + int cur_clk; /* current card clock */ + + /* Current accessed card */ + int cur_card; + + unsigned long need_release; /* need release bit map */ + unsigned long need_reset; /* need reset bit map */ + /* Flag to indicate that this card is just resumed from SS state, + * and need released before being resetted + */ + unsigned long need_reinit; + + int rw_need_retry; + +#ifdef SUPPORT_OCP + u32 ocp_int; + u8 ocp_stat; +#endif + + u8 card_exist; /* card exist bit map (physical exist) */ + u8 card_ready; /* card ready bit map (reset successfully) */ + u8 card_fail; /* card reset fail bit map */ + u8 card_ejected; /* card ejected bit map */ + u8 card_wp; /* card write protected bit map */ + + u8 lun_mc; /* flag to indicate whether to answer MediaChange */ + +#ifndef LED_AUTO_BLINK + int led_toggle_counter; +#endif + + int sd_reset_counter; + int xd_reset_counter; + int ms_reset_counter; + + /* card bus width */ + u8 card_bus_width[MAX_ALLOWED_LUN_CNT]; + /* card capacity */ + u32 capacity[MAX_ALLOWED_LUN_CNT]; + /* read/write card function pointer */ + card_rw_func rw_card[MAX_ALLOWED_LUN_CNT]; + /* read/write capacity, used for GPIO Toggle */ + u32 rw_cap[MAX_ALLOWED_LUN_CNT]; + /* card to lun mapping table */ + u8 card2lun[32]; + /* lun to card mapping table */ + u8 lun2card[MAX_ALLOWED_LUN_CNT]; + + int rw_fail_cnt[MAX_ALLOWED_LUN_CNT]; + + int sd_show_cnt; + int xd_show_cnt; + int ms_show_cnt; + + /* card information */ + struct sd_info sd_card; + struct xd_info xd_card; + struct ms_info ms_card; + + struct spi_info spi; + +#ifdef _MSG_TRACE + struct trace_msg_t trace_msg[TRACE_ITEM_CNT]; + int msg_idx; +#endif + + int auto_delink_cnt; + int auto_delink_allowed; + + int aspm_enabled; + + int sdio_aspm; + int sdio_idle; + int sdio_counter; + u8 sdio_raw_data[12]; + + u8 sd_io; + u8 sd_int; + + u8 rtsx_flag; + + int ss_counter; + int idle_counter; + enum RTSX_STAT rtsx_stat; + + u16 vendor_id; + u16 product_id; + u8 ic_version; + + int driver_first_load; + +#ifdef HW_AUTO_SWITCH_SD_BUS + int sdio_in_charge; +#endif + + u8 aspm_level[2]; + + int chip_insert_with_sdio; + + /* Options */ + + int adma_mode; + + int auto_delink_en; + int ss_en; + u8 lun_mode; + u8 aspm_l0s_l1_en; + + int power_down_in_ss; + + int sdr104_en; + int ddr50_en; + int sdr50_en; + + int baro_pkg; + + int asic_code; + int phy_debug_mode; + int hw_bypass_sd; + int sdio_func_exist; + int aux_pwr_exist; + u8 ms_power_class_en; + + int mspro_formatter_enable; + + int remote_wakeup_en; + + int ignore_sd; + int use_hw_setting; + + int ss_idle_period; + + int dynamic_aspm; + + int fpga_sd_sdr104_clk; + int fpga_sd_ddr50_clk; + int fpga_sd_sdr50_clk; + int fpga_sd_hs_clk; + int fpga_mmc_52m_clk; + int fpga_ms_hg_clk; + int fpga_ms_4bit_clk; + int fpga_ms_1bit_clk; + + int asic_sd_sdr104_clk; + int asic_sd_ddr50_clk; + int asic_sd_sdr50_clk; + int asic_sd_hs_clk; + int asic_mmc_52m_clk; + int asic_ms_hg_clk; + int asic_ms_4bit_clk; + int asic_ms_1bit_clk; + + u8 ssc_depth_sd_sdr104; + u8 ssc_depth_sd_ddr50; + u8 ssc_depth_sd_sdr50; + u8 ssc_depth_sd_hs; + u8 ssc_depth_mmc_52m; + u8 ssc_depth_ms_hg; + u8 ssc_depth_ms_4bit; + u8 ssc_depth_low_speed; + + u8 card_drive_sel; + u8 sd30_drive_sel_1v8; + u8 sd30_drive_sel_3v3; + + u8 sd_400mA_ocp_thd; + u8 sd_800mA_ocp_thd; + u8 ms_ocp_thd; + + int ssc_en; + int msi_en; + + int xd_timeout; + int sd_timeout; + int ms_timeout; + int mspro_timeout; + + int auto_power_down; + + int sd_ddr_tx_phase; + int mmc_ddr_tx_phase; + int sd_default_tx_phase; + int sd_default_rx_phase; + + int pmos_pwr_on_interval; + int sd_voltage_switch_delay; + int s3_pwr_off_delay; + + int force_clkreq_0; + int ft2_fast_mode; + + int do_delink_before_power_down; + int polling_config; + int sdio_retry_cnt; + + int delink_stage1_step; + int delink_stage2_step; + int delink_stage3_step; + + int auto_delink_in_L1; + int hp_watch_bios_hotplug; + int support_ms_8bit; + + u8 blink_led; + u8 phy_voltage; + u8 max_payload; + + u32 sd_speed_prior; + u32 sd_current_prior; + u32 sd_ctl; +}; + +#define rtsx_set_stat(chip, stat) \ +do { \ + if ((stat) != RTSX_STAT_IDLE) { \ + (chip)->idle_counter = 0; \ + } \ + (chip)->rtsx_stat = (enum RTSX_STAT)(stat); \ +} while (0) +#define rtsx_get_stat(chip) ((chip)->rtsx_stat) +#define rtsx_chk_stat(chip, stat) ((chip)->rtsx_stat == (stat)) + +#define RTSX_SET_DELINK(chip) ((chip)->rtsx_flag |= 0x01) +#define RTSX_CLR_DELINK(chip) ((chip)->rtsx_flag &= 0xFE) +#define RTSX_TST_DELINK(chip) ((chip)->rtsx_flag & 0x01) + +#define CHECK_PID(chip, pid) ((chip)->product_id == (pid)) +#define CHECK_BARO_PKG(chip, pkg) ((chip)->baro_pkg == (pkg)) +#define CHECK_LUN_MODE(chip, mode) ((chip)->lun_mode == (mode)) + +/* Power down control */ +#define SSC_PDCTL 0x01 +#define OC_PDCTL 0x02 + +int rtsx_force_power_on(struct rtsx_chip *chip, u8 ctl); +int rtsx_force_power_down(struct rtsx_chip *chip, u8 ctl); + +void rtsx_disable_card_int(struct rtsx_chip *chip); +void rtsx_enable_card_int(struct rtsx_chip *chip); +void rtsx_enable_bus_int(struct rtsx_chip *chip); +void rtsx_disable_bus_int(struct rtsx_chip *chip); +int rtsx_reset_chip(struct rtsx_chip *chip); +int rtsx_init_chip(struct rtsx_chip *chip); +void rtsx_release_chip(struct rtsx_chip *chip); +void rtsx_polling_func(struct rtsx_chip *chip); +void rtsx_undo_delink(struct rtsx_chip *chip); +void rtsx_stop_cmd(struct rtsx_chip *chip, int card); +int rtsx_write_register(struct rtsx_chip *chip, u16 addr, u8 mask, u8 data); +int rtsx_read_register(struct rtsx_chip *chip, u16 addr, u8 *data); +int rtsx_write_cfg_dw(struct rtsx_chip *chip, u8 func_no, u16 addr, u32 mask, u32 val); +int rtsx_read_cfg_dw(struct rtsx_chip *chip, u8 func_no, u16 addr, u32 *val); +int rtsx_write_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf, int len); +int rtsx_read_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf, int len); +int rtsx_write_phy_register(struct rtsx_chip *chip, u8 addr, u16 val); +int rtsx_read_phy_register(struct rtsx_chip *chip, u8 addr, u16 *val); +int rtsx_read_efuse(struct rtsx_chip *chip, u8 addr, u8 *val); +int rtsx_write_efuse(struct rtsx_chip *chip, u8 addr, u8 val); +int rtsx_clr_phy_reg_bit(struct rtsx_chip *chip, u8 reg, u8 bit); +int rtsx_set_phy_reg_bit(struct rtsx_chip *chip, u8 reg, u8 bit); +int rtsx_check_link_ready(struct rtsx_chip *chip); +void rtsx_enter_ss(struct rtsx_chip *chip); +void rtsx_exit_ss(struct rtsx_chip *chip); +int rtsx_pre_handle_interrupt(struct rtsx_chip *chip); +void rtsx_enter_L1(struct rtsx_chip *chip); +void rtsx_exit_L1(struct rtsx_chip *chip); +void rtsx_do_before_power_down(struct rtsx_chip *chip, int pm_stat); +void rtsx_enable_aspm(struct rtsx_chip *chip); +void rtsx_disable_aspm(struct rtsx_chip *chip); +int rtsx_read_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len); +int rtsx_write_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len); +int rtsx_check_chip_exist(struct rtsx_chip *chip); + +#define RTSX_WRITE_REG(chip, addr, mask, data) \ +do { \ + int retval = rtsx_write_register((chip), (addr), (mask), (data)); \ + if (retval != STATUS_SUCCESS) { \ + TRACE_RET((chip), retval); \ + } \ +} while (0) + +#define RTSX_READ_REG(chip, addr, data) \ +do { \ + int retval = rtsx_read_register((chip), (addr), (data)); \ + if (retval != STATUS_SUCCESS) { \ + TRACE_RET((chip), retval); \ + } \ +} while (0) + +#endif /* __REALTEK_RTSX_CHIP_H */ --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx_card.c +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx_card.c @@ -0,0 +1,1257 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include +#include +#include +#include +#include + +#include "rtsx.h" +#include "rtsx_transport.h" +#include "rtsx_scsi.h" +#include "rtsx_card.h" + +#include "rtsx_sys.h" +#include "general.h" + +#include "sd.h" +#include "xd.h" +#include "ms.h" + +void do_remaining_work(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); +#ifdef XD_DELAY_WRITE + struct xd_info *xd_card = &(chip->xd_card); +#endif + struct ms_info *ms_card = &(chip->ms_card); + + if (chip->card_ready & SD_CARD) { + if (sd_card->seq_mode) { + rtsx_set_stat(chip, RTSX_STAT_RUN); + sd_card->cleanup_counter++; + } else { + sd_card->cleanup_counter = 0; + } + } + +#ifdef XD_DELAY_WRITE + if (chip->card_ready & XD_CARD) { + if (xd_card->delay_write.delay_write_flag) { + rtsx_set_stat(chip, RTSX_STAT_RUN); + xd_card->cleanup_counter++; + } else { + xd_card->cleanup_counter = 0; + } + } +#endif + + if (chip->card_ready & MS_CARD) { + if (CHK_MSPRO(ms_card)) { + if (ms_card->seq_mode) { + rtsx_set_stat(chip, RTSX_STAT_RUN); + ms_card->cleanup_counter++; + } else { + ms_card->cleanup_counter = 0; + } + } else { +#ifdef MS_DELAY_WRITE + if (ms_card->delay_write.delay_write_flag) { + rtsx_set_stat(chip, RTSX_STAT_RUN); + ms_card->cleanup_counter++; + } else { + ms_card->cleanup_counter = 0; + } +#endif + } + } + + if (sd_card->cleanup_counter > POLLING_WAIT_CNT) + sd_cleanup_work(chip); + + if (xd_card->cleanup_counter > POLLING_WAIT_CNT) + xd_cleanup_work(chip); + + if (ms_card->cleanup_counter > POLLING_WAIT_CNT) + ms_cleanup_work(chip); +} + +void try_to_switch_sdio_ctrl(struct rtsx_chip *chip) +{ + u8 reg1 = 0, reg2 = 0; + + rtsx_read_register(chip, 0xFF34, ®1); + rtsx_read_register(chip, 0xFF38, ®2); + RTSX_DEBUGP("reg 0xFF34: 0x%x, reg 0xFF38: 0x%x\n", reg1, reg2); + if ((reg1 & 0xC0) && (reg2 & 0xC0)) { + chip->sd_int = 1; + rtsx_write_register(chip, SDIO_CTRL, 0xFF, SDIO_BUS_CTRL | SDIO_CD_CTRL); + rtsx_write_register(chip, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_ON); + } +} + +#ifdef SUPPORT_SDIO_ASPM +void dynamic_configure_sdio_aspm(struct rtsx_chip *chip) +{ + u8 buf[12], reg; + int i; + + for (i = 0; i < 12; i++) + rtsx_read_register(chip, 0xFF08 + i, &buf[i]); + rtsx_read_register(chip, 0xFF25, ®); + if ((memcmp(buf, chip->sdio_raw_data, 12) != 0) || (reg & 0x03)) { + chip->sdio_counter = 0; + chip->sdio_idle = 0; + } else { + if (!chip->sdio_idle) { + chip->sdio_counter++; + if (chip->sdio_counter >= SDIO_IDLE_COUNT) { + chip->sdio_counter = 0; + chip->sdio_idle = 1; + } + } + } + memcpy(chip->sdio_raw_data, buf, 12); + + if (chip->sdio_idle) { + if (!chip->sdio_aspm) { + RTSX_DEBUGP("SDIO enter ASPM!\n"); + rtsx_write_register(chip, ASPM_FORCE_CTL, 0xFC, + 0x30 | (chip->aspm_level[1] << 2)); + chip->sdio_aspm = 1; + } + } else { + if (chip->sdio_aspm) { + RTSX_DEBUGP("SDIO exit ASPM!\n"); + rtsx_write_register(chip, ASPM_FORCE_CTL, 0xFC, 0x30); + chip->sdio_aspm = 0; + } + } +} +#endif + +void do_reset_sd_card(struct rtsx_chip *chip) +{ + int retval; + + RTSX_DEBUGP("%s: %d, card2lun = 0x%x\n", __func__, + chip->sd_reset_counter, chip->card2lun[SD_CARD]); + + if (chip->card2lun[SD_CARD] >= MAX_ALLOWED_LUN_CNT) { + clear_bit(SD_NR, &(chip->need_reset)); + chip->sd_reset_counter = 0; + chip->sd_show_cnt = 0; + return; + } + + chip->rw_fail_cnt[chip->card2lun[SD_CARD]] = 0; + + rtsx_set_stat(chip, RTSX_STAT_RUN); + rtsx_write_register(chip, SDIO_CTRL, 0xFF, 0); + + retval = reset_sd_card(chip); + if (chip->need_release & SD_CARD) + return; + if (retval == STATUS_SUCCESS) { + clear_bit(SD_NR, &(chip->need_reset)); + chip->sd_reset_counter = 0; + chip->sd_show_cnt = 0; + chip->card_ready |= SD_CARD; + chip->card_fail &= ~SD_CARD; + chip->rw_card[chip->card2lun[SD_CARD]] = sd_rw; + } else { + if (chip->sd_io || (chip->sd_reset_counter >= MAX_RESET_CNT)) { + clear_bit(SD_NR, &(chip->need_reset)); + chip->sd_reset_counter = 0; + chip->sd_show_cnt = 0; + } else { + chip->sd_reset_counter++; + } + chip->card_ready &= ~SD_CARD; + chip->card_fail |= SD_CARD; + chip->capacity[chip->card2lun[SD_CARD]] = 0; + chip->rw_card[chip->card2lun[SD_CARD]] = NULL; + + rtsx_write_register(chip, CARD_OE, SD_OUTPUT_EN, 0); + if (!chip->ft2_fast_mode) + card_power_off(chip, SD_CARD); + if (chip->sd_io) { + chip->sd_int = 0; + try_to_switch_sdio_ctrl(chip); + } else { + disable_card_clock(chip, SD_CARD); + } + } +} + +void do_reset_xd_card(struct rtsx_chip *chip) +{ + int retval; + + RTSX_DEBUGP("%s: %d, card2lun = 0x%x\n", __func__, + chip->xd_reset_counter, chip->card2lun[XD_CARD]); + + if (chip->card2lun[XD_CARD] >= MAX_ALLOWED_LUN_CNT) { + clear_bit(XD_NR, &(chip->need_reset)); + chip->xd_reset_counter = 0; + chip->xd_show_cnt = 0; + return; + } + + chip->rw_fail_cnt[chip->card2lun[XD_CARD]] = 0; + + rtsx_set_stat(chip, RTSX_STAT_RUN); + rtsx_write_register(chip, SDIO_CTRL, 0xFF, 0); + + retval = reset_xd_card(chip); + if (chip->need_release & XD_CARD) + return; + if (retval == STATUS_SUCCESS) { + clear_bit(XD_NR, &(chip->need_reset)); + chip->xd_reset_counter = 0; + chip->card_ready |= XD_CARD; + chip->card_fail &= ~XD_CARD; + chip->rw_card[chip->card2lun[XD_CARD]] = xd_rw; + } else { + if (chip->xd_reset_counter >= MAX_RESET_CNT) { + clear_bit(XD_NR, &(chip->need_reset)); + chip->xd_reset_counter = 0; + chip->xd_show_cnt = 0; + } else { + chip->xd_reset_counter++; + } + chip->card_ready &= ~XD_CARD; + chip->card_fail |= XD_CARD; + chip->capacity[chip->card2lun[XD_CARD]] = 0; + chip->rw_card[chip->card2lun[XD_CARD]] = NULL; + + rtsx_write_register(chip, CARD_OE, XD_OUTPUT_EN, 0); + if (!chip->ft2_fast_mode) + card_power_off(chip, XD_CARD); + disable_card_clock(chip, XD_CARD); + } +} + +void do_reset_ms_card(struct rtsx_chip *chip) +{ + int retval; + + RTSX_DEBUGP("%s: %d, card2lun = 0x%x\n", __func__, + chip->ms_reset_counter, chip->card2lun[MS_CARD]); + + if (chip->card2lun[MS_CARD] >= MAX_ALLOWED_LUN_CNT) { + clear_bit(MS_NR, &(chip->need_reset)); + chip->ms_reset_counter = 0; + chip->ms_show_cnt = 0; + return; + } + + chip->rw_fail_cnt[chip->card2lun[MS_CARD]] = 0; + + rtsx_set_stat(chip, RTSX_STAT_RUN); + rtsx_write_register(chip, SDIO_CTRL, 0xFF, 0); + + retval = reset_ms_card(chip); + if (chip->need_release & MS_CARD) + return; + if (retval == STATUS_SUCCESS) { + clear_bit(MS_NR, &(chip->need_reset)); + chip->ms_reset_counter = 0; + chip->card_ready |= MS_CARD; + chip->card_fail &= ~MS_CARD; + chip->rw_card[chip->card2lun[MS_CARD]] = ms_rw; + } else { + if (chip->ms_reset_counter >= MAX_RESET_CNT) { + clear_bit(MS_NR, &(chip->need_reset)); + chip->ms_reset_counter = 0; + chip->ms_show_cnt = 0; + } else { + chip->ms_reset_counter++; + } + chip->card_ready &= ~MS_CARD; + chip->card_fail |= MS_CARD; + chip->capacity[chip->card2lun[MS_CARD]] = 0; + chip->rw_card[chip->card2lun[MS_CARD]] = NULL; + + rtsx_write_register(chip, CARD_OE, MS_OUTPUT_EN, 0); + if (!chip->ft2_fast_mode) + card_power_off(chip, MS_CARD); + disable_card_clock(chip, MS_CARD); + } +} + +static void release_sdio(struct rtsx_chip *chip) +{ + if (chip->sd_io) { + rtsx_write_register(chip, CARD_STOP, SD_STOP | SD_CLR_ERR, + SD_STOP | SD_CLR_ERR); + + if (chip->chip_insert_with_sdio) { + chip->chip_insert_with_sdio = 0; + + if (CHECK_PID(chip, 0x5288)) { + rtsx_write_register(chip, 0xFE5A, 0x08, 0x00); + } else { + rtsx_write_register(chip, 0xFE70, 0x80, 0x00); + } + } + + rtsx_write_register(chip, SDIO_CTRL, SDIO_CD_CTRL, 0); + chip->sd_io = 0; + } +} + +void rtsx_power_off_card(struct rtsx_chip *chip) +{ + if ((chip->card_ready & SD_CARD) || chip->sd_io) { + sd_cleanup_work(chip); + sd_power_off_card3v3(chip); + } + + if (chip->card_ready & XD_CARD) { + xd_cleanup_work(chip); + xd_power_off_card3v3(chip); + } + + if (chip->card_ready & MS_CARD) { + ms_cleanup_work(chip); + ms_power_off_card3v3(chip); + } +} + +void rtsx_release_cards(struct rtsx_chip *chip) +{ + chip->int_reg = rtsx_readl(chip, RTSX_BIPR); + + if ((chip->card_ready & SD_CARD) || chip->sd_io) { + if (chip->int_reg & SD_EXIST) + sd_cleanup_work(chip); + release_sd_card(chip); + } + + if (chip->card_ready & XD_CARD) { + if (chip->int_reg & XD_EXIST) + xd_cleanup_work(chip); + release_xd_card(chip); + } + + if (chip->card_ready & MS_CARD) { + if (chip->int_reg & MS_EXIST) + ms_cleanup_work(chip); + release_ms_card(chip); + } +} + +void rtsx_reset_cards(struct rtsx_chip *chip) +{ + if (!chip->need_reset) + return; + + rtsx_set_stat(chip, RTSX_STAT_RUN); + + rtsx_force_power_on(chip, SSC_PDCTL | OC_PDCTL); + + rtsx_disable_aspm(chip); + + if ((chip->need_reset & SD_CARD) && chip->chip_insert_with_sdio) + clear_bit(SD_NR, &(chip->need_reset)); + + if (chip->need_reset & XD_CARD) { + chip->card_exist |= XD_CARD; + + if (chip->xd_show_cnt >= MAX_SHOW_CNT) { + do_reset_xd_card(chip); + } else { + chip->xd_show_cnt++; + } + } + if (CHECK_PID(chip, 0x5288) && CHECK_BARO_PKG(chip, QFN)) { + if (chip->card_exist & XD_CARD) { + clear_bit(SD_NR, &(chip->need_reset)); + clear_bit(MS_NR, &(chip->need_reset)); + } + } + if (chip->need_reset & SD_CARD) { + chip->card_exist |= SD_CARD; + + if (chip->sd_show_cnt >= MAX_SHOW_CNT) { + rtsx_write_register(chip, RBCTL, RB_FLUSH, RB_FLUSH); + do_reset_sd_card(chip); + } else { + chip->sd_show_cnt++; + } + } + if (chip->need_reset & MS_CARD) { + chip->card_exist |= MS_CARD; + + if (chip->ms_show_cnt >= MAX_SHOW_CNT) { + do_reset_ms_card(chip); + } else { + chip->ms_show_cnt++; + } + } +} + +void rtsx_reinit_cards(struct rtsx_chip *chip, int reset_chip) +{ + rtsx_set_stat(chip, RTSX_STAT_RUN); + + rtsx_force_power_on(chip, SSC_PDCTL | OC_PDCTL); + + if (reset_chip) + rtsx_reset_chip(chip); + + chip->int_reg = rtsx_readl(chip, RTSX_BIPR); + + if ((chip->int_reg & SD_EXIST) && (chip->need_reinit & SD_CARD)) { + release_sdio(chip); + release_sd_card(chip); + + wait_timeout(100); + + chip->card_exist |= SD_CARD; + do_reset_sd_card(chip); + } + + if ((chip->int_reg & XD_EXIST) && (chip->need_reinit & XD_CARD)) { + release_xd_card(chip); + + wait_timeout(100); + + chip->card_exist |= XD_CARD; + do_reset_xd_card(chip); + } + + if ((chip->int_reg & MS_EXIST) && (chip->need_reinit & MS_CARD)) { + release_ms_card(chip); + + wait_timeout(100); + + chip->card_exist |= MS_CARD; + do_reset_ms_card(chip); + } + + chip->need_reinit = 0; +} + +#ifdef DISABLE_CARD_INT +void card_cd_debounce(struct rtsx_chip *chip, unsigned long *need_reset, unsigned long *need_release) +{ + u8 release_map = 0, reset_map = 0; + + chip->int_reg = rtsx_readl(chip, RTSX_BIPR); + + if (chip->card_exist) { + if (chip->card_exist & XD_CARD) { + if (!(chip->int_reg & XD_EXIST)) + release_map |= XD_CARD; + } else if (chip->card_exist & SD_CARD) { + if (!(chip->int_reg & SD_EXIST)) + release_map |= SD_CARD; + } else if (chip->card_exist & MS_CARD) { + if (!(chip->int_reg & MS_EXIST)) + release_map |= MS_CARD; + } + } else { + if (chip->int_reg & XD_EXIST) { + reset_map |= XD_CARD; + } else if (chip->int_reg & SD_EXIST) { + reset_map |= SD_CARD; + } else if (chip->int_reg & MS_EXIST) { + reset_map |= MS_CARD; + } + } + + if (reset_map) { + int xd_cnt = 0, sd_cnt = 0, ms_cnt = 0; + int i; + + for (i = 0; i < (DEBOUNCE_CNT); i++) { + chip->int_reg = rtsx_readl(chip, RTSX_BIPR); + + if (chip->int_reg & XD_EXIST) { + xd_cnt++; + } else { + xd_cnt = 0; + } + if (chip->int_reg & SD_EXIST) { + sd_cnt++; + } else { + sd_cnt = 0; + } + if (chip->int_reg & MS_EXIST) { + ms_cnt++; + } else { + ms_cnt = 0; + } + wait_timeout(30); + } + + reset_map = 0; + if (!(chip->card_exist & XD_CARD) && (xd_cnt > (DEBOUNCE_CNT-1))) + reset_map |= XD_CARD; + if (!(chip->card_exist & SD_CARD) && (sd_cnt > (DEBOUNCE_CNT-1))) + reset_map |= SD_CARD; + if (!(chip->card_exist & MS_CARD) && (ms_cnt > (DEBOUNCE_CNT-1))) + reset_map |= MS_CARD; + } + + if (CHECK_PID(chip, 0x5288) && CHECK_BARO_PKG(chip, QFN)) + rtsx_write_register(chip, HOST_SLEEP_STATE, 0xC0, 0x00); + + if (need_reset) + *need_reset = reset_map; + if (need_release) + *need_release = release_map; +} +#endif + +void rtsx_init_cards(struct rtsx_chip *chip) +{ + if (RTSX_TST_DELINK(chip) && (rtsx_get_stat(chip) != RTSX_STAT_SS)) { + RTSX_DEBUGP("Reset chip in polling thread!\n"); + rtsx_reset_chip(chip); + RTSX_CLR_DELINK(chip); + } + +#ifdef DISABLE_CARD_INT + card_cd_debounce(chip, &(chip->need_reset), &(chip->need_release)); +#endif + + if (chip->need_release) { + if (CHECK_PID(chip, 0x5288) && CHECK_BARO_PKG(chip, QFN)) { + if (chip->int_reg & XD_EXIST) { + clear_bit(SD_NR, &(chip->need_release)); + clear_bit(MS_NR, &(chip->need_release)); + } + } + + if (!(chip->card_exist & SD_CARD) && !chip->sd_io) + clear_bit(SD_NR, &(chip->need_release)); + if (!(chip->card_exist & XD_CARD)) + clear_bit(XD_NR, &(chip->need_release)); + if (!(chip->card_exist & MS_CARD)) + clear_bit(MS_NR, &(chip->need_release)); + + RTSX_DEBUGP("chip->need_release = 0x%x\n", (unsigned int)(chip->need_release)); + +#ifdef SUPPORT_OCP + if (chip->need_release) { + if (CHECK_PID(chip, 0x5209)) { + u8 mask = 0, val = 0; + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + if (chip->ocp_stat & (MS_OC_NOW | MS_OC_EVER)) { + mask |= MS_OCP_INT_CLR | MS_OC_CLR; + val |= MS_OCP_INT_CLR | MS_OC_CLR; + } + } + if (chip->ocp_stat & (SD_OC_NOW | SD_OC_EVER)) { + mask |= SD_OCP_INT_CLR | SD_OC_CLR; + val |= SD_OCP_INT_CLR | SD_OC_CLR; + } + if (mask) + rtsx_write_register(chip, OCPCTL, mask, val); + } else { + if (chip->ocp_stat & (CARD_OC_NOW | CARD_OC_EVER)) + rtsx_write_register(chip, OCPCLR, + CARD_OC_INT_CLR | CARD_OC_CLR, + CARD_OC_INT_CLR | CARD_OC_CLR); + } + chip->ocp_stat = 0; + } +#endif + if (chip->need_release) { + rtsx_set_stat(chip, RTSX_STAT_RUN); + rtsx_force_power_on(chip, SSC_PDCTL | OC_PDCTL); + } + + if (chip->need_release & SD_CARD) { + clear_bit(SD_NR, &(chip->need_release)); + chip->card_exist &= ~SD_CARD; + chip->card_ejected &= ~SD_CARD; + chip->card_fail &= ~SD_CARD; + CLR_BIT(chip->lun_mc, chip->card2lun[SD_CARD]); + chip->rw_fail_cnt[chip->card2lun[SD_CARD]] = 0; + rtsx_write_register(chip, RBCTL, RB_FLUSH, RB_FLUSH); + + release_sdio(chip); + release_sd_card(chip); + } + + if (chip->need_release & XD_CARD) { + clear_bit(XD_NR, &(chip->need_release)); + chip->card_exist &= ~XD_CARD; + chip->card_ejected &= ~XD_CARD; + chip->card_fail &= ~XD_CARD; + CLR_BIT(chip->lun_mc, chip->card2lun[XD_CARD]); + chip->rw_fail_cnt[chip->card2lun[XD_CARD]] = 0; + + release_xd_card(chip); + + if (CHECK_PID(chip, 0x5288) && CHECK_BARO_PKG(chip, QFN)) + rtsx_write_register(chip, HOST_SLEEP_STATE, 0xC0, 0xC0); + } + + if (chip->need_release & MS_CARD) { + clear_bit(MS_NR, &(chip->need_release)); + chip->card_exist &= ~MS_CARD; + chip->card_ejected &= ~MS_CARD; + chip->card_fail &= ~MS_CARD; + CLR_BIT(chip->lun_mc, chip->card2lun[MS_CARD]); + chip->rw_fail_cnt[chip->card2lun[MS_CARD]] = 0; + + release_ms_card(chip); + } + + RTSX_DEBUGP("chip->card_exist = 0x%x\n", chip->card_exist); + + if (!chip->card_exist) + turn_off_led(chip, LED_GPIO); + } + + if (chip->need_reset) { + RTSX_DEBUGP("chip->need_reset = 0x%x\n", (unsigned int)(chip->need_reset)); + + rtsx_reset_cards(chip); + } + + if (chip->need_reinit) { + RTSX_DEBUGP("chip->need_reinit = 0x%x\n", (unsigned int)(chip->need_reinit)); + + rtsx_reinit_cards(chip, 0); + } +} + +static inline u8 double_depth(u8 depth) +{ + return ((depth > 1) ? (depth - 1) : depth); +} + +int switch_ssc_clock(struct rtsx_chip *chip, int clk) +{ + struct sd_info *sd_card = &(chip->sd_card); + struct ms_info *ms_card = &(chip->ms_card); + int retval; + u8 N = (u8)(clk - 2), min_N, max_N; + u8 mcu_cnt, div, max_div, ssc_depth, ssc_depth_mask; + int sd_vpclk_phase_reset = 0; + + if (chip->cur_clk == clk) + return STATUS_SUCCESS; + + if (CHECK_PID(chip, 0x5209)) { + min_N = 80; + max_N = 208; + max_div = CLK_DIV_8; + } else { + min_N = 60; + max_N = 120; + max_div = CLK_DIV_4; + } + + if (CHECK_PID(chip, 0x5209) && (chip->cur_card == SD_CARD)) { + struct sd_info *sd_card = &(chip->sd_card); + if (CHK_SD30_SPEED(sd_card) || CHK_MMC_DDR52(sd_card)) + sd_vpclk_phase_reset = 1; + } + + RTSX_DEBUGP("Switch SSC clock to %dMHz (cur_clk = %d)\n", clk, chip->cur_clk); + + if ((clk <= 2) || (N > max_N)) { + TRACE_RET(chip, STATUS_FAIL); + } + + mcu_cnt = (u8)(125/clk + 3); + if (CHECK_PID(chip, 0x5209)) { + if (mcu_cnt > 15) + mcu_cnt = 15; + } else { + if (mcu_cnt > 7) + mcu_cnt = 7; + } + + div = CLK_DIV_1; + while ((N < min_N) && (div < max_div)) { + N = (N + 2) * 2 - 2; + div++; + } + RTSX_DEBUGP("N = %d, div = %d\n", N, div); + + if (chip->ssc_en) { + if (CHECK_PID(chip, 0x5209)) { + if (chip->cur_card == SD_CARD) { + if (CHK_SD_SDR104(sd_card)) { + ssc_depth = chip->ssc_depth_sd_sdr104; + } else if (CHK_SD_SDR50(sd_card)) { + ssc_depth = chip->ssc_depth_sd_sdr50; + } else if (CHK_SD_DDR50(sd_card)) { + ssc_depth = double_depth(chip->ssc_depth_sd_ddr50); + } else if (CHK_SD_HS(sd_card)) { + ssc_depth = double_depth(chip->ssc_depth_sd_hs); + } else if (CHK_MMC_52M(sd_card) || CHK_MMC_DDR52(sd_card)) { + ssc_depth = double_depth(chip->ssc_depth_mmc_52m); + } else { + ssc_depth = double_depth(chip->ssc_depth_low_speed); + } + } else if (chip->cur_card == MS_CARD) { + if (CHK_MSPRO(ms_card)) { + if (CHK_HG8BIT(ms_card)) { + ssc_depth = double_depth(chip->ssc_depth_ms_hg); + } else { + ssc_depth = double_depth(chip->ssc_depth_ms_4bit); + } + } else { + if (CHK_MS4BIT(ms_card)) { + ssc_depth = double_depth(chip->ssc_depth_ms_4bit); + } else { + ssc_depth = double_depth(chip->ssc_depth_low_speed); + } + } + } else { + ssc_depth = double_depth(chip->ssc_depth_low_speed); + } + + if (ssc_depth) { + if (div == CLK_DIV_2) { + if (ssc_depth > 1) { + ssc_depth -= 1; + } else { + ssc_depth = SSC_DEPTH_4M; + } + } else if (div == CLK_DIV_4) { + if (ssc_depth > 2) { + ssc_depth -= 2; + } else { + ssc_depth = SSC_DEPTH_4M; + } + } else if (div == CLK_DIV_8) { + if (ssc_depth > 3) { + ssc_depth -= 3; + } else { + ssc_depth = SSC_DEPTH_4M; + } + } + } + } else { + ssc_depth = 0x01; + N -= 2; + } + } else { + ssc_depth = 0; + } + + if (CHECK_PID(chip, 0x5209)) { + ssc_depth_mask = SSC_DEPTH_MASK; + } else { + ssc_depth_mask = 0x03; + } + + RTSX_DEBUGP("ssc_depth = %d\n", ssc_depth); + + rtsx_init_cmd(chip); + rtsx_add_cmd(chip, WRITE_REG_CMD, CLK_CTL, CLK_LOW_FREQ, CLK_LOW_FREQ); + rtsx_add_cmd(chip, WRITE_REG_CMD, CLK_DIV, 0xFF, (div << 4) | mcu_cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, SSC_CTL1, SSC_RSTB, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, SSC_CTL2, ssc_depth_mask, ssc_depth); + rtsx_add_cmd(chip, WRITE_REG_CMD, SSC_DIV_N_0, 0xFF, N); + rtsx_add_cmd(chip, WRITE_REG_CMD, SSC_CTL1, SSC_RSTB, SSC_RSTB); + if (sd_vpclk_phase_reset) { + rtsx_add_cmd(chip, WRITE_REG_CMD, SD_VPCLK0_CTL, PHASE_NOT_RESET, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, SD_VPCLK0_CTL, PHASE_NOT_RESET, PHASE_NOT_RESET); + } + + retval = rtsx_send_cmd(chip, 0, WAIT_TIME); + if (retval < 0) { + TRACE_RET(chip, STATUS_ERROR); + } + + udelay(10); + RTSX_WRITE_REG(chip, CLK_CTL, CLK_LOW_FREQ, 0); + + chip->cur_clk = clk; + + return STATUS_SUCCESS; +} + +int switch_normal_clock(struct rtsx_chip *chip, int clk) +{ + u8 sel, div, mcu_cnt; + int sd_vpclk_phase_reset = 0; + + if (chip->cur_clk == clk) + return STATUS_SUCCESS; + + if (CHECK_PID(chip, 0x5209) && (chip->cur_card == SD_CARD)) { + struct sd_info *sd_card = &(chip->sd_card); + if (CHK_SD30_SPEED(sd_card) || CHK_MMC_DDR52(sd_card)) + sd_vpclk_phase_reset = 1; + } + + switch (clk) { + case CLK_20: + RTSX_DEBUGP("Switch clock to 20MHz\n"); + sel = SSC_80; + div = CLK_DIV_4; + mcu_cnt = 7; + break; + + case CLK_30: + RTSX_DEBUGP("Switch clock to 30MHz\n"); + sel = SSC_120; + div = CLK_DIV_4; + mcu_cnt = 7; + break; + + case CLK_40: + RTSX_DEBUGP("Switch clock to 40MHz\n"); + sel = SSC_80; + div = CLK_DIV_2; + mcu_cnt = 7; + break; + + case CLK_50: + RTSX_DEBUGP("Switch clock to 50MHz\n"); + sel = SSC_100; + div = CLK_DIV_2; + mcu_cnt = 6; + break; + + case CLK_60: + RTSX_DEBUGP("Switch clock to 60MHz\n"); + sel = SSC_120; + div = CLK_DIV_2; + mcu_cnt = 6; + break; + + case CLK_80: + RTSX_DEBUGP("Switch clock to 80MHz\n"); + sel = SSC_80; + div = CLK_DIV_1; + mcu_cnt = 5; + break; + + case CLK_100: + RTSX_DEBUGP("Switch clock to 100MHz\n"); + sel = SSC_100; + div = CLK_DIV_1; + mcu_cnt = 5; + break; + + case CLK_120: + RTSX_DEBUGP("Switch clock to 120MHz\n"); + sel = SSC_120; + div = CLK_DIV_1; + mcu_cnt = 5; + break; + + case CLK_150: + RTSX_DEBUGP("Switch clock to 150MHz\n"); + sel = SSC_150; + div = CLK_DIV_1; + mcu_cnt = 4; + break; + + case CLK_200: + RTSX_DEBUGP("Switch clock to 200MHz\n"); + sel = SSC_200; + div = CLK_DIV_1; + mcu_cnt = 4; + break; + + default: + RTSX_DEBUGP("Try to switch to an illegal clock (%d)\n", clk); + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, CLK_CTL, 0xFF, CLK_LOW_FREQ); + if (sd_vpclk_phase_reset) { + RTSX_WRITE_REG(chip, SD_VPCLK0_CTL, PHASE_NOT_RESET, 0); + RTSX_WRITE_REG(chip, SD_VPCLK1_CTL, PHASE_NOT_RESET, 0); + } + RTSX_WRITE_REG(chip, CLK_DIV, 0xFF, (div << 4) | mcu_cnt); + RTSX_WRITE_REG(chip, CLK_SEL, 0xFF, sel); + + if (sd_vpclk_phase_reset) { + udelay(200); + RTSX_WRITE_REG(chip, SD_VPCLK0_CTL, PHASE_NOT_RESET, PHASE_NOT_RESET); + RTSX_WRITE_REG(chip, SD_VPCLK1_CTL, PHASE_NOT_RESET, PHASE_NOT_RESET); + udelay(200); + } + RTSX_WRITE_REG(chip, CLK_CTL, 0xFF, 0); + + chip->cur_clk = clk; + + return STATUS_SUCCESS; +} + +void trans_dma_enable(enum dma_data_direction dir, struct rtsx_chip *chip, u32 byte_cnt, u8 pack_size) +{ + if (pack_size > DMA_1024) + pack_size = DMA_512; + + rtsx_add_cmd(chip, WRITE_REG_CMD, IRQSTAT0, DMA_DONE_INT, DMA_DONE_INT); + + rtsx_add_cmd(chip, WRITE_REG_CMD, DMATC3, 0xFF, (u8)(byte_cnt >> 24)); + rtsx_add_cmd(chip, WRITE_REG_CMD, DMATC2, 0xFF, (u8)(byte_cnt >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, DMATC1, 0xFF, (u8)(byte_cnt >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, DMATC0, 0xFF, (u8)byte_cnt); + + if (dir == DMA_FROM_DEVICE) { + rtsx_add_cmd(chip, WRITE_REG_CMD, DMACTL, 0x03 | DMA_PACK_SIZE_MASK, + DMA_DIR_FROM_CARD | DMA_EN | pack_size); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, DMACTL, 0x03 | DMA_PACK_SIZE_MASK, + DMA_DIR_TO_CARD | DMA_EN | pack_size); + } + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); +} + +int enable_card_clock(struct rtsx_chip *chip, u8 card) +{ + u8 clk_en = 0; + + if (card & XD_CARD) + clk_en |= XD_CLK_EN; + if (card & SD_CARD) + clk_en |= SD_CLK_EN; + if (card & MS_CARD) + clk_en |= MS_CLK_EN; + + RTSX_WRITE_REG(chip, CARD_CLK_EN, clk_en, clk_en); + + return STATUS_SUCCESS; +} + +int disable_card_clock(struct rtsx_chip *chip, u8 card) +{ + u8 clk_en = 0; + + if (card & XD_CARD) + clk_en |= XD_CLK_EN; + if (card & SD_CARD) + clk_en |= SD_CLK_EN; + if (card & MS_CARD) + clk_en |= MS_CLK_EN; + + RTSX_WRITE_REG(chip, CARD_CLK_EN, clk_en, 0); + + return STATUS_SUCCESS; +} + +int card_power_on(struct rtsx_chip *chip, u8 card) +{ + int retval; + u8 mask, val1, val2; + + if (CHECK_LUN_MODE(chip, SD_MS_2LUN) && (card == MS_CARD)) { + mask = MS_POWER_MASK; + val1 = MS_PARTIAL_POWER_ON; + val2 = MS_POWER_ON; + } else { + mask = SD_POWER_MASK; + val1 = SD_PARTIAL_POWER_ON; + val2 = SD_POWER_ON; + } + + rtsx_init_cmd(chip); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PWR_CTL, mask, val1); + if (CHECK_PID(chip, 0x5209) && (card == SD_CARD)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_SUSPEND); + } + retval = rtsx_send_cmd(chip, 0, 100); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + udelay(chip->pmos_pwr_on_interval); + + rtsx_init_cmd(chip); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PWR_CTL, mask, val2); + if (CHECK_PID(chip, 0x5209) && (card == SD_CARD)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_ON); + } + retval = rtsx_send_cmd(chip, 0, 100); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int card_power_off(struct rtsx_chip *chip, u8 card) +{ + u8 mask, val; + + if (CHECK_LUN_MODE(chip, SD_MS_2LUN) && (card == MS_CARD)) { + mask = MS_POWER_MASK; + val = MS_POWER_OFF; + } else { + mask = SD_POWER_MASK; + val = SD_POWER_OFF; + } + if (CHECK_PID(chip, 0x5209)) { + mask |= PMOS_STRG_MASK; + val |= PMOS_STRG_400mA; + } + + RTSX_WRITE_REG(chip, CARD_PWR_CTL, mask, val); + if (CHECK_PID(chip, 0x5209) && (card == SD_CARD)) { + RTSX_WRITE_REG(chip, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_OFF); + } + + return STATUS_SUCCESS; +} + +int card_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 sec_addr, u16 sec_cnt) +{ + int retval; + unsigned int lun = SCSI_LUN(srb); + int i; + + if (chip->rw_card[lun] == NULL) { + TRACE_RET(chip, STATUS_FAIL); + } + + for (i = 0; i < 3; i++) { + chip->rw_need_retry = 0; + + retval = chip->rw_card[lun](srb, chip, sec_addr, sec_cnt); + if (retval != STATUS_SUCCESS) { + if (rtsx_check_chip_exist(chip) != STATUS_SUCCESS) { + rtsx_release_chip(chip); + TRACE_RET(chip, STATUS_FAIL); + } + if (detect_card_cd(chip, chip->cur_card) != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + if (!chip->rw_need_retry) { + RTSX_DEBUGP("RW fail, but no need to retry\n"); + break; + } + } else { + chip->rw_need_retry = 0; + break; + } + + RTSX_DEBUGP("Retry RW, (i = %d)\n", i); + } + + return retval; +} + +int card_share_mode(struct rtsx_chip *chip, int card) +{ + u8 mask, value; + + if (CHECK_PID(chip, 0x5209) || CHECK_PID(chip, 0x5208)) { + mask = CARD_SHARE_MASK; + if (card == SD_CARD) { + value = CARD_SHARE_48_SD; + } else if (card == MS_CARD) { + value = CARD_SHARE_48_MS; + } else if (card == XD_CARD) { + value = CARD_SHARE_48_XD; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } else if (CHECK_PID(chip, 0x5288)) { + mask = 0x03; + if (card == SD_CARD) { + value = CARD_SHARE_BAROSSA_SD; + } else if (card == MS_CARD) { + value = CARD_SHARE_BAROSSA_MS; + } else if (card == XD_CARD) { + value = CARD_SHARE_BAROSSA_XD; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, CARD_SHARE_MODE, mask, value); + + return STATUS_SUCCESS; +} + + +int select_card(struct rtsx_chip *chip, int card) +{ + int retval; + + if (chip->cur_card != card) { + u8 mod; + + if (card == SD_CARD) { + mod = SD_MOD_SEL; + } else if (card == MS_CARD) { + mod = MS_MOD_SEL; + } else if (card == XD_CARD) { + mod = XD_MOD_SEL; + } else if (card == SPI_CARD) { + mod = SPI_MOD_SEL; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + RTSX_WRITE_REG(chip, CARD_SELECT, 0x07, mod); + chip->cur_card = card; + + retval = card_share_mode(chip, card); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +void toggle_gpio(struct rtsx_chip *chip, u8 gpio) +{ + u8 temp_reg; + + rtsx_read_register(chip, CARD_GPIO, &temp_reg); + temp_reg ^= (0x01 << gpio); + rtsx_write_register(chip, CARD_GPIO, 0xFF, temp_reg); +} + +void turn_on_led(struct rtsx_chip *chip, u8 gpio) +{ + if (CHECK_PID(chip, 0x5288)) { + rtsx_write_register(chip, CARD_GPIO, (u8)(1 << gpio), (u8)(1 << gpio)); + } else { + rtsx_write_register(chip, CARD_GPIO, (u8)(1 << gpio), 0); + } +} + +void turn_off_led(struct rtsx_chip *chip, u8 gpio) +{ + if (CHECK_PID(chip, 0x5288)) { + rtsx_write_register(chip, CARD_GPIO, (u8)(1 << gpio), 0); + } else { + rtsx_write_register(chip, CARD_GPIO, (u8)(1 << gpio), (u8)(1 << gpio)); + } +} + +int detect_card_cd(struct rtsx_chip *chip, int card) +{ + u32 card_cd, status; + + if (card == SD_CARD) { + card_cd = SD_EXIST; + } else if (card == MS_CARD) { + card_cd = MS_EXIST; + } else if (card == XD_CARD) { + card_cd = XD_EXIST; + } else { + RTSX_DEBUGP("Wrong card type: 0x%x\n", card); + TRACE_RET(chip, STATUS_FAIL); + } + + status = rtsx_readl(chip, RTSX_BIPR); + if (!(status & card_cd)) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int check_card_exist(struct rtsx_chip *chip, unsigned int lun) +{ + if (chip->card_exist & chip->lun2card[lun]) { + return 1; + } + + return 0; +} + +int check_card_ready(struct rtsx_chip *chip, unsigned int lun) +{ + if (chip->card_ready & chip->lun2card[lun]) { + return 1; + } + + return 0; +} + +int check_card_wp(struct rtsx_chip *chip, unsigned int lun) +{ + if (chip->card_wp & chip->lun2card[lun]) { + return 1; + } + + return 0; +} + +int check_card_fail(struct rtsx_chip *chip, unsigned int lun) +{ + if (chip->card_fail & chip->lun2card[lun]) { + return 1; + } + + return 0; +} + +int check_card_ejected(struct rtsx_chip *chip, unsigned int lun) +{ + if (chip->card_ejected & chip->lun2card[lun]) { + return 1; + } + + return 0; +} + +u8 get_lun_card(struct rtsx_chip *chip, unsigned int lun) +{ + if ((chip->card_ready & chip->lun2card[lun]) == XD_CARD) { + return (u8)XD_CARD; + } else if ((chip->card_ready & chip->lun2card[lun]) == SD_CARD) { + return (u8)SD_CARD; + } else if ((chip->card_ready & chip->lun2card[lun]) == MS_CARD) { + return (u8)MS_CARD; + } + + return 0; +} + +void eject_card(struct rtsx_chip *chip, unsigned int lun) +{ + do_remaining_work(chip); + + if ((chip->card_ready & chip->lun2card[lun]) == SD_CARD) { + release_sd_card(chip); + chip->card_ejected |= SD_CARD; + chip->card_ready &= ~SD_CARD; + chip->capacity[lun] = 0; + } else if ((chip->card_ready & chip->lun2card[lun]) == XD_CARD) { + release_xd_card(chip); + chip->card_ejected |= XD_CARD; + chip->card_ready &= ~XD_CARD; + chip->capacity[lun] = 0; + } else if ((chip->card_ready & chip->lun2card[lun]) == MS_CARD) { + release_ms_card(chip); + chip->card_ejected |= MS_CARD; + chip->card_ready &= ~MS_CARD; + chip->capacity[lun] = 0; + } +} --- linux-2.6.38.orig/drivers/staging/rts_pstor/ms.h +++ linux-2.6.38/drivers/staging/rts_pstor/ms.h @@ -0,0 +1,225 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_MS_H +#define __REALTEK_RTSX_MS_H + +#define MS_DELAY_WRITE + +#define MS_MAX_RETRY_COUNT 3 + +#define MS_EXTRA_SIZE 0x9 + +#define WRT_PRTCT 0x01 + +/* Error Code */ +#define MS_NO_ERROR 0x00 +#define MS_CRC16_ERROR 0x80 +#define MS_TO_ERROR 0x40 +#define MS_NO_CARD 0x20 +#define MS_NO_MEMORY 0x10 +#define MS_CMD_NK 0x08 +#define MS_FLASH_READ_ERROR 0x04 +#define MS_FLASH_WRITE_ERROR 0x02 +#define MS_BREQ_ERROR 0x01 +#define MS_NOT_FOUND 0x03 + +/* Transfer Protocol Command */ +#define READ_PAGE_DATA 0x02 +#define READ_REG 0x04 +#define GET_INT 0x07 +#define WRITE_PAGE_DATA 0x0D +#define WRITE_REG 0x0B +#define SET_RW_REG_ADRS 0x08 +#define SET_CMD 0x0E + +#define PRO_READ_LONG_DATA 0x02 +#define PRO_READ_SHORT_DATA 0x03 +#define PRO_READ_REG 0x04 +#define PRO_READ_QUAD_DATA 0x05 +#define PRO_GET_INT 0x07 +#define PRO_WRITE_LONG_DATA 0x0D +#define PRO_WRITE_SHORT_DATA 0x0C +#define PRO_WRITE_QUAD_DATA 0x0A +#define PRO_WRITE_REG 0x0B +#define PRO_SET_RW_REG_ADRS 0x08 +#define PRO_SET_CMD 0x0E +#define PRO_EX_SET_CMD 0x09 + +#ifdef SUPPORT_MAGIC_GATE + +#define MG_GET_ID 0x40 +#define MG_SET_LID 0x41 +#define MG_GET_LEKB 0x42 +#define MG_SET_RD 0x43 +#define MG_MAKE_RMS 0x44 +#define MG_MAKE_KSE 0x45 +#define MG_SET_IBD 0x46 +#define MG_GET_IBD 0x47 + +#endif + +#ifdef XC_POWERCLASS +#define XC_CHG_POWER 0x16 +#endif + +#define BLOCK_READ 0xAA +#define BLOCK_WRITE 0x55 +#define BLOCK_END 0x33 +#define BLOCK_ERASE 0x99 +#define FLASH_STOP 0xCC + +#define SLEEP 0x5A +#define CLEAR_BUF 0xC3 +#define MS_RESET 0x3C + +#define PRO_READ_DATA 0x20 +#define PRO_WRITE_DATA 0x21 +#define PRO_READ_ATRB 0x24 +#define PRO_STOP 0x25 +#define PRO_ERASE 0x26 +#define PRO_READ_2K_DATA 0x27 +#define PRO_WRITE_2K_DATA 0x28 + +#define PRO_FORMAT 0x10 +#define PRO_SLEEP 0x11 + +#define IntReg 0x01 +#define StatusReg0 0x02 +#define StatusReg1 0x03 + +#define SystemParm 0x10 +#define BlockAdrs 0x11 +#define CMDParm 0x14 +#define PageAdrs 0x15 + +#define OverwriteFlag 0x16 +#define ManagemenFlag 0x17 +#define LogicalAdrs 0x18 +#define ReserveArea 0x1A + +#define Pro_IntReg 0x01 +#define Pro_StatusReg 0x02 +#define Pro_TypeReg 0x04 +#define Pro_IFModeReg 0x05 +#define Pro_CatagoryReg 0x06 +#define Pro_ClassReg 0x07 + + +#define Pro_SystemParm 0x10 +#define Pro_DataCount1 0x11 +#define Pro_DataCount0 0x12 +#define Pro_DataAddr3 0x13 +#define Pro_DataAddr2 0x14 +#define Pro_DataAddr1 0x15 +#define Pro_DataAddr0 0x16 + +#define Pro_TPCParm 0x17 +#define Pro_CMDParm 0x18 + +#define INT_REG_CED 0x80 +#define INT_REG_ERR 0x40 +#define INT_REG_BREQ 0x20 +#define INT_REG_CMDNK 0x01 + +#define BLOCK_BOOT 0xC0 +#define BLOCK_OK 0x80 +#define PAGE_OK 0x60 +#define DATA_COMPL 0x10 + +#define NOT_BOOT_BLOCK 0x4 +#define NOT_TRANSLATION_TABLE 0x8 + +#define HEADER_ID0 PPBUF_BASE2 +#define HEADER_ID1 (PPBUF_BASE2 + 1) +#define DISABLED_BLOCK0 (PPBUF_BASE2 + 0x170 + 4) +#define DISABLED_BLOCK1 (PPBUF_BASE2 + 0x170 + 5) +#define DISABLED_BLOCK2 (PPBUF_BASE2 + 0x170 + 6) +#define DISABLED_BLOCK3 (PPBUF_BASE2 + 0x170 + 7) +#define BLOCK_SIZE_0 (PPBUF_BASE2 + 0x1a0 + 2) +#define BLOCK_SIZE_1 (PPBUF_BASE2 + 0x1a0 + 3) +#define BLOCK_COUNT_0 (PPBUF_BASE2 + 0x1a0 + 4) +#define BLOCK_COUNT_1 (PPBUF_BASE2 + 0x1a0 + 5) +#define EBLOCK_COUNT_0 (PPBUF_BASE2 + 0x1a0 + 6) +#define EBLOCK_COUNT_1 (PPBUF_BASE2 + 0x1a0 + 7) +#define PAGE_SIZE_0 (PPBUF_BASE2 + 0x1a0 + 8) +#define PAGE_SIZE_1 (PPBUF_BASE2 + 0x1a0 + 9) + +#define MS_Device_Type (PPBUF_BASE2 + 0x1D8) + +#define MS_4bit_Support (PPBUF_BASE2 + 0x1D3) + +#define setPS_NG 1 +#define setPS_Error 0 + +#define PARALLEL_8BIT_IF 0x40 +#define PARALLEL_4BIT_IF 0x00 +#define SERIAL_IF 0x80 + +#define BUF_FULL 0x10 +#define BUF_EMPTY 0x20 + +#define MEDIA_BUSY 0x80 +#define FLASH_BUSY 0x40 +#define DATA_ERROR 0x20 +#define STS_UCDT 0x10 +#define EXTRA_ERROR 0x08 +#define STS_UCEX 0x04 +#define FLAG_ERROR 0x02 +#define STS_UCFG 0x01 + +#define MS_SHORT_DATA_LEN 32 + +#define FORMAT_SUCCESS 0 +#define FORMAT_FAIL 1 +#define FORMAT_IN_PROGRESS 2 + +#define MS_SET_BAD_BLOCK_FLG(ms_card) ((ms_card)->multi_flag |= 0x80) +#define MS_CLR_BAD_BLOCK_FLG(ms_card) ((ms_card)->multi_flag &= 0x7F) +#define MS_TST_BAD_BLOCK_FLG(ms_card) ((ms_card)->multi_flag & 0x80) + +void mspro_polling_format_status(struct rtsx_chip *chip); + +void mspro_stop_seq_mode(struct rtsx_chip *chip); +int reset_ms_card(struct rtsx_chip *chip); +int ms_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 start_sector, u16 sector_cnt); +int mspro_format(struct scsi_cmnd *srb, struct rtsx_chip *chip, int short_data_len, int quick_format); +void ms_free_l2p_tbl(struct rtsx_chip *chip); +void ms_cleanup_work(struct rtsx_chip *chip); +int ms_power_off_card3v3(struct rtsx_chip *chip); +int release_ms_card(struct rtsx_chip *chip); +#ifdef MS_DELAY_WRITE +int ms_delay_write(struct rtsx_chip *chip); +#endif + +#ifdef SUPPORT_MAGIC_GATE +int mg_set_leaf_id(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int mg_get_local_EKB(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int mg_chg(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int mg_get_rsp_chg(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int mg_rsp(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int mg_get_ICV(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int mg_set_ICV(struct scsi_cmnd *srb, struct rtsx_chip *chip); +#endif + +#endif /* __REALTEK_RTSX_MS_H */ --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx_scsi.h +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx_scsi.h @@ -0,0 +1,142 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_SCSI_H +#define __REALTEK_RTSX_SCSI_H + +#include "rtsx.h" +#include "rtsx_chip.h" + +#define MS_SP_CMND 0xFA +#define MS_FORMAT 0xA0 +#define GET_MS_INFORMATION 0xB0 + +#define VENDOR_CMND 0xF0 + +#define READ_STATUS 0x09 + +#define READ_EEPROM 0x04 +#define WRITE_EEPROM 0x05 +#define READ_MEM 0x0D +#define WRITE_MEM 0x0E +#define GET_BUS_WIDTH 0x13 +#define GET_SD_CSD 0x14 +#define TOGGLE_GPIO 0x15 +#define TRACE_MSG 0x18 + +#define SCSI_APP_CMD 0x10 + +#define PP_READ10 0x1A +#define PP_WRITE10 0x0A +#define READ_HOST_REG 0x1D +#define WRITE_HOST_REG 0x0D +#define SET_VAR 0x05 +#define GET_VAR 0x15 +#define DMA_READ 0x16 +#define DMA_WRITE 0x06 +#define GET_DEV_STATUS 0x10 +#define SET_CHIP_MODE 0x27 +#define SUIT_CMD 0xE0 +#define WRITE_PHY 0x07 +#define READ_PHY 0x17 +#define WRITE_EEPROM2 0x03 +#define READ_EEPROM2 0x13 +#define ERASE_EEPROM2 0x23 +#define WRITE_EFUSE 0x04 +#define READ_EFUSE 0x14 +#define WRITE_CFG 0x0E +#define READ_CFG 0x1E + +#define SPI_VENDOR_COMMAND 0x1C + +#define SCSI_SPI_GETSTATUS 0x00 +#define SCSI_SPI_SETPARAMETER 0x01 +#define SCSI_SPI_READFALSHID 0x02 +#define SCSI_SPI_READFLASH 0x03 +#define SCSI_SPI_WRITEFLASH 0x04 +#define SCSI_SPI_WRITEFLASHSTATUS 0x05 +#define SCSI_SPI_ERASEFLASH 0x06 + +#define INIT_BATCHCMD 0x41 +#define ADD_BATCHCMD 0x42 +#define SEND_BATCHCMD 0x43 +#define GET_BATCHRSP 0x44 + +#define CHIP_NORMALMODE 0x00 +#define CHIP_DEBUGMODE 0x01 + +/* SD Pass Through Command Extention */ +#define SD_PASS_THRU_MODE 0xD0 +#define SD_EXECUTE_NO_DATA 0xD1 +#define SD_EXECUTE_READ 0xD2 +#define SD_EXECUTE_WRITE 0xD3 +#define SD_GET_RSP 0xD4 +#define SD_HW_RST 0xD6 + +#ifdef SUPPORT_MAGIC_GATE +#define CMD_MSPRO_MG_RKEY 0xA4 /* Report Key Command */ +#define CMD_MSPRO_MG_SKEY 0xA3 /* Send Key Command */ + +/* CBWCB field: key class */ +#define KC_MG_R_PRO 0xBE /* MG-R PRO*/ + +/* CBWCB field: key format */ +#define KF_SET_LEAF_ID 0x31 /* Set Leaf ID */ +#define KF_GET_LOC_EKB 0x32 /* Get Local EKB */ +#define KF_CHG_HOST 0x33 /* Challenge (host) */ +#define KF_RSP_CHG 0x34 /* Response and Challenge (device) */ +#define KF_RSP_HOST 0x35 /* Response (host) */ +#define KF_GET_ICV 0x36 /* Get ICV */ +#define KF_SET_ICV 0x37 /* SSet ICV */ +#endif + +/* Sense type */ +#define SENSE_TYPE_NO_SENSE 0 +#define SENSE_TYPE_MEDIA_CHANGE 1 +#define SENSE_TYPE_MEDIA_NOT_PRESENT 2 +#define SENSE_TYPE_MEDIA_LBA_OVER_RANGE 3 +#define SENSE_TYPE_MEDIA_LUN_NOT_SUPPORT 4 +#define SENSE_TYPE_MEDIA_WRITE_PROTECT 5 +#define SENSE_TYPE_MEDIA_INVALID_CMD_FIELD 6 +#define SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR 7 +#define SENSE_TYPE_MEDIA_WRITE_ERR 8 +#define SENSE_TYPE_FORMAT_IN_PROGRESS 9 +#define SENSE_TYPE_FORMAT_CMD_FAILED 10 +#ifdef SUPPORT_MAGIC_GATE +#define SENSE_TYPE_MG_KEY_FAIL_NOT_ESTAB 0x0b +#define SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN 0x0c +#define SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM 0x0d +#define SENSE_TYPE_MG_WRITE_ERR 0x0e +#endif +#ifdef SUPPORT_SD_LOCK +#define SENSE_TYPE_MEDIA_READ_FORBIDDEN 0x10 /* FOR Locked SD card*/ +#endif + +void scsi_show_command(struct scsi_cmnd *srb); +void set_sense_type(struct rtsx_chip *chip, unsigned int lun, int sense_type); +void set_sense_data(struct rtsx_chip *chip, unsigned int lun, u8 err_code, u8 sense_key, + u32 info, u8 asc, u8 ascq, u8 sns_key_info0, u16 sns_key_info1); +int rtsx_scsi_handler(struct scsi_cmnd *srb, struct rtsx_chip *chip); + +#endif /* __REALTEK_RTSX_SCSI_H */ + --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx_sys.h +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx_sys.h @@ -0,0 +1,50 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __RTSX_SYS_H +#define __RTSX_SYS_H + +#include "rtsx.h" +#include "rtsx_chip.h" +#include "rtsx_card.h" + +typedef dma_addr_t ULONG_PTR; + +static inline void rtsx_exclusive_enter_ss(struct rtsx_chip *chip) +{ + struct rtsx_dev *dev = chip->rtsx; + + spin_lock(&(dev->reg_lock)); + rtsx_enter_ss(chip); + spin_unlock(&(dev->reg_lock)); +} + +static inline void rtsx_reset_detected_cards(struct rtsx_chip *chip, int flag) +{ + rtsx_reset_cards(chip); +} + +#define RTSX_MSG_IN_INT(x) + +#endif /* __RTSX_SYS_H */ + --- linux-2.6.38.orig/drivers/staging/rts_pstor/xd.c +++ linux-2.6.38/drivers/staging/rts_pstor/xd.c @@ -0,0 +1,2051 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include +#include +#include + +#include "rtsx.h" +#include "rtsx_transport.h" +#include "rtsx_scsi.h" +#include "rtsx_card.h" +#include "xd.h" + +static int xd_build_l2p_tbl(struct rtsx_chip *chip, int zone_no); +static int xd_init_page(struct rtsx_chip *chip, u32 phy_blk, u16 logoff, u8 start_page, u8 end_page); + +static inline void xd_set_err_code(struct rtsx_chip *chip, u8 err_code) +{ + struct xd_info *xd_card = &(chip->xd_card); + + xd_card->err_code = err_code; +} + +static inline int xd_check_err_code(struct rtsx_chip *chip, u8 err_code) +{ + struct xd_info *xd_card = &(chip->xd_card); + + return (xd_card->err_code == err_code); +} + +static int xd_set_init_para(struct rtsx_chip *chip) +{ + struct xd_info *xd_card = &(chip->xd_card); + int retval; + + if (chip->asic_code) + xd_card->xd_clock = 47; + else + xd_card->xd_clock = CLK_50; + + retval = switch_clock(chip, xd_card->xd_clock); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + return STATUS_SUCCESS; +} + +static int xd_switch_clock(struct rtsx_chip *chip) +{ + struct xd_info *xd_card = &(chip->xd_card); + int retval; + + retval = select_card(chip, XD_CARD); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = switch_clock(chip, xd_card->xd_clock); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + return STATUS_SUCCESS; +} + +static int xd_read_id(struct rtsx_chip *chip, u8 id_cmd, u8 *id_buf, u8 buf_len) +{ + int retval, i; + u8 *ptr; + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_DAT, 0xFF, id_cmd); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_READ_ID); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + for (i = 0; i < 4; i++) + rtsx_add_cmd(chip, READ_REG_CMD, (u16)(XD_ADDRESS1 + i), 0, 0); + + retval = rtsx_send_cmd(chip, XD_CARD, 20); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + ptr = rtsx_get_cmd_data(chip) + 1; + if (id_buf && buf_len) { + if (buf_len > 4) + buf_len = 4; + memcpy(id_buf, ptr, buf_len); + } + + return STATUS_SUCCESS; +} + +static void xd_assign_phy_addr(struct rtsx_chip *chip, u32 addr, u8 mode) +{ + struct xd_info *xd_card = &(chip->xd_card); + + switch (mode) { + case XD_RW_ADDR: + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_ADDRESS0, 0xFF, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_ADDRESS1, 0xFF, (u8)addr); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_ADDRESS2, 0xFF, (u8)(addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_ADDRESS3, 0xFF, (u8)(addr >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CFG, 0xFF, + xd_card->addr_cycle | XD_CALC_ECC | XD_BA_NO_TRANSFORM); + break; + + case XD_ERASE_ADDR: + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_ADDRESS0, 0xFF, (u8)addr); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_ADDRESS1, 0xFF, (u8)(addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_ADDRESS2, 0xFF, (u8)(addr >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CFG, 0xFF, + (xd_card->addr_cycle - 1) | XD_CALC_ECC | XD_BA_NO_TRANSFORM); + break; + + default: + break; + } +} + +static int xd_read_redundant(struct rtsx_chip *chip, u32 page_addr, u8 *buf, int buf_len) +{ + int retval, i; + + rtsx_init_cmd(chip); + + xd_assign_phy_addr(chip, page_addr, XD_RW_ADDR); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_READ_REDUNDANT); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + for (i = 0; i < 6; i++) + rtsx_add_cmd(chip, READ_REG_CMD, (u16)(XD_PAGE_STATUS + i), 0, 0); + for (i = 0; i < 4; i++) + rtsx_add_cmd(chip, READ_REG_CMD, (u16)(XD_RESERVED0 + i), 0, 0); + rtsx_add_cmd(chip, READ_REG_CMD, XD_PARITY, 0, 0); + + retval = rtsx_send_cmd(chip, XD_CARD, 500); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + if (buf && buf_len) { + u8 *ptr = rtsx_get_cmd_data(chip) + 1; + + if (buf_len > 11) + buf_len = 11; + memcpy(buf, ptr, buf_len); + } + + return STATUS_SUCCESS; +} + +static int xd_read_data_from_ppb(struct rtsx_chip *chip, int offset, u8 *buf, int buf_len) +{ + int retval, i; + + if (!buf || (buf_len < 0)) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + for (i = 0; i < buf_len; i++) + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + offset + i, 0, 0); + + retval = rtsx_send_cmd(chip, 0, 250); + if (retval < 0) { + rtsx_clear_xd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + memcpy(buf, rtsx_get_cmd_data(chip), buf_len); + + return STATUS_SUCCESS; +} + +static int xd_read_cis(struct rtsx_chip *chip, u32 page_addr, u8 *buf, int buf_len) +{ + int retval; + u8 reg; + + if (!buf || (buf_len < 10)) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + xd_assign_phy_addr(chip, page_addr, XD_RW_ADDR); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_CNT, 0xFF, 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CHK_DATA_STATUS, XD_AUTO_CHK_DATA_STATUS, XD_AUTO_CHK_DATA_STATUS); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_READ_PAGES); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + retval = rtsx_send_cmd(chip, XD_CARD, 250); + if (retval == -ETIMEDOUT) { + rtsx_clear_xd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, XD_PAGE_STATUS, ®); + if (reg != XD_GPG) { + rtsx_clear_xd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, XD_CTL, ®); + if (!(reg & XD_ECC1_ERROR) || !(reg & XD_ECC1_UNCORRECTABLE)) { + retval = xd_read_data_from_ppb(chip, 0, buf, buf_len); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + if (reg & XD_ECC1_ERROR) { + u8 ecc_bit, ecc_byte; + + RTSX_READ_REG(chip, XD_ECC_BIT1, &ecc_bit); + RTSX_READ_REG(chip, XD_ECC_BYTE1, &ecc_byte); + + RTSX_DEBUGP("ECC_BIT1 = 0x%x, ECC_BYTE1 = 0x%x\n", ecc_bit, ecc_byte); + if (ecc_byte < buf_len) { + RTSX_DEBUGP("Before correct: 0x%x\n", buf[ecc_byte]); + buf[ecc_byte] ^= (1 << ecc_bit); + RTSX_DEBUGP("After correct: 0x%x\n", buf[ecc_byte]); + } + } + } else if (!(reg & XD_ECC2_ERROR) || !(reg & XD_ECC2_UNCORRECTABLE)) { + rtsx_clear_xd_error(chip); + + retval = xd_read_data_from_ppb(chip, 256, buf, buf_len); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + if (reg & XD_ECC2_ERROR) { + u8 ecc_bit, ecc_byte; + + RTSX_READ_REG(chip, XD_ECC_BIT2, &ecc_bit); + RTSX_READ_REG(chip, XD_ECC_BYTE2, &ecc_byte); + + RTSX_DEBUGP("ECC_BIT2 = 0x%x, ECC_BYTE2 = 0x%x\n", ecc_bit, ecc_byte); + if (ecc_byte < buf_len) { + RTSX_DEBUGP("Before correct: 0x%x\n", buf[ecc_byte]); + buf[ecc_byte] ^= (1 << ecc_bit); + RTSX_DEBUGP("After correct: 0x%x\n", buf[ecc_byte]); + } + } + } else { + rtsx_clear_xd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static void xd_fill_pull_ctl_disable(struct rtsx_chip *chip) +{ + if (CHECK_PID(chip, 0x5209)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0xD5); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0x15); + } else if (CHECK_PID(chip, 0x5208)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, + XD_D3_PD | XD_D2_PD | XD_D1_PD | XD_D0_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, + XD_D7_PD | XD_D6_PD | XD_D5_PD | XD_D4_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, + XD_WP_PD | XD_CE_PD | XD_CLE_PD | XD_CD_PU); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, + XD_RDY_PD | XD_WE_PD | XD_RE_PD | XD_ALE_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, + MS_INS_PU | SD_WP_PD | SD_CD_PU | SD_CMD_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, MS_D5_PD | MS_D4_PD); + } else if (CHECK_PID(chip, 0x5288)) { + if (CHECK_BARO_PKG(chip, QFN)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x4B); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x69); + } + } +} + +static void xd_fill_pull_ctl_stage1_barossa(struct rtsx_chip *chip) +{ + if (CHECK_BARO_PKG(chip, QFN)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x4B); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55); + } +} + +static void xd_fill_pull_ctl_enable(struct rtsx_chip *chip) +{ + if (CHECK_PID(chip, 0x5209)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0xAA); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0xD5); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0x15); + } else if (CHECK_PID(chip, 0x5208)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, + XD_D3_PD | XD_D2_PD | XD_D1_PD | XD_D0_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, + XD_D7_PD | XD_D6_PD | XD_D5_PD | XD_D4_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, + XD_WP_PD | XD_CE_PU | XD_CLE_PD | XD_CD_PU); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, + XD_RDY_PU | XD_WE_PU | XD_RE_PU | XD_ALE_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, + MS_INS_PU | SD_WP_PD | SD_CD_PU | SD_CMD_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, MS_D5_PD | MS_D4_PD); + } else if (CHECK_PID(chip, 0x5288)) { + if (CHECK_BARO_PKG(chip, QFN)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x53); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0xA9); + } + } +} + +static int xd_pull_ctl_disable(struct rtsx_chip *chip) +{ + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL1, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL2, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL3, 0xFF, 0xD5); + RTSX_WRITE_REG(chip, CARD_PULL_CTL4, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL5, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL6, 0xFF, 0x15); + } else if (CHECK_PID(chip, 0x5208)) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL1, 0xFF, + XD_D3_PD | XD_D2_PD | XD_D1_PD | XD_D0_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL2, 0xFF, + XD_D7_PD | XD_D6_PD | XD_D5_PD | XD_D4_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL3, 0xFF, + XD_WP_PD | XD_CE_PD | XD_CLE_PD | XD_CD_PU); + RTSX_WRITE_REG(chip, CARD_PULL_CTL4, 0xFF, + XD_RDY_PD | XD_WE_PD | XD_RE_PD | XD_ALE_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL5, 0xFF, + MS_INS_PU | SD_WP_PD | SD_CD_PU | SD_CMD_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL6, 0xFF, MS_D5_PD | MS_D4_PD); + } else if (CHECK_PID(chip, 0x5288)) { + if (CHECK_BARO_PKG(chip, QFN)) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL1, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL2, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL3, 0xFF, 0x4B); + RTSX_WRITE_REG(chip, CARD_PULL_CTL4, 0xFF, 0x69); + } + } + + return STATUS_SUCCESS; +} + +static void xd_clear_dma_buffer(struct rtsx_chip *chip) +{ + if (CHECK_PID(chip, 0x5209)) { + int retval; + u8 *buf; + + RTSX_DEBUGP("xD ECC error, dummy write!\n"); + + buf = (u8 *)rtsx_alloc_dma_buf(chip, 512, GFP_KERNEL); + if (!buf) + return; + + rtsx_init_cmd(chip); + + trans_dma_enable(DMA_TO_DEVICE, chip, 512, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_SELECT, 0x07, SD_MOD_SEL); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_CLK_EN, SD_CLK_EN, SD_CLK_EN); + if (chip->asic_code) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0xAA); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, FPGA_PULL_CTL, + FPGA_SD_PULL_CTL_BIT, 0); + } + + rtsx_add_cmd(chip, WRITE_REG_CMD, SD_BYTE_CNT_L, 0xFF, 0x00); + rtsx_add_cmd(chip, WRITE_REG_CMD, SD_BYTE_CNT_H, 0xFF, 0x02); + rtsx_add_cmd(chip, WRITE_REG_CMD, SD_BLOCK_CNT_L, 0xFF, 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, SD_BLOCK_CNT_H, 0xFF, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, SD_CFG1, 0x03, SD_BUS_WIDTH_4); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SD_TRANSFER, 0xFF, + SD_TM_AUTO_WRITE_3 | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data(chip, SD_CARD, buf, 512, 0, DMA_TO_DEVICE, 100); + if (retval < 0) { + u8 val; + + rtsx_read_register(chip, SD_STAT1, &val); + RTSX_DEBUGP("SD_STAT1: 0x%x\n", val); + + rtsx_read_register(chip, SD_STAT2, &val); + RTSX_DEBUGP("SD_STAT2: 0x%x\n", val); + + rtsx_read_register(chip, SD_BUS_STAT, &val); + RTSX_DEBUGP("SD_BUS_STAT: 0x%x\n", val); + + rtsx_write_register(chip, CARD_STOP, SD_STOP | SD_CLR_ERR, SD_STOP | SD_CLR_ERR); + } + + rtsx_free_dma_buf(chip, buf); + + if (chip->asic_code) { + rtsx_write_register(chip, CARD_PULL_CTL2, 0xFF, 0x55); + } else { + rtsx_write_register(chip, FPGA_PULL_CTL, + FPGA_SD_PULL_CTL_BIT, FPGA_SD_PULL_CTL_BIT); + } + rtsx_write_register(chip, CARD_SELECT, 0x07, XD_MOD_SEL); + rtsx_write_register(chip, CARD_CLK_EN, SD_CLK_EN, 0); + } +} + +static int reset_xd(struct rtsx_chip *chip) +{ + struct xd_info *xd_card = &(chip->xd_card); + int retval, i, j; + u8 *ptr, id_buf[4], redunt[11]; + + retval = select_card(chip, XD_CARD); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CHK_DATA_STATUS, 0xFF, XD_PGSTS_NOT_FF); + if (chip->asic_code) { + if (!CHECK_PID(chip, 0x5288)) + xd_fill_pull_ctl_disable(chip); + else + xd_fill_pull_ctl_stage1_barossa(chip); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, FPGA_PULL_CTL, 0xFF, + (FPGA_XD_PULL_CTL_EN1 & FPGA_XD_PULL_CTL_EN3) | 0x20); + } + + if (!chip->ft2_fast_mode) + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_INIT, XD_NO_AUTO_PWR_OFF, 0); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_OE, XD_OUTPUT_EN, 0); + + retval = rtsx_send_cmd(chip, XD_CARD, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + if (!chip->ft2_fast_mode) { + retval = card_power_off(chip, XD_CARD); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + wait_timeout(250); + + if (CHECK_PID(chip, 0x5209)) + RTSX_WRITE_REG(chip, CARD_PULL_CTL1, 0xFF, 0xAA); + + rtsx_init_cmd(chip); + + if (chip->asic_code) { + xd_fill_pull_ctl_enable(chip); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, FPGA_PULL_CTL, 0xFF, + (FPGA_XD_PULL_CTL_EN1 & FPGA_XD_PULL_CTL_EN2) | 0x20); + } + + retval = rtsx_send_cmd(chip, XD_CARD, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + retval = card_power_on(chip, XD_CARD); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + +#ifdef SUPPORT_OCP + wait_timeout(50); + if (chip->ocp_stat & (SD_OC_NOW | SD_OC_EVER)) { + RTSX_DEBUGP("Over current, OCPSTAT is 0x%x\n", chip->ocp_stat); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + } + + rtsx_init_cmd(chip); + + if (chip->ft2_fast_mode) { + if (chip->asic_code) { + xd_fill_pull_ctl_enable(chip); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, FPGA_PULL_CTL, 0xFF, + (FPGA_XD_PULL_CTL_EN1 & FPGA_XD_PULL_CTL_EN2) | 0x20); + } + } + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_OE, XD_OUTPUT_EN, XD_OUTPUT_EN); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CTL, XD_CE_DISEN, XD_CE_DISEN); + + retval = rtsx_send_cmd(chip, XD_CARD, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + if (!chip->ft2_fast_mode) + wait_timeout(200); + + retval = xd_set_init_para(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + /* Read ID to check if the timing setting is right */ + for (i = 0; i < 4; i++) { + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_DTCTL, 0xFF, + XD_TIME_SETUP_STEP * 3 + XD_TIME_RW_STEP * (2 + i) + XD_TIME_RWN_STEP * i); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CATCTL, 0xFF, + XD_TIME_SETUP_STEP * 3 + XD_TIME_RW_STEP * (4 + i) + XD_TIME_RWN_STEP * (3 + i)); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_RESET); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + rtsx_add_cmd(chip, READ_REG_CMD, XD_DAT, 0, 0); + rtsx_add_cmd(chip, READ_REG_CMD, XD_CTL, 0, 0); + + retval = rtsx_send_cmd(chip, XD_CARD, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + ptr = rtsx_get_cmd_data(chip) + 1; + + RTSX_DEBUGP("XD_DAT: 0x%x, XD_CTL: 0x%x\n", ptr[0], ptr[1]); + + if (((ptr[0] & READY_FLAG) != READY_STATE) || !(ptr[1] & XD_RDY)) + continue; + + retval = xd_read_id(chip, READ_ID, id_buf, 4); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + RTSX_DEBUGP("READ_ID: 0x%x 0x%x 0x%x 0x%x\n", + id_buf[0], id_buf[1], id_buf[2], id_buf[3]); + + xd_card->device_code = id_buf[1]; + + /* Check if the xD card is supported */ + switch (xd_card->device_code) { + case XD_4M_X8_512_1: + case XD_4M_X8_512_2: + xd_card->block_shift = 4; + xd_card->page_off = 0x0F; + xd_card->addr_cycle = 3; + xd_card->zone_cnt = 1; + xd_card->capacity = 8000; + XD_SET_4MB(xd_card); + break; + case XD_8M_X8_512: + xd_card->block_shift = 4; + xd_card->page_off = 0x0F; + xd_card->addr_cycle = 3; + xd_card->zone_cnt = 1; + xd_card->capacity = 16000; + break; + case XD_16M_X8_512: + XD_PAGE_512(xd_card); + xd_card->addr_cycle = 3; + xd_card->zone_cnt = 1; + xd_card->capacity = 32000; + break; + case XD_32M_X8_512: + XD_PAGE_512(xd_card); + xd_card->addr_cycle = 3; + xd_card->zone_cnt = 2; + xd_card->capacity = 64000; + break; + case XD_64M_X8_512: + XD_PAGE_512(xd_card); + xd_card->addr_cycle = 4; + xd_card->zone_cnt = 4; + xd_card->capacity = 128000; + break; + case XD_128M_X8_512: + XD_PAGE_512(xd_card); + xd_card->addr_cycle = 4; + xd_card->zone_cnt = 8; + xd_card->capacity = 256000; + break; + case XD_256M_X8_512: + XD_PAGE_512(xd_card); + xd_card->addr_cycle = 4; + xd_card->zone_cnt = 16; + xd_card->capacity = 512000; + break; + case XD_512M_X8: + XD_PAGE_512(xd_card); + xd_card->addr_cycle = 4; + xd_card->zone_cnt = 32; + xd_card->capacity = 1024000; + break; + case xD_1G_X8_512: + XD_PAGE_512(xd_card); + xd_card->addr_cycle = 4; + xd_card->zone_cnt = 64; + xd_card->capacity = 2048000; + break; + case xD_2G_X8_512: + XD_PAGE_512(xd_card); + xd_card->addr_cycle = 4; + xd_card->zone_cnt = 128; + xd_card->capacity = 4096000; + break; + default: + continue; + } + + /* Confirm timing setting */ + for (j = 0; j < 10; j++) { + retval = xd_read_id(chip, READ_ID, id_buf, 4); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + if (id_buf[1] != xd_card->device_code) + break; + } + + if (j == 10) + break; + } + + if (i == 4) { + xd_card->block_shift = 0; + xd_card->page_off = 0; + xd_card->addr_cycle = 0; + xd_card->capacity = 0; + + TRACE_RET(chip, STATUS_FAIL); + } + + retval = xd_read_id(chip, READ_xD_ID, id_buf, 4); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + RTSX_DEBUGP("READ_xD_ID: 0x%x 0x%x 0x%x 0x%x\n", + id_buf[0], id_buf[1], id_buf[2], id_buf[3]); + if (id_buf[2] != XD_ID_CODE) + TRACE_RET(chip, STATUS_FAIL); + + /* Search CIS block */ + for (i = 0; i < 24; i++) { + u32 page_addr; + + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + page_addr = (u32)i << xd_card->block_shift; + + for (j = 0; j < 3; j++) { + retval = xd_read_redundant(chip, page_addr, redunt, 11); + if (retval == STATUS_SUCCESS) + break; + } + if (j == 3) + continue; + + if (redunt[BLOCK_STATUS] != XD_GBLK) + continue; + + j = 0; + if (redunt[PAGE_STATUS] != XD_GPG) { + for (j = 1; j <= 8; j++) { + retval = xd_read_redundant(chip, page_addr + j, redunt, 11); + if (retval == STATUS_SUCCESS) { + if (redunt[PAGE_STATUS] == XD_GPG) + break; + } + } + + if (j == 9) + break; + } + + /* Check CIS data */ + if ((redunt[BLOCK_STATUS] == XD_GBLK) && (redunt[PARITY] & XD_BA1_ALL0)) { + u8 buf[10]; + + page_addr += j; + + retval = xd_read_cis(chip, page_addr, buf, 10); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + if ((buf[0] == 0x01) && (buf[1] == 0x03) && (buf[2] == 0xD9) + && (buf[3] == 0x01) && (buf[4] == 0xFF) + && (buf[5] == 0x18) && (buf[6] == 0x02) + && (buf[7] == 0xDF) && (buf[8] == 0x01) + && (buf[9] == 0x20)) { + xd_card->cis_block = (u16)i; + } + } + + break; + } + + RTSX_DEBUGP("CIS block: 0x%x\n", xd_card->cis_block); + if (xd_card->cis_block == 0xFFFF) + TRACE_RET(chip, STATUS_FAIL); + + chip->capacity[chip->card2lun[XD_CARD]] = xd_card->capacity; + + return STATUS_SUCCESS; +} + +static int xd_check_data_blank(u8 *redunt) +{ + int i; + + for (i = 0; i < 6; i++) { + if (redunt[PAGE_STATUS + i] != 0xFF) + return 0; + } + + if ((redunt[PARITY] & (XD_ECC1_ALL1 | XD_ECC2_ALL1)) != (XD_ECC1_ALL1 | XD_ECC2_ALL1)) + return 0; + + + for (i = 0; i < 4; i++) { + if (redunt[RESERVED0 + i] != 0xFF) + return 0; + } + + return 1; +} + +static u16 xd_load_log_block_addr(u8 *redunt) +{ + u16 addr = 0xFFFF; + + if (redunt[PARITY] & XD_BA1_BA2_EQL) + addr = ((u16)redunt[BLOCK_ADDR1_H] << 8) | redunt[BLOCK_ADDR1_L]; + else if (redunt[PARITY] & XD_BA1_VALID) + addr = ((u16)redunt[BLOCK_ADDR1_H] << 8) | redunt[BLOCK_ADDR1_L]; + else if (redunt[PARITY] & XD_BA2_VALID) + addr = ((u16)redunt[BLOCK_ADDR2_H] << 8) | redunt[BLOCK_ADDR2_L]; + + return addr; +} + +static int xd_init_l2p_tbl(struct rtsx_chip *chip) +{ + struct xd_info *xd_card = &(chip->xd_card); + int size, i; + + RTSX_DEBUGP("xd_init_l2p_tbl: zone_cnt = %d\n", xd_card->zone_cnt); + + if (xd_card->zone_cnt < 1) + TRACE_RET(chip, STATUS_FAIL); + + size = xd_card->zone_cnt * sizeof(struct zone_entry); + RTSX_DEBUGP("Buffer size for l2p table is %d\n", size); + + xd_card->zone = (struct zone_entry *)vmalloc(size); + if (!xd_card->zone) + TRACE_RET(chip, STATUS_ERROR); + + for (i = 0; i < xd_card->zone_cnt; i++) { + xd_card->zone[i].build_flag = 0; + xd_card->zone[i].l2p_table = NULL; + xd_card->zone[i].free_table = NULL; + xd_card->zone[i].get_index = 0; + xd_card->zone[i].set_index = 0; + xd_card->zone[i].unused_blk_cnt = 0; + } + + return STATUS_SUCCESS; +} + +static inline void free_zone(struct zone_entry *zone) +{ + RTSX_DEBUGP("free_zone\n"); + + if (!zone) + return; + + zone->build_flag = 0; + zone->set_index = 0; + zone->get_index = 0; + zone->unused_blk_cnt = 0; + if (zone->l2p_table) { + vfree(zone->l2p_table); + zone->l2p_table = NULL; + } + if (zone->free_table) { + vfree(zone->free_table); + zone->free_table = NULL; + } +} + +static void xd_set_unused_block(struct rtsx_chip *chip, u32 phy_blk) +{ + struct xd_info *xd_card = &(chip->xd_card); + struct zone_entry *zone; + int zone_no; + + zone_no = (int)phy_blk >> 10; + if (zone_no >= xd_card->zone_cnt) { + RTSX_DEBUGP("Set unused block to invalid zone (zone_no = %d, zone_cnt = %d)\n", + zone_no, xd_card->zone_cnt); + return; + } + zone = &(xd_card->zone[zone_no]); + + if (zone->free_table == NULL) { + if (xd_build_l2p_tbl(chip, zone_no) != STATUS_SUCCESS) + return; + } + + if ((zone->set_index >= XD_FREE_TABLE_CNT) + || (zone->set_index < 0)) { + free_zone(zone); + RTSX_DEBUGP("Set unused block fail, invalid set_index\n"); + return; + } + + RTSX_DEBUGP("Set unused block to index %d\n", zone->set_index); + + zone->free_table[zone->set_index++] = (u16) (phy_blk & 0x3ff); + if (zone->set_index >= XD_FREE_TABLE_CNT) + zone->set_index = 0; + zone->unused_blk_cnt++; +} + +static u32 xd_get_unused_block(struct rtsx_chip *chip, int zone_no) +{ + struct xd_info *xd_card = &(chip->xd_card); + struct zone_entry *zone; + u32 phy_blk; + + if (zone_no >= xd_card->zone_cnt) { + RTSX_DEBUGP("Get unused block from invalid zone (zone_no = %d, zone_cnt = %d)\n", + zone_no, xd_card->zone_cnt); + return BLK_NOT_FOUND; + } + zone = &(xd_card->zone[zone_no]); + + if ((zone->unused_blk_cnt == 0) || (zone->set_index == zone->get_index)) { + free_zone(zone); + RTSX_DEBUGP("Get unused block fail, no unused block available\n"); + return BLK_NOT_FOUND; + } + if ((zone->get_index >= XD_FREE_TABLE_CNT) || (zone->get_index < 0)) { + free_zone(zone); + RTSX_DEBUGP("Get unused block fail, invalid get_index\n"); + return BLK_NOT_FOUND; + } + + RTSX_DEBUGP("Get unused block from index %d\n", zone->get_index); + + phy_blk = zone->free_table[zone->get_index]; + zone->free_table[zone->get_index++] = 0xFFFF; + if (zone->get_index >= XD_FREE_TABLE_CNT) + zone->get_index = 0; + zone->unused_blk_cnt--; + + phy_blk += ((u32)(zone_no) << 10); + return phy_blk; +} + +static void xd_set_l2p_tbl(struct rtsx_chip *chip, int zone_no, u16 log_off, u16 phy_off) +{ + struct xd_info *xd_card = &(chip->xd_card); + struct zone_entry *zone; + + zone = &(xd_card->zone[zone_no]); + zone->l2p_table[log_off] = phy_off; +} + +static u32 xd_get_l2p_tbl(struct rtsx_chip *chip, int zone_no, u16 log_off) +{ + struct xd_info *xd_card = &(chip->xd_card); + struct zone_entry *zone; + int retval; + + zone = &(xd_card->zone[zone_no]); + if (zone->l2p_table[log_off] == 0xFFFF) { + u32 phy_blk = 0; + int i; + +#ifdef XD_DELAY_WRITE + retval = xd_delay_write(chip); + if (retval != STATUS_SUCCESS) { + RTSX_DEBUGP("In xd_get_l2p_tbl, delay write fail!\n"); + return BLK_NOT_FOUND; + } +#endif + + if (zone->unused_blk_cnt <= 0) { + RTSX_DEBUGP("No unused block!\n"); + return BLK_NOT_FOUND; + } + + for (i = 0; i < zone->unused_blk_cnt; i++) { + phy_blk = xd_get_unused_block(chip, zone_no); + if (phy_blk == BLK_NOT_FOUND) { + RTSX_DEBUGP("No unused block available!\n"); + return BLK_NOT_FOUND; + } + + retval = xd_init_page(chip, phy_blk, log_off, 0, xd_card->page_off + 1); + if (retval == STATUS_SUCCESS) + break; + } + if (i >= zone->unused_blk_cnt) { + RTSX_DEBUGP("No good unused block available!\n"); + return BLK_NOT_FOUND; + } + + xd_set_l2p_tbl(chip, zone_no, log_off, (u16)(phy_blk & 0x3FF)); + return phy_blk; + } + + return (u32)zone->l2p_table[log_off] + ((u32)(zone_no) << 10); +} + +int reset_xd_card(struct rtsx_chip *chip) +{ + struct xd_info *xd_card = &(chip->xd_card); + int retval; + + memset(xd_card, 0, sizeof(struct xd_info)); + + xd_card->block_shift = 0; + xd_card->page_off = 0; + xd_card->addr_cycle = 0; + xd_card->capacity = 0; + xd_card->zone_cnt = 0; + xd_card->cis_block = 0xFFFF; + xd_card->delay_write.delay_write_flag = 0; + + retval = enable_card_clock(chip, XD_CARD); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = reset_xd(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = xd_init_l2p_tbl(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + return STATUS_SUCCESS; +} + +static int xd_mark_bad_block(struct rtsx_chip *chip, u32 phy_blk) +{ + struct xd_info *xd_card = &(chip->xd_card); + int retval; + u32 page_addr; + u8 reg = 0; + + RTSX_DEBUGP("mark block 0x%x as bad block\n", phy_blk); + + if (phy_blk == BLK_NOT_FOUND) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_STATUS, 0xFF, XD_GPG); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_STATUS, 0xFF, XD_LATER_BBLK); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_ADDR1_H, 0xFF, 0xFF); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_ADDR1_L, 0xFF, 0xFF); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_ADDR2_H, 0xFF, 0xFF); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_ADDR2_L, 0xFF, 0xFF); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_RESERVED0, 0xFF, 0xFF); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_RESERVED1, 0xFF, 0xFF); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_RESERVED2, 0xFF, 0xFF); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_RESERVED3, 0xFF, 0xFF); + + page_addr = phy_blk << xd_card->block_shift; + + xd_assign_phy_addr(chip, page_addr, XD_RW_ADDR); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_CNT, 0xFF, xd_card->page_off + 1); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_WRITE_REDUNDANT); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + retval = rtsx_send_cmd(chip, XD_CARD, 500); + if (retval < 0) { + rtsx_clear_xd_error(chip); + rtsx_read_register(chip, XD_DAT, ®); + if (reg & PROGRAM_ERROR) + xd_set_err_code(chip, XD_PRG_ERROR); + else + xd_set_err_code(chip, XD_TO_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int xd_init_page(struct rtsx_chip *chip, u32 phy_blk, u16 logoff, u8 start_page, u8 end_page) +{ + struct xd_info *xd_card = &(chip->xd_card); + int retval; + u32 page_addr; + u8 reg = 0; + + RTSX_DEBUGP("Init block 0x%x\n", phy_blk); + + if (start_page > end_page) + TRACE_RET(chip, STATUS_FAIL); + if (phy_blk == BLK_NOT_FOUND) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_STATUS, 0xFF, 0xFF); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_STATUS, 0xFF, 0xFF); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_ADDR1_H, 0xFF, (u8)(logoff >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_ADDR1_L, 0xFF, (u8)logoff); + + page_addr = (phy_blk << xd_card->block_shift) + start_page; + + xd_assign_phy_addr(chip, page_addr, XD_RW_ADDR); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CFG, XD_BA_TRANSFORM, XD_BA_TRANSFORM); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_CNT, 0xFF, (end_page - start_page)); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_WRITE_REDUNDANT); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + retval = rtsx_send_cmd(chip, XD_CARD, 500); + if (retval < 0) { + rtsx_clear_xd_error(chip); + rtsx_read_register(chip, XD_DAT, ®); + if (reg & PROGRAM_ERROR) { + xd_mark_bad_block(chip, phy_blk); + xd_set_err_code(chip, XD_PRG_ERROR); + } else { + xd_set_err_code(chip, XD_TO_ERROR); + } + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int xd_copy_page(struct rtsx_chip *chip, u32 old_blk, u32 new_blk, u8 start_page, u8 end_page) +{ + struct xd_info *xd_card = &(chip->xd_card); + u32 old_page, new_page; + u8 i, reg = 0; + int retval; + + RTSX_DEBUGP("Copy page from block 0x%x to block 0x%x\n", old_blk, new_blk); + + if (start_page > end_page) + TRACE_RET(chip, STATUS_FAIL); + + if ((old_blk == BLK_NOT_FOUND) || (new_blk == BLK_NOT_FOUND)) + TRACE_RET(chip, STATUS_FAIL); + + old_page = (old_blk << xd_card->block_shift) + start_page; + new_page = (new_blk << xd_card->block_shift) + start_page; + + XD_CLR_BAD_NEWBLK(xd_card); + + RTSX_WRITE_REG(chip, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + + for (i = start_page; i < end_page; i++) { + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + rtsx_clear_xd_error(chip); + xd_set_err_code(chip, XD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_init_cmd(chip); + + xd_assign_phy_addr(chip, old_page, XD_RW_ADDR); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_CNT, 0xFF, 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CHK_DATA_STATUS, XD_AUTO_CHK_DATA_STATUS, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_READ_PAGES); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + retval = rtsx_send_cmd(chip, XD_CARD, 500); + if (retval < 0) { + rtsx_clear_xd_error(chip); + reg = 0; + rtsx_read_register(chip, XD_CTL, ®); + if (reg & (XD_ECC1_ERROR | XD_ECC2_ERROR)) { + wait_timeout(100); + + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + xd_set_err_code(chip, XD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + if (((reg & (XD_ECC1_ERROR | XD_ECC1_UNCORRECTABLE)) == + (XD_ECC1_ERROR | XD_ECC1_UNCORRECTABLE)) + || ((reg & (XD_ECC2_ERROR | XD_ECC2_UNCORRECTABLE)) == + (XD_ECC2_ERROR | XD_ECC2_UNCORRECTABLE))) { + rtsx_write_register(chip, XD_PAGE_STATUS, 0xFF, XD_BPG); + rtsx_write_register(chip, XD_BLOCK_STATUS, 0xFF, XD_GBLK); + XD_SET_BAD_OLDBLK(xd_card); + RTSX_DEBUGP("old block 0x%x ecc error\n", old_blk); + } + } else { + xd_set_err_code(chip, XD_TO_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (XD_CHK_BAD_OLDBLK(xd_card)) + rtsx_clear_xd_error(chip); + + rtsx_init_cmd(chip); + + xd_assign_phy_addr(chip, new_page, XD_RW_ADDR); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_CNT, 0xFF, 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, + XD_TRANSFER_START | XD_WRITE_PAGES); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + retval = rtsx_send_cmd(chip, XD_CARD, 300); + if (retval < 0) { + rtsx_clear_xd_error(chip); + reg = 0; + rtsx_read_register(chip, XD_DAT, ®); + if (reg & PROGRAM_ERROR) { + xd_mark_bad_block(chip, new_blk); + xd_set_err_code(chip, XD_PRG_ERROR); + XD_SET_BAD_NEWBLK(xd_card); + } else { + xd_set_err_code(chip, XD_TO_ERROR); + } + TRACE_RET(chip, STATUS_FAIL); + } + + old_page++; + new_page++; + } + + return STATUS_SUCCESS; +} + +static int xd_reset_cmd(struct rtsx_chip *chip) +{ + int retval; + u8 *ptr; + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_RESET); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + rtsx_add_cmd(chip, READ_REG_CMD, XD_DAT, 0, 0); + rtsx_add_cmd(chip, READ_REG_CMD, XD_CTL, 0, 0); + + retval = rtsx_send_cmd(chip, XD_CARD, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + ptr = rtsx_get_cmd_data(chip) + 1; + if (((ptr[0] & READY_FLAG) == READY_STATE) && (ptr[1] & XD_RDY)) + return STATUS_SUCCESS; + + TRACE_RET(chip, STATUS_FAIL); +} + +static int xd_erase_block(struct rtsx_chip *chip, u32 phy_blk) +{ + struct xd_info *xd_card = &(chip->xd_card); + u32 page_addr; + u8 reg = 0, *ptr; + int i, retval; + + if (phy_blk == BLK_NOT_FOUND) + TRACE_RET(chip, STATUS_FAIL); + + page_addr = phy_blk << xd_card->block_shift; + + for (i = 0; i < 3; i++) { + rtsx_init_cmd(chip); + + xd_assign_phy_addr(chip, page_addr, XD_ERASE_ADDR); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_ERASE); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + rtsx_add_cmd(chip, READ_REG_CMD, XD_DAT, 0, 0); + + retval = rtsx_send_cmd(chip, XD_CARD, 250); + if (retval < 0) { + rtsx_clear_xd_error(chip); + rtsx_read_register(chip, XD_DAT, ®); + if (reg & PROGRAM_ERROR) { + xd_mark_bad_block(chip, phy_blk); + xd_set_err_code(chip, XD_PRG_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } else { + xd_set_err_code(chip, XD_ERASE_FAIL); + } + retval = xd_reset_cmd(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + continue; + } + + ptr = rtsx_get_cmd_data(chip) + 1; + if (*ptr & PROGRAM_ERROR) { + xd_mark_bad_block(chip, phy_blk); + xd_set_err_code(chip, XD_PRG_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; + } + + xd_mark_bad_block(chip, phy_blk); + xd_set_err_code(chip, XD_ERASE_FAIL); + TRACE_RET(chip, STATUS_FAIL); +} + + +static int xd_build_l2p_tbl(struct rtsx_chip *chip, int zone_no) +{ + struct xd_info *xd_card = &(chip->xd_card); + struct zone_entry *zone; + int retval; + u32 start, end, i; + u16 max_logoff, cur_fst_page_logoff, cur_lst_page_logoff, ent_lst_page_logoff; + u8 redunt[11]; + + RTSX_DEBUGP("xd_build_l2p_tbl: %d\n", zone_no); + + if (xd_card->zone == NULL) { + retval = xd_init_l2p_tbl(chip); + if (retval != STATUS_SUCCESS) + return retval; + } + + if (xd_card->zone[zone_no].build_flag) { + RTSX_DEBUGP("l2p table of zone %d has been built\n", zone_no); + return STATUS_SUCCESS; + } + + zone = &(xd_card->zone[zone_no]); + + if (zone->l2p_table == NULL) { + zone->l2p_table = (u16 *)vmalloc(2000); + if (zone->l2p_table == NULL) + TRACE_GOTO(chip, Build_Fail); + } + memset((u8 *)(zone->l2p_table), 0xff, 2000); + + if (zone->free_table == NULL) { + zone->free_table = (u16 *)vmalloc(XD_FREE_TABLE_CNT * 2); + if (zone->free_table == NULL) + TRACE_GOTO(chip, Build_Fail); + } + memset((u8 *)(zone->free_table), 0xff, XD_FREE_TABLE_CNT * 2); + + if (zone_no == 0) { + if (xd_card->cis_block == 0xFFFF) + start = 0; + else + start = xd_card->cis_block + 1; + if (XD_CHK_4MB(xd_card)) { + end = 0x200; + max_logoff = 499; + } else { + end = 0x400; + max_logoff = 999; + } + } else { + start = (u32)(zone_no) << 10; + end = (u32)(zone_no + 1) << 10; + max_logoff = 999; + } + + RTSX_DEBUGP("start block 0x%x, end block 0x%x\n", start, end); + + zone->set_index = zone->get_index = 0; + zone->unused_blk_cnt = 0; + + for (i = start; i < end; i++) { + u32 page_addr = i << xd_card->block_shift; + u32 phy_block; + + retval = xd_read_redundant(chip, page_addr, redunt, 11); + if (retval != STATUS_SUCCESS) + continue; + + if (redunt[BLOCK_STATUS] != 0xFF) { + RTSX_DEBUGP("bad block\n"); + continue; + } + + if (xd_check_data_blank(redunt)) { + RTSX_DEBUGP("blank block\n"); + xd_set_unused_block(chip, i); + continue; + } + + cur_fst_page_logoff = xd_load_log_block_addr(redunt); + if ((cur_fst_page_logoff == 0xFFFF) || (cur_fst_page_logoff > max_logoff)) { + retval = xd_erase_block(chip, i); + if (retval == STATUS_SUCCESS) + xd_set_unused_block(chip, i); + continue; + } + + if ((zone_no == 0) && (cur_fst_page_logoff == 0) && (redunt[PAGE_STATUS] != XD_GPG)) + XD_SET_MBR_FAIL(xd_card); + + if (zone->l2p_table[cur_fst_page_logoff] == 0xFFFF) { + zone->l2p_table[cur_fst_page_logoff] = (u16)(i & 0x3FF); + continue; + } + + phy_block = zone->l2p_table[cur_fst_page_logoff] + ((u32)((zone_no) << 10)); + + page_addr = ((i + 1) << xd_card->block_shift) - 1; + + retval = xd_read_redundant(chip, page_addr, redunt, 11); + if (retval != STATUS_SUCCESS) + continue; + + cur_lst_page_logoff = xd_load_log_block_addr(redunt); + if (cur_lst_page_logoff == cur_fst_page_logoff) { + int m; + + page_addr = ((phy_block + 1) << xd_card->block_shift) - 1; + + for (m = 0; m < 3; m++) { + retval = xd_read_redundant(chip, page_addr, redunt, 11); + if (retval == STATUS_SUCCESS) + break; + } + + if (m == 3) { + zone->l2p_table[cur_fst_page_logoff] = (u16)(i & 0x3FF); + retval = xd_erase_block(chip, phy_block); + if (retval == STATUS_SUCCESS) + xd_set_unused_block(chip, phy_block); + continue; + } + + ent_lst_page_logoff = xd_load_log_block_addr(redunt); + if (ent_lst_page_logoff != cur_fst_page_logoff) { + zone->l2p_table[cur_fst_page_logoff] = (u16)(i & 0x3FF); + retval = xd_erase_block(chip, phy_block); + if (retval == STATUS_SUCCESS) + xd_set_unused_block(chip, phy_block); + continue; + } else { + retval = xd_erase_block(chip, i); + if (retval == STATUS_SUCCESS) + xd_set_unused_block(chip, i); + } + } else { + retval = xd_erase_block(chip, i); + if (retval == STATUS_SUCCESS) + xd_set_unused_block(chip, i); + } + } + + if (XD_CHK_4MB(xd_card)) + end = 500; + else + end = 1000; + + i = 0; + for (start = 0; start < end; start++) { + if (zone->l2p_table[start] == 0xFFFF) + i++; + } + + RTSX_DEBUGP("Block count %d, invalid L2P entry %d\n", end, i); + RTSX_DEBUGP("Total unused block: %d\n", zone->unused_blk_cnt); + + if ((zone->unused_blk_cnt - i) < 1) + chip->card_wp |= XD_CARD; + + zone->build_flag = 1; + + return STATUS_SUCCESS; + +Build_Fail: + if (zone->l2p_table) { + vfree(zone->l2p_table); + zone->l2p_table = NULL; + } + if (zone->free_table) { + vfree(zone->free_table); + zone->free_table = NULL; + } + + return STATUS_FAIL; +} + +static int xd_send_cmd(struct rtsx_chip *chip, u8 cmd) +{ + int retval; + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_DAT, 0xFF, cmd); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_SET_CMD); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + retval = rtsx_send_cmd(chip, XD_CARD, 200); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + return STATUS_SUCCESS; +} + +static int xd_read_multiple_pages(struct rtsx_chip *chip, u32 phy_blk, u32 log_blk, + u8 start_page, u8 end_page, u8 *buf, unsigned int *index, unsigned int *offset) +{ + struct xd_info *xd_card = &(chip->xd_card); + u32 page_addr, new_blk; + u16 log_off; + u8 reg_val, page_cnt; + int zone_no, retval, i; + + if (start_page > end_page) + TRACE_RET(chip, STATUS_FAIL); + + page_cnt = end_page - start_page; + zone_no = (int)(log_blk / 1000); + log_off = (u16)(log_blk % 1000); + + if ((phy_blk & 0x3FF) == 0x3FF) { + for (i = 0; i < 256; i++) { + page_addr = ((u32)i) << xd_card->block_shift; + + retval = xd_read_redundant(chip, page_addr, NULL, 0); + if (retval == STATUS_SUCCESS) + break; + + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + xd_set_err_code(chip, XD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + } + } + + page_addr = (phy_blk << xd_card->block_shift) + start_page; + + rtsx_init_cmd(chip); + + xd_assign_phy_addr(chip, page_addr, XD_RW_ADDR); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CFG, XD_PPB_TO_SIE, XD_PPB_TO_SIE); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_CNT, 0xFF, page_cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CHK_DATA_STATUS, + XD_AUTO_CHK_DATA_STATUS, XD_AUTO_CHK_DATA_STATUS); + + trans_dma_enable(chip->srb->sc_data_direction, chip, page_cnt * 512, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_READ_PAGES); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, + XD_TRANSFER_END | XD_PPB_EMPTY, XD_TRANSFER_END | XD_PPB_EMPTY); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data_partial(chip, XD_CARD, buf, page_cnt * 512, scsi_sg_count(chip->srb), + index, offset, DMA_FROM_DEVICE, chip->xd_timeout); + if (retval < 0) { + rtsx_clear_xd_error(chip); + xd_clear_dma_buffer(chip); + + if (retval == -ETIMEDOUT) { + xd_set_err_code(chip, XD_TO_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } else { + TRACE_GOTO(chip, Fail); + } + } + + return STATUS_SUCCESS; + +Fail: + RTSX_READ_REG(chip, XD_PAGE_STATUS, ®_val); + + if (reg_val != XD_GPG) + xd_set_err_code(chip, XD_PRG_ERROR); + + RTSX_READ_REG(chip, XD_CTL, ®_val); + + if (((reg_val & (XD_ECC1_ERROR | XD_ECC1_UNCORRECTABLE)) + == (XD_ECC1_ERROR | XD_ECC1_UNCORRECTABLE)) + || ((reg_val & (XD_ECC2_ERROR | XD_ECC2_UNCORRECTABLE)) + == (XD_ECC2_ERROR | XD_ECC2_UNCORRECTABLE))) { + wait_timeout(100); + + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + xd_set_err_code(chip, XD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + xd_set_err_code(chip, XD_ECC_ERROR); + + new_blk = xd_get_unused_block(chip, zone_no); + if (new_blk == NO_NEW_BLK) { + XD_CLR_BAD_OLDBLK(xd_card); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = xd_copy_page(chip, phy_blk, new_blk, 0, xd_card->page_off + 1); + if (retval != STATUS_SUCCESS) { + if (!XD_CHK_BAD_NEWBLK(xd_card)) { + retval = xd_erase_block(chip, new_blk); + if (retval == STATUS_SUCCESS) + xd_set_unused_block(chip, new_blk); + } else { + XD_CLR_BAD_NEWBLK(xd_card); + } + XD_CLR_BAD_OLDBLK(xd_card); + TRACE_RET(chip, STATUS_FAIL); + } + xd_set_l2p_tbl(chip, zone_no, log_off, (u16)(new_blk & 0x3FF)); + xd_erase_block(chip, phy_blk); + xd_mark_bad_block(chip, phy_blk); + XD_CLR_BAD_OLDBLK(xd_card); + } + + TRACE_RET(chip, STATUS_FAIL); +} + +static int xd_finish_write(struct rtsx_chip *chip, + u32 old_blk, u32 new_blk, u32 log_blk, u8 page_off) +{ + struct xd_info *xd_card = &(chip->xd_card); + int retval, zone_no; + u16 log_off; + + RTSX_DEBUGP("xd_finish_write, old_blk = 0x%x, new_blk = 0x%x, log_blk = 0x%x\n", + old_blk, new_blk, log_blk); + + if (page_off > xd_card->page_off) + TRACE_RET(chip, STATUS_FAIL); + + zone_no = (int)(log_blk / 1000); + log_off = (u16)(log_blk % 1000); + + if (old_blk == BLK_NOT_FOUND) { + retval = xd_init_page(chip, new_blk, log_off, + page_off, xd_card->page_off + 1); + if (retval != STATUS_SUCCESS) { + retval = xd_erase_block(chip, new_blk); + if (retval == STATUS_SUCCESS) + xd_set_unused_block(chip, new_blk); + TRACE_RET(chip, STATUS_FAIL); + } + } else { + retval = xd_copy_page(chip, old_blk, new_blk, + page_off, xd_card->page_off + 1); + if (retval != STATUS_SUCCESS) { + if (!XD_CHK_BAD_NEWBLK(xd_card)) { + retval = xd_erase_block(chip, new_blk); + if (retval == STATUS_SUCCESS) + xd_set_unused_block(chip, new_blk); + } + XD_CLR_BAD_NEWBLK(xd_card); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = xd_erase_block(chip, old_blk); + if (retval == STATUS_SUCCESS) { + if (XD_CHK_BAD_OLDBLK(xd_card)) { + xd_mark_bad_block(chip, old_blk); + XD_CLR_BAD_OLDBLK(xd_card); + } else { + xd_set_unused_block(chip, old_blk); + } + } else { + xd_set_err_code(chip, XD_NO_ERROR); + XD_CLR_BAD_OLDBLK(xd_card); + } + } + + xd_set_l2p_tbl(chip, zone_no, log_off, (u16)(new_blk & 0x3FF)); + + return STATUS_SUCCESS; +} + +static int xd_prepare_write(struct rtsx_chip *chip, + u32 old_blk, u32 new_blk, u32 log_blk, u8 page_off) +{ + int retval; + + RTSX_DEBUGP("%s, old_blk = 0x%x, new_blk = 0x%x, log_blk = 0x%x, page_off = %d\n", + __func__, old_blk, new_blk, log_blk, (int)page_off); + + if (page_off) { + retval = xd_copy_page(chip, old_blk, new_blk, 0, page_off); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + + +static int xd_write_multiple_pages(struct rtsx_chip *chip, u32 old_blk, u32 new_blk, u32 log_blk, + u8 start_page, u8 end_page, u8 *buf, unsigned int *index, unsigned int *offset) +{ + struct xd_info *xd_card = &(chip->xd_card); + u32 page_addr; + int zone_no, retval; + u16 log_off; + u8 page_cnt, reg_val; + + RTSX_DEBUGP("%s, old_blk = 0x%x, new_blk = 0x%x, log_blk = 0x%x\n", + __func__, old_blk, new_blk, log_blk); + + if (start_page > end_page) + TRACE_RET(chip, STATUS_FAIL); + + page_cnt = end_page - start_page; + zone_no = (int)(log_blk / 1000); + log_off = (u16)(log_blk % 1000); + + page_addr = (new_blk << xd_card->block_shift) + start_page; + + retval = xd_send_cmd(chip, READ1_1); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_ADDR1_H, 0xFF, (u8)(log_off >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_ADDR1_L, 0xFF, (u8)log_off); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_BLOCK_STATUS, 0xFF, XD_GBLK); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_STATUS, 0xFF, XD_GPG); + + xd_assign_phy_addr(chip, page_addr, XD_RW_ADDR); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_CFG, XD_BA_TRANSFORM, XD_BA_TRANSFORM); + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_PAGE_CNT, 0xFF, page_cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + + trans_dma_enable(chip->srb->sc_data_direction, chip, page_cnt * 512, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF, XD_TRANSFER_START | XD_WRITE_PAGES); + rtsx_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END, XD_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data_partial(chip, XD_CARD, buf, page_cnt * 512, scsi_sg_count(chip->srb), + index, offset, DMA_TO_DEVICE, chip->xd_timeout); + if (retval < 0) { + rtsx_clear_xd_error(chip); + + if (retval == -ETIMEDOUT) { + xd_set_err_code(chip, XD_TO_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } else { + TRACE_GOTO(chip, Fail); + } + } + + if (end_page == (xd_card->page_off + 1)) { + xd_card->delay_write.delay_write_flag = 0; + + if (old_blk != BLK_NOT_FOUND) { + retval = xd_erase_block(chip, old_blk); + if (retval == STATUS_SUCCESS) { + if (XD_CHK_BAD_OLDBLK(xd_card)) { + xd_mark_bad_block(chip, old_blk); + XD_CLR_BAD_OLDBLK(xd_card); + } else { + xd_set_unused_block(chip, old_blk); + } + } else { + xd_set_err_code(chip, XD_NO_ERROR); + XD_CLR_BAD_OLDBLK(xd_card); + } + } + xd_set_l2p_tbl(chip, zone_no, log_off, (u16)(new_blk & 0x3FF)); + } + + return STATUS_SUCCESS; + +Fail: + RTSX_READ_REG(chip, XD_DAT, ®_val); + if (reg_val & PROGRAM_ERROR) { + xd_set_err_code(chip, XD_PRG_ERROR); + xd_mark_bad_block(chip, new_blk); + } + + TRACE_RET(chip, STATUS_FAIL); +} + +#ifdef XD_DELAY_WRITE +int xd_delay_write(struct rtsx_chip *chip) +{ + struct xd_info *xd_card = &(chip->xd_card); + struct xd_delay_write_tag *delay_write = &(xd_card->delay_write); + int retval; + + if (delay_write->delay_write_flag) { + RTSX_DEBUGP("xd_delay_write\n"); + retval = xd_switch_clock(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + delay_write->delay_write_flag = 0; + retval = xd_finish_write(chip, + delay_write->old_phyblock, delay_write->new_phyblock, + delay_write->logblock, delay_write->pageoff); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} +#endif + +int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 start_sector, u16 sector_cnt) +{ + struct xd_info *xd_card = &(chip->xd_card); + unsigned int lun = SCSI_LUN(srb); +#ifdef XD_DELAY_WRITE + struct xd_delay_write_tag *delay_write = &(xd_card->delay_write); +#endif + int retval, zone_no; + unsigned int index = 0, offset = 0; + u32 log_blk, old_blk = 0, new_blk = 0; + u16 log_off, total_sec_cnt = sector_cnt; + u8 start_page, end_page = 0, page_cnt; + u8 *ptr; + + xd_set_err_code(chip, XD_NO_ERROR); + + xd_card->cleanup_counter = 0; + + RTSX_DEBUGP("xd_rw: scsi_sg_count = %d\n", scsi_sg_count(srb)); + + ptr = (u8 *)scsi_sglist(srb); + + retval = xd_switch_clock(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + chip->card_fail |= XD_CARD; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + + log_blk = start_sector >> xd_card->block_shift; + start_page = (u8)start_sector & xd_card->page_off; + zone_no = (int)(log_blk / 1000); + log_off = (u16)(log_blk % 1000); + + if (xd_card->zone[zone_no].build_flag == 0) { + retval = xd_build_l2p_tbl(chip, zone_no); + if (retval != STATUS_SUCCESS) { + chip->card_fail |= XD_CARD; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (srb->sc_data_direction == DMA_TO_DEVICE) { +#ifdef XD_DELAY_WRITE + if (delay_write->delay_write_flag && + (delay_write->logblock == log_blk) && + (start_page > delay_write->pageoff)) { + delay_write->delay_write_flag = 0; + if (delay_write->old_phyblock != BLK_NOT_FOUND) { + retval = xd_copy_page(chip, + delay_write->old_phyblock, + delay_write->new_phyblock, + delay_write->pageoff, start_page); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + } + old_blk = delay_write->old_phyblock; + new_blk = delay_write->new_phyblock; + } else if (delay_write->delay_write_flag && + (delay_write->logblock == log_blk) && + (start_page == delay_write->pageoff)) { + delay_write->delay_write_flag = 0; + old_blk = delay_write->old_phyblock; + new_blk = delay_write->new_phyblock; + } else { + retval = xd_delay_write(chip); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + old_blk = xd_get_l2p_tbl(chip, zone_no, log_off); + new_blk = xd_get_unused_block(chip, zone_no); + if ((old_blk == BLK_NOT_FOUND) || (new_blk == BLK_NOT_FOUND)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = xd_prepare_write(chip, old_blk, new_blk, log_blk, start_page); + if (retval != STATUS_SUCCESS) { + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } +#ifdef XD_DELAY_WRITE + } +#endif + } else { +#ifdef XD_DELAY_WRITE + retval = xd_delay_write(chip); + if (retval != STATUS_SUCCESS) { + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + + old_blk = xd_get_l2p_tbl(chip, zone_no, log_off); + if (old_blk == BLK_NOT_FOUND) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + RTSX_DEBUGP("old_blk = 0x%x\n", old_blk); + + while (total_sec_cnt) { + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + chip->card_fail |= XD_CARD; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + + if ((start_page + total_sec_cnt) > (xd_card->page_off + 1)) + end_page = xd_card->page_off + 1; + else + end_page = start_page + (u8)total_sec_cnt; + + page_cnt = end_page - start_page; + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + retval = xd_read_multiple_pages(chip, old_blk, log_blk, + start_page, end_page, ptr, &index, &offset); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + } else { + retval = xd_write_multiple_pages(chip, old_blk, new_blk, log_blk, + start_page, end_page, ptr, &index, &offset); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + total_sec_cnt -= page_cnt; + if (scsi_sg_count(srb) == 0) + ptr += page_cnt * 512; + + if (total_sec_cnt == 0) + break; + + log_blk++; + zone_no = (int)(log_blk / 1000); + log_off = (u16)(log_blk % 1000); + + if (xd_card->zone[zone_no].build_flag == 0) { + retval = xd_build_l2p_tbl(chip, zone_no); + if (retval != STATUS_SUCCESS) { + chip->card_fail |= XD_CARD; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + } + + old_blk = xd_get_l2p_tbl(chip, zone_no, log_off); + if (old_blk == BLK_NOT_FOUND) { + if (srb->sc_data_direction == DMA_FROM_DEVICE) + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + else + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + + TRACE_RET(chip, STATUS_FAIL); + } + + if (srb->sc_data_direction == DMA_TO_DEVICE) { + new_blk = xd_get_unused_block(chip, zone_no); + if (new_blk == BLK_NOT_FOUND) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + start_page = 0; + } + + if ((srb->sc_data_direction == DMA_TO_DEVICE) && + (end_page != (xd_card->page_off + 1))) { +#ifdef XD_DELAY_WRITE + delay_write->delay_write_flag = 1; + delay_write->old_phyblock = old_blk; + delay_write->new_phyblock = new_blk; + delay_write->logblock = log_blk; + delay_write->pageoff = end_page; +#else + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + chip->card_fail |= XD_CARD; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = xd_finish_write(chip, old_blk, new_blk, log_blk, end_page); + if (retval != STATUS_SUCCESS) { + if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + } + + scsi_set_resid(srb, 0); + + return STATUS_SUCCESS; +} + +void xd_free_l2p_tbl(struct rtsx_chip *chip) +{ + struct xd_info *xd_card = &(chip->xd_card); + int i = 0; + + if (xd_card->zone != NULL) { + for (i = 0; i < xd_card->zone_cnt; i++) { + if (xd_card->zone[i].l2p_table != NULL) { + vfree(xd_card->zone[i].l2p_table); + xd_card->zone[i].l2p_table = NULL; + } + if (xd_card->zone[i].free_table != NULL) { + vfree(xd_card->zone[i].free_table); + xd_card->zone[i].free_table = NULL; + } + } + vfree(xd_card->zone); + xd_card->zone = NULL; + } +} + +void xd_cleanup_work(struct rtsx_chip *chip) +{ +#ifdef XD_DELAY_WRITE + struct xd_info *xd_card = &(chip->xd_card); + + if (xd_card->delay_write.delay_write_flag) { + RTSX_DEBUGP("xD: delay write\n"); + xd_delay_write(chip); + xd_card->cleanup_counter = 0; + } +#endif +} + +int xd_power_off_card3v3(struct rtsx_chip *chip) +{ + int retval; + + retval = disable_card_clock(chip, XD_CARD); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + RTSX_WRITE_REG(chip, CARD_OE, XD_OUTPUT_EN, 0); + + if (!chip->ft2_fast_mode) { + retval = card_power_off(chip, XD_CARD); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + wait_timeout(50); + } + + if (chip->asic_code) { + retval = xd_pull_ctl_disable(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + } else { + RTSX_WRITE_REG(chip, FPGA_PULL_CTL, 0xFF, 0xDF); + } + + return STATUS_SUCCESS; +} + +int release_xd_card(struct rtsx_chip *chip) +{ + struct xd_info *xd_card = &(chip->xd_card); + int retval; + + RTSX_DEBUGP("release_xd_card\n"); + + chip->card_ready &= ~XD_CARD; + chip->card_fail &= ~XD_CARD; + chip->card_wp &= ~XD_CARD; + + xd_card->delay_write.delay_write_flag = 0; + + xd_free_l2p_tbl(chip); + + retval = xd_power_off_card3v3(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + return STATUS_SUCCESS; +} --- linux-2.6.38.orig/drivers/staging/rts_pstor/xd.h +++ linux-2.6.38/drivers/staging/rts_pstor/xd.h @@ -0,0 +1,188 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_XD_H +#define __REALTEK_RTSX_XD_H + +#define XD_DELAY_WRITE + +/* Error Codes */ +#define XD_NO_ERROR 0x00 +#define XD_NO_MEMORY 0x80 +#define XD_PRG_ERROR 0x40 +#define XD_NO_CARD 0x20 +#define XD_READ_FAIL 0x10 +#define XD_ERASE_FAIL 0x08 +#define XD_WRITE_FAIL 0x04 +#define XD_ECC_ERROR 0x02 +#define XD_TO_ERROR 0x01 + +/* XD Commands */ +#define READ1_1 0x00 +#define READ1_2 0x01 +#define READ2 0x50 +#define READ_ID 0x90 +#define RESET 0xff +#define PAGE_PRG_1 0x80 +#define PAGE_PRG_2 0x10 +#define BLK_ERASE_1 0x60 +#define BLK_ERASE_2 0xD0 +#define READ_STS 0x70 +#define READ_xD_ID 0x9A +#define COPY_BACK_512 0x8A +#define COPY_BACK_2K 0x85 +#define READ1_1_2 0x30 +#define READ1_1_3 0x35 +#define CHG_DAT_OUT_1 0x05 +#define RDM_DAT_OUT_1 0x05 +#define CHG_DAT_OUT_2 0xE0 +#define RDM_DAT_OUT_2 0xE0 +#define CHG_DAT_OUT_2 0xE0 +#define CHG_DAT_IN_1 0x85 +#define CACHE_PRG 0x15 + +/* Redundant Area Related */ +#define XD_EXTRA_SIZE 0x10 +#define XD_2K_EXTRA_SIZE 0x40 + +#define NOT_WRITE_PROTECTED 0x80 +#define READY_STATE 0x40 +#define PROGRAM_ERROR 0x01 +#define PROGRAM_ERROR_N_1 0x02 +#define INTERNAL_READY 0x20 +#define READY_FLAG 0x5F + +#define XD_8M_X8_512 0xE6 +#define XD_16M_X8_512 0x73 +#define XD_32M_X8_512 0x75 +#define XD_64M_X8_512 0x76 +#define XD_128M_X8_512 0x79 +#define XD_256M_X8_512 0x71 +#define XD_128M_X8_2048 0xF1 +#define XD_256M_X8_2048 0xDA +#define XD_512M_X8 0xDC +#define XD_128M_X16_2048 0xC1 +#define XD_4M_X8_512_1 0xE3 +#define XD_4M_X8_512_2 0xE5 +#define xD_1G_X8_512 0xD3 +#define xD_2G_X8_512 0xD5 + +#define XD_ID_CODE 0xB5 + +#define VENDOR_BLOCK 0xEFFF +#define CIS_BLOCK 0xDFFF + +#define BLK_NOT_FOUND 0xFFFFFFFF + +#define NO_NEW_BLK 0xFFFFFFFF + +#define PAGE_CORRECTABLE 0x0 +#define PAGE_NOTCORRECTABLE 0x1 + +#define NO_OFFSET 0x0 +#define WITH_OFFSET 0x1 + +#define Sect_Per_Page 4 +#define XD_ADDR_MODE_2C XD_ADDR_MODE_2A + +#define ZONE0_BAD_BLOCK 23 +#define NOT_ZONE0_BAD_BLOCK 24 + +#define XD_RW_ADDR 0x01 +#define XD_ERASE_ADDR 0x02 + +#define XD_PAGE_512(xd_card) \ +do { \ + (xd_card)->block_shift = 5; \ + (xd_card)->page_off = 0x1F; \ +} while (0) + +#define XD_SET_BAD_NEWBLK(xd_card) ((xd_card)->multi_flag |= 0x01) +#define XD_CLR_BAD_NEWBLK(xd_card) ((xd_card)->multi_flag &= ~0x01) +#define XD_CHK_BAD_NEWBLK(xd_card) ((xd_card)->multi_flag & 0x01) + +#define XD_SET_BAD_OLDBLK(xd_card) ((xd_card)->multi_flag |= 0x02) +#define XD_CLR_BAD_OLDBLK(xd_card) ((xd_card)->multi_flag &= ~0x02) +#define XD_CHK_BAD_OLDBLK(xd_card) ((xd_card)->multi_flag & 0x02) + +#define XD_SET_MBR_FAIL(xd_card) ((xd_card)->multi_flag |= 0x04) +#define XD_CLR_MBR_FAIL(xd_card) ((xd_card)->multi_flag &= ~0x04) +#define XD_CHK_MBR_FAIL(xd_card) ((xd_card)->multi_flag & 0x04) + +#define XD_SET_ECC_FLD_ERR(xd_card) ((xd_card)->multi_flag |= 0x08) +#define XD_CLR_ECC_FLD_ERR(xd_card) ((xd_card)->multi_flag &= ~0x08) +#define XD_CHK_ECC_FLD_ERR(xd_card) ((xd_card)->multi_flag & 0x08) + +#define XD_SET_4MB(xd_card) ((xd_card)->multi_flag |= 0x10) +#define XD_CLR_4MB(xd_card) ((xd_card)->multi_flag &= ~0x10) +#define XD_CHK_4MB(xd_card) ((xd_card)->multi_flag & 0x10) + +#define XD_SET_ECC_ERR(xd_card) ((xd_card)->multi_flag |= 0x40) +#define XD_CLR_ECC_ERR(xd_card) ((xd_card)->multi_flag &= ~0x40) +#define XD_CHK_ECC_ERR(xd_card) ((xd_card)->multi_flag & 0x40) + +#define PAGE_STATUS 0 +#define BLOCK_STATUS 1 +#define BLOCK_ADDR1_L 2 +#define BLOCK_ADDR1_H 3 +#define BLOCK_ADDR2_L 4 +#define BLOCK_ADDR2_H 5 +#define RESERVED0 6 +#define RESERVED1 7 +#define RESERVED2 8 +#define RESERVED3 9 +#define PARITY 10 + +#define CIS0_0 0 +#define CIS0_1 1 +#define CIS0_2 2 +#define CIS0_3 3 +#define CIS0_4 4 +#define CIS0_5 5 +#define CIS0_6 6 +#define CIS0_7 7 +#define CIS0_8 8 +#define CIS0_9 9 +#define CIS1_0 256 +#define CIS1_1 (256 + 1) +#define CIS1_2 (256 + 2) +#define CIS1_3 (256 + 3) +#define CIS1_4 (256 + 4) +#define CIS1_5 (256 + 5) +#define CIS1_6 (256 + 6) +#define CIS1_7 (256 + 7) +#define CIS1_8 (256 + 8) +#define CIS1_9 (256 + 9) + +int reset_xd_card(struct rtsx_chip *chip); +#ifdef XD_DELAY_WRITE +int xd_delay_write(struct rtsx_chip *chip); +#endif +int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 start_sector, u16 sector_cnt); +void xd_free_l2p_tbl(struct rtsx_chip *chip); +void xd_cleanup_work(struct rtsx_chip *chip); +int xd_power_off_card3v3(struct rtsx_chip *chip); +int release_xd_card(struct rtsx_chip *chip); + +#endif /* __REALTEK_RTSX_XD_H */ + --- linux-2.6.38.orig/drivers/staging/rts_pstor/Kconfig +++ linux-2.6.38/drivers/staging/rts_pstor/Kconfig @@ -0,0 +1,16 @@ +config RTS_PSTOR + tristate "RealTek PCI-E Card Reader support" + depends on PCI && SCSI + help + Say Y here to include driver code to support the Realtek + PCI-E card readers. + + If this driver is compiled as a module, it will be named rts_pstor. + +config RTS_PSTOR_DEBUG + bool "Realtek PCI-E Card Reader verbose debug" + depends on RTS_PSTOR + help + Say Y here in order to have the rts_pstor code generate + verbose debugging messages. + --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx_chip.c +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx_chip.c @@ -0,0 +1,2336 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include +#include +#include +#include + +#include "rtsx.h" +#include "rtsx_transport.h" +#include "rtsx_scsi.h" +#include "rtsx_card.h" +#include "rtsx_chip.h" +#include "rtsx_sys.h" +#include "general.h" + +#include "sd.h" +#include "xd.h" +#include "ms.h" + +static void rtsx_calibration(struct rtsx_chip *chip) +{ + rtsx_write_phy_register(chip, 0x1B, 0x135E); + wait_timeout(10); + rtsx_write_phy_register(chip, 0x00, 0x0280); + rtsx_write_phy_register(chip, 0x01, 0x7112); + rtsx_write_phy_register(chip, 0x01, 0x7110); + rtsx_write_phy_register(chip, 0x01, 0x7112); + rtsx_write_phy_register(chip, 0x01, 0x7113); + rtsx_write_phy_register(chip, 0x00, 0x0288); +} + +void rtsx_disable_card_int(struct rtsx_chip *chip) +{ + u32 reg = rtsx_readl(chip, RTSX_BIER); + + reg &= ~(XD_INT_EN | SD_INT_EN | MS_INT_EN); + rtsx_writel(chip, RTSX_BIER, reg); +} + +void rtsx_enable_card_int(struct rtsx_chip *chip) +{ + u32 reg = rtsx_readl(chip, RTSX_BIER); + int i; + + for (i = 0; i <= chip->max_lun; i++) { + if (chip->lun2card[i] & XD_CARD) + reg |= XD_INT_EN; + if (chip->lun2card[i] & SD_CARD) + reg |= SD_INT_EN; + if (chip->lun2card[i] & MS_CARD) + reg |= MS_INT_EN; + } + if (chip->hw_bypass_sd) + reg &= ~((u32)SD_INT_EN); + + rtsx_writel(chip, RTSX_BIER, reg); +} + +void rtsx_enable_bus_int(struct rtsx_chip *chip) +{ + u32 reg = 0; +#ifndef DISABLE_CARD_INT + int i; +#endif + + reg = TRANS_OK_INT_EN | TRANS_FAIL_INT_EN; + +#ifndef DISABLE_CARD_INT + for (i = 0; i <= chip->max_lun; i++) { + RTSX_DEBUGP("lun2card[%d] = 0x%02x\n", i, chip->lun2card[i]); + + if (chip->lun2card[i] & XD_CARD) + reg |= XD_INT_EN; + if (chip->lun2card[i] & SD_CARD) + reg |= SD_INT_EN; + if (chip->lun2card[i] & MS_CARD) + reg |= MS_INT_EN; + } + if (chip->hw_bypass_sd) + reg &= ~((u32)SD_INT_EN); +#endif + + if (chip->ic_version >= IC_VER_C) + reg |= DELINK_INT_EN; +#ifdef SUPPORT_OCP + if (CHECK_PID(chip, 0x5209)) { + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + reg |= MS_OC_INT_EN | SD_OC_INT_EN; + } else { + reg |= SD_OC_INT_EN; + } + } else { + reg |= OC_INT_EN; + } +#endif + if (!chip->adma_mode) + reg |= DATA_DONE_INT_EN; + + /* Enable Bus Interrupt */ + rtsx_writel(chip, RTSX_BIER, reg); + + RTSX_DEBUGP("RTSX_BIER: 0x%08x\n", reg); +} + +void rtsx_disable_bus_int(struct rtsx_chip *chip) +{ + rtsx_writel(chip, RTSX_BIER, 0); +} + +static int rtsx_pre_handle_sdio_old(struct rtsx_chip *chip) +{ + if (chip->ignore_sd && CHK_SDIO_EXIST(chip)) { + if (chip->asic_code) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL5, 0xFF, + MS_INS_PU | SD_WP_PU | SD_CD_PU | SD_CMD_PU); + } else { + RTSX_WRITE_REG(chip, FPGA_PULL_CTL, 0xFF, FPGA_SD_PULL_CTL_EN); + } + RTSX_WRITE_REG(chip, CARD_SHARE_MODE, 0xFF, CARD_SHARE_48_SD); + + /* Enable SDIO internal clock */ + RTSX_WRITE_REG(chip, 0xFF2C, 0x01, 0x01); + + RTSX_WRITE_REG(chip, SDIO_CTRL, 0xFF, SDIO_BUS_CTRL | SDIO_CD_CTRL); + + chip->sd_int = 1; + chip->sd_io = 1; + } else { + chip->need_reset |= SD_CARD; + } + + return STATUS_SUCCESS; +} + +#ifdef HW_AUTO_SWITCH_SD_BUS +static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip) +{ + u8 tmp; + int sw_bypass_sd = 0; + int retval; + + if (chip->driver_first_load) { + if (CHECK_PID(chip, 0x5288)) { + RTSX_READ_REG(chip, 0xFE5A, &tmp); + if (tmp & 0x08) + sw_bypass_sd = 1; + } else if (CHECK_PID(chip, 0x5208)) { + RTSX_READ_REG(chip, 0xFE70, &tmp); + if (tmp & 0x80) + sw_bypass_sd = 1; + } else if (CHECK_PID(chip, 0x5209)) { + RTSX_READ_REG(chip, SDIO_CFG, &tmp); + if (tmp & SDIO_BUS_AUTO_SWITCH) + sw_bypass_sd = 1; + } + } else { + if (chip->sdio_in_charge) + sw_bypass_sd = 1; + } + RTSX_DEBUGP("chip->sdio_in_charge = %d\n", chip->sdio_in_charge); + RTSX_DEBUGP("chip->driver_first_load = %d\n", chip->driver_first_load); + RTSX_DEBUGP("sw_bypass_sd = %d\n", sw_bypass_sd); + + if (sw_bypass_sd) { + u8 cd_toggle_mask = 0; + + RTSX_READ_REG(chip, TLPTISTAT, &tmp); + if (CHECK_PID(chip, 0x5209)) { + cd_toggle_mask = 0x10; + } else { + cd_toggle_mask = 0x08; + } + if (tmp & cd_toggle_mask) { + /* Disable sdio_bus_auto_switch */ + if (CHECK_PID(chip, 0x5288)) { + RTSX_WRITE_REG(chip, 0xFE5A, 0x08, 0x00); + } else if (CHECK_PID(chip, 0x5208)) { + RTSX_WRITE_REG(chip, 0xFE70, 0x80, 0x00); + } else { + RTSX_WRITE_REG(chip, SDIO_CFG, SDIO_BUS_AUTO_SWITCH, 0); + } + RTSX_WRITE_REG(chip, TLPTISTAT, 0xFF, tmp); + + chip->need_reset |= SD_CARD; + } else { + RTSX_DEBUGP("Chip inserted with SDIO!\n"); + + if (chip->asic_code) { + retval = sd_pull_ctl_enable(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + RTSX_WRITE_REG(chip, FPGA_PULL_CTL, FPGA_SD_PULL_CTL_BIT | 0x20, 0); + } + retval = card_share_mode(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + /* Enable sdio_bus_auto_switch */ + if (CHECK_PID(chip, 0x5288)) { + RTSX_WRITE_REG(chip, 0xFE5A, 0x08, 0x08); + } else if (CHECK_PID(chip, 0x5208)) { + RTSX_WRITE_REG(chip, 0xFE70, 0x80, 0x80); + } else { + RTSX_WRITE_REG(chip, SDIO_CFG, + SDIO_BUS_AUTO_SWITCH, SDIO_BUS_AUTO_SWITCH); + } + chip->chip_insert_with_sdio = 1; + chip->sd_io = 1; + } + } else { + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, TLPTISTAT, 0x10, 0x10); + } else { + RTSX_WRITE_REG(chip, TLPTISTAT, 0x08, 0x08); + } + chip->need_reset |= SD_CARD; + } + + return STATUS_SUCCESS; +} +#endif + +int rtsx_reset_chip(struct rtsx_chip *chip) +{ + int retval; + + rtsx_writel(chip, RTSX_HCBAR, chip->host_cmds_addr); + + rtsx_disable_aspm(chip); + + if (CHECK_PID(chip, 0x5209) && chip->asic_code) { + u16 val; + + /* optimize PHY */ + retval = rtsx_write_phy_register(chip, 0x00, 0xB966); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = rtsx_write_phy_register(chip, 0x01, 0x713F); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = rtsx_write_phy_register(chip, 0x03, 0xA549); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = rtsx_write_phy_register(chip, 0x06, 0xB235); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = rtsx_write_phy_register(chip, 0x07, 0xEF40); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = rtsx_write_phy_register(chip, 0x1E, 0xF8EB); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = rtsx_write_phy_register(chip, 0x19, 0xFE6C); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + wait_timeout(1); + retval = rtsx_write_phy_register(chip, 0x0A, 0x05C0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = rtsx_write_cfg_dw(chip, 1, 0x110, 0xFFFF, 0xFFFF); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = rtsx_read_phy_register(chip, 0x08, &val); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + RTSX_DEBUGP("Read from phy 0x08: 0x%04x\n", val); + + if (chip->phy_voltage) { + chip->phy_voltage &= 0x3F; + RTSX_DEBUGP("chip->phy_voltage = 0x%x\n", chip->phy_voltage); + val &= ~0x3F; + val |= chip->phy_voltage; + RTSX_DEBUGP("Write to phy 0x08: 0x%04x\n", val); + retval = rtsx_write_phy_register(chip, 0x08, val); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + chip->phy_voltage = (u8)(val & 0x3F); + RTSX_DEBUGP("Default, chip->phy_voltage = 0x%x\n", chip->phy_voltage); + } + } + + RTSX_WRITE_REG(chip, HOST_SLEEP_STATE, 0x03, 0x00); + + /* Disable card clock */ + RTSX_WRITE_REG(chip, CARD_CLK_EN, 0x1E, 0); + +#ifdef SUPPORT_OCP + /* SSC power on, OCD power on */ + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + RTSX_WRITE_REG(chip, FPDCTL, OC_POWER_DOWN, 0); + } else { + RTSX_WRITE_REG(chip, FPDCTL, OC_POWER_DOWN, MS_OC_POWER_DOWN); + } + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, OCPPARA1, SD_OCP_TIME_MASK | MS_OCP_TIME_MASK, + SD_OCP_TIME_800 | MS_OCP_TIME_800); + RTSX_WRITE_REG(chip, OCPPARA2, SD_OCP_THD_MASK | MS_OCP_THD_MASK, + chip->sd_400mA_ocp_thd | (chip->ms_ocp_thd << 4)); + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + RTSX_WRITE_REG(chip, OCPGLITCH, SD_OCP_GLITCH_MASK | MS_OCP_GLITCH_MASK, + SD_OCP_GLITCH_10000 | MS_OCP_GLITCH_10000); + } else { + RTSX_WRITE_REG(chip, OCPGLITCH, SD_OCP_GLITCH_MASK, SD_OCP_GLITCH_10000); + } + RTSX_WRITE_REG(chip, OCPCTL, 0xFF, + SD_OCP_INT_EN | SD_DETECT_EN | MS_OCP_INT_EN | MS_DETECT_EN); + } else { + RTSX_WRITE_REG(chip, OCPPARA1, OCP_TIME_MASK, OCP_TIME_800); + RTSX_WRITE_REG(chip, OCPPARA2, OCP_THD_MASK, OCP_THD_244_946); + RTSX_WRITE_REG(chip, OCPCTL, 0xFF, CARD_OC_INT_EN | CARD_DETECT_EN); + } +#else + /* OC power down */ + RTSX_WRITE_REG(chip, FPDCTL, OC_POWER_DOWN, OC_POWER_DOWN); +#endif + + if (!CHECK_PID(chip, 0x5288)) { + RTSX_WRITE_REG(chip, CARD_GPIO_DIR, 0xFF, 0x03); + } + + /* Turn off LED */ + RTSX_WRITE_REG(chip, CARD_GPIO, 0xFF, 0x03); + + /* Reset delink mode */ + RTSX_WRITE_REG(chip, CHANGE_LINK_STATE, 0x0A, 0); + + /* Card driving select */ + RTSX_WRITE_REG(chip, CARD_DRIVE_SEL, 0xFF, chip->card_drive_sel); + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, SD30_DRIVE_SEL, 0x07, chip->sd30_drive_sel_3v3); + } + +#ifdef LED_AUTO_BLINK + RTSX_WRITE_REG(chip, CARD_AUTO_BLINK, 0xFF, + LED_BLINK_SPEED | BLINK_EN | LED_GPIO0); +#endif + + if (chip->asic_code) { + /* Enable SSC Clock */ + RTSX_WRITE_REG(chip, SSC_CTL1, 0xFF, SSC_8X_EN | SSC_SEL_4M); + RTSX_WRITE_REG(chip, SSC_CTL2, 0xFF, 0x12); + } + + /* Disable cd_pwr_save (u_force_rst_core_en=0, u_cd_rst_core_en=0) + 0xFE5B + bit[1] u_cd_rst_core_en rst_value = 0 + bit[2] u_force_rst_core_en rst_value = 0 + bit[5] u_mac_phy_rst_n_dbg rst_value = 1 + bit[4] u_non_sticky_rst_n_dbg rst_value = 0 + */ + RTSX_WRITE_REG(chip, CHANGE_LINK_STATE, 0x16, 0x10); + + /* Enable ASPM */ + if (chip->aspm_l0s_l1_en) { + if (chip->dynamic_aspm) { + if (CHK_SDIO_EXIST(chip)) { + if (CHECK_PID(chip, 0x5209)) { + retval = rtsx_write_cfg_dw(chip, 1, 0xC0, 0xFF, chip->aspm_l0s_l1_en); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else if (CHECK_PID(chip, 0x5288)) { + retval = rtsx_write_cfg_dw(chip, 2, 0xC0, 0xFF, chip->aspm_l0s_l1_en); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + } + } else { + if (CHECK_PID(chip, 0x5208)) { + RTSX_WRITE_REG(chip, ASPM_FORCE_CTL, 0xFF, 0x3F); + } + + retval = rtsx_write_config_byte(chip, LCTLR, chip->aspm_l0s_l1_en); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + chip->aspm_level[0] = chip->aspm_l0s_l1_en; + if (CHK_SDIO_EXIST(chip)) { + chip->aspm_level[1] = chip->aspm_l0s_l1_en; + if (CHECK_PID(chip, 0x5288)) { + retval = rtsx_write_cfg_dw(chip, 2, 0xC0, 0xFF, chip->aspm_l0s_l1_en); + } else { + retval = rtsx_write_cfg_dw(chip, 1, 0xC0, 0xFF, chip->aspm_l0s_l1_en); + } + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + chip->aspm_enabled = 1; + } + } else { + if (chip->asic_code && CHECK_PID(chip, 0x5208)) { + retval = rtsx_write_phy_register(chip, 0x07, 0x0129); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + retval = rtsx_write_config_byte(chip, LCTLR, chip->aspm_l0s_l1_en); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = rtsx_write_config_byte(chip, 0x81, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_SDIO_EXIST(chip)) { + if (CHECK_PID(chip, 0x5288)) { + retval = rtsx_write_cfg_dw(chip, 2, 0xC0, 0xFF00, 0x0100); + } else { + retval = rtsx_write_cfg_dw(chip, 1, 0xC0, 0xFF00, 0x0100); + } + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (CHECK_PID(chip, 0x5209)) { + retval = rtsx_write_cfg_dw(chip, 0, 0x70C, 0xFF000000, 0x5B); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (CHECK_PID(chip, 0x5288)) { + if (!CHK_SDIO_EXIST(chip)) { + retval = rtsx_write_cfg_dw(chip, 2, 0xC0, 0xFFFF, 0x0103); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = rtsx_write_cfg_dw(chip, 2, 0x84, 0xFF, 0x03); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + } + + RTSX_WRITE_REG(chip, IRQSTAT0, LINK_RDY_INT, LINK_RDY_INT); + + RTSX_WRITE_REG(chip, PERST_GLITCH_WIDTH, 0xFF, 0x80); + + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, PWD_SUSPEND_EN, 0xFF, 0xFF); + RTSX_WRITE_REG(chip, PWR_GATE_CTRL, PWR_GATE_EN, PWR_GATE_EN); + } + + /* Enable PCIE interrupt */ + if (chip->asic_code) { + if (CHECK_PID(chip, 0x5208)) { + if (chip->phy_debug_mode) { + RTSX_WRITE_REG(chip, CDRESUMECTL, 0x77, 0); + rtsx_disable_bus_int(chip); + } else { + rtsx_enable_bus_int(chip); + } + + if (chip->ic_version >= IC_VER_D) { + u16 reg; + retval = rtsx_read_phy_register(chip, 0x00, ®); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + reg &= 0xFE7F; + reg |= 0x80; + retval = rtsx_write_phy_register(chip, 0x00, reg); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = rtsx_read_phy_register(chip, 0x1C, ®); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + reg &= 0xFFF7; + retval = rtsx_write_phy_register(chip, 0x1C, reg); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (chip->driver_first_load && (chip->ic_version < IC_VER_C)) { + rtsx_calibration(chip); + } + } else { + rtsx_enable_bus_int(chip); + } + } else { + rtsx_enable_bus_int(chip); + } + +#ifdef HW_INT_WRITE_CLR + if (CHECK_PID(chip, 0x5209)) { + /* Set interrupt write clear */ + RTSX_WRITE_REG(chip, NFTS_TX_CTRL, 0x02, 0); + } +#endif + + chip->need_reset = 0; + + chip->int_reg = rtsx_readl(chip, RTSX_BIPR); +#ifdef HW_INT_WRITE_CLR + if (CHECK_PID(chip, 0x5209)) { + /* Clear interrupt flag */ + rtsx_writel(chip, RTSX_BIPR, chip->int_reg); + } +#endif + if (chip->hw_bypass_sd) + goto NextCard; + RTSX_DEBUGP("In rtsx_reset_chip, chip->int_reg = 0x%x\n", chip->int_reg); + if (chip->int_reg & SD_EXIST) { +#ifdef HW_AUTO_SWITCH_SD_BUS + if (CHECK_PID(chip, 0x5208) && (chip->ic_version < IC_VER_C)) { + retval = rtsx_pre_handle_sdio_old(chip); + } else { + retval = rtsx_pre_handle_sdio_new(chip); + } + RTSX_DEBUGP("chip->need_reset = 0x%x (rtsx_reset_chip)\n", (unsigned int)(chip->need_reset)); +#else /* HW_AUTO_SWITCH_SD_BUS */ + retval = rtsx_pre_handle_sdio_old(chip); +#endif /* HW_AUTO_SWITCH_SD_BUS */ + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + chip->sd_io = 0; + RTSX_WRITE_REG(chip, SDIO_CTRL, SDIO_BUS_CTRL | SDIO_CD_CTRL, 0); + } + +NextCard: + if (chip->int_reg & XD_EXIST) + chip->need_reset |= XD_CARD; + if (chip->int_reg & MS_EXIST) + chip->need_reset |= MS_CARD; + if (chip->int_reg & CARD_EXIST) { + RTSX_WRITE_REG(chip, SSC_CTL1, SSC_RSTB, SSC_RSTB); + } + + RTSX_DEBUGP("In rtsx_init_chip, chip->need_reset = 0x%x\n", (unsigned int)(chip->need_reset)); + + RTSX_WRITE_REG(chip, RCCTL, 0x01, 0x00); + + if (CHECK_PID(chip, 0x5208) || CHECK_PID(chip, 0x5288)) { + /* Turn off main power when entering S3/S4 state */ + RTSX_WRITE_REG(chip, MAIN_PWR_OFF_CTL, 0x03, 0x03); + } + + if (chip->remote_wakeup_en && !chip->auto_delink_en) { + RTSX_WRITE_REG(chip, WAKE_SEL_CTL, 0x07, 0x07); + if (chip->aux_pwr_exist) { + RTSX_WRITE_REG(chip, PME_FORCE_CTL, 0xFF, 0x33); + } + } else { + RTSX_WRITE_REG(chip, WAKE_SEL_CTL, 0x07, 0x04); + RTSX_WRITE_REG(chip, PME_FORCE_CTL, 0xFF, 0x30); + } + + if (CHECK_PID(chip, 0x5208) && (chip->ic_version >= IC_VER_D)) { + RTSX_WRITE_REG(chip, PETXCFG, 0x1C, 0x14); + } else if (CHECK_PID(chip, 0x5209)) { + if (chip->force_clkreq_0) { + RTSX_WRITE_REG(chip, PETXCFG, 0x08, 0x08); + } else { + RTSX_WRITE_REG(chip, PETXCFG, 0x08, 0x00); + } + } + + if (chip->asic_code && CHECK_PID(chip, 0x5208)) { + retval = rtsx_clr_phy_reg_bit(chip, 0x1C, 2); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (chip->ft2_fast_mode) { + RTSX_WRITE_REG(chip, CARD_PWR_CTL, 0xFF, MS_PARTIAL_POWER_ON | SD_PARTIAL_POWER_ON); + udelay(chip->pmos_pwr_on_interval); + RTSX_WRITE_REG(chip, CARD_PWR_CTL, 0xFF, MS_POWER_ON | SD_POWER_ON); + + wait_timeout(200); + } + + /* Reset card */ + rtsx_reset_detected_cards(chip, 0); + + chip->driver_first_load = 0; + + return STATUS_SUCCESS; +} + +static inline int check_sd_speed_prior(u32 sd_speed_prior) +{ + int i, fake_para = 0; + + for (i = 0; i < 4; i++) { + u8 tmp = (u8)(sd_speed_prior >> (i*8)); + if ((tmp < 0x01) || (tmp > 0x04)) { + fake_para = 1; + break; + } + } + + return !fake_para; +} + +static inline int check_sd_current_prior(u32 sd_current_prior) +{ + int i, fake_para = 0; + + for (i = 0; i < 4; i++) { + u8 tmp = (u8)(sd_current_prior >> (i*8)); + if (tmp > 0x03) { + fake_para = 1; + break; + } + } + + return !fake_para; +} + +static int rts5209_init(struct rtsx_chip *chip) +{ + int retval; + u32 lval = 0; + u8 val = 0; + + val = rtsx_readb(chip, 0x1C); + if ((val & 0x10) == 0) { + chip->asic_code = 1; + } else { + chip->asic_code = 0; + } + + chip->ic_version = val & 0x0F; + chip->phy_debug_mode = 0; + + chip->aux_pwr_exist = 0; + + chip->ms_power_class_en = 0x03; + + retval = rtsx_read_cfg_dw(chip, 0, 0x724, &lval); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + RTSX_DEBUGP("dw in 0x724: 0x%x\n", lval); + val = (u8)lval; + if (!(val & 0x80)) { + if (val & 0x08) + chip->lun_mode = DEFAULT_SINGLE; + else + chip->lun_mode = SD_MS_2LUN; + + if (val & 0x04) { + SET_SDIO_EXIST(chip); + } else { + CLR_SDIO_EXIST(chip); + } + + if (val & 0x02) { + chip->hw_bypass_sd = 0; + } else { + chip->hw_bypass_sd = 1; + } + } else { + SET_SDIO_EXIST(chip); + chip->hw_bypass_sd = 0; + } + + if (chip->use_hw_setting) { + u8 clk; + + chip->aspm_l0s_l1_en = (val >> 5) & 0x03; + + val = (u8)(lval >> 8); + + clk = (val >> 5) & 0x07; + if (clk != 0x07) { + chip->asic_sd_sdr50_clk = 98 - clk * 2; + } + + if (val & 0x10) { + chip->auto_delink_en = 1; + } else { + chip->auto_delink_en = 0; + } + + if (chip->ss_en == 2) { + chip->ss_en = 0; + } else { + if (val & 0x08) { + chip->ss_en = 1; + } else { + chip->ss_en = 0; + } + } + + clk = val & 0x07; + if (clk != 0x07) + chip->asic_ms_hg_clk = (59 - clk) * 2; + + val = (u8)(lval >> 16); + + clk = (val >> 6) & 0x03; + if (clk != 0x03) { + chip->asic_sd_hs_clk = (49 - clk * 2) * 2; + chip->asic_mmc_52m_clk = (49 - clk * 2) * 2; + } + + clk = (val >> 4) & 0x03; + if (clk != 0x03) + chip->asic_sd_ddr50_clk = (48 - clk * 2) * 2; + + if (val & 0x01) { + chip->sdr104_en = 1; + } else { + chip->sdr104_en = 0; + } + if (val & 0x02) { + chip->ddr50_en = 1; + } else { + chip->ddr50_en = 0; + } + if (val & 0x04) { + chip->sdr50_en = 1; + } else { + chip->sdr50_en = 0; + } + + val = (u8)(lval >> 24); + + clk = (val >> 5) & 0x07; + if (clk != 0x07) + chip->asic_sd_sdr104_clk = 206 - clk * 3; + + if (val & 0x10) { + chip->power_down_in_ss = 1; + } else { + chip->power_down_in_ss = 0; + } + + chip->ms_power_class_en = val & 0x03; + } + + if (chip->hp_watch_bios_hotplug && chip->auto_delink_en) { + u8 reg58, reg5b; + + retval = rtsx_read_pci_cfg_byte(0x00, + 0x1C, 0x02, 0x58, ®58); + if (retval < 0) { + return STATUS_SUCCESS; + } + retval = rtsx_read_pci_cfg_byte(0x00, + 0x1C, 0x02, 0x5B, ®5b); + if (retval < 0) { + return STATUS_SUCCESS; + } + + RTSX_DEBUGP("reg58 = 0x%x, reg5b = 0x%x\n", reg58, reg5b); + + if ((reg58 == 0x00) && (reg5b == 0x01)) { + chip->auto_delink_en = 0; + } + } + + return STATUS_SUCCESS; +} + +static int rts5208_init(struct rtsx_chip *chip) +{ + int retval; + u16 reg = 0; + u8 val = 0; + + RTSX_WRITE_REG(chip, CLK_SEL, 0x03, 0x03); + RTSX_READ_REG(chip, CLK_SEL, &val); + if (val == 0) { + chip->asic_code = 1; + } else { + chip->asic_code = 0; + } + + if (chip->asic_code) { + retval = rtsx_read_phy_register(chip, 0x1C, ®); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + RTSX_DEBUGP("Value of phy register 0x1C is 0x%x\n", reg); + chip->ic_version = (reg >> 4) & 0x07; + if (reg & PHY_DEBUG_MODE) { + chip->phy_debug_mode = 1; + } else { + chip->phy_debug_mode = 0; + } + } else { + RTSX_READ_REG(chip, 0xFE80, &val); + chip->ic_version = val; + chip->phy_debug_mode = 0; + } + + RTSX_READ_REG(chip, PDINFO, &val); + RTSX_DEBUGP("PDINFO: 0x%x\n", val); + if (val & AUX_PWR_DETECTED) { + chip->aux_pwr_exist = 1; + } else { + chip->aux_pwr_exist = 0; + } + + RTSX_READ_REG(chip, 0xFE50, &val); + if (val & 0x01) { + chip->hw_bypass_sd = 1; + } else { + chip->hw_bypass_sd = 0; + } + + rtsx_read_config_byte(chip, 0x0E, &val); + if (val & 0x80) { + SET_SDIO_EXIST(chip); + } else { + CLR_SDIO_EXIST(chip); + } + + if (chip->use_hw_setting) { + RTSX_READ_REG(chip, CHANGE_LINK_STATE, &val); + if (val & 0x80) { + chip->auto_delink_en = 1; + } else { + chip->auto_delink_en = 0; + } + } + + return STATUS_SUCCESS; +} + +static int rts5288_init(struct rtsx_chip *chip) +{ + int retval; + u8 val = 0, max_func; + u32 lval = 0; + + RTSX_WRITE_REG(chip, CLK_SEL, 0x03, 0x03); + RTSX_READ_REG(chip, CLK_SEL, &val); + if (val == 0) { + chip->asic_code = 1; + } else { + chip->asic_code = 0; + } + + chip->ic_version = 0; + chip->phy_debug_mode = 0; + + RTSX_READ_REG(chip, PDINFO, &val); + RTSX_DEBUGP("PDINFO: 0x%x\n", val); + if (val & AUX_PWR_DETECTED) { + chip->aux_pwr_exist = 1; + } else { + chip->aux_pwr_exist = 0; + } + + RTSX_READ_REG(chip, CARD_SHARE_MODE, &val); + RTSX_DEBUGP("CARD_SHARE_MODE: 0x%x\n", val); + if (val & 0x04) { + chip->baro_pkg = QFN; + } else { + chip->baro_pkg = LQFP; + } + + RTSX_READ_REG(chip, 0xFE5A, &val); + if (val & 0x10) { + chip->hw_bypass_sd = 1; + } else { + chip->hw_bypass_sd = 0; + } + + retval = rtsx_read_cfg_dw(chip, 0, 0x718, &lval); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + max_func = (u8)((lval >> 29) & 0x07); + RTSX_DEBUGP("Max function number: %d\n", max_func); + if (max_func == 0x02) { + SET_SDIO_EXIST(chip); + } else { + CLR_SDIO_EXIST(chip); + } + + if (chip->use_hw_setting) { + RTSX_READ_REG(chip, CHANGE_LINK_STATE, &val); + if (val & 0x80) { + chip->auto_delink_en = 1; + } else { + chip->auto_delink_en = 0; + } + + if (CHECK_BARO_PKG(chip, LQFP)) { + chip->lun_mode = SD_MS_1LUN; + } else { + chip->lun_mode = DEFAULT_SINGLE; + } + } + + return STATUS_SUCCESS; +} + +int rtsx_init_chip(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + struct xd_info *xd_card = &(chip->xd_card); + struct ms_info *ms_card = &(chip->ms_card); + int retval; + unsigned int i; + + RTSX_DEBUGP("Vendor ID: 0x%04x, Product ID: 0x%04x\n", + chip->vendor_id, chip->product_id); + + chip->ic_version = 0; + +#ifdef _MSG_TRACE + chip->msg_idx = 0; +#endif + + memset(xd_card, 0, sizeof(struct xd_info)); + memset(sd_card, 0, sizeof(struct sd_info)); + memset(ms_card, 0, sizeof(struct ms_info)); + + chip->xd_reset_counter = 0; + chip->sd_reset_counter = 0; + chip->ms_reset_counter = 0; + + chip->xd_show_cnt = MAX_SHOW_CNT; + chip->sd_show_cnt = MAX_SHOW_CNT; + chip->ms_show_cnt = MAX_SHOW_CNT; + + chip->sd_io = 0; + chip->auto_delink_cnt = 0; + chip->auto_delink_allowed = 1; + rtsx_set_stat(chip, RTSX_STAT_INIT); + + chip->aspm_enabled = 0; + chip->chip_insert_with_sdio = 0; + chip->sdio_aspm = 0; + chip->sdio_idle = 0; + chip->sdio_counter = 0; + chip->cur_card = 0; + chip->phy_debug_mode = 0; + chip->sdio_func_exist = 0; + memset(chip->sdio_raw_data, 0, 12); + + for (i = 0; i < MAX_ALLOWED_LUN_CNT; i++) { + set_sense_type(chip, i, SENSE_TYPE_NO_SENSE); + chip->rw_fail_cnt[i] = 0; + } + + if (!check_sd_speed_prior(chip->sd_speed_prior)) { + chip->sd_speed_prior = 0x01040203; + } + RTSX_DEBUGP("sd_speed_prior = 0x%08x\n", chip->sd_speed_prior); + + if (!check_sd_current_prior(chip->sd_current_prior)) { + chip->sd_current_prior = 0x00010203; + } + RTSX_DEBUGP("sd_current_prior = 0x%08x\n", chip->sd_current_prior); + + if ((chip->sd_ddr_tx_phase > 31) || (chip->sd_ddr_tx_phase < 0)) { + chip->sd_ddr_tx_phase = 0; + } + if ((chip->mmc_ddr_tx_phase > 31) || (chip->mmc_ddr_tx_phase < 0)) { + chip->mmc_ddr_tx_phase = 0; + } + + RTSX_WRITE_REG(chip, FPDCTL, SSC_POWER_DOWN, 0); + wait_timeout(200); + RTSX_WRITE_REG(chip, CLK_DIV, 0x07, 0x07); + RTSX_DEBUGP("chip->use_hw_setting = %d\n", chip->use_hw_setting); + + if (CHECK_PID(chip, 0x5209)) { + retval = rts5209_init(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else if (CHECK_PID(chip, 0x5208)) { + retval = rts5208_init(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else if (CHECK_PID(chip, 0x5288)) { + retval = rts5288_init(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (chip->ss_en == 2) { + chip->ss_en = 0; + } + + RTSX_DEBUGP("chip->asic_code = %d\n", chip->asic_code); + RTSX_DEBUGP("chip->ic_version = 0x%x\n", chip->ic_version); + RTSX_DEBUGP("chip->phy_debug_mode = %d\n", chip->phy_debug_mode); + RTSX_DEBUGP("chip->aux_pwr_exist = %d\n", chip->aux_pwr_exist); + RTSX_DEBUGP("chip->sdio_func_exist = %d\n", chip->sdio_func_exist); + RTSX_DEBUGP("chip->hw_bypass_sd = %d\n", chip->hw_bypass_sd); + RTSX_DEBUGP("chip->aspm_l0s_l1_en = %d\n", chip->aspm_l0s_l1_en); + RTSX_DEBUGP("chip->lun_mode = %d\n", chip->lun_mode); + RTSX_DEBUGP("chip->auto_delink_en = %d\n", chip->auto_delink_en); + RTSX_DEBUGP("chip->ss_en = %d\n", chip->ss_en); + RTSX_DEBUGP("chip->baro_pkg = %d\n", chip->baro_pkg); + + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + chip->card2lun[SD_CARD] = 0; + chip->card2lun[MS_CARD] = 1; + chip->card2lun[XD_CARD] = 0xFF; + chip->lun2card[0] = SD_CARD; + chip->lun2card[1] = MS_CARD; + chip->max_lun = 1; + SET_SDIO_IGNORED(chip); + } else if (CHECK_LUN_MODE(chip, SD_MS_1LUN)) { + chip->card2lun[SD_CARD] = 0; + chip->card2lun[MS_CARD] = 0; + chip->card2lun[XD_CARD] = 0xFF; + chip->lun2card[0] = SD_CARD | MS_CARD; + chip->max_lun = 0; + } else { + chip->card2lun[XD_CARD] = 0; + chip->card2lun[SD_CARD] = 0; + chip->card2lun[MS_CARD] = 0; + chip->lun2card[0] = XD_CARD | SD_CARD | MS_CARD; + chip->max_lun = 0; + } + + retval = rtsx_reset_chip(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +void rtsx_release_chip(struct rtsx_chip *chip) +{ + xd_free_l2p_tbl(chip); + ms_free_l2p_tbl(chip); + chip->card_exist = 0; + chip->card_ready = 0; +} + +#if !defined(LED_AUTO_BLINK) && defined(REGULAR_BLINK) +static inline void rtsx_blink_led(struct rtsx_chip *chip) +{ + if (chip->card_exist && chip->blink_led) { + if (chip->led_toggle_counter < LED_TOGGLE_INTERVAL) { + chip->led_toggle_counter++; + } else { + chip->led_toggle_counter = 0; + toggle_gpio(chip, LED_GPIO); + } + } +} +#endif + +static void rtsx_monitor_aspm_config(struct rtsx_chip *chip) +{ + int maybe_support_aspm, reg_changed; + u32 tmp = 0; + u8 reg0 = 0, reg1 = 0; + + maybe_support_aspm = 0; + reg_changed = 0; + rtsx_read_config_byte(chip, LCTLR, ®0); + if (chip->aspm_level[0] != reg0) { + reg_changed = 1; + chip->aspm_level[0] = reg0; + } + if (CHK_SDIO_EXIST(chip) && !CHK_SDIO_IGNORED(chip)) { + rtsx_read_cfg_dw(chip, 1, 0xC0, &tmp); + reg1 = (u8)tmp; + if (chip->aspm_level[1] != reg1) { + reg_changed = 1; + chip->aspm_level[1] = reg1; + } + + if ((reg0 & 0x03) && (reg1 & 0x03)) { + maybe_support_aspm = 1; + } + } else { + if (reg0 & 0x03) { + maybe_support_aspm = 1; + } + } + + if (reg_changed) { + if (maybe_support_aspm) { + chip->aspm_l0s_l1_en = 0x03; + } + RTSX_DEBUGP("aspm_level[0] = 0x%02x, aspm_level[1] = 0x%02x\n", + chip->aspm_level[0], chip->aspm_level[1]); + + if (chip->aspm_l0s_l1_en) { + chip->aspm_enabled = 1; + } else { + chip->aspm_enabled = 0; + chip->sdio_aspm = 0; + } + rtsx_write_register(chip, ASPM_FORCE_CTL, 0xFF, + 0x30 | chip->aspm_level[0] | (chip->aspm_level[1] << 2)); + } +} + +void rtsx_polling_func(struct rtsx_chip *chip) +{ +#ifdef SUPPORT_SD_LOCK + struct sd_info *sd_card = &(chip->sd_card); +#endif + int ss_allowed; + + if (rtsx_chk_stat(chip, RTSX_STAT_SUSPEND)) + return; + + if (rtsx_chk_stat(chip, RTSX_STAT_DELINK)) + goto Delink_Stage; + + if (chip->polling_config) { + u8 val; + rtsx_read_config_byte(chip, 0, &val); + } + + if (rtsx_chk_stat(chip, RTSX_STAT_SS)) + return; + +#ifdef SUPPORT_OCP + if (chip->ocp_int) { + rtsx_read_register(chip, OCPSTAT, &(chip->ocp_stat)); + + if (CHECK_PID(chip, 0x5209) && + CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + if (chip->ocp_int & SD_OC_INT) + sd_power_off_card3v3(chip); + if (chip->ocp_int & MS_OC_INT) + ms_power_off_card3v3(chip); + } else { + if (chip->card_exist & SD_CARD) { + sd_power_off_card3v3(chip); + } else if (chip->card_exist & MS_CARD) { + ms_power_off_card3v3(chip); + } else if (chip->card_exist & XD_CARD) { + xd_power_off_card3v3(chip); + } + } + + chip->ocp_int = 0; + } +#endif + +#ifdef SUPPORT_SD_LOCK + if (sd_card->sd_erase_status) { + if (chip->card_exist & SD_CARD) { + u8 val; + if (CHECK_PID(chip, 0x5209)) { + rtsx_read_register(chip, SD_BUS_STAT, &val); + if (val & SD_DAT0_STATUS) { + sd_card->sd_erase_status = SD_NOT_ERASE; + sd_card->sd_lock_notify = 1; + chip->need_reinit |= SD_CARD; + } + } else { + rtsx_read_register(chip, 0xFD30, &val); + if (val & 0x02) { + sd_card->sd_erase_status = SD_NOT_ERASE; + sd_card->sd_lock_notify = 1; + chip->need_reinit |= SD_CARD; + } + } + } else { + sd_card->sd_erase_status = SD_NOT_ERASE; + } + } +#endif + + rtsx_init_cards(chip); + + if (chip->ss_en) { + ss_allowed = 1; + + if (CHECK_PID(chip, 0x5288)) { + ss_allowed = 0; + } else { + if (CHK_SDIO_EXIST(chip) && !CHK_SDIO_IGNORED(chip)) { + u32 val; + rtsx_read_cfg_dw(chip, 1, 0x04, &val); + if (val & 0x07) { + ss_allowed = 0; + } + } + } + } else { + ss_allowed = 0; + } + + if (ss_allowed && !chip->sd_io) { + if (rtsx_get_stat(chip) != RTSX_STAT_IDLE) { + chip->ss_counter = 0; + } else { + if (chip->ss_counter < + (chip->ss_idle_period / POLLING_INTERVAL)) { + chip->ss_counter++; + } else { + rtsx_exclusive_enter_ss(chip); + return; + } + } + } + + if (CHECK_PID(chip, 0x5208)) { + rtsx_monitor_aspm_config(chip); + +#ifdef SUPPORT_SDIO_ASPM + if (CHK_SDIO_EXIST(chip) && !CHK_SDIO_IGNORED(chip) && + chip->aspm_l0s_l1_en && chip->dynamic_aspm) { + if (chip->sd_io) { + dynamic_configure_sdio_aspm(chip); + } else { + if (!chip->sdio_aspm) { + RTSX_DEBUGP("SDIO enter ASPM!\n"); + rtsx_write_register(chip, + ASPM_FORCE_CTL, 0xFC, + 0x30 | (chip->aspm_level[1] << 2)); + chip->sdio_aspm = 1; + } + } + } +#endif + } + + if (chip->idle_counter < IDLE_MAX_COUNT) { + chip->idle_counter++; + } else { + if (rtsx_get_stat(chip) != RTSX_STAT_IDLE) { + RTSX_DEBUGP("Idle state!\n"); + rtsx_set_stat(chip, RTSX_STAT_IDLE); + +#if !defined(LED_AUTO_BLINK) && defined(REGULAR_BLINK) + chip->led_toggle_counter = 0; +#endif + rtsx_force_power_on(chip, SSC_PDCTL); + + turn_off_led(chip, LED_GPIO); + + if (chip->auto_power_down && !chip->card_ready && !chip->sd_io) { + rtsx_force_power_down(chip, SSC_PDCTL | OC_PDCTL); + } + } + } + + switch (rtsx_get_stat(chip)) { + case RTSX_STAT_RUN: +#if !defined(LED_AUTO_BLINK) && defined(REGULAR_BLINK) + rtsx_blink_led(chip); +#endif + do_remaining_work(chip); + break; + + case RTSX_STAT_IDLE: + if (chip->sd_io && !chip->sd_int) { + try_to_switch_sdio_ctrl(chip); + } + rtsx_enable_aspm(chip); + break; + + default: + break; + } + + +#ifdef SUPPORT_OCP + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + #if CONFIG_RTS_PSTOR_DEBUG + if (chip->ocp_stat & (SD_OC_NOW | SD_OC_EVER | MS_OC_NOW | MS_OC_EVER)) { + RTSX_DEBUGP("Over current, OCPSTAT is 0x%x\n", chip->ocp_stat); + } + #endif + + if (chip->ocp_stat & (SD_OC_NOW | SD_OC_EVER)) { + if (chip->card_exist & SD_CARD) { + rtsx_write_register(chip, CARD_OE, SD_OUTPUT_EN, 0); + card_power_off(chip, SD_CARD); + chip->card_fail |= SD_CARD; + } + } + if (chip->ocp_stat & (MS_OC_NOW | MS_OC_EVER)) { + if (chip->card_exist & MS_CARD) { + rtsx_write_register(chip, CARD_OE, MS_OUTPUT_EN, 0); + card_power_off(chip, MS_CARD); + chip->card_fail |= MS_CARD; + } + } + } else { + if (chip->ocp_stat & (SD_OC_NOW | SD_OC_EVER)) { + RTSX_DEBUGP("Over current, OCPSTAT is 0x%x\n", chip->ocp_stat); + if (chip->card_exist & SD_CARD) { + rtsx_write_register(chip, CARD_OE, SD_OUTPUT_EN, 0); + chip->card_fail |= SD_CARD; + } else if (chip->card_exist & MS_CARD) { + rtsx_write_register(chip, CARD_OE, MS_OUTPUT_EN, 0); + chip->card_fail |= MS_CARD; + } else if (chip->card_exist & XD_CARD) { + rtsx_write_register(chip, CARD_OE, XD_OUTPUT_EN, 0); + chip->card_fail |= XD_CARD; + } + card_power_off(chip, SD_CARD); + } + } +#endif + +Delink_Stage: + if (chip->auto_delink_en && chip->auto_delink_allowed && + !chip->card_ready && !chip->card_ejected && !chip->sd_io) { + int enter_L1 = chip->auto_delink_in_L1 && (chip->aspm_l0s_l1_en || chip->ss_en); + int delink_stage1_cnt = chip->delink_stage1_step; + int delink_stage2_cnt = delink_stage1_cnt + chip->delink_stage2_step; + int delink_stage3_cnt = delink_stage2_cnt + chip->delink_stage3_step; + + if (chip->auto_delink_cnt <= delink_stage3_cnt) { + if (chip->auto_delink_cnt == delink_stage1_cnt) { + rtsx_set_stat(chip, RTSX_STAT_DELINK); + + if (chip->asic_code && CHECK_PID(chip, 0x5208)) { + rtsx_set_phy_reg_bit(chip, 0x1C, 2); + } + if (chip->card_exist) { + RTSX_DEBUGP("False card inserted, do force delink\n"); + + if (enter_L1) { + rtsx_write_register(chip, HOST_SLEEP_STATE, 0x03, 1); + } + rtsx_write_register(chip, CHANGE_LINK_STATE, 0x0A, 0x0A); + + if (enter_L1) { + rtsx_enter_L1(chip); + } + + chip->auto_delink_cnt = delink_stage3_cnt + 1; + } else { + RTSX_DEBUGP("No card inserted, do delink\n"); + + if (enter_L1) { + rtsx_write_register(chip, HOST_SLEEP_STATE, 0x03, 1); + } +#ifdef HW_INT_WRITE_CLR + if (CHECK_PID(chip, 0x5209)) { + rtsx_writel(chip, RTSX_BIPR, 0xFFFFFFFF); + RTSX_DEBUGP("RTSX_BIPR: 0x%x\n", rtsx_readl(chip, RTSX_BIPR)); + } +#endif + rtsx_write_register(chip, CHANGE_LINK_STATE, 0x02, 0x02); + + if (enter_L1) { + rtsx_enter_L1(chip); + } + } + } + + if (chip->auto_delink_cnt == delink_stage2_cnt) { + RTSX_DEBUGP("Try to do force delink\n"); + + if (enter_L1) { + rtsx_exit_L1(chip); + } + + if (chip->asic_code && CHECK_PID(chip, 0x5208)) { + rtsx_set_phy_reg_bit(chip, 0x1C, 2); + } + rtsx_write_register(chip, CHANGE_LINK_STATE, 0x0A, 0x0A); + } + + chip->auto_delink_cnt++; + } + } else { + chip->auto_delink_cnt = 0; + } +} + +void rtsx_undo_delink(struct rtsx_chip *chip) +{ + chip->auto_delink_allowed = 0; + rtsx_write_register(chip, CHANGE_LINK_STATE, 0x0A, 0x00); +} + +/** + * rtsx_stop_cmd - stop command transfer and DMA transfer + * @chip: Realtek's card reader chip + * @card: flash card type + * + * Stop command transfer and DMA transfer. + * This function is called in error handler. + */ +void rtsx_stop_cmd(struct rtsx_chip *chip, int card) +{ + int i; + + for (i = 0; i <= 8; i++) { + int addr = RTSX_HCBAR + i * 4; + u32 reg; + reg = rtsx_readl(chip, addr); + RTSX_DEBUGP("BAR (0x%02x): 0x%08x\n", addr, reg); + } + rtsx_writel(chip, RTSX_HCBCTLR, STOP_CMD); + rtsx_writel(chip, RTSX_HDBCTLR, STOP_DMA); + + for (i = 0; i < 16; i++) { + u16 addr = 0xFE20 + (u16)i; + u8 val; + rtsx_read_register(chip, addr, &val); + RTSX_DEBUGP("0x%04X: 0x%02x\n", addr, val); + } + + rtsx_write_register(chip, DMACTL, 0x80, 0x80); + rtsx_write_register(chip, RBCTL, 0x80, 0x80); +} + +#define MAX_RW_REG_CNT 1024 + +int rtsx_write_register(struct rtsx_chip *chip, u16 addr, u8 mask, u8 data) +{ + int i; + u32 val = 3 << 30; + + val |= (u32)(addr & 0x3FFF) << 16; + val |= (u32)mask << 8; + val |= (u32)data; + + rtsx_writel(chip, RTSX_HAIMR, val); + + for (i = 0; i < MAX_RW_REG_CNT; i++) { + val = rtsx_readl(chip, RTSX_HAIMR); + if ((val & (1 << 31)) == 0) { + if (data != (u8)val) { + TRACE_RET(chip, STATUS_FAIL); + } + return STATUS_SUCCESS; + } + } + + TRACE_RET(chip, STATUS_TIMEDOUT); +} + +int rtsx_read_register(struct rtsx_chip *chip, u16 addr, u8 *data) +{ + u32 val = 2 << 30; + int i; + + if (data) { + *data = 0; + } + + val |= (u32)(addr & 0x3FFF) << 16; + + rtsx_writel(chip, RTSX_HAIMR, val); + + for (i = 0; i < MAX_RW_REG_CNT; i++) { + val = rtsx_readl(chip, RTSX_HAIMR); + if ((val & (1 << 31)) == 0) { + break; + } + } + + if (i >= MAX_RW_REG_CNT) { + TRACE_RET(chip, STATUS_TIMEDOUT); + } + + if (data) { + *data = (u8)(val & 0xFF); + } + + return STATUS_SUCCESS; +} + +int rtsx_write_cfg_dw(struct rtsx_chip *chip, u8 func_no, u16 addr, u32 mask, u32 val) +{ + u8 mode = 0, tmp; + int i; + + for (i = 0; i < 4; i++) { + if (mask & 0xFF) { + RTSX_WRITE_REG(chip, CFGDATA0 + i, + 0xFF, (u8)(val & mask & 0xFF)); + mode |= (1 << i); + } + mask >>= 8; + val >>= 8; + } + + if (mode) { + RTSX_WRITE_REG(chip, CFGADDR0, 0xFF, (u8)addr); + RTSX_WRITE_REG(chip, CFGADDR1, 0xFF, (u8)(addr >> 8)); + + RTSX_WRITE_REG(chip, CFGRWCTL, 0xFF, + 0x80 | mode | ((func_no & 0x03) << 4)); + + for (i = 0; i < MAX_RW_REG_CNT; i++) { + RTSX_READ_REG(chip, CFGRWCTL, &tmp); + if ((tmp & 0x80) == 0) { + break; + } + } + } + + return STATUS_SUCCESS; +} + +int rtsx_read_cfg_dw(struct rtsx_chip *chip, u8 func_no, u16 addr, u32 *val) +{ + int i; + u8 tmp; + u32 data = 0; + + RTSX_WRITE_REG(chip, CFGADDR0, 0xFF, (u8)addr); + RTSX_WRITE_REG(chip, CFGADDR1, 0xFF, (u8)(addr >> 8)); + RTSX_WRITE_REG(chip, CFGRWCTL, 0xFF, 0x80 | ((func_no & 0x03) << 4)); + + for (i = 0; i < MAX_RW_REG_CNT; i++) { + RTSX_READ_REG(chip, CFGRWCTL, &tmp); + if ((tmp & 0x80) == 0) { + break; + } + } + + for (i = 0; i < 4; i++) { + RTSX_READ_REG(chip, CFGDATA0 + i, &tmp); + data |= (u32)tmp << (i * 8); + } + + if (val) { + *val = data; + } + + return STATUS_SUCCESS; +} + +int rtsx_write_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf, int len) +{ + u32 *data, *mask; + u16 offset = addr % 4; + u16 aligned_addr = addr - offset; + int dw_len, i, j; + int retval; + + RTSX_DEBUGP("%s\n", __func__); + + if (!buf) { + TRACE_RET(chip, STATUS_NOMEM); + } + + if ((len + offset) % 4) { + dw_len = (len + offset) / 4 + 1; + } else { + dw_len = (len + offset) / 4; + } + RTSX_DEBUGP("dw_len = %d\n", dw_len); + + data = (u32 *)vmalloc(dw_len * 4); + if (!data) { + TRACE_RET(chip, STATUS_NOMEM); + } + memset(data, 0, dw_len * 4); + + mask = (u32 *)vmalloc(dw_len * 4); + if (!mask) { + vfree(data); + TRACE_RET(chip, STATUS_NOMEM); + } + memset(mask, 0, dw_len * 4); + + j = 0; + for (i = 0; i < len; i++) { + mask[j] |= 0xFF << (offset * 8); + data[j] |= buf[i] << (offset * 8); + if (++offset == 4) { + j++; + offset = 0; + } + } + + RTSX_DUMP(mask, dw_len * 4); + RTSX_DUMP(data, dw_len * 4); + + for (i = 0; i < dw_len; i++) { + retval = rtsx_write_cfg_dw(chip, func, aligned_addr + i * 4, mask[i], data[i]); + if (retval != STATUS_SUCCESS) { + vfree(data); + vfree(mask); + TRACE_RET(chip, STATUS_FAIL); + } + } + + vfree(data); + vfree(mask); + + return STATUS_SUCCESS; +} + +int rtsx_read_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf, int len) +{ + u32 *data; + u16 offset = addr % 4; + u16 aligned_addr = addr - offset; + int dw_len, i, j; + int retval; + + RTSX_DEBUGP("%s\n", __func__); + + if ((len + offset) % 4) { + dw_len = (len + offset) / 4 + 1; + } else { + dw_len = (len + offset) / 4; + } + RTSX_DEBUGP("dw_len = %d\n", dw_len); + + data = (u32 *)vmalloc(dw_len * 4); + if (!data) { + TRACE_RET(chip, STATUS_NOMEM); + } + + for (i = 0; i < dw_len; i++) { + retval = rtsx_read_cfg_dw(chip, func, aligned_addr + i * 4, data + i); + if (retval != STATUS_SUCCESS) { + vfree(data); + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (buf) { + j = 0; + + for (i = 0; i < len; i++) { + buf[i] = (u8)(data[j] >> (offset * 8)); + if (++offset == 4) { + j++; + offset = 0; + } + } + } + + vfree(data); + + return STATUS_SUCCESS; +} + +int rtsx_write_phy_register(struct rtsx_chip *chip, u8 addr, u16 val) +{ + int i, finished = 0; + u8 tmp; + + RTSX_WRITE_REG(chip, PHYDATA0, 0xFF, (u8)val); + RTSX_WRITE_REG(chip, PHYDATA1, 0xFF, (u8)(val >> 8)); + RTSX_WRITE_REG(chip, PHYADDR, 0xFF, addr); + RTSX_WRITE_REG(chip, PHYRWCTL, 0xFF, 0x81); + + for (i = 0; i < 100000; i++) { + RTSX_READ_REG(chip, PHYRWCTL, &tmp); + if (!(tmp & 0x80)) { + finished = 1; + break; + } + } + + if (!finished) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int rtsx_read_phy_register(struct rtsx_chip *chip, u8 addr, u16 *val) +{ + int i, finished = 0; + u16 data = 0; + u8 tmp; + + RTSX_WRITE_REG(chip, PHYADDR, 0xFF, addr); + RTSX_WRITE_REG(chip, PHYRWCTL, 0xFF, 0x80); + + for (i = 0; i < 100000; i++) { + RTSX_READ_REG(chip, PHYRWCTL, &tmp); + if (!(tmp & 0x80)) { + finished = 1; + break; + } + } + + if (!finished) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, PHYDATA0, &tmp); + data = tmp; + RTSX_READ_REG(chip, PHYDATA1, &tmp); + data |= (u16)tmp << 8; + + if (val) + *val = data; + + return STATUS_SUCCESS; +} + +int rtsx_read_efuse(struct rtsx_chip *chip, u8 addr, u8 *val) +{ + int i; + u8 data = 0; + + RTSX_WRITE_REG(chip, EFUSE_CTRL, 0xFF, 0x80|addr); + + for (i = 0; i < 100; i++) { + RTSX_READ_REG(chip, EFUSE_CTRL, &data); + if (!(data & 0x80)) + break; + udelay(1); + } + + if (data & 0x80) { + TRACE_RET(chip, STATUS_TIMEDOUT); + } + + RTSX_READ_REG(chip, EFUSE_DATA, &data); + if (val) + *val = data; + + return STATUS_SUCCESS; +} + +int rtsx_write_efuse(struct rtsx_chip *chip, u8 addr, u8 val) +{ + int i, j; + u8 data = 0, tmp = 0xFF; + + for (i = 0; i < 8; i++) { + if (val & (u8)(1 << i)) + continue; + + tmp &= (~(u8)(1 << i)); + RTSX_DEBUGP("Write 0x%x to 0x%x\n", tmp, addr); + + RTSX_WRITE_REG(chip, EFUSE_DATA, 0xFF, tmp); + RTSX_WRITE_REG(chip, EFUSE_CTRL, 0xFF, 0xA0|addr); + + for (j = 0; j < 100; j++) { + RTSX_READ_REG(chip, EFUSE_CTRL, &data); + if (!(data & 0x80)) + break; + wait_timeout(3); + } + + if (data & 0x80) { + TRACE_RET(chip, STATUS_TIMEDOUT); + } + + wait_timeout(5); + } + + return STATUS_SUCCESS; +} + +int rtsx_clr_phy_reg_bit(struct rtsx_chip *chip, u8 reg, u8 bit) +{ + int retval; + u16 value; + + retval = rtsx_read_phy_register(chip, reg, &value); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + if (value & (1 << bit)) { + value &= ~(1 << bit); + retval = rtsx_write_phy_register(chip, reg, value); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +int rtsx_set_phy_reg_bit(struct rtsx_chip *chip, u8 reg, u8 bit) +{ + int retval; + u16 value; + + retval = rtsx_read_phy_register(chip, reg, &value); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + if (0 == (value & (1 << bit))) { + value |= (1 << bit); + retval = rtsx_write_phy_register(chip, reg, value); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +int rtsx_check_link_ready(struct rtsx_chip *chip) +{ + u8 val; + + RTSX_READ_REG(chip, IRQSTAT0, &val); + + RTSX_DEBUGP("IRQSTAT0: 0x%x\n", val); + if (val & LINK_RDY_INT) { + RTSX_DEBUGP("Delinked!\n"); + rtsx_write_register(chip, IRQSTAT0, LINK_RDY_INT, LINK_RDY_INT); + return STATUS_FAIL; + } + + return STATUS_SUCCESS; +} + +static void rtsx_handle_pm_dstate(struct rtsx_chip *chip, u8 dstate) +{ + u32 ultmp; + + RTSX_DEBUGP("%04x set pm_dstate to %d\n", chip->product_id, dstate); + + if (CHK_SDIO_EXIST(chip)) { + u8 func_no; + + if (CHECK_PID(chip, 0x5288)) { + func_no = 2; + } else { + func_no = 1; + } + rtsx_read_cfg_dw(chip, func_no, 0x84, &ultmp); + RTSX_DEBUGP("pm_dstate of function %d: 0x%x\n", (int)func_no, ultmp); + rtsx_write_cfg_dw(chip, func_no, 0x84, 0xFF, dstate); + } + + rtsx_write_config_byte(chip, 0x44, dstate); + rtsx_write_config_byte(chip, 0x45, 0); +} + +void rtsx_enter_L1(struct rtsx_chip *chip) +{ + rtsx_handle_pm_dstate(chip, 2); +} + +void rtsx_exit_L1(struct rtsx_chip *chip) +{ + rtsx_write_config_byte(chip, 0x44, 0); + rtsx_write_config_byte(chip, 0x45, 0); +} + +void rtsx_enter_ss(struct rtsx_chip *chip) +{ + RTSX_DEBUGP("Enter Selective Suspend State!\n"); + + rtsx_write_register(chip, IRQSTAT0, LINK_RDY_INT, LINK_RDY_INT); + + if (chip->power_down_in_ss) { + rtsx_power_off_card(chip); + rtsx_force_power_down(chip, SSC_PDCTL | OC_PDCTL); + } + + if (CHK_SDIO_EXIST(chip)) { + if (CHECK_PID(chip, 0x5288)) { + rtsx_write_cfg_dw(chip, 2, 0xC0, 0xFF00, 0x0100); + } else { + rtsx_write_cfg_dw(chip, 1, 0xC0, 0xFF00, 0x0100); + } + } + + if (chip->auto_delink_en) { + rtsx_write_register(chip, HOST_SLEEP_STATE, 0x01, 0x01); + } else { + if (!chip->phy_debug_mode) { + u32 tmp; + tmp = rtsx_readl(chip, RTSX_BIER); + tmp |= CARD_INT; + rtsx_writel(chip, RTSX_BIER, tmp); + } + + rtsx_write_register(chip, CHANGE_LINK_STATE, 0x02, 0); + } + + rtsx_enter_L1(chip); + + RTSX_CLR_DELINK(chip); + rtsx_set_stat(chip, RTSX_STAT_SS); +} + +void rtsx_exit_ss(struct rtsx_chip *chip) +{ + RTSX_DEBUGP("Exit Selective Suspend State!\n"); + + rtsx_exit_L1(chip); + + if (chip->power_down_in_ss) { + rtsx_force_power_on(chip, SSC_PDCTL | OC_PDCTL); + udelay(1000); + } + + if (RTSX_TST_DELINK(chip)) { + chip->need_reinit = SD_CARD | MS_CARD | XD_CARD; + rtsx_reinit_cards(chip, 1); + RTSX_CLR_DELINK(chip); + } else if (chip->power_down_in_ss) { + chip->need_reinit = SD_CARD | MS_CARD | XD_CARD; + rtsx_reinit_cards(chip, 0); + } +} + +int rtsx_pre_handle_interrupt(struct rtsx_chip *chip) +{ + u32 status, int_enable; + int exit_ss = 0; +#ifdef SUPPORT_OCP + u32 ocp_int = 0; + + if (CHECK_PID(chip, 0x5209)) { + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + ocp_int = MS_OC_INT | SD_OC_INT; + } else { + ocp_int = SD_OC_INT; + } + } else { + ocp_int = OC_INT; + } +#endif + + if (chip->ss_en) { + chip->ss_counter = 0; + if (rtsx_get_stat(chip) == RTSX_STAT_SS) { + exit_ss = 1; + rtsx_exit_L1(chip); + rtsx_set_stat(chip, RTSX_STAT_RUN); + } + } + + int_enable = rtsx_readl(chip, RTSX_BIER); + chip->int_reg = rtsx_readl(chip, RTSX_BIPR); + +#ifdef HW_INT_WRITE_CLR + if (CHECK_PID(chip, 0x5209)) { + rtsx_writel(chip, RTSX_BIPR, chip->int_reg); + } +#endif + + if (((chip->int_reg & int_enable) == 0) || (chip->int_reg == 0xFFFFFFFF)) + return STATUS_FAIL; + + if (!chip->msi_en) { + if (CHECK_PID(chip, 0x5209)) { + u8 val; + rtsx_read_config_byte(chip, 0x05, &val); + if (val & 0x04) { + return STATUS_FAIL; + } + } + } + + status = chip->int_reg &= (int_enable | 0x7FFFFF); + + if (status & CARD_INT) { + chip->auto_delink_cnt = 0; + + if (status & SD_INT) { + if (status & SD_EXIST) { + set_bit(SD_NR, &(chip->need_reset)); + } else { + set_bit(SD_NR, &(chip->need_release)); + chip->sd_reset_counter = 0; + chip->sd_show_cnt = 0; + clear_bit(SD_NR, &(chip->need_reset)); + } + } else { + /* If multi-luns, it's possible that + when plugging/unplugging one card + there is another card which still + exists in the slot. In this case, + all existed cards should be reset. + */ + if (exit_ss && (status & SD_EXIST)) + set_bit(SD_NR, &(chip->need_reinit)); + } + if (!CHECK_PID(chip, 0x5288) || CHECK_BARO_PKG(chip, QFN)) { + if (status & XD_INT) { + if (status & XD_EXIST) { + set_bit(XD_NR, &(chip->need_reset)); + } else { + set_bit(XD_NR, &(chip->need_release)); + chip->xd_reset_counter = 0; + chip->xd_show_cnt = 0; + clear_bit(XD_NR, &(chip->need_reset)); + } + } else { + if (exit_ss && (status & XD_EXIST)) + set_bit(XD_NR, &(chip->need_reinit)); + } + } + if (status & MS_INT) { + if (status & MS_EXIST) { + set_bit(MS_NR, &(chip->need_reset)); + } else { + set_bit(MS_NR, &(chip->need_release)); + chip->ms_reset_counter = 0; + chip->ms_show_cnt = 0; + clear_bit(MS_NR, &(chip->need_reset)); + } + } else { + if (exit_ss && (status & MS_EXIST)) + set_bit(MS_NR, &(chip->need_reinit)); + } + } + +#ifdef SUPPORT_OCP + chip->ocp_int = ocp_int & status; +#endif + + if (chip->sd_io) { + if (chip->int_reg & DATA_DONE_INT) + chip->int_reg &= ~(u32)DATA_DONE_INT; + } + + return STATUS_SUCCESS; +} + +void rtsx_do_before_power_down(struct rtsx_chip *chip, int pm_stat) +{ + int retval; + + RTSX_DEBUGP("rtsx_do_before_power_down, pm_stat = %d\n", pm_stat); + + rtsx_set_stat(chip, RTSX_STAT_SUSPEND); + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) + return; + + rtsx_release_cards(chip); + rtsx_disable_bus_int(chip); + turn_off_led(chip, LED_GPIO); + +#ifdef HW_AUTO_SWITCH_SD_BUS + if (chip->sd_io) { + chip->sdio_in_charge = 1; + if (CHECK_PID(chip, 0x5208)) { + rtsx_write_register(chip, TLPTISTAT, 0x08, 0x08); + /* Enable sdio_bus_auto_switch */ + rtsx_write_register(chip, 0xFE70, 0x80, 0x80); + } else if (CHECK_PID(chip, 0x5288)) { + rtsx_write_register(chip, TLPTISTAT, 0x08, 0x08); + /* Enable sdio_bus_auto_switch */ + rtsx_write_register(chip, 0xFE5A, 0x08, 0x08); + } else if (CHECK_PID(chip, 0x5209)) { + rtsx_write_register(chip, TLPTISTAT, 0x10, 0x10); + /* Enable sdio_bus_auto_switch */ + rtsx_write_register(chip, SDIO_CFG, SDIO_BUS_AUTO_SWITCH, SDIO_BUS_AUTO_SWITCH); + } + } +#endif + + if (CHECK_PID(chip, 0x5208) && (chip->ic_version >= IC_VER_D)) { + /* u_force_clkreq_0 */ + rtsx_write_register(chip, PETXCFG, 0x08, 0x08); + } else if (CHECK_PID(chip, 0x5209)) { + /* u_force_clkreq_0 */ + rtsx_write_register(chip, PETXCFG, 0x08, 0x08); + } + + if (pm_stat == PM_S1) { + RTSX_DEBUGP("Host enter S1\n"); + rtsx_write_register(chip, HOST_SLEEP_STATE, 0x03, HOST_ENTER_S1); + } else if (pm_stat == PM_S3) { + if (chip->s3_pwr_off_delay > 0) { + wait_timeout(chip->s3_pwr_off_delay); + } + RTSX_DEBUGP("Host enter S3\n"); + rtsx_write_register(chip, HOST_SLEEP_STATE, 0x03, HOST_ENTER_S3); + } + + if (chip->do_delink_before_power_down && chip->auto_delink_en) { + rtsx_write_register(chip, CHANGE_LINK_STATE, 0x02, 2); + } + + rtsx_force_power_down(chip, SSC_PDCTL | OC_PDCTL); + + chip->cur_clk = 0; + chip->cur_card = 0; + chip->card_exist = 0; +} + +void rtsx_enable_aspm(struct rtsx_chip *chip) +{ + if (chip->aspm_l0s_l1_en && chip->dynamic_aspm) { + if (!chip->aspm_enabled) { + RTSX_DEBUGP("Try to enable ASPM\n"); + chip->aspm_enabled = 1; + + if (chip->asic_code && CHECK_PID(chip, 0x5208)) + rtsx_write_phy_register(chip, 0x07, 0); + if (CHECK_PID(chip, 0x5208)) { + rtsx_write_register(chip, ASPM_FORCE_CTL, 0xF3, + 0x30 | chip->aspm_level[0]); + } else { + rtsx_write_config_byte(chip, LCTLR, chip->aspm_l0s_l1_en); + } + + if (CHK_SDIO_EXIST(chip)) { + u16 val = chip->aspm_l0s_l1_en | 0x0100; + if (CHECK_PID(chip, 0x5288)) { + rtsx_write_cfg_dw(chip, 2, 0xC0, 0xFFFF, val); + } else { + rtsx_write_cfg_dw(chip, 1, 0xC0, 0xFFFF, val); + } + } + } + } + + return; +} + +void rtsx_disable_aspm(struct rtsx_chip *chip) +{ + if (CHECK_PID(chip, 0x5208)) + rtsx_monitor_aspm_config(chip); + + if (chip->aspm_l0s_l1_en && chip->dynamic_aspm) { + if (chip->aspm_enabled) { + RTSX_DEBUGP("Try to disable ASPM\n"); + chip->aspm_enabled = 0; + + if (chip->asic_code && CHECK_PID(chip, 0x5208)) + rtsx_write_phy_register(chip, 0x07, 0x0129); + if (CHECK_PID(chip, 0x5208)) { + rtsx_write_register(chip, ASPM_FORCE_CTL, 0xF3, 0x30); + } else { + rtsx_write_config_byte(chip, LCTLR, 0x00); + } + wait_timeout(1); + } + } + + return; +} + +int rtsx_read_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len) +{ + int retval; + int i, j; + u16 reg_addr; + u8 *ptr; + + if (!buf) { + TRACE_RET(chip, STATUS_ERROR); + } + + ptr = buf; + reg_addr = PPBUF_BASE2; + for (i = 0; i < buf_len/256; i++) { + rtsx_init_cmd(chip); + + for (j = 0; j < 256; j++) + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr++, 0, 0); + + retval = rtsx_send_cmd(chip, 0, 250); + if (retval < 0) { + TRACE_RET(chip, STATUS_FAIL); + } + + memcpy(ptr, rtsx_get_cmd_data(chip), 256); + ptr += 256; + } + + if (buf_len%256) { + rtsx_init_cmd(chip); + + for (j = 0; j < buf_len%256; j++) + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr++, 0, 0); + + retval = rtsx_send_cmd(chip, 0, 250); + if (retval < 0) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + memcpy(ptr, rtsx_get_cmd_data(chip), buf_len%256); + + return STATUS_SUCCESS; +} + +int rtsx_write_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len) +{ + int retval; + int i, j; + u16 reg_addr; + u8 *ptr; + + if (!buf) { + TRACE_RET(chip, STATUS_ERROR); + } + + ptr = buf; + reg_addr = PPBUF_BASE2; + for (i = 0; i < buf_len/256; i++) { + rtsx_init_cmd(chip); + + for (j = 0; j < 256; j++) { + rtsx_add_cmd(chip, WRITE_REG_CMD, reg_addr++, 0xFF, *ptr); + ptr++; + } + + retval = rtsx_send_cmd(chip, 0, 250); + if (retval < 0) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (buf_len%256) { + rtsx_init_cmd(chip); + + for (j = 0; j < buf_len%256; j++) { + rtsx_add_cmd(chip, WRITE_REG_CMD, reg_addr++, 0xFF, *ptr); + ptr++; + } + + retval = rtsx_send_cmd(chip, 0, 250); + if (retval < 0) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +int rtsx_check_chip_exist(struct rtsx_chip *chip) +{ + if (rtsx_readl(chip, 0) == 0xFFFFFFFF) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int rtsx_force_power_on(struct rtsx_chip *chip, u8 ctl) +{ + int retval; + u8 mask = 0; + + if (ctl & SSC_PDCTL) + mask |= SSC_POWER_DOWN; + +#ifdef SUPPORT_OCP + if (ctl & OC_PDCTL) { + mask |= SD_OC_POWER_DOWN; + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + mask |= MS_OC_POWER_DOWN; + } + } +#endif + + if (mask) { + retval = rtsx_write_register(chip, FPDCTL, mask, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHECK_PID(chip, 0x5288)) + wait_timeout(200); + } + + return STATUS_SUCCESS; +} + +int rtsx_force_power_down(struct rtsx_chip *chip, u8 ctl) +{ + int retval; + u8 mask = 0, val = 0; + + if (ctl & SSC_PDCTL) + mask |= SSC_POWER_DOWN; + +#ifdef SUPPORT_OCP + if (ctl & OC_PDCTL) { + mask |= SD_OC_POWER_DOWN; + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) + mask |= MS_OC_POWER_DOWN; + } +#endif + + if (mask) { + val = mask; + retval = rtsx_write_register(chip, FPDCTL, mask, val); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} --- linux-2.6.38.orig/drivers/staging/rts_pstor/general.c +++ linux-2.6.38/drivers/staging/rts_pstor/general.c @@ -0,0 +1,35 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include "general.h" + +int bit1cnt_long(u32 data) +{ + int i, cnt = 0; + for (i = 0; i < 32; i++) { + if (data & 0x01) + cnt++; + data >>= 1; + } + return cnt; +} + --- linux-2.6.38.orig/drivers/staging/rts_pstor/ms.c +++ linux-2.6.38/drivers/staging/rts_pstor/ms.c @@ -0,0 +1,4248 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include +#include +#include + +#include "rtsx.h" +#include "rtsx_transport.h" +#include "rtsx_scsi.h" +#include "rtsx_card.h" +#include "ms.h" + +static inline void ms_set_err_code(struct rtsx_chip *chip, u8 err_code) +{ + struct ms_info *ms_card = &(chip->ms_card); + + ms_card->err_code = err_code; +} + +static inline int ms_check_err_code(struct rtsx_chip *chip, u8 err_code) +{ + struct ms_info *ms_card = &(chip->ms_card); + + return (ms_card->err_code == err_code); +} + +static int ms_parse_err_code(struct rtsx_chip *chip) +{ + TRACE_RET(chip, STATUS_FAIL); +} + +static int ms_transfer_tpc(struct rtsx_chip *chip, u8 trans_mode, u8 tpc, u8 cnt, u8 cfg) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + u8 *ptr; + + RTSX_DEBUGP("ms_transfer_tpc: tpc = 0x%x\n", tpc); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TPC, 0xFF, tpc); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_BYTE_CNT, 0xFF, cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANSFER, 0xFF, MS_TRANSFER_START | trans_mode); + rtsx_add_cmd(chip, CHECK_REG_CMD, MS_TRANSFER, MS_TRANSFER_END, MS_TRANSFER_END); + + rtsx_add_cmd(chip, READ_REG_CMD, MS_TRANS_CFG, 0, 0); + + retval = rtsx_send_cmd(chip, MS_CARD, 5000); + if (retval < 0) { + rtsx_clear_ms_error(chip); + ms_set_err_code(chip, MS_TO_ERROR); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + + ptr = rtsx_get_cmd_data(chip) + 1; + + if (!(tpc & 0x08)) { /* Read Packet */ + if (*ptr & MS_CRC16_ERR) { + ms_set_err_code(chip, MS_CRC16_ERROR); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + } else { /* Write Packet */ + if (CHK_MSPRO(ms_card) && !(*ptr & 0x80)) { + if (*ptr & (MS_INT_ERR | MS_INT_CMDNK)) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + } + } + + if (*ptr & MS_RDY_TIMEOUT) { + rtsx_clear_ms_error(chip); + ms_set_err_code(chip, MS_TO_ERROR); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + + return STATUS_SUCCESS; +} + +static int ms_transfer_data(struct rtsx_chip *chip, u8 trans_mode, u8 tpc, u16 sec_cnt, + u8 cfg, int mode_2k, int use_sg, void *buf, int buf_len) +{ + int retval; + u8 val, err_code = 0; + enum dma_data_direction dir; + + if (!buf || !buf_len) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (trans_mode == MS_TM_AUTO_READ) { + dir = DMA_FROM_DEVICE; + err_code = MS_FLASH_READ_ERROR; + } else if (trans_mode == MS_TM_AUTO_WRITE) { + dir = DMA_TO_DEVICE; + err_code = MS_FLASH_WRITE_ERROR; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TPC, 0xFF, tpc); + rtsx_add_cmd(chip, WRITE_REG_CMD, + MS_SECTOR_CNT_H, 0xFF, (u8)(sec_cnt >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_SECTOR_CNT_L, 0xFF, (u8)sec_cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg); + + if (mode_2k) { + rtsx_add_cmd(chip, WRITE_REG_CMD, + MS_CFG, MS_2K_SECTOR_MODE, MS_2K_SECTOR_MODE); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_CFG, MS_2K_SECTOR_MODE, 0); + } + + trans_dma_enable(dir, chip, sec_cnt * 512, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, + MS_TRANSFER, 0xFF, MS_TRANSFER_START | trans_mode); + rtsx_add_cmd(chip, CHECK_REG_CMD, + MS_TRANSFER, MS_TRANSFER_END, MS_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data(chip, MS_CARD, buf, buf_len, + use_sg, dir, chip->mspro_timeout); + if (retval < 0) { + ms_set_err_code(chip, err_code); + if (retval == -ETIMEDOUT) { + retval = STATUS_TIMEDOUT; + } else { + retval = STATUS_FAIL; + } + TRACE_RET(chip, retval); + } + + RTSX_READ_REG(chip, MS_TRANS_CFG, &val); + if (val & (MS_INT_CMDNK | MS_INT_ERR | MS_CRC16_ERR | MS_RDY_TIMEOUT)) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int ms_write_bytes(struct rtsx_chip *chip, + u8 tpc, u8 cnt, u8 cfg, u8 *data, int data_len) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + + if (!data || (data_len < cnt)) { + TRACE_RET(chip, STATUS_ERROR); + } + + rtsx_init_cmd(chip); + + for (i = 0; i < cnt; i++) { + rtsx_add_cmd(chip, WRITE_REG_CMD, + PPBUF_BASE2 + i, 0xFF, data[i]); + } + if (cnt % 2) { + rtsx_add_cmd(chip, WRITE_REG_CMD, PPBUF_BASE2 + i, 0xFF, 0xFF); + } + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TPC, 0xFF, tpc); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_BYTE_CNT, 0xFF, cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + + rtsx_add_cmd(chip, WRITE_REG_CMD, + MS_TRANSFER, 0xFF, MS_TRANSFER_START | MS_TM_WRITE_BYTES); + rtsx_add_cmd(chip, CHECK_REG_CMD, + MS_TRANSFER, MS_TRANSFER_END, MS_TRANSFER_END); + + retval = rtsx_send_cmd(chip, MS_CARD, 5000); + if (retval < 0) { + u8 val = 0; + + rtsx_read_register(chip, MS_TRANS_CFG, &val); + RTSX_DEBUGP("MS_TRANS_CFG: 0x%02x\n", val); + + rtsx_clear_ms_error(chip); + + if (!(tpc & 0x08)) { + if (val & MS_CRC16_ERR) { + ms_set_err_code(chip, MS_CRC16_ERROR); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + } else { + if (CHK_MSPRO(ms_card) && !(val & 0x80)) { + if (val & (MS_INT_ERR | MS_INT_CMDNK)) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + } + } + + if (val & MS_RDY_TIMEOUT) { + ms_set_err_code(chip, MS_TO_ERROR); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + + ms_set_err_code(chip, MS_TO_ERROR); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + + return STATUS_SUCCESS; +} + +static int ms_read_bytes(struct rtsx_chip *chip, u8 tpc, u8 cnt, u8 cfg, u8 *data, int data_len) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u8 *ptr; + + if (!data) { + TRACE_RET(chip, STATUS_ERROR); + } + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TPC, 0xFF, tpc); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_BYTE_CNT, 0xFF, cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, cfg); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANSFER, 0xFF, MS_TRANSFER_START | MS_TM_READ_BYTES); + rtsx_add_cmd(chip, CHECK_REG_CMD, MS_TRANSFER, MS_TRANSFER_END, MS_TRANSFER_END); + + for (i = 0; i < data_len - 1; i++) { + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + i, 0, 0); + } + if (data_len % 2) { + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + data_len, 0, 0); + } else { + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + data_len - 1, 0, 0); + } + + retval = rtsx_send_cmd(chip, MS_CARD, 5000); + if (retval < 0) { + u8 val = 0; + + rtsx_read_register(chip, MS_TRANS_CFG, &val); + rtsx_clear_ms_error(chip); + + if (!(tpc & 0x08)) { + if (val & MS_CRC16_ERR) { + ms_set_err_code(chip, MS_CRC16_ERROR); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + } else { + if (CHK_MSPRO(ms_card) && !(val & 0x80)) { + if (val & (MS_INT_ERR | MS_INT_CMDNK)) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + } + } + + if (val & MS_RDY_TIMEOUT) { + ms_set_err_code(chip, MS_TO_ERROR); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + + ms_set_err_code(chip, MS_TO_ERROR); + TRACE_RET(chip, ms_parse_err_code(chip)); + } + + ptr = rtsx_get_cmd_data(chip) + 1; + + for (i = 0; i < data_len; i++) { + data[i] = ptr[i]; + } + + if ((tpc == PRO_READ_SHORT_DATA) && (data_len == 8)) { + RTSX_DEBUGP("Read format progress:\n"); + RTSX_DUMP(ptr, cnt); + } + + return STATUS_SUCCESS; +} + +static int ms_set_rw_reg_addr(struct rtsx_chip *chip, + u8 read_start, u8 read_cnt, u8 write_start, u8 write_cnt) +{ + int retval, i; + u8 data[4]; + + data[0] = read_start; + data[1] = read_cnt; + data[2] = write_start; + data[3] = write_cnt; + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, SET_RW_REG_ADRS, 4, + NO_WAIT_INT, data, 4); + if (retval == STATUS_SUCCESS) + return STATUS_SUCCESS; + rtsx_clear_ms_error(chip); + } + + TRACE_RET(chip, STATUS_FAIL); +} + +static int ms_send_cmd(struct rtsx_chip *chip, u8 cmd, u8 cfg) +{ + u8 data[2]; + + data[0] = cmd; + data[1] = 0; + + return ms_write_bytes(chip, PRO_SET_CMD, 1, cfg, data, 1); +} + +static int ms_set_init_para(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + + if (CHK_HG8BIT(ms_card)) { + if (chip->asic_code) { + ms_card->ms_clock = chip->asic_ms_hg_clk; + } else { + ms_card->ms_clock = chip->fpga_ms_hg_clk; + } + } else if (CHK_MSPRO(ms_card) || CHK_MS4BIT(ms_card)) { + if (chip->asic_code) { + ms_card->ms_clock = chip->asic_ms_4bit_clk; + } else { + ms_card->ms_clock = chip->fpga_ms_4bit_clk; + } + } else { + if (chip->asic_code) { + ms_card->ms_clock = chip->asic_ms_1bit_clk; + } else { + ms_card->ms_clock = chip->fpga_ms_1bit_clk; + } + } + + retval = switch_clock(chip, ms_card->ms_clock); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = select_card(chip, MS_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int ms_switch_clock(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + + retval = select_card(chip, MS_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = switch_clock(chip, ms_card->ms_clock); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int ms_pull_ctl_disable(struct rtsx_chip *chip) +{ + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL4, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL5, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL6, 0xFF, 0x15); + } else if (CHECK_PID(chip, 0x5208)) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL1, 0xFF, + MS_D1_PD | MS_D2_PD | MS_CLK_PD | MS_D6_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL2, 0xFF, + MS_D3_PD | MS_D0_PD | MS_BS_PD | XD_D4_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL3, 0xFF, + MS_D7_PD | XD_CE_PD | XD_CLE_PD | XD_CD_PU); + RTSX_WRITE_REG(chip, CARD_PULL_CTL4, 0xFF, + XD_RDY_PD | SD_D3_PD | SD_D2_PD | XD_ALE_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL5, 0xFF, + MS_INS_PU | SD_WP_PD | SD_CD_PU | SD_CMD_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL6, 0xFF, + MS_D5_PD | MS_D4_PD); + } else if (CHECK_PID(chip, 0x5288)) { + if (CHECK_BARO_PKG(chip, QFN)) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL1, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL2, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL3, 0xFF, 0x4B); + RTSX_WRITE_REG(chip, CARD_PULL_CTL4, 0xFF, 0x69); + } + } + + return STATUS_SUCCESS; +} + +static int ms_pull_ctl_enable(struct rtsx_chip *chip) +{ + int retval; + + rtsx_init_cmd(chip); + + if (CHECK_PID(chip, 0x5209)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, 0x15); + } else if (CHECK_PID(chip, 0x5208)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, + MS_D1_PD | MS_D2_PD | MS_CLK_NP | MS_D6_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, + MS_D3_PD | MS_D0_PD | MS_BS_NP | XD_D4_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, + MS_D7_PD | XD_CE_PD | XD_CLE_PD | XD_CD_PU); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, + XD_RDY_PD | SD_D3_PD | SD_D2_PD | XD_ALE_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, + MS_INS_PU | SD_WP_PD | SD_CD_PU | SD_CMD_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, + MS_D5_PD | MS_D4_PD); + } else if (CHECK_PID(chip, 0x5288)) { + if (CHECK_BARO_PKG(chip, QFN)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, + CARD_PULL_CTL1, 0xFF, 0x55); + rtsx_add_cmd(chip, WRITE_REG_CMD, + CARD_PULL_CTL2, 0xFF, 0x45); + rtsx_add_cmd(chip, WRITE_REG_CMD, + CARD_PULL_CTL3, 0xFF, 0x4B); + rtsx_add_cmd(chip, WRITE_REG_CMD, + CARD_PULL_CTL4, 0xFF, 0x29); + } + } + + retval = rtsx_send_cmd(chip, MS_CARD, 100); + if (retval < 0) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int ms_prepare_reset(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + u8 oc_mask = 0; + + ms_card->ms_type = 0; + ms_card->check_ms_flow = 0; + ms_card->switch_8bit_fail = 0; + ms_card->delay_write.delay_write_flag = 0; + + ms_card->pro_under_formatting = 0; + + retval = ms_power_off_card3v3(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (!chip->ft2_fast_mode) + wait_timeout(250); + + retval = enable_card_clock(chip, MS_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (chip->asic_code) { + retval = ms_pull_ctl_enable(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + RTSX_WRITE_REG(chip, FPGA_PULL_CTL, FPGA_MS_PULL_CTL_BIT | 0x20, 0); + } + + if (!chip->ft2_fast_mode) { + retval = card_power_on(chip, MS_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + wait_timeout(150); + +#ifdef SUPPORT_OCP + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + oc_mask = MS_OC_NOW | MS_OC_EVER; + } else { + oc_mask = SD_OC_NOW | SD_OC_EVER; + } + if (chip->ocp_stat & oc_mask) { + RTSX_DEBUGP("Over current, OCPSTAT is 0x%x\n", + chip->ocp_stat); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + } + + RTSX_WRITE_REG(chip, CARD_OE, MS_OUTPUT_EN, MS_OUTPUT_EN); + + if (chip->asic_code) { + RTSX_WRITE_REG(chip, MS_CFG, 0xFF, + SAMPLE_TIME_RISING | PUSH_TIME_DEFAULT | + NO_EXTEND_TOGGLE | MS_BUS_WIDTH_1); + } else { + RTSX_WRITE_REG(chip, MS_CFG, 0xFF, + SAMPLE_TIME_FALLING | PUSH_TIME_DEFAULT | + NO_EXTEND_TOGGLE | MS_BUS_WIDTH_1); + } + RTSX_WRITE_REG(chip, MS_TRANS_CFG, 0xFF, NO_WAIT_INT | NO_AUTO_READ_INT_REG); + RTSX_WRITE_REG(chip, CARD_STOP, MS_STOP | MS_CLR_ERR, MS_STOP | MS_CLR_ERR); + + retval = ms_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int ms_identify_media_type(struct rtsx_chip *chip, int switch_8bit_bus) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u8 val; + + retval = ms_set_rw_reg_addr(chip, Pro_StatusReg, 6, SystemParm, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_transfer_tpc(chip, MS_TM_READ_BYTES, READ_REG, 6, NO_WAIT_INT); + if (retval == STATUS_SUCCESS) { + break; + } + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, PPBUF_BASE2 + 2, &val); + RTSX_DEBUGP("Type register: 0x%x\n", val); + if (val != 0x01) { + if (val != 0x02) { + ms_card->check_ms_flow = 1; + } + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, PPBUF_BASE2 + 4, &val); + RTSX_DEBUGP("Category register: 0x%x\n", val); + if (val != 0) { + ms_card->check_ms_flow = 1; + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, PPBUF_BASE2 + 5, &val); + RTSX_DEBUGP("Class register: 0x%x\n", val); + if (val == 0) { + RTSX_READ_REG(chip, PPBUF_BASE2, &val); + if (val & WRT_PRTCT) { + chip->card_wp |= MS_CARD; + } else { + chip->card_wp &= ~MS_CARD; + } + } else if ((val == 0x01) || (val == 0x02) || (val == 0x03)) { + chip->card_wp |= MS_CARD; + } else { + ms_card->check_ms_flow = 1; + TRACE_RET(chip, STATUS_FAIL); + } + + ms_card->ms_type |= TYPE_MSPRO; + + RTSX_READ_REG(chip, PPBUF_BASE2 + 3, &val); + RTSX_DEBUGP("IF Mode register: 0x%x\n", val); + if (val == 0) { + ms_card->ms_type &= 0x0F; + } else if (val == 7) { + if (switch_8bit_bus) { + ms_card->ms_type |= MS_HG; + } else { + ms_card->ms_type &= 0x0F; + } + } else { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int ms_confirm_cpu_startup(struct rtsx_chip *chip) +{ + int retval, i, k; + u8 val; + + /* Confirm CPU StartUp */ + k = 0; + do { + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + ms_set_err_code(chip, MS_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval == STATUS_SUCCESS) { + break; + } + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (k > 100) { + TRACE_RET(chip, STATUS_FAIL); + } + k++; + wait_timeout(100); + } while (!(val & INT_REG_CED)); + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval == STATUS_SUCCESS) + break; + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_ERR) { + if (val & INT_REG_CMDNK) { + chip->card_wp |= (MS_CARD); + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + /* -- end confirm CPU startup */ + + return STATUS_SUCCESS; +} + +static int ms_switch_parallel_bus(struct rtsx_chip *chip) +{ + int retval, i; + u8 data[2]; + + data[0] = PARALLEL_4BIT_IF; + data[1] = 0; + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, WRITE_REG, 1, NO_WAIT_INT, data, 2); + if (retval == STATUS_SUCCESS) + break; + } + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int ms_switch_8bit_bus(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u8 data[2]; + + data[0] = PARALLEL_8BIT_IF; + data[1] = 0; + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, WRITE_REG, 1, NO_WAIT_INT, data, 2); + if (retval == STATUS_SUCCESS) { + break; + } + } + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, MS_CFG, 0x98, MS_BUS_WIDTH_8 | SAMPLE_TIME_FALLING); + ms_card->ms_type |= MS_8BIT; + retval = ms_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_transfer_tpc(chip, MS_TM_READ_BYTES, GET_INT, 1, NO_WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +static int ms_pro_reset_flow(struct rtsx_chip *chip, int switch_8bit_bus) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + + for (i = 0; i < 3; i++) { + retval = ms_prepare_reset(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_identify_media_type(chip, switch_8bit_bus); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_confirm_cpu_startup(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_switch_parallel_bus(chip); + if (retval != STATUS_SUCCESS) { + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + ms_set_err_code(chip, MS_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + continue; + } else { + break; + } + } + + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + /* Switch MS-PRO into Parallel mode */ + RTSX_WRITE_REG(chip, MS_CFG, 0x18, MS_BUS_WIDTH_4); + RTSX_WRITE_REG(chip, MS_CFG, PUSH_TIME_ODD, PUSH_TIME_ODD); + + retval = ms_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + /* If MSPro HG Card, We shall try to switch to 8-bit bus */ + if (CHK_MSHG(ms_card) && chip->support_ms_8bit && switch_8bit_bus) { + retval = ms_switch_8bit_bus(chip); + if (retval != STATUS_SUCCESS) { + ms_card->switch_8bit_fail = 1; + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +#ifdef XC_POWERCLASS +static int msxc_change_power(struct rtsx_chip *chip, u8 mode) +{ + int retval; + u8 buf[6]; + + ms_cleanup_work(chip); + + retval = ms_set_rw_reg_addr(chip, 0, 0, Pro_DataCount1, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + buf[0] = 0; + buf[1] = mode; + buf[2] = 0; + buf[3] = 0; + buf[4] = 0; + buf[5] = 0; + + retval = ms_write_bytes(chip, PRO_WRITE_REG , 6, NO_WAIT_INT, buf, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_send_cmd(chip, XC_CHG_POWER, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, MS_TRANS_CFG, buf); + if (buf[0] & (MS_INT_CMDNK | MS_INT_ERR)) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} +#endif + +static int ms_read_attribute_info(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u8 val, *buf, class_code, device_type, sub_class, data[16]; + u16 total_blk = 0, blk_size = 0; +#ifdef SUPPORT_MSXC + u32 xc_total_blk = 0, xc_blk_size = 0; +#endif + u32 sys_info_addr = 0, sys_info_size; +#ifdef SUPPORT_PCGL_1P18 + u32 model_name_addr = 0, model_name_size; + int found_sys_info = 0, found_model_name = 0; +#endif + + retval = ms_set_rw_reg_addr(chip, Pro_IntReg, 2, Pro_SystemParm, 7); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_MS8BIT(ms_card)) { + data[0] = PARALLEL_8BIT_IF; + } else { + data[0] = PARALLEL_4BIT_IF; + } + data[1] = 0; + + data[2] = 0x40; + data[3] = 0; + data[4] = 0; + data[5] = 0; + data[6] = 0; + data[7] = 0; + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, PRO_WRITE_REG, 7, NO_WAIT_INT, data, 8); + if (retval == STATUS_SUCCESS) { + break; + } + } + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + buf = (u8 *)rtsx_alloc_dma_buf(chip, 64 * 512, GFP_KERNEL); + if (buf == NULL) { + TRACE_RET(chip, STATUS_ERROR); + } + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_send_cmd(chip, PRO_READ_ATRB, WAIT_INT); + if (retval != STATUS_SUCCESS) { + continue; + } + retval = rtsx_read_register(chip, MS_TRANS_CFG, &val); + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + if (!(val & MS_INT_BREQ)) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + retval = ms_transfer_data(chip, MS_TM_AUTO_READ, PRO_READ_LONG_DATA, + 0x40, WAIT_INT, 0, 0, buf, 64 * 512); + if (retval == STATUS_SUCCESS) { + break; + } else { + rtsx_clear_ms_error(chip); + } + } + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + i = 0; + do { + retval = rtsx_read_register(chip, MS_TRANS_CFG, &val); + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + if ((val & MS_INT_CED) || !(val & MS_INT_BREQ)) + break; + + retval = ms_transfer_tpc(chip, MS_TM_NORMAL_READ, PRO_READ_LONG_DATA, 0, WAIT_INT); + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + i++; + } while (i < 1024); + + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + if ((buf[0] != 0xa5) && (buf[1] != 0xc3)) { + /* Signature code is wrong */ + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + if ((buf[4] < 1) || (buf[4] > 12)) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + for (i = 0; i < buf[4]; i++) { + int cur_addr_off = 16 + i * 12; + +#ifdef SUPPORT_MSXC + if ((buf[cur_addr_off + 8] == 0x10) || (buf[cur_addr_off + 8] == 0x13)) +#else + if (buf[cur_addr_off + 8] == 0x10) +#endif + { + sys_info_addr = ((u32)buf[cur_addr_off + 0] << 24) | + ((u32)buf[cur_addr_off + 1] << 16) | + ((u32)buf[cur_addr_off + 2] << 8) | buf[cur_addr_off + 3]; + sys_info_size = ((u32)buf[cur_addr_off + 4] << 24) | + ((u32)buf[cur_addr_off + 5] << 16) | + ((u32)buf[cur_addr_off + 6] << 8) | buf[cur_addr_off + 7]; + RTSX_DEBUGP("sys_info_addr = 0x%x, sys_info_size = 0x%x\n", + sys_info_addr, sys_info_size); + if (sys_info_size != 96) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + if (sys_info_addr < 0x1A0) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + if ((sys_info_size + sys_info_addr) > 0x8000) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + +#ifdef SUPPORT_MSXC + if (buf[cur_addr_off + 8] == 0x13) { + ms_card->ms_type |= MS_XC; + } +#endif +#ifdef SUPPORT_PCGL_1P18 + found_sys_info = 1; +#else + break; +#endif + } +#ifdef SUPPORT_PCGL_1P18 + if (buf[cur_addr_off + 8] == 0x15) { + model_name_addr = ((u32)buf[cur_addr_off + 0] << 24) | + ((u32)buf[cur_addr_off + 1] << 16) | + ((u32)buf[cur_addr_off + 2] << 8) | buf[cur_addr_off + 3]; + model_name_size = ((u32)buf[cur_addr_off + 4] << 24) | + ((u32)buf[cur_addr_off + 5] << 16) | + ((u32)buf[cur_addr_off + 6] << 8) | buf[cur_addr_off + 7]; + RTSX_DEBUGP("model_name_addr = 0x%x, model_name_size = 0x%x\n", + model_name_addr, model_name_size); + if (model_name_size != 48) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + if (model_name_addr < 0x1A0) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + if ((model_name_size + model_name_addr) > 0x8000) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + found_model_name = 1; + } + + if (found_sys_info && found_model_name) + break; +#endif + } + + if (i == buf[4]) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + class_code = buf[sys_info_addr + 0]; + device_type = buf[sys_info_addr + 56]; + sub_class = buf[sys_info_addr + 46]; +#ifdef SUPPORT_MSXC + if (CHK_MSXC(ms_card)) { + xc_total_blk = ((u32)buf[sys_info_addr + 6] << 24) | + ((u32)buf[sys_info_addr + 7] << 16) | + ((u32)buf[sys_info_addr + 8] << 8) | + buf[sys_info_addr + 9]; + xc_blk_size = ((u32)buf[sys_info_addr + 32] << 24) | + ((u32)buf[sys_info_addr + 33] << 16) | + ((u32)buf[sys_info_addr + 34] << 8) | + buf[sys_info_addr + 35]; + RTSX_DEBUGP("xc_total_blk = 0x%x, xc_blk_size = 0x%x\n", xc_total_blk, xc_blk_size); + } else { + total_blk = ((u16)buf[sys_info_addr + 6] << 8) | buf[sys_info_addr + 7]; + blk_size = ((u16)buf[sys_info_addr + 2] << 8) | buf[sys_info_addr + 3]; + RTSX_DEBUGP("total_blk = 0x%x, blk_size = 0x%x\n", total_blk, blk_size); + } +#else + total_blk = ((u16)buf[sys_info_addr + 6] << 8) | buf[sys_info_addr + 7]; + blk_size = ((u16)buf[sys_info_addr + 2] << 8) | buf[sys_info_addr + 3]; + RTSX_DEBUGP("total_blk = 0x%x, blk_size = 0x%x\n", total_blk, blk_size); +#endif + + RTSX_DEBUGP("class_code = 0x%x, device_type = 0x%x, sub_class = 0x%x\n", + class_code, device_type, sub_class); + + memcpy(ms_card->raw_sys_info, buf + sys_info_addr, 96); +#ifdef SUPPORT_PCGL_1P18 + memcpy(ms_card->raw_model_name, buf + model_name_addr, 48); +#endif + + rtsx_free_dma_buf(chip, buf); + +#ifdef SUPPORT_MSXC + if (CHK_MSXC(ms_card)) { + if (class_code != 0x03) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + if (class_code != 0x02) { + TRACE_RET(chip, STATUS_FAIL); + } + } +#else + if (class_code != 0x02) { + TRACE_RET(chip, STATUS_FAIL); + } +#endif + + if (device_type != 0x00) { + if ((device_type == 0x01) || (device_type == 0x02) || + (device_type == 0x03)) { + chip->card_wp |= MS_CARD; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (sub_class & 0xC0) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_DEBUGP("class_code: 0x%x, device_type: 0x%x, sub_class: 0x%x\n", + class_code, device_type, sub_class); + +#ifdef SUPPORT_MSXC + if (CHK_MSXC(ms_card)) { + chip->capacity[chip->card2lun[MS_CARD]] = + ms_card->capacity = xc_total_blk * xc_blk_size; + } else { + chip->capacity[chip->card2lun[MS_CARD]] = + ms_card->capacity = total_blk * blk_size; + } +#else + chip->capacity[chip->card2lun[MS_CARD]] = ms_card->capacity = total_blk * blk_size; +#endif + + return STATUS_SUCCESS; +} + +#ifdef SUPPORT_MAGIC_GATE +static int mg_set_tpc_para_sub(struct rtsx_chip *chip, int type, u8 mg_entry_num); +#endif + +static int reset_ms_pro(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; +#ifdef XC_POWERCLASS + u8 change_power_class; + + if (chip->ms_power_class_en & 0x02) + change_power_class = 2; + else if (chip->ms_power_class_en & 0x01) + change_power_class = 1; + else + change_power_class = 0; +#endif + +#ifdef XC_POWERCLASS +Retry: +#endif + retval = ms_pro_reset_flow(chip, 1); + if (retval != STATUS_SUCCESS) { + if (ms_card->switch_8bit_fail) { + retval = ms_pro_reset_flow(chip, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = ms_read_attribute_info(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + +#ifdef XC_POWERCLASS + if (CHK_HG8BIT(ms_card)) { + change_power_class = 0; + } + + if (change_power_class && CHK_MSXC(ms_card)) { + u8 power_class_en = chip->ms_power_class_en; + + RTSX_DEBUGP("power_class_en = 0x%x\n", power_class_en); + RTSX_DEBUGP("change_power_class = %d\n", change_power_class); + + if (change_power_class) { + power_class_en &= (1 << (change_power_class - 1)); + } else { + power_class_en = 0; + } + + if (power_class_en) { + u8 power_class_mode = (ms_card->raw_sys_info[46] & 0x18) >> 3; + RTSX_DEBUGP("power_class_mode = 0x%x", power_class_mode); + if (change_power_class > power_class_mode) + change_power_class = power_class_mode; + if (change_power_class) { + retval = msxc_change_power(chip, change_power_class); + if (retval != STATUS_SUCCESS) { + change_power_class--; + goto Retry; + } + } + } + } +#endif + +#ifdef SUPPORT_MAGIC_GATE + retval = mg_set_tpc_para_sub(chip, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } +#endif + + if (CHK_HG8BIT(ms_card)) { + chip->card_bus_width[chip->card2lun[MS_CARD]] = 8; + } else { + chip->card_bus_width[chip->card2lun[MS_CARD]] = 4; + } + + return STATUS_SUCCESS; +} + +static int ms_read_status_reg(struct rtsx_chip *chip) +{ + int retval; + u8 val[2]; + + retval = ms_set_rw_reg_addr(chip, StatusReg0, 2, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_bytes(chip, READ_REG, 2, NO_WAIT_INT, val, 2); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (val[1] & (STS_UCDT | STS_UCEX | STS_UCFG)) { + ms_set_err_code(chip, MS_FLASH_READ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + + +static int ms_read_extra_data(struct rtsx_chip *chip, + u16 block_addr, u8 page_num, u8 *buf, int buf_len) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u8 val, data[10]; + + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_MS4BIT(ms_card)) { + /* Parallel interface */ + data[0] = 0x88; + } else { + /* Serial interface */ + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(block_addr >> 8); + data[3] = (u8)block_addr; + data[4] = 0x40; + data[5] = page_num; + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, WRITE_REG, 6, NO_WAIT_INT, data, 6); + if (retval == STATUS_SUCCESS) + break; + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_send_cmd(chip, BLOCK_READ, WAIT_INT); + if (retval == STATUS_SUCCESS) + break; + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + if (val & INT_REG_CMDNK) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, STATUS_FAIL); + } + if (val & INT_REG_CED) { + if (val & INT_REG_ERR) { + retval = ms_read_status_reg(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + } + + retval = ms_read_bytes(chip, READ_REG, MS_EXTRA_SIZE, NO_WAIT_INT, data, MS_EXTRA_SIZE); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (buf && buf_len) { + if (buf_len > MS_EXTRA_SIZE) + buf_len = MS_EXTRA_SIZE; + memcpy(buf, data, buf_len); + } + + return STATUS_SUCCESS; +} + +static int ms_write_extra_data(struct rtsx_chip *chip, + u16 block_addr, u8 page_num, u8 *buf, int buf_len) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u8 val, data[16]; + + if (!buf || (buf_len < MS_EXTRA_SIZE)) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 6 + MS_EXTRA_SIZE); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(block_addr >> 8); + data[3] = (u8)block_addr; + data[4] = 0x40; + data[5] = page_num; + + for (i = 6; i < MS_EXTRA_SIZE + 6; i++) { + data[i] = buf[i - 6]; + } + + retval = ms_write_bytes(chip, WRITE_REG , (6+MS_EXTRA_SIZE), NO_WAIT_INT, data, 16); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_send_cmd(chip, BLOCK_WRITE, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + if (val & INT_REG_CMDNK) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, STATUS_FAIL); + } + if (val & INT_REG_CED) { + if (val & INT_REG_ERR) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + + +static int ms_read_page(struct rtsx_chip *chip, u16 block_addr, u8 page_num) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + u8 val, data[6]; + + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(block_addr >> 8); + data[3] = (u8)block_addr; + data[4] = 0x20; + data[5] = page_num; + + retval = ms_write_bytes(chip, WRITE_REG , 6, NO_WAIT_INT, data, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_send_cmd(chip, BLOCK_READ, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + if (val & INT_REG_CMDNK) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CED) { + if (val & INT_REG_ERR) { + if (!(val & INT_REG_BREQ)) { + ms_set_err_code(chip, MS_FLASH_READ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + retval = ms_read_status_reg(chip); + if (retval != STATUS_SUCCESS) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + } + } else { + if (!(val & INT_REG_BREQ)) { + ms_set_err_code(chip, MS_BREQ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + } + + retval = ms_transfer_tpc(chip, MS_TM_NORMAL_READ, READ_PAGE_DATA, 0, NO_WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (ms_check_err_code(chip, MS_FLASH_WRITE_ERROR)) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + + +static int ms_set_bad_block(struct rtsx_chip *chip, u16 phy_blk) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + u8 val, data[8], extra[MS_EXTRA_SIZE]; + + retval = ms_read_extra_data(chip, phy_blk, 0, extra, MS_EXTRA_SIZE); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 7); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(phy_blk >> 8); + data[3] = (u8)phy_blk; + data[4] = 0x80; + data[5] = 0; + data[6] = extra[0] & 0x7F; + data[7] = 0xFF; + + retval = ms_write_bytes(chip, WRITE_REG , 7, NO_WAIT_INT, data, 7); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_send_cmd(chip, BLOCK_WRITE, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CMDNK) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CED) { + if (val & INT_REG_ERR) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + + +static int ms_erase_block(struct rtsx_chip *chip, u16 phy_blk) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i = 0; + u8 val, data[6]; + + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(phy_blk >> 8); + data[3] = (u8)phy_blk; + data[4] = 0; + data[5] = 0; + + retval = ms_write_bytes(chip, WRITE_REG, 6, NO_WAIT_INT, data, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + +ERASE_RTY: + retval = ms_send_cmd(chip, BLOCK_ERASE, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CMDNK) { + if (i < 3) { + i++; + goto ERASE_RTY; + } + + ms_set_err_code(chip, MS_CMD_NK); + ms_set_bad_block(chip, phy_blk); + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CED) { + if (val & INT_REG_ERR) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + + +static void ms_set_page_status(u16 log_blk, u8 type, u8 *extra, int extra_len) +{ + if (!extra || (extra_len < MS_EXTRA_SIZE)) { + return; + } + + memset(extra, 0xFF, MS_EXTRA_SIZE); + + if (type == setPS_NG) { + /* set page status as 1:NG,and block status keep 1:OK */ + extra[0] = 0xB8; + } else { + /* set page status as 0:Data Error,and block status keep 1:OK */ + extra[0] = 0x98; + } + + extra[2] = (u8)(log_blk >> 8); + extra[3] = (u8)log_blk; +} + +static int ms_init_page(struct rtsx_chip *chip, u16 phy_blk, u16 log_blk, u8 start_page, u8 end_page) +{ + int retval; + u8 extra[MS_EXTRA_SIZE], i; + + memset(extra, 0xff, MS_EXTRA_SIZE); + + extra[0] = 0xf8; /* Block, page OK, data erased */ + extra[1] = 0xff; + extra[2] = (u8)(log_blk >> 8); + extra[3] = (u8)log_blk; + + for (i = start_page; i < end_page; i++) { + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + ms_set_err_code(chip, MS_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_write_extra_data(chip, phy_blk, i, extra, MS_EXTRA_SIZE); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +static int ms_copy_page(struct rtsx_chip *chip, u16 old_blk, u16 new_blk, + u16 log_blk, u8 start_page, u8 end_page) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, rty_cnt, uncorrect_flag = 0; + u8 extra[MS_EXTRA_SIZE], val, i, j, data[16]; + + RTSX_DEBUGP("Copy page from 0x%x to 0x%x, logical block is 0x%x\n", + old_blk, new_blk, log_blk); + RTSX_DEBUGP("start_page = %d, end_page = %d\n", start_page, end_page); + + retval = ms_read_extra_data(chip, new_blk, 0, extra, MS_EXTRA_SIZE); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_status_reg(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, PPBUF_BASE2, &val); + + if (val & BUF_FULL) { + retval = ms_send_cmd(chip, CLEAR_BUF, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (!(val & INT_REG_CED)) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + for (i = start_page; i < end_page; i++) { + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + ms_set_err_code(chip, MS_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + ms_read_extra_data(chip, old_blk, i, extra, MS_EXTRA_SIZE); + + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(old_blk >> 8); + data[3] = (u8)old_blk; + data[4] = 0x20; + data[5] = i; + + retval = ms_write_bytes(chip, WRITE_REG , 6, NO_WAIT_INT, data, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_send_cmd(chip, BLOCK_READ, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CMDNK) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CED) { + if (val & INT_REG_ERR) { + retval = ms_read_status_reg(chip); + if (retval != STATUS_SUCCESS) { + uncorrect_flag = 1; + RTSX_DEBUGP("Uncorrectable error\n"); + } else { + uncorrect_flag = 0; + } + + retval = ms_transfer_tpc(chip, MS_TM_NORMAL_READ, READ_PAGE_DATA, 0, NO_WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (uncorrect_flag) { + ms_set_page_status(log_blk, setPS_NG, extra, MS_EXTRA_SIZE); + if (i == 0) { + extra[0] &= 0xEF; + } + ms_write_extra_data(chip, old_blk, i, extra, MS_EXTRA_SIZE); + RTSX_DEBUGP("page %d : extra[0] = 0x%x\n", i, extra[0]); + MS_SET_BAD_BLOCK_FLG(ms_card); + + ms_set_page_status(log_blk, setPS_Error, extra, MS_EXTRA_SIZE); + ms_write_extra_data(chip, new_blk, i, extra, MS_EXTRA_SIZE); + continue; + } + + for (rty_cnt = 0; rty_cnt < MS_MAX_RETRY_COUNT; rty_cnt++) { + retval = ms_transfer_tpc(chip, MS_TM_NORMAL_WRITE, + WRITE_PAGE_DATA, 0, NO_WAIT_INT); + if (retval == STATUS_SUCCESS) { + break; + } + } + if (rty_cnt == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (!(val & INT_REG_BREQ)) { + ms_set_err_code(chip, MS_BREQ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, + MS_EXTRA_SIZE, SystemParm, (6+MS_EXTRA_SIZE)); + + ms_set_err_code(chip, MS_NO_ERROR); + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(new_blk >> 8); + data[3] = (u8)new_blk; + data[4] = 0x20; + data[5] = i; + + if ((extra[0] & 0x60) != 0x60) { + data[6] = extra[0]; + } else { + data[6] = 0xF8; + } + data[6 + 1] = 0xFF; + data[6 + 2] = (u8)(log_blk >> 8); + data[6 + 3] = (u8)log_blk; + + for (j = 4; j <= MS_EXTRA_SIZE; j++) { + data[6 + j] = 0xFF; + } + + retval = ms_write_bytes(chip, WRITE_REG, (6 + MS_EXTRA_SIZE), NO_WAIT_INT, data, 16); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_send_cmd(chip, BLOCK_WRITE, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CMDNK) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CED) { + if (val & INT_REG_ERR) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (i == 0) { + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 7); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(old_blk >> 8); + data[3] = (u8)old_blk; + data[4] = 0x80; + data[5] = 0; + data[6] = 0xEF; + data[7] = 0xFF; + + retval = ms_write_bytes(chip, WRITE_REG, 7, NO_WAIT_INT, data, 8); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_send_cmd(chip, BLOCK_WRITE, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CMDNK) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CED) { + if (val & INT_REG_ERR) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + } + } + + return STATUS_SUCCESS; +} + + +static int reset_ms(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + u16 i, reg_addr, block_size; + u8 val, extra[MS_EXTRA_SIZE], j, *ptr; +#ifndef SUPPORT_MAGIC_GATE + u16 eblock_cnt; +#endif + + retval = ms_prepare_reset(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_card->ms_type |= TYPE_MS; + + retval = ms_send_cmd(chip, MS_RESET, NO_WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_status_reg(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, PPBUF_BASE2, &val); + if (val & WRT_PRTCT) { + chip->card_wp |= MS_CARD; + } else { + chip->card_wp &= ~MS_CARD; + } + + i = 0; + +RE_SEARCH: + /* Search Boot Block */ + while (i < (MAX_DEFECTIVE_BLOCK + 2)) { + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + ms_set_err_code(chip, MS_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_extra_data(chip, i, 0, extra, MS_EXTRA_SIZE); + if (retval != STATUS_SUCCESS) { + i++; + continue; + } + + if (extra[0] & BLOCK_OK) { + if (!(extra[1] & NOT_BOOT_BLOCK)) { + ms_card->boot_block = i; + break; + } + } + i++; + } + + if (i == (MAX_DEFECTIVE_BLOCK + 2)) { + RTSX_DEBUGP("No boot block found!"); + TRACE_RET(chip, STATUS_FAIL); + } + + for (j = 0; j < 3; j++) { + retval = ms_read_page(chip, ms_card->boot_block, j); + if (retval != STATUS_SUCCESS) { + if (ms_check_err_code(chip, MS_FLASH_WRITE_ERROR)) { + i = ms_card->boot_block + 1; + ms_set_err_code(chip, MS_NO_ERROR); + goto RE_SEARCH; + } + } + } + + retval = ms_read_page(chip, ms_card->boot_block, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + /* Read MS system information as sys_info */ + rtsx_init_cmd(chip); + + for (i = 0; i < 96; i++) { + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + 0x1A0 + i, 0, 0); + } + + retval = rtsx_send_cmd(chip, MS_CARD, 100); + if (retval < 0) { + TRACE_RET(chip, STATUS_FAIL); + } + + ptr = rtsx_get_cmd_data(chip); + memcpy(ms_card->raw_sys_info, ptr, 96); + + /* Read useful block contents */ + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, READ_REG_CMD, HEADER_ID0, 0, 0); + rtsx_add_cmd(chip, READ_REG_CMD, HEADER_ID1, 0, 0); + + for (reg_addr = DISABLED_BLOCK0; reg_addr <= DISABLED_BLOCK3; reg_addr++) { + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr, 0, 0); + } + + for (reg_addr = BLOCK_SIZE_0; reg_addr <= PAGE_SIZE_1; reg_addr++) { + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr, 0, 0); + } + + rtsx_add_cmd(chip, READ_REG_CMD, MS_Device_Type, 0, 0); + rtsx_add_cmd(chip, READ_REG_CMD, MS_4bit_Support, 0, 0); + + retval = rtsx_send_cmd(chip, MS_CARD, 100); + if (retval < 0) { + TRACE_RET(chip, STATUS_FAIL); + } + + ptr = rtsx_get_cmd_data(chip); + + RTSX_DEBUGP("Boot block data:\n"); + RTSX_DUMP(ptr, 16); + + /* Block ID error + * HEADER_ID0, HEADER_ID1 + */ + if (ptr[0] != 0x00 || ptr[1] != 0x01) { + i = ms_card->boot_block + 1; + goto RE_SEARCH; + } + + /* Page size error + * PAGE_SIZE_0, PAGE_SIZE_1 + */ + if (ptr[12] != 0x02 || ptr[13] != 0x00) { + i = ms_card->boot_block + 1; + goto RE_SEARCH; + } + + if ((ptr[14] == 1) || (ptr[14] == 3)) { + chip->card_wp |= MS_CARD; + } + + /* BLOCK_SIZE_0, BLOCK_SIZE_1 */ + block_size = ((u16)ptr[6] << 8) | ptr[7]; + if (block_size == 0x0010) { + /* Block size 16KB */ + ms_card->block_shift = 5; + ms_card->page_off = 0x1F; + } else if (block_size == 0x0008) { + /* Block size 8KB */ + ms_card->block_shift = 4; + ms_card->page_off = 0x0F; + } + + /* BLOCK_COUNT_0, BLOCK_COUNT_1 */ + ms_card->total_block = ((u16)ptr[8] << 8) | ptr[9]; + +#ifdef SUPPORT_MAGIC_GATE + j = ptr[10]; + + if (ms_card->block_shift == 4) { /* 4MB or 8MB */ + if (j < 2) { /* Effective block for 4MB: 0x1F0 */ + ms_card->capacity = 0x1EE0; + } else { /* Effective block for 8MB: 0x3E0 */ + ms_card->capacity = 0x3DE0; + } + } else { /* 16MB, 32MB, 64MB or 128MB */ + if (j < 5) { /* Effective block for 16MB: 0x3E0 */ + ms_card->capacity = 0x7BC0; + } else if (j < 0xA) { /* Effective block for 32MB: 0x7C0 */ + ms_card->capacity = 0xF7C0; + } else if (j < 0x11) { /* Effective block for 64MB: 0xF80 */ + ms_card->capacity = 0x1EF80; + } else { /* Effective block for 128MB: 0x1F00 */ + ms_card->capacity = 0x3DF00; + } + } +#else + /* EBLOCK_COUNT_0, EBLOCK_COUNT_1 */ + eblock_cnt = ((u16)ptr[10] << 8) | ptr[11]; + + ms_card->capacity = ((u32)eblock_cnt - 2) << ms_card->block_shift; +#endif + + chip->capacity[chip->card2lun[MS_CARD]] = ms_card->capacity; + + /* Switch I/F Mode */ + if (ptr[15]) { + retval = ms_set_rw_reg_addr(chip, 0, 0, SystemParm, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, PPBUF_BASE2, 0xFF, 0x88); + RTSX_WRITE_REG(chip, PPBUF_BASE2 + 1, 0xFF, 0); + + retval = ms_transfer_tpc(chip, MS_TM_WRITE_BYTES, WRITE_REG , 1, NO_WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, MS_CFG, 0x58 | MS_NO_CHECK_INT, + MS_BUS_WIDTH_4 | PUSH_TIME_ODD | MS_NO_CHECK_INT); + + ms_card->ms_type |= MS_4BIT; + } + + if (CHK_MS4BIT(ms_card)) { + chip->card_bus_width[chip->card2lun[MS_CARD]] = 4; + } else { + chip->card_bus_width[chip->card2lun[MS_CARD]] = 1; + } + + return STATUS_SUCCESS; +} + +static int ms_init_l2p_tbl(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int size, i, seg_no, retval; + u16 defect_block, reg_addr; + u8 val1, val2; + + ms_card->segment_cnt = ms_card->total_block >> 9; + RTSX_DEBUGP("ms_card->segment_cnt = %d\n", ms_card->segment_cnt); + + size = ms_card->segment_cnt * sizeof(struct zone_entry); + ms_card->segment = (struct zone_entry *)vmalloc(size); + if (ms_card->segment == NULL) { + TRACE_RET(chip, STATUS_FAIL); + } + memset(ms_card->segment, 0, size); + + retval = ms_read_page(chip, ms_card->boot_block, 1); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, INIT_FAIL); + } + + reg_addr = PPBUF_BASE2; + for (i = 0; i < (((ms_card->total_block >> 9) * 10) + 1); i++) { + retval = rtsx_read_register(chip, reg_addr++, &val1); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, INIT_FAIL); + } + retval = rtsx_read_register(chip, reg_addr++, &val2); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, INIT_FAIL); + } + + defect_block = ((u16)val1 << 8) | val2; + if (defect_block == 0xFFFF) { + break; + } + seg_no = defect_block / 512; + ms_card->segment[seg_no].defect_list[ms_card->segment[seg_no].disable_count++] = defect_block; + } + + for (i = 0; i < ms_card->segment_cnt; i++) { + ms_card->segment[i].build_flag = 0; + ms_card->segment[i].l2p_table = NULL; + ms_card->segment[i].free_table = NULL; + ms_card->segment[i].get_index = 0; + ms_card->segment[i].set_index = 0; + ms_card->segment[i].unused_blk_cnt = 0; + + RTSX_DEBUGP("defective block count of segment %d is %d\n", + i, ms_card->segment[i].disable_count); + } + + return STATUS_SUCCESS; + +INIT_FAIL: + if (ms_card->segment) { + vfree(ms_card->segment); + ms_card->segment = NULL; + } + + return STATUS_FAIL; +} + +static u16 ms_get_l2p_tbl(struct rtsx_chip *chip, int seg_no, u16 log_off) +{ + struct ms_info *ms_card = &(chip->ms_card); + struct zone_entry *segment; + + if (ms_card->segment == NULL) + return 0xFFFF; + + segment = &(ms_card->segment[seg_no]); + + if (segment->l2p_table) + return segment->l2p_table[log_off]; + + return 0xFFFF; +} + +static void ms_set_l2p_tbl(struct rtsx_chip *chip, int seg_no, u16 log_off, u16 phy_blk) +{ + struct ms_info *ms_card = &(chip->ms_card); + struct zone_entry *segment; + + if (ms_card->segment == NULL) + return; + + segment = &(ms_card->segment[seg_no]); + if (segment->l2p_table) { + segment->l2p_table[log_off] = phy_blk; + } +} + +static void ms_set_unused_block(struct rtsx_chip *chip, u16 phy_blk) +{ + struct ms_info *ms_card = &(chip->ms_card); + struct zone_entry *segment; + int seg_no; + + seg_no = (int)phy_blk >> 9; + segment = &(ms_card->segment[seg_no]); + + segment->free_table[segment->set_index++] = phy_blk; + if (segment->set_index >= MS_FREE_TABLE_CNT) { + segment->set_index = 0; + } + segment->unused_blk_cnt++; +} + +static u16 ms_get_unused_block(struct rtsx_chip *chip, int seg_no) +{ + struct ms_info *ms_card = &(chip->ms_card); + struct zone_entry *segment; + u16 phy_blk; + + segment = &(ms_card->segment[seg_no]); + + if (segment->unused_blk_cnt <= 0) + return 0xFFFF; + + phy_blk = segment->free_table[segment->get_index]; + segment->free_table[segment->get_index++] = 0xFFFF; + if (segment->get_index >= MS_FREE_TABLE_CNT) { + segment->get_index = 0; + } + segment->unused_blk_cnt--; + + return phy_blk; +} + +static const unsigned short ms_start_idx[] = {0, 494, 990, 1486, 1982, 2478, 2974, 3470, + 3966, 4462, 4958, 5454, 5950, 6446, 6942, 7438, 7934}; + +static int ms_arbitrate_l2p(struct rtsx_chip *chip, u16 phy_blk, u16 log_off, u8 us1, u8 us2) +{ + struct ms_info *ms_card = &(chip->ms_card); + struct zone_entry *segment; + int seg_no; + u16 tmp_blk; + + seg_no = (int)phy_blk >> 9; + segment = &(ms_card->segment[seg_no]); + tmp_blk = segment->l2p_table[log_off]; + + if (us1 != us2) { + if (us1 == 0) { + if (!(chip->card_wp & MS_CARD)) { + ms_erase_block(chip, tmp_blk); + } + ms_set_unused_block(chip, tmp_blk); + segment->l2p_table[log_off] = phy_blk; + } else { + if (!(chip->card_wp & MS_CARD)) { + ms_erase_block(chip, phy_blk); + } + ms_set_unused_block(chip, phy_blk); + } + } else { + if (phy_blk < tmp_blk) { + if (!(chip->card_wp & MS_CARD)) { + ms_erase_block(chip, phy_blk); + } + ms_set_unused_block(chip, phy_blk); + } else { + if (!(chip->card_wp & MS_CARD)) { + ms_erase_block(chip, tmp_blk); + } + ms_set_unused_block(chip, tmp_blk); + segment->l2p_table[log_off] = phy_blk; + } + } + + return STATUS_SUCCESS; +} + +static int ms_build_l2p_tbl(struct rtsx_chip *chip, int seg_no) +{ + struct ms_info *ms_card = &(chip->ms_card); + struct zone_entry *segment; + int retval, table_size, disable_cnt, defect_flag, i; + u16 start, end, phy_blk, log_blk, tmp_blk; + u8 extra[MS_EXTRA_SIZE], us1, us2; + + RTSX_DEBUGP("ms_build_l2p_tbl: %d\n", seg_no); + + if (ms_card->segment == NULL) { + retval = ms_init_l2p_tbl(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, retval); + } + } + + if (ms_card->segment[seg_no].build_flag) { + RTSX_DEBUGP("l2p table of segment %d has been built\n", seg_no); + return STATUS_SUCCESS; + } + + if (seg_no == 0) { + table_size = 494; + } else { + table_size = 496; + } + + segment = &(ms_card->segment[seg_no]); + + if (segment->l2p_table == NULL) { + segment->l2p_table = (u16 *)vmalloc(table_size * 2); + if (segment->l2p_table == NULL) { + TRACE_GOTO(chip, BUILD_FAIL); + } + } + memset((u8 *)(segment->l2p_table), 0xff, table_size * 2); + + if (segment->free_table == NULL) { + segment->free_table = (u16 *)vmalloc(MS_FREE_TABLE_CNT * 2); + if (segment->free_table == NULL) { + TRACE_GOTO(chip, BUILD_FAIL); + } + } + memset((u8 *)(segment->free_table), 0xff, MS_FREE_TABLE_CNT * 2); + + start = (u16)seg_no << 9; + end = (u16)(seg_no + 1) << 9; + + disable_cnt = segment->disable_count; + + segment->get_index = segment->set_index = 0; + segment->unused_blk_cnt = 0; + + for (phy_blk = start; phy_blk < end; phy_blk++) { + if (disable_cnt) { + defect_flag = 0; + for (i = 0; i < segment->disable_count; i++) { + if (phy_blk == segment->defect_list[i]) { + defect_flag = 1; + break; + } + } + if (defect_flag) { + disable_cnt--; + continue; + } + } + + retval = ms_read_extra_data(chip, phy_blk, 0, extra, MS_EXTRA_SIZE); + if (retval != STATUS_SUCCESS) { + RTSX_DEBUGP("read extra data fail\n"); + ms_set_bad_block(chip, phy_blk); + continue; + } + + if (seg_no == ms_card->segment_cnt - 1) { + if (!(extra[1] & NOT_TRANSLATION_TABLE)) { + if (!(chip->card_wp & MS_CARD)) { + retval = ms_erase_block(chip, phy_blk); + if (retval != STATUS_SUCCESS) + continue; + extra[2] = 0xff; + extra[3] = 0xff; + } + } + } + + if (!(extra[0] & BLOCK_OK)) + continue; + if (!(extra[1] & NOT_BOOT_BLOCK)) + continue; + if ((extra[0] & PAGE_OK) != PAGE_OK) + continue; + + log_blk = ((u16)extra[2] << 8) | extra[3]; + + if (log_blk == 0xFFFF) { + if (!(chip->card_wp & MS_CARD)) { + retval = ms_erase_block(chip, phy_blk); + if (retval != STATUS_SUCCESS) + continue; + } + ms_set_unused_block(chip, phy_blk); + continue; + } + + if ((log_blk < ms_start_idx[seg_no]) || + (log_blk >= ms_start_idx[seg_no+1])) { + if (!(chip->card_wp & MS_CARD)) { + retval = ms_erase_block(chip, phy_blk); + if (retval != STATUS_SUCCESS) + continue; + } + ms_set_unused_block(chip, phy_blk); + continue; + } + + if (segment->l2p_table[log_blk - ms_start_idx[seg_no]] == 0xFFFF) { + segment->l2p_table[log_blk - ms_start_idx[seg_no]] = phy_blk; + continue; + } + + us1 = extra[0] & 0x10; + tmp_blk = segment->l2p_table[log_blk - ms_start_idx[seg_no]]; + retval = ms_read_extra_data(chip, tmp_blk, 0, extra, MS_EXTRA_SIZE); + if (retval != STATUS_SUCCESS) + continue; + us2 = extra[0] & 0x10; + + (void)ms_arbitrate_l2p(chip, phy_blk, log_blk-ms_start_idx[seg_no], us1, us2); + continue; + } + + segment->build_flag = 1; + + RTSX_DEBUGP("unused block count: %d\n", segment->unused_blk_cnt); + + /* Logical Address Confirmation Process */ + if (seg_no == ms_card->segment_cnt - 1) { + if (segment->unused_blk_cnt < 2) { + chip->card_wp |= MS_CARD; + } + } else { + if (segment->unused_blk_cnt < 1) { + chip->card_wp |= MS_CARD; + } + } + + if (chip->card_wp & MS_CARD) + return STATUS_SUCCESS; + + for (log_blk = ms_start_idx[seg_no]; log_blk < ms_start_idx[seg_no + 1]; log_blk++) { + if (segment->l2p_table[log_blk-ms_start_idx[seg_no]] == 0xFFFF) { + phy_blk = ms_get_unused_block(chip, seg_no); + if (phy_blk == 0xFFFF) { + chip->card_wp |= MS_CARD; + return STATUS_SUCCESS; + } + retval = ms_init_page(chip, phy_blk, log_blk, 0, 1); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, BUILD_FAIL); + } + segment->l2p_table[log_blk-ms_start_idx[seg_no]] = phy_blk; + if (seg_no == ms_card->segment_cnt - 1) { + if (segment->unused_blk_cnt < 2) { + chip->card_wp |= MS_CARD; + return STATUS_SUCCESS; + } + } else { + if (segment->unused_blk_cnt < 1) { + chip->card_wp |= MS_CARD; + return STATUS_SUCCESS; + } + } + } + } + + /* Make boot block be the first normal block */ + if (seg_no == 0) { + for (log_blk = 0; log_blk < 494; log_blk++) { + tmp_blk = segment->l2p_table[log_blk]; + if (tmp_blk < ms_card->boot_block) { + RTSX_DEBUGP("Boot block is not the first normal block.\n"); + + if (chip->card_wp & MS_CARD) + break; + + phy_blk = ms_get_unused_block(chip, 0); + retval = ms_copy_page(chip, tmp_blk, phy_blk, + log_blk, 0, ms_card->page_off + 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + segment->l2p_table[log_blk] = phy_blk; + + retval = ms_set_bad_block(chip, tmp_blk); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + } + } + + return STATUS_SUCCESS; + +BUILD_FAIL: + segment->build_flag = 0; + if (segment->l2p_table) { + vfree(segment->l2p_table); + segment->l2p_table = NULL; + } + if (segment->free_table) { + vfree(segment->free_table); + segment->free_table = NULL; + } + + return STATUS_FAIL; +} + + +int reset_ms_card(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + + memset(ms_card, 0, sizeof(struct ms_info)); + + retval = enable_card_clock(chip, MS_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = select_card(chip, MS_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_card->ms_type = 0; + + retval = reset_ms_pro(chip); + if (retval != STATUS_SUCCESS) { + if (ms_card->check_ms_flow) { + retval = reset_ms(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = ms_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (!CHK_MSPRO(ms_card)) { + /* Build table for the last segment, + * to check if L2P talbe block exist,erasing it + */ + retval = ms_build_l2p_tbl(chip, ms_card->total_block / 512 - 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + RTSX_DEBUGP("ms_card->ms_type = 0x%x\n", ms_card->ms_type); + + return STATUS_SUCCESS; +} + +static int mspro_set_rw_cmd(struct rtsx_chip *chip, u32 start_sec, u16 sec_cnt, u8 cmd) +{ + int retval, i; + u8 data[8]; + + data[0] = cmd; + data[1] = (u8)(sec_cnt >> 8); + data[2] = (u8)sec_cnt; + data[3] = (u8)(start_sec >> 24); + data[4] = (u8)(start_sec >> 16); + data[5] = (u8)(start_sec >> 8); + data[6] = (u8)start_sec; + data[7] = 0; + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, PRO_EX_SET_CMD, 7, WAIT_INT, data, 8); + if (retval == STATUS_SUCCESS) + break; + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + + +void mspro_stop_seq_mode(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + + RTSX_DEBUGP("--%s--\n", __func__); + + if (ms_card->seq_mode) { + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) + return; + + ms_card->seq_mode = 0; + ms_card->total_sec_cnt = 0; + ms_send_cmd(chip, PRO_STOP, WAIT_INT); + + rtsx_write_register(chip, RBCTL, RB_FLUSH, RB_FLUSH); + } +} + +static inline int ms_auto_tune_clock(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + + RTSX_DEBUGP("--%s--\n", __func__); + + if (chip->asic_code) { + if (ms_card->ms_clock > 30) { + ms_card->ms_clock -= 20; + } + } else { + if (ms_card->ms_clock == CLK_80) { + ms_card->ms_clock = CLK_60; + } else if (ms_card->ms_clock == CLK_60) { + ms_card->ms_clock = CLK_40; + } + } + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int mspro_rw_multi_sector(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 start_sector, u16 sector_cnt) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, mode_2k = 0; + u16 count; + u8 val, trans_mode, rw_tpc, rw_cmd; + + ms_set_err_code(chip, MS_NO_ERROR); + + ms_card->cleanup_counter = 0; + + if (CHK_MSHG(ms_card)) { + if ((start_sector % 4) || (sector_cnt % 4)) { + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + rw_tpc = PRO_READ_LONG_DATA; + rw_cmd = PRO_READ_DATA; + } else { + rw_tpc = PRO_WRITE_LONG_DATA; + rw_cmd = PRO_WRITE_DATA; + } + } else { + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + rw_tpc = PRO_READ_QUAD_DATA; + rw_cmd = PRO_READ_2K_DATA; + } else { + rw_tpc = PRO_WRITE_QUAD_DATA; + rw_cmd = PRO_WRITE_2K_DATA; + } + mode_2k = 1; + } + } else { + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + rw_tpc = PRO_READ_LONG_DATA; + rw_cmd = PRO_READ_DATA; + } else { + rw_tpc = PRO_WRITE_LONG_DATA; + rw_cmd = PRO_WRITE_DATA; + } + } + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + trans_mode = MS_TM_AUTO_READ; + } else { + trans_mode = MS_TM_AUTO_WRITE; + } + + RTSX_READ_REG(chip, MS_TRANS_CFG, &val); + + if (ms_card->seq_mode) { + if ((ms_card->pre_dir != srb->sc_data_direction) + || ((ms_card->pre_sec_addr + ms_card->pre_sec_cnt) != start_sector) + || (mode_2k && (ms_card->seq_mode & MODE_512_SEQ)) + || (!mode_2k && (ms_card->seq_mode & MODE_2K_SEQ)) + || !(val & MS_INT_BREQ) + || ((ms_card->total_sec_cnt + sector_cnt) > 0xFE00)) { + ms_card->seq_mode = 0; + ms_card->total_sec_cnt = 0; + if (val & MS_INT_BREQ) { + retval = ms_send_cmd(chip, PRO_STOP, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_write_register(chip, RBCTL, RB_FLUSH, RB_FLUSH); + } + } + } + + if (!ms_card->seq_mode) { + ms_card->total_sec_cnt = 0; + if (sector_cnt >= SEQ_START_CRITERIA) { + if ((ms_card->capacity - start_sector) > 0xFE00) { + count = 0xFE00; + } else { + count = (u16)(ms_card->capacity - start_sector); + } + if (count > sector_cnt) { + if (mode_2k) { + ms_card->seq_mode |= MODE_2K_SEQ; + } else { + ms_card->seq_mode |= MODE_512_SEQ; + } + } + } else { + count = sector_cnt; + } + retval = mspro_set_rw_cmd(chip, start_sector, count, rw_cmd); + if (retval != STATUS_SUCCESS) { + ms_card->seq_mode = 0; + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = ms_transfer_data(chip, trans_mode, rw_tpc, sector_cnt, WAIT_INT, mode_2k, + scsi_sg_count(srb), scsi_sglist(srb), scsi_bufflen(srb)); + if (retval != STATUS_SUCCESS) { + ms_card->seq_mode = 0; + rtsx_read_register(chip, MS_TRANS_CFG, &val); + rtsx_clear_ms_error(chip); + + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + chip->rw_need_retry = 0; + RTSX_DEBUGP("No card exist, exit mspro_rw_multi_sector\n"); + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & MS_INT_BREQ) { + ms_send_cmd(chip, PRO_STOP, WAIT_INT); + } + if (val & (MS_CRC16_ERR | MS_RDY_TIMEOUT)) { + RTSX_DEBUGP("MSPro CRC error, tune clock!\n"); + chip->rw_need_retry = 1; + ms_auto_tune_clock(chip); + } + + TRACE_RET(chip, retval); + } + + if (ms_card->seq_mode) { + ms_card->pre_sec_addr = start_sector; + ms_card->pre_sec_cnt = sector_cnt; + ms_card->pre_dir = srb->sc_data_direction; + ms_card->total_sec_cnt += sector_cnt; + } + + return STATUS_SUCCESS; +} + +static int mspro_read_format_progress(struct rtsx_chip *chip, const int short_data_len) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u32 total_progress, cur_progress; + u8 cnt, tmp; + u8 data[8]; + + RTSX_DEBUGP("mspro_read_format_progress, short_data_len = %d\n", short_data_len); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + ms_card->format_status = FORMAT_FAIL; + TRACE_RET(chip, STATUS_FAIL); + } + + retval = rtsx_read_register(chip, MS_TRANS_CFG, &tmp); + if (retval != STATUS_SUCCESS) { + ms_card->format_status = FORMAT_FAIL; + TRACE_RET(chip, STATUS_FAIL); + } + + if (!(tmp & MS_INT_BREQ)) { + if ((tmp & (MS_INT_CED | MS_INT_BREQ | MS_INT_CMDNK | MS_INT_ERR)) == MS_INT_CED) { + ms_card->format_status = FORMAT_SUCCESS; + return STATUS_SUCCESS; + } + ms_card->format_status = FORMAT_FAIL; + TRACE_RET(chip, STATUS_FAIL); + } + + if (short_data_len >= 256) { + cnt = 0; + } else { + cnt = (u8)short_data_len; + } + + retval = rtsx_write_register(chip, MS_CFG, MS_NO_CHECK_INT, MS_NO_CHECK_INT); + if (retval != STATUS_SUCCESS) { + ms_card->format_status = FORMAT_FAIL; + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_bytes(chip, PRO_READ_SHORT_DATA, cnt, WAIT_INT, data, 8); + if (retval != STATUS_SUCCESS) { + ms_card->format_status = FORMAT_FAIL; + TRACE_RET(chip, STATUS_FAIL); + } + + total_progress = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3]; + cur_progress = (data[4] << 24) | (data[5] << 16) | (data[6] << 8) | data[7]; + + RTSX_DEBUGP("total_progress = %d, cur_progress = %d\n", + total_progress, cur_progress); + + if (total_progress == 0) { + ms_card->progress = 0; + } else { + u64 ulltmp = (u64)cur_progress * (u64)65535; + do_div(ulltmp, total_progress); + ms_card->progress = (u16)ulltmp; + } + RTSX_DEBUGP("progress = %d\n", ms_card->progress); + + for (i = 0; i < 5000; i++) { + retval = rtsx_read_register(chip, MS_TRANS_CFG, &tmp); + if (retval != STATUS_SUCCESS) { + ms_card->format_status = FORMAT_FAIL; + TRACE_RET(chip, STATUS_FAIL); + } + if (tmp & (MS_INT_CED | MS_INT_CMDNK | MS_INT_BREQ | MS_INT_ERR)) { + break; + } + + wait_timeout(1); + } + + retval = rtsx_write_register(chip, MS_CFG, MS_NO_CHECK_INT, 0); + if (retval != STATUS_SUCCESS) { + ms_card->format_status = FORMAT_FAIL; + TRACE_RET(chip, STATUS_FAIL); + } + + if (i == 5000) { + ms_card->format_status = FORMAT_FAIL; + TRACE_RET(chip, STATUS_FAIL); + } + + if (tmp & (MS_INT_CMDNK | MS_INT_ERR)) { + ms_card->format_status = FORMAT_FAIL; + TRACE_RET(chip, STATUS_FAIL); + } + + if (tmp & MS_INT_CED) { + ms_card->format_status = FORMAT_SUCCESS; + ms_card->pro_under_formatting = 0; + } else if (tmp & MS_INT_BREQ) { + ms_card->format_status = FORMAT_IN_PROGRESS; + } else { + ms_card->format_status = FORMAT_FAIL; + ms_card->pro_under_formatting = 0; + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +void mspro_polling_format_status(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int i; + + if (ms_card->pro_under_formatting && (rtsx_get_stat(chip) != RTSX_STAT_SS)) { + rtsx_set_stat(chip, RTSX_STAT_RUN); + + for (i = 0; i < 65535; i++) { + mspro_read_format_progress(chip, MS_SHORT_DATA_LEN); + if (ms_card->format_status != FORMAT_IN_PROGRESS) + break; + } + } + + return; +} + +int mspro_format(struct scsi_cmnd *srb, struct rtsx_chip *chip, int short_data_len, int quick_format) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u8 buf[8], tmp; + u16 para; + + RTSX_DEBUGP("--%s--\n", __func__); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_set_rw_reg_addr(chip, 0x00, 0x00, Pro_TPCParm, 0x01); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + memset(buf, 0, 2); + switch (short_data_len) { + case 32: + buf[0] = 0; + break; + case 64: + buf[0] = 1; + break; + case 128: + buf[0] = 2; + break; + case 256: + default: + buf[0] = 3; + break; + } + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, PRO_WRITE_REG, 1, NO_WAIT_INT, buf, 2); + if (retval == STATUS_SUCCESS) + break; + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (quick_format) { + para = 0x0000; + } else { + para = 0x0001; + } + retval = mspro_set_rw_cmd(chip, 0, para, PRO_FORMAT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_READ_REG(chip, MS_TRANS_CFG, &tmp); + + if (tmp & (MS_INT_CMDNK | MS_INT_ERR)) { + TRACE_RET(chip, STATUS_FAIL); + } + + if ((tmp & (MS_INT_BREQ | MS_INT_CED)) == MS_INT_BREQ) { + ms_card->pro_under_formatting = 1; + ms_card->progress = 0; + ms_card->format_status = FORMAT_IN_PROGRESS; + return STATUS_SUCCESS; + } + + if (tmp & MS_INT_CED) { + ms_card->pro_under_formatting = 0; + ms_card->progress = 0; + ms_card->format_status = FORMAT_SUCCESS; + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_NO_SENSE); + return STATUS_SUCCESS; + } + + TRACE_RET(chip, STATUS_FAIL); +} + + +static int ms_read_multiple_pages(struct rtsx_chip *chip, u16 phy_blk, u16 log_blk, + u8 start_page, u8 end_page, u8 *buf, unsigned int *index, unsigned int *offset) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u8 extra[MS_EXTRA_SIZE], page_addr, val, trans_cfg, data[6]; + u8 *ptr; + + retval = ms_read_extra_data(chip, phy_blk, start_page, extra, MS_EXTRA_SIZE); + if (retval == STATUS_SUCCESS) { + if ((extra[1] & 0x30) != 0x30) { + ms_set_err_code(chip, MS_FLASH_READ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(phy_blk >> 8); + data[3] = (u8)phy_blk; + data[4] = 0; + data[5] = start_page; + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, WRITE_REG, 6, NO_WAIT_INT, data, 6); + if (retval == STATUS_SUCCESS) + break; + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + + retval = ms_send_cmd(chip, BLOCK_READ, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ptr = buf; + + for (page_addr = start_page; page_addr < end_page; page_addr++) { + ms_set_err_code(chip, MS_NO_ERROR); + + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + ms_set_err_code(chip, MS_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + if (val & INT_REG_CMDNK) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, STATUS_FAIL); + } + if (val & INT_REG_ERR) { + if (val & INT_REG_BREQ) { + retval = ms_read_status_reg(chip); + if (retval != STATUS_SUCCESS) { + if (!(chip->card_wp & MS_CARD)) { + reset_ms(chip); + ms_set_page_status(log_blk, setPS_NG, extra, MS_EXTRA_SIZE); + ms_write_extra_data(chip, phy_blk, + page_addr, extra, MS_EXTRA_SIZE); + } + ms_set_err_code(chip, MS_FLASH_READ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } else { + ms_set_err_code(chip, MS_FLASH_READ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } else { + if (!(val & INT_REG_BREQ)) { + ms_set_err_code(chip, MS_BREQ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (page_addr == (end_page - 1)) { + if (!(val & INT_REG_CED)) { + retval = ms_send_cmd(chip, BLOCK_END, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + if (!(val & INT_REG_CED)) { + ms_set_err_code(chip, MS_FLASH_READ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + + trans_cfg = NO_WAIT_INT; + } else { + trans_cfg = WAIT_INT; + } + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TPC, 0xFF, READ_PAGE_DATA); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, trans_cfg); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + + trans_dma_enable(DMA_FROM_DEVICE, chip, 512, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANSFER, 0xFF, + MS_TRANSFER_START | MS_TM_NORMAL_READ); + rtsx_add_cmd(chip, CHECK_REG_CMD, MS_TRANSFER, MS_TRANSFER_END, MS_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data_partial(chip, MS_CARD, ptr, 512, scsi_sg_count(chip->srb), + index, offset, DMA_FROM_DEVICE, chip->ms_timeout); + if (retval < 0) { + if (retval == -ETIMEDOUT) { + ms_set_err_code(chip, MS_TO_ERROR); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_TIMEDOUT); + } + + retval = rtsx_read_register(chip, MS_TRANS_CFG, &val); + if (retval != STATUS_SUCCESS) { + ms_set_err_code(chip, MS_TO_ERROR); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_TIMEDOUT); + } + if (val & (MS_CRC16_ERR | MS_RDY_TIMEOUT)) { + ms_set_err_code(chip, MS_CRC16_ERROR); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (scsi_sg_count(chip->srb) == 0) + ptr += 512; + } + + return STATUS_SUCCESS; +} + +static int ms_write_multiple_pages(struct rtsx_chip *chip, u16 old_blk, u16 new_blk, + u16 log_blk, u8 start_page, u8 end_page, u8 *buf, + unsigned int *index, unsigned int *offset) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, i; + u8 page_addr, val, data[16]; + u8 *ptr; + + if (!start_page) { + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, 7); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(old_blk >> 8); + data[3] = (u8)old_blk; + data[4] = 0x80; + data[5] = 0; + data[6] = 0xEF; + data[7] = 0xFF; + + retval = ms_write_bytes(chip, WRITE_REG, 7, NO_WAIT_INT, data, 8); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_send_cmd(chip, BLOCK_WRITE, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + retval = ms_transfer_tpc(chip, MS_TM_READ_BYTES, GET_INT, 1, NO_WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = ms_set_rw_reg_addr(chip, OverwriteFlag, MS_EXTRA_SIZE, SystemParm, (6 + MS_EXTRA_SIZE)); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ms_set_err_code(chip, MS_NO_ERROR); + + if (CHK_MS4BIT(ms_card)) { + data[0] = 0x88; + } else { + data[0] = 0x80; + } + data[1] = 0; + data[2] = (u8)(new_blk >> 8); + data[3] = (u8)new_blk; + if ((end_page - start_page) == 1) { + data[4] = 0x20; + } else { + data[4] = 0; + } + data[5] = start_page; + data[6] = 0xF8; + data[7] = 0xFF; + data[8] = (u8)(log_blk >> 8); + data[9] = (u8)log_blk; + + for (i = 0x0A; i < 0x10; i++) { + data[i] = 0xFF; + } + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, WRITE_REG, 6 + MS_EXTRA_SIZE, NO_WAIT_INT, data, 16); + if (retval == STATUS_SUCCESS) + break; + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_send_cmd(chip, BLOCK_WRITE, WAIT_INT); + if (retval == STATUS_SUCCESS) + break; + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + ptr = buf; + for (page_addr = start_page; page_addr < end_page; page_addr++) { + ms_set_err_code(chip, MS_NO_ERROR); + + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + ms_set_err_code(chip, MS_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + if (val & INT_REG_CMDNK) { + ms_set_err_code(chip, MS_CMD_NK); + TRACE_RET(chip, STATUS_FAIL); + } + if (val & INT_REG_ERR) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + if (!(val & INT_REG_BREQ)) { + ms_set_err_code(chip, MS_BREQ_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + + udelay(30); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TPC, 0xFF, WRITE_PAGE_DATA); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, WAIT_INT); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + + trans_dma_enable(DMA_TO_DEVICE, chip, 512, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANSFER, 0xFF, + MS_TRANSFER_START | MS_TM_NORMAL_WRITE); + rtsx_add_cmd(chip, CHECK_REG_CMD, MS_TRANSFER, MS_TRANSFER_END, MS_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data_partial(chip, MS_CARD, ptr, 512, scsi_sg_count(chip->srb), + index, offset, DMA_TO_DEVICE, chip->ms_timeout); + if (retval < 0) { + ms_set_err_code(chip, MS_TO_ERROR); + rtsx_clear_ms_error(chip); + + if (retval == -ETIMEDOUT) { + TRACE_RET(chip, STATUS_TIMEDOUT); + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if ((end_page - start_page) == 1) { + if (!(val & INT_REG_CED)) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } else { + if (page_addr == (end_page - 1)) { + if (!(val & INT_REG_CED)) { + retval = ms_send_cmd(chip, BLOCK_END, WAIT_INT); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = ms_read_bytes(chip, GET_INT, 1, NO_WAIT_INT, &val, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if ((page_addr == (end_page - 1)) || (page_addr == ms_card->page_off)) { + if (!(val & INT_REG_CED)) { + ms_set_err_code(chip, MS_FLASH_WRITE_ERROR); + TRACE_RET(chip, STATUS_FAIL); + } + } + } + + if (scsi_sg_count(chip->srb) == 0) + ptr += 512; + } + + return STATUS_SUCCESS; +} + + +static int ms_finish_write(struct rtsx_chip *chip, u16 old_blk, u16 new_blk, + u16 log_blk, u8 page_off) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval, seg_no; + + retval = ms_copy_page(chip, old_blk, new_blk, log_blk, + page_off, ms_card->page_off + 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + seg_no = old_blk >> 9; + + if (MS_TST_BAD_BLOCK_FLG(ms_card)) { + MS_CLR_BAD_BLOCK_FLG(ms_card); + ms_set_bad_block(chip, old_blk); + } else { + retval = ms_erase_block(chip, old_blk); + if (retval == STATUS_SUCCESS) { + ms_set_unused_block(chip, old_blk); + } + } + + ms_set_l2p_tbl(chip, seg_no, log_blk - ms_start_idx[seg_no], new_blk); + + return STATUS_SUCCESS; +} + +static int ms_prepare_write(struct rtsx_chip *chip, u16 old_blk, u16 new_blk, + u16 log_blk, u8 start_page) +{ + int retval; + + if (start_page) { + retval = ms_copy_page(chip, old_blk, new_blk, log_blk, 0, start_page); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +#ifdef MS_DELAY_WRITE +int ms_delay_write(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + struct ms_delay_write_tag *delay_write = &(ms_card->delay_write); + int retval; + + if (delay_write->delay_write_flag) { + retval = ms_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + delay_write->delay_write_flag = 0; + retval = ms_finish_write(chip, + delay_write->old_phyblock, delay_write->new_phyblock, + delay_write->logblock, delay_write->pageoff); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} +#endif + +static inline void ms_rw_fail(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + } else { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + } +} + +static int ms_rw_multi_sector(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 start_sector, u16 sector_cnt) +{ + struct ms_info *ms_card = &(chip->ms_card); + unsigned int lun = SCSI_LUN(srb); + int retval, seg_no; + unsigned int index = 0, offset = 0; + u16 old_blk = 0, new_blk = 0, log_blk, total_sec_cnt = sector_cnt; + u8 start_page, end_page = 0, page_cnt; + u8 *ptr; +#ifdef MS_DELAY_WRITE + struct ms_delay_write_tag *delay_write = &(ms_card->delay_write); +#endif + + ms_set_err_code(chip, MS_NO_ERROR); + + ms_card->cleanup_counter = 0; + + ptr = (u8 *)scsi_sglist(srb); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + ms_rw_fail(srb, chip); + TRACE_RET(chip, STATUS_FAIL); + } + + log_blk = (u16)(start_sector >> ms_card->block_shift); + start_page = (u8)(start_sector & ms_card->page_off); + + for (seg_no = 0; seg_no < ARRAY_SIZE(ms_start_idx) - 1; seg_no++) { + if (log_blk < ms_start_idx[seg_no+1]) + break; + } + + if (ms_card->segment[seg_no].build_flag == 0) { + retval = ms_build_l2p_tbl(chip, seg_no); + if (retval != STATUS_SUCCESS) { + chip->card_fail |= MS_CARD; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (srb->sc_data_direction == DMA_TO_DEVICE) { +#ifdef MS_DELAY_WRITE + if (delay_write->delay_write_flag && + (delay_write->logblock == log_blk) && + (start_page > delay_write->pageoff)) { + delay_write->delay_write_flag = 0; + retval = ms_copy_page(chip, + delay_write->old_phyblock, + delay_write->new_phyblock, log_blk, + delay_write->pageoff, start_page); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + old_blk = delay_write->old_phyblock; + new_blk = delay_write->new_phyblock; + } else if (delay_write->delay_write_flag && + (delay_write->logblock == log_blk) && + (start_page == delay_write->pageoff)) { + delay_write->delay_write_flag = 0; + old_blk = delay_write->old_phyblock; + new_blk = delay_write->new_phyblock; + } else { + retval = ms_delay_write(chip); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + old_blk = ms_get_l2p_tbl(chip, seg_no, log_blk - ms_start_idx[seg_no]); + new_blk = ms_get_unused_block(chip, seg_no); + if ((old_blk == 0xFFFF) || (new_blk == 0xFFFF)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_prepare_write(chip, old_blk, new_blk, log_blk, start_page); + if (retval != STATUS_SUCCESS) { + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, STATUS_FAIL); + } +#ifdef MS_DELAY_WRITE + } +#endif + } else { +#ifdef MS_DELAY_WRITE + retval = ms_delay_write(chip); + if (retval != STATUS_SUCCESS) { + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + old_blk = ms_get_l2p_tbl(chip, seg_no, log_blk - ms_start_idx[seg_no]); + if (old_blk == 0xFFFF) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + } + + RTSX_DEBUGP("seg_no = %d, old_blk = 0x%x, new_blk = 0x%x\n", seg_no, old_blk, new_blk); + + while (total_sec_cnt) { + if ((start_page + total_sec_cnt) > (ms_card->page_off + 1)) { + end_page = ms_card->page_off + 1; + } else { + end_page = start_page + (u8)total_sec_cnt; + } + page_cnt = end_page - start_page; + + RTSX_DEBUGP("start_page = %d, end_page = %d, page_cnt = %d\n", + start_page, end_page, page_cnt); + + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + retval = ms_read_multiple_pages(chip, + old_blk, log_blk, start_page, end_page, + ptr, &index, &offset); + } else { + retval = ms_write_multiple_pages(chip, old_blk, + new_blk, log_blk, start_page, end_page, + ptr, &index, &offset); + } + + if (retval != STATUS_SUCCESS) { + toggle_gpio(chip, 1); + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + ms_rw_fail(srb, chip); + TRACE_RET(chip, STATUS_FAIL); + } + + if (srb->sc_data_direction == DMA_TO_DEVICE) { + if (end_page == (ms_card->page_off + 1)) { + retval = ms_erase_block(chip, old_blk); + if (retval == STATUS_SUCCESS) { + ms_set_unused_block(chip, old_blk); + } + ms_set_l2p_tbl(chip, seg_no, log_blk - ms_start_idx[seg_no], new_blk); + } + } + + total_sec_cnt -= page_cnt; + if (scsi_sg_count(srb) == 0) + ptr += page_cnt * 512; + + if (total_sec_cnt == 0) + break; + + log_blk++; + + for (seg_no = 0; seg_no < sizeof(ms_start_idx)/2; seg_no++) { + if (log_blk < ms_start_idx[seg_no+1]) + break; + } + + if (ms_card->segment[seg_no].build_flag == 0) { + retval = ms_build_l2p_tbl(chip, seg_no); + if (retval != STATUS_SUCCESS) { + chip->card_fail |= MS_CARD; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + } + + old_blk = ms_get_l2p_tbl(chip, seg_no, log_blk - ms_start_idx[seg_no]); + if (old_blk == 0xFFFF) { + ms_rw_fail(srb, chip); + TRACE_RET(chip, STATUS_FAIL); + } + + if (srb->sc_data_direction == DMA_TO_DEVICE) { + new_blk = ms_get_unused_block(chip, seg_no); + if (new_blk == 0xFFFF) { + ms_rw_fail(srb, chip); + TRACE_RET(chip, STATUS_FAIL); + } + } + + RTSX_DEBUGP("seg_no = %d, old_blk = 0x%x, new_blk = 0x%x\n", seg_no, old_blk, new_blk); + + start_page = 0; + } + + if (srb->sc_data_direction == DMA_TO_DEVICE) { + if (end_page < (ms_card->page_off + 1)) { +#ifdef MS_DELAY_WRITE + delay_write->delay_write_flag = 1; + delay_write->old_phyblock = old_blk; + delay_write->new_phyblock = new_blk; + delay_write->logblock = log_blk; + delay_write->pageoff = end_page; +#else + retval = ms_finish_write(chip, old_blk, new_blk, log_blk, end_page); + if (retval != STATUS_SUCCESS) { + if (detect_card_cd(chip, MS_CARD) != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, STATUS_FAIL); + } + + ms_rw_fail(srb, chip); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + } + } + + scsi_set_resid(srb, 0); + + return STATUS_SUCCESS; +} + +int ms_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 start_sector, u16 sector_cnt) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + + if (CHK_MSPRO(ms_card)) { + retval = mspro_rw_multi_sector(srb, chip, start_sector, sector_cnt); + } else { + retval = ms_rw_multi_sector(srb, chip, start_sector, sector_cnt); + } + + return retval; +} + + +void ms_free_l2p_tbl(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int i = 0; + + if (ms_card->segment != NULL) { + for (i = 0; i < ms_card->segment_cnt; i++) { + if (ms_card->segment[i].l2p_table != NULL) { + vfree(ms_card->segment[i].l2p_table); + ms_card->segment[i].l2p_table = NULL; + } + if (ms_card->segment[i].free_table != NULL) { + vfree(ms_card->segment[i].free_table); + ms_card->segment[i].free_table = NULL; + } + } + vfree(ms_card->segment); + ms_card->segment = NULL; + } +} + +#ifdef SUPPORT_MAGIC_GATE + +#ifdef READ_BYTES_WAIT_INT +static int ms_poll_int(struct rtsx_chip *chip) +{ + int retval; + u8 val; + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, CHECK_REG_CMD, MS_TRANS_CFG, MS_INT_CED, MS_INT_CED); + + retval = rtsx_send_cmd(chip, MS_CARD, 5000); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + val = *rtsx_get_cmd_data(chip); + if (val & MS_INT_ERR) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} +#endif + +#ifdef MS_SAMPLE_INT_ERR +static int check_ms_err(struct rtsx_chip *chip) +{ + int retval; + u8 val; + + retval = rtsx_read_register(chip, MS_TRANSFER, &val); + if (retval != STATUS_SUCCESS) + return 1; + if (val & MS_TRANSFER_ERR) + return 1; + + retval = rtsx_read_register(chip, MS_TRANS_CFG, &val); + if (retval != STATUS_SUCCESS) + return 1; + + if (val & (MS_INT_ERR | MS_INT_CMDNK)) + return 1; + + return 0; +} +#else +static int check_ms_err(struct rtsx_chip *chip) +{ + int retval; + u8 val; + + retval = rtsx_read_register(chip, MS_TRANSFER, &val); + if (retval != STATUS_SUCCESS) + return 1; + if (val & MS_TRANSFER_ERR) + return 1; + + return 0; +} +#endif + +static int mg_send_ex_cmd(struct rtsx_chip *chip, u8 cmd, u8 entry_num) +{ + int retval, i; + u8 data[8]; + + data[0] = cmd; + data[1] = 0; + data[2] = 0; + data[3] = 0; + data[4] = 0; + data[5] = 0; + data[6] = entry_num; + data[7] = 0; + + for (i = 0; i < MS_MAX_RETRY_COUNT; i++) { + retval = ms_write_bytes(chip, PRO_EX_SET_CMD, 7, WAIT_INT, data, 8); + if (retval == STATUS_SUCCESS) + break; + } + if (i == MS_MAX_RETRY_COUNT) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (check_ms_err(chip)) { + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int mg_set_tpc_para_sub(struct rtsx_chip *chip, int type, u8 mg_entry_num) +{ + int retval; + u8 buf[6]; + + RTSX_DEBUGP("--%s--\n", __func__); + + if (type == 0) { + retval = ms_set_rw_reg_addr(chip, 0, 0, Pro_TPCParm, 1); + } else { + retval = ms_set_rw_reg_addr(chip, 0, 0, Pro_DataCount1, 6); + } + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + buf[0] = 0; + buf[1] = 0; + if (type == 1) { + buf[2] = 0; + buf[3] = 0; + buf[4] = 0; + buf[5] = mg_entry_num; + } + retval = ms_write_bytes(chip, PRO_WRITE_REG, (type == 0) ? 1 : 6, NO_WAIT_INT, buf, 6); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int mg_set_leaf_id(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + int i; + unsigned int lun = SCSI_LUN(srb); + u8 buf1[32], buf2[12]; + + RTSX_DEBUGP("--%s--\n", __func__); + + if (scsi_bufflen(srb) < 12) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, STATUS_FAIL); + } + + ms_cleanup_work(chip); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = mg_send_ex_cmd(chip, MG_SET_LID, 0); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_ESTAB); + TRACE_RET(chip, STATUS_FAIL); + } + + memset(buf1, 0, 32); + rtsx_stor_get_xfer_buf(buf2, min(12, (int)scsi_bufflen(srb)), srb); + for (i = 0; i < 8; i++) { + buf1[8+i] = buf2[4+i]; + } + retval = ms_write_bytes(chip, PRO_WRITE_SHORT_DATA, 32, WAIT_INT, buf1, 32); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_ESTAB); + TRACE_RET(chip, STATUS_FAIL); + } + if (check_ms_err(chip)) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_ESTAB); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int mg_get_local_EKB(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval = STATUS_FAIL; + int bufflen; + unsigned int lun = SCSI_LUN(srb); + u8 *buf = NULL; + + RTSX_DEBUGP("--%s--\n", __func__); + + ms_cleanup_work(chip); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + buf = (u8 *)rtsx_alloc_dma_buf(chip, 1540, GFP_KERNEL); + if (!buf) { + TRACE_RET(chip, STATUS_ERROR); + } + + buf[0] = 0x04; + buf[1] = 0x1A; + buf[2] = 0x00; + buf[3] = 0x00; + + retval = mg_send_ex_cmd(chip, MG_GET_LEKB, 0); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + TRACE_GOTO(chip, GetEKBFinish); + } + + retval = ms_transfer_data(chip, MS_TM_AUTO_READ, PRO_READ_LONG_DATA, + 3, WAIT_INT, 0, 0, buf + 4, 1536); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + rtsx_clear_ms_error(chip); + TRACE_GOTO(chip, GetEKBFinish); + } + if (check_ms_err(chip)) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + bufflen = min(1052, (int)scsi_bufflen(srb)); + rtsx_stor_set_xfer_buf(buf, bufflen, srb); + +GetEKBFinish: + if (buf) { + rtsx_free_dma_buf(chip, buf); + } + return retval; +} + +int mg_chg(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + int bufflen; + int i; + unsigned int lun = SCSI_LUN(srb); + u8 buf[32]; + + RTSX_DEBUGP("--%s--\n", __func__); + + ms_cleanup_work(chip); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = mg_send_ex_cmd(chip, MG_GET_ID, 0); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_bytes(chip, PRO_READ_SHORT_DATA, 32, WAIT_INT, buf, 32); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM); + TRACE_RET(chip, STATUS_FAIL); + } + if (check_ms_err(chip)) { + set_sense_type(chip, lun, SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + memcpy(ms_card->magic_gate_id, buf, 16); + +#ifdef READ_BYTES_WAIT_INT + retval = ms_poll_int(chip); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + + retval = mg_send_ex_cmd(chip, MG_SET_RD, 0); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM); + TRACE_RET(chip, STATUS_FAIL); + } + + bufflen = min(12, (int)scsi_bufflen(srb)); + rtsx_stor_get_xfer_buf(buf, bufflen, srb); + + for (i = 0; i < 8; i++) { + buf[i] = buf[4+i]; + } + for (i = 0; i < 24; i++) { + buf[8+i] = 0; + } + retval = ms_write_bytes(chip, PRO_WRITE_SHORT_DATA, + 32, WAIT_INT, buf, 32); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM); + TRACE_RET(chip, STATUS_FAIL); + } + if (check_ms_err(chip)) { + set_sense_type(chip, lun, SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + ms_card->mg_auth = 0; + + return STATUS_SUCCESS; +} + +int mg_get_rsp_chg(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + int bufflen; + unsigned int lun = SCSI_LUN(srb); + u8 buf1[32], buf2[36]; + + RTSX_DEBUGP("--%s--\n", __func__); + + ms_cleanup_work(chip); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = mg_send_ex_cmd(chip, MG_MAKE_RMS, 0); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = ms_read_bytes(chip, PRO_READ_SHORT_DATA, 32, WAIT_INT, buf1, 32); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + TRACE_RET(chip, STATUS_FAIL); + } + if (check_ms_err(chip)) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + buf2[0] = 0x00; + buf2[1] = 0x22; + buf2[2] = 0x00; + buf2[3] = 0x00; + + memcpy(buf2 + 4, ms_card->magic_gate_id, 16); + memcpy(buf2 + 20, buf1, 16); + + bufflen = min(36, (int)scsi_bufflen(srb)); + rtsx_stor_set_xfer_buf(buf2, bufflen, srb); + +#ifdef READ_BYTES_WAIT_INT + retval = ms_poll_int(chip); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + + return STATUS_SUCCESS; +} + +int mg_rsp(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + int i; + int bufflen; + unsigned int lun = SCSI_LUN(srb); + u8 buf[32]; + + RTSX_DEBUGP("--%s--\n", __func__); + + ms_cleanup_work(chip); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = mg_send_ex_cmd(chip, MG_MAKE_KSE, 0); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + TRACE_RET(chip, STATUS_FAIL); + } + + bufflen = min(12, (int)scsi_bufflen(srb)); + rtsx_stor_get_xfer_buf(buf, bufflen, srb); + + for (i = 0; i < 8; i++) { + buf[i] = buf[4+i]; + } + for (i = 0; i < 24; i++) { + buf[8+i] = 0; + } + retval = ms_write_bytes(chip, PRO_WRITE_SHORT_DATA, 32, WAIT_INT, buf, 32); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + TRACE_RET(chip, STATUS_FAIL); + } + if (check_ms_err(chip)) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + ms_card->mg_auth = 1; + + return STATUS_SUCCESS; +} + +int mg_get_ICV(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + int bufflen; + unsigned int lun = SCSI_LUN(srb); + u8 *buf = NULL; + + RTSX_DEBUGP("--%s--\n", __func__); + + ms_cleanup_work(chip); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + buf = (u8 *)rtsx_alloc_dma_buf(chip, 1028, GFP_KERNEL); + if (!buf) { + TRACE_RET(chip, STATUS_ERROR); + } + + buf[0] = 0x04; + buf[1] = 0x02; + buf[2] = 0x00; + buf[3] = 0x00; + + retval = mg_send_ex_cmd(chip, MG_GET_IBD, ms_card->mg_entry_num); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_GOTO(chip, GetICVFinish); + } + + retval = ms_transfer_data(chip, MS_TM_AUTO_READ, PRO_READ_LONG_DATA, + 2, WAIT_INT, 0, 0, buf + 4, 1024); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + rtsx_clear_ms_error(chip); + TRACE_GOTO(chip, GetICVFinish); + } + if (check_ms_err(chip)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + rtsx_clear_ms_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + bufflen = min(1028, (int)scsi_bufflen(srb)); + rtsx_stor_set_xfer_buf(buf, bufflen, srb); + +GetICVFinish: + if (buf) { + rtsx_free_dma_buf(chip, buf); + } + return retval; +} + +int mg_set_ICV(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + int bufflen; +#ifdef MG_SET_ICV_SLOW + int i; +#endif + unsigned int lun = SCSI_LUN(srb); + u8 *buf = NULL; + + RTSX_DEBUGP("--%s--\n", __func__); + + ms_cleanup_work(chip); + + retval = ms_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + buf = (u8 *)rtsx_alloc_dma_buf(chip, 1028, GFP_KERNEL); + if (!buf) { + TRACE_RET(chip, STATUS_ERROR); + } + + bufflen = min(1028, (int)scsi_bufflen(srb)); + rtsx_stor_get_xfer_buf(buf, bufflen, srb); + + retval = mg_send_ex_cmd(chip, MG_SET_IBD, ms_card->mg_entry_num); + if (retval != STATUS_SUCCESS) { + if (ms_card->mg_auth == 0) { + if ((buf[5] & 0xC0) != 0) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_ESTAB); + } else { + set_sense_type(chip, lun, SENSE_TYPE_MG_WRITE_ERR); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MG_WRITE_ERR); + } + TRACE_GOTO(chip, SetICVFinish); + } + +#ifdef MG_SET_ICV_SLOW + for (i = 0; i < 2; i++) { + udelay(50); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TPC, 0xFF, PRO_WRITE_LONG_DATA); + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANS_CFG, 0xFF, WAIT_INT); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + + trans_dma_enable(DMA_TO_DEVICE, chip, 512, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, MS_TRANSFER, 0xFF, + MS_TRANSFER_START | MS_TM_NORMAL_WRITE); + rtsx_add_cmd(chip, CHECK_REG_CMD, MS_TRANSFER, MS_TRANSFER_END, MS_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data(chip, MS_CARD, buf + 4 + i*512, 512, 0, DMA_TO_DEVICE, 3000); + if ((retval < 0) || check_ms_err(chip)) { + rtsx_clear_ms_error(chip); + if (ms_card->mg_auth == 0) { + if ((buf[5] & 0xC0) != 0) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_ESTAB); + } else { + set_sense_type(chip, lun, SENSE_TYPE_MG_WRITE_ERR); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MG_WRITE_ERR); + } + retval = STATUS_FAIL; + TRACE_GOTO(chip, SetICVFinish); + } + } +#else + retval = ms_transfer_data(chip, MS_TM_AUTO_WRITE, PRO_WRITE_LONG_DATA, + 2, WAIT_INT, 0, 0, buf + 4, 1024); + if ((retval != STATUS_SUCCESS) || check_ms_err(chip) { + rtsx_clear_ms_error(chip); + if (ms_card->mg_auth == 0) { + if ((buf[5] & 0xC0) != 0) { + set_sense_type(chip, lun, SENSE_TYPE_MG_KEY_FAIL_NOT_ESTAB); + } else { + set_sense_type(chip, lun, SENSE_TYPE_MG_WRITE_ERR); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MG_WRITE_ERR); + } + TRACE_GOTO(chip, SetICVFinish); + } +#endif + +SetICVFinish: + if (buf) { + rtsx_free_dma_buf(chip, buf); + } + return retval; +} + +#endif /* SUPPORT_MAGIC_GATE */ + +void ms_cleanup_work(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + + if (CHK_MSPRO(ms_card)) { + if (ms_card->seq_mode) { + RTSX_DEBUGP("MS Pro: stop transmission\n"); + mspro_stop_seq_mode(chip); + ms_card->cleanup_counter = 0; + } + if (CHK_MSHG(ms_card)) { + rtsx_write_register(chip, MS_CFG, + MS_2K_SECTOR_MODE, 0x00); + } + } +#ifdef MS_DELAY_WRITE + else if ((!CHK_MSPRO(ms_card)) && ms_card->delay_write.delay_write_flag) { + RTSX_DEBUGP("MS: delay write\n"); + ms_delay_write(chip); + ms_card->cleanup_counter = 0; + } +#endif +} + +int ms_power_off_card3v3(struct rtsx_chip *chip) +{ + int retval; + + retval = disable_card_clock(chip, MS_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + if (chip->asic_code) { + retval = ms_pull_ctl_disable(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + RTSX_WRITE_REG(chip, FPGA_PULL_CTL, + FPGA_MS_PULL_CTL_BIT | 0x20, FPGA_MS_PULL_CTL_BIT); + } + RTSX_WRITE_REG(chip, CARD_OE, MS_OUTPUT_EN, 0); + if (!chip->ft2_fast_mode) { + retval = card_power_off(chip, MS_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +int release_ms_card(struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + int retval; + + RTSX_DEBUGP("release_ms_card\n"); + +#ifdef MS_DELAY_WRITE + ms_card->delay_write.delay_write_flag = 0; +#endif + ms_card->pro_under_formatting = 0; + + chip->card_ready &= ~MS_CARD; + chip->card_fail &= ~MS_CARD; + chip->card_wp &= ~MS_CARD; + + ms_free_l2p_tbl(chip); + + memset(ms_card->raw_sys_info, 0, 96); +#ifdef SUPPORT_PCGL_1P18 + memset(ms_card->raw_model_name, 0, 48); +#endif + + retval = ms_power_off_card3v3(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx_card.h +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx_card.h @@ -0,0 +1,1093 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_CARD_H +#define __REALTEK_RTSX_CARD_H + +#include "debug.h" +#include "rtsx.h" +#include "rtsx_chip.h" +#include "rtsx_transport.h" +#include "sd.h" + +#define SSC_POWER_DOWN 0x01 +#define SD_OC_POWER_DOWN 0x02 +#define MS_OC_POWER_DOWN 0x04 +#define ALL_POWER_DOWN 0x07 +#define OC_POWER_DOWN 0x06 + +#define PMOS_STRG_MASK 0x10 +#define PMOS_STRG_800mA 0x10 +#define PMOS_STRG_400mA 0x00 + +#define POWER_OFF 0x03 +#define PARTIAL_POWER_ON 0x01 +#define POWER_ON 0x00 + +#define MS_POWER_OFF 0x0C +#define MS_PARTIAL_POWER_ON 0x04 +#define MS_POWER_ON 0x00 +#define MS_POWER_MASK 0x0C + +#define SD_POWER_OFF 0x03 +#define SD_PARTIAL_POWER_ON 0x01 +#define SD_POWER_ON 0x00 +#define SD_POWER_MASK 0x03 + +#define XD_OUTPUT_EN 0x02 +#define SD_OUTPUT_EN 0x04 +#define MS_OUTPUT_EN 0x08 +#define SPI_OUTPUT_EN 0x10 + +#define CLK_LOW_FREQ 0x01 + +#define CLK_DIV_1 0x01 +#define CLK_DIV_2 0x02 +#define CLK_DIV_4 0x03 +#define CLK_DIV_8 0x04 + +#define SSC_80 0 +#define SSC_100 1 +#define SSC_120 2 +#define SSC_150 3 +#define SSC_200 4 + +#define XD_CLK_EN 0x02 +#define SD_CLK_EN 0x04 +#define MS_CLK_EN 0x08 +#define SPI_CLK_EN 0x10 + +#define XD_MOD_SEL 1 +#define SD_MOD_SEL 2 +#define MS_MOD_SEL 3 +#define SPI_MOD_SEL 4 + +#define CHANGE_CLK 0x01 + +#define SD_CRC7_ERR 0x80 +#define SD_CRC16_ERR 0x40 +#define SD_CRC_WRITE_ERR 0x20 +#define SD_CRC_WRITE_ERR_MASK 0x1C +#define GET_CRC_TIME_OUT 0x02 +#define SD_TUNING_COMPARE_ERR 0x01 + +#define SD_RSP_80CLK_TIMEOUT 0x01 + +#define SD_CLK_TOGGLE_EN 0x80 +#define SD_CLK_FORCE_STOP 0x40 +#define SD_DAT3_STATUS 0x10 +#define SD_DAT2_STATUS 0x08 +#define SD_DAT1_STATUS 0x04 +#define SD_DAT0_STATUS 0x02 +#define SD_CMD_STATUS 0x01 + +#define SD_IO_USING_1V8 0x80 +#define SD_IO_USING_3V3 0x7F +#define TYPE_A_DRIVING 0x00 +#define TYPE_B_DRIVING 0x01 +#define TYPE_C_DRIVING 0x02 +#define TYPE_D_DRIVING 0x03 + +#define DDR_FIX_RX_DAT 0x00 +#define DDR_VAR_RX_DAT 0x80 +#define DDR_FIX_RX_DAT_EDGE 0x00 +#define DDR_FIX_RX_DAT_14_DELAY 0x40 +#define DDR_FIX_RX_CMD 0x00 +#define DDR_VAR_RX_CMD 0x20 +#define DDR_FIX_RX_CMD_POS_EDGE 0x00 +#define DDR_FIX_RX_CMD_14_DELAY 0x10 +#define SD20_RX_POS_EDGE 0x00 +#define SD20_RX_14_DELAY 0x08 +#define SD20_RX_SEL_MASK 0x08 + +#define DDR_FIX_TX_CMD_DAT 0x00 +#define DDR_VAR_TX_CMD_DAT 0x80 +#define DDR_FIX_TX_DAT_14_TSU 0x00 +#define DDR_FIX_TX_DAT_12_TSU 0x40 +#define DDR_FIX_TX_CMD_NEG_EDGE 0x00 +#define DDR_FIX_TX_CMD_14_AHEAD 0x20 +#define SD20_TX_NEG_EDGE 0x00 +#define SD20_TX_14_AHEAD 0x10 +#define SD20_TX_SEL_MASK 0x10 +#define DDR_VAR_SDCLK_POL_SWAP 0x01 + +#define SD_TRANSFER_START 0x80 +#define SD_TRANSFER_END 0x40 +#define SD_STAT_IDLE 0x20 +#define SD_TRANSFER_ERR 0x10 +#define SD_TM_NORMAL_WRITE 0x00 +#define SD_TM_AUTO_WRITE_3 0x01 +#define SD_TM_AUTO_WRITE_4 0x02 +#define SD_TM_AUTO_READ_3 0x05 +#define SD_TM_AUTO_READ_4 0x06 +#define SD_TM_CMD_RSP 0x08 +#define SD_TM_AUTO_WRITE_1 0x09 +#define SD_TM_AUTO_WRITE_2 0x0A +#define SD_TM_NORMAL_READ 0x0C +#define SD_TM_AUTO_READ_1 0x0D +#define SD_TM_AUTO_READ_2 0x0E +#define SD_TM_AUTO_TUNING 0x0F + +#define PHASE_CHANGE 0x80 +#define PHASE_NOT_RESET 0x40 + +#define DCMPS_CHANGE 0x80 +#define DCMPS_CHANGE_DONE 0x40 +#define DCMPS_ERROR 0x20 +#define DCMPS_CURRENT_PHASE 0x1F + +#define SD_CLK_DIVIDE_0 0x00 +#define SD_CLK_DIVIDE_256 0xC0 +#define SD_CLK_DIVIDE_128 0x80 +#define SD_BUS_WIDTH_1 0x00 +#define SD_BUS_WIDTH_4 0x01 +#define SD_BUS_WIDTH_8 0x02 +#define SD_ASYNC_FIFO_NOT_RST 0x10 +#define SD_20_MODE 0x00 +#define SD_DDR_MODE 0x04 +#define SD_30_MODE 0x08 + +#define SD_CLK_DIVIDE_MASK 0xC0 + +#define SD_CMD_IDLE 0x80 + +#define SD_DATA_IDLE 0x80 + +#define DCM_RESET 0x08 +#define DCM_LOCKED 0x04 +#define DCM_208M 0x00 +#define DCM_TX 0x01 +#define DCM_RX 0x02 + +#define DRP_START 0x80 +#define DRP_DONE 0x40 + +#define DRP_WRITE 0x80 +#define DRP_READ 0x00 +#define DCM_WRITE_ADDRESS_50 0x50 +#define DCM_WRITE_ADDRESS_51 0x51 +#define DCM_READ_ADDRESS_00 0x00 +#define DCM_READ_ADDRESS_51 0x51 + +#define SD_CALCULATE_CRC7 0x00 +#define SD_NO_CALCULATE_CRC7 0x80 +#define SD_CHECK_CRC16 0x00 +#define SD_NO_CHECK_CRC16 0x40 +#define SD_NO_CHECK_WAIT_CRC_TO 0x20 +#define SD_WAIT_BUSY_END 0x08 +#define SD_NO_WAIT_BUSY_END 0x00 +#define SD_CHECK_CRC7 0x00 +#define SD_NO_CHECK_CRC7 0x04 +#define SD_RSP_LEN_0 0x00 +#define SD_RSP_LEN_6 0x01 +#define SD_RSP_LEN_17 0x02 +#define SD_RSP_TYPE_R0 0x04 +#define SD_RSP_TYPE_R1 0x01 +#define SD_RSP_TYPE_R1b 0x09 +#define SD_RSP_TYPE_R2 0x02 +#define SD_RSP_TYPE_R3 0x05 +#define SD_RSP_TYPE_R4 0x05 +#define SD_RSP_TYPE_R5 0x01 +#define SD_RSP_TYPE_R6 0x01 +#define SD_RSP_TYPE_R7 0x01 + +#define SD_RSP_80CLK_TIMEOUT_EN 0x01 + +#define SAMPLE_TIME_RISING 0x00 +#define SAMPLE_TIME_FALLING 0x80 +#define PUSH_TIME_DEFAULT 0x00 +#define PUSH_TIME_ODD 0x40 +#define NO_EXTEND_TOGGLE 0x00 +#define EXTEND_TOGGLE_CHK 0x20 +#define MS_BUS_WIDTH_1 0x00 +#define MS_BUS_WIDTH_4 0x10 +#define MS_BUS_WIDTH_8 0x18 +#define MS_2K_SECTOR_MODE 0x04 +#define MS_512_SECTOR_MODE 0x00 +#define MS_TOGGLE_TIMEOUT_EN 0x00 +#define MS_TOGGLE_TIMEOUT_DISEN 0x01 +#define MS_NO_CHECK_INT 0x02 + +#define WAIT_INT 0x80 +#define NO_WAIT_INT 0x00 +#define NO_AUTO_READ_INT_REG 0x00 +#define AUTO_READ_INT_REG 0x40 +#define MS_CRC16_ERR 0x20 +#define MS_RDY_TIMEOUT 0x10 +#define MS_INT_CMDNK 0x08 +#define MS_INT_BREQ 0x04 +#define MS_INT_ERR 0x02 +#define MS_INT_CED 0x01 + +#define MS_TRANSFER_START 0x80 +#define MS_TRANSFER_END 0x40 +#define MS_TRANSFER_ERR 0x20 +#define MS_BS_STATE 0x10 +#define MS_TM_READ_BYTES 0x00 +#define MS_TM_NORMAL_READ 0x01 +#define MS_TM_WRITE_BYTES 0x04 +#define MS_TM_NORMAL_WRITE 0x05 +#define MS_TM_AUTO_READ 0x08 +#define MS_TM_AUTO_WRITE 0x0C + +#define CARD_SHARE_MASK 0x0F +#define CARD_SHARE_MULTI_LUN 0x00 +#define CARD_SHARE_NORMAL 0x00 +#define CARD_SHARE_48_XD 0x02 +#define CARD_SHARE_48_SD 0x04 +#define CARD_SHARE_48_MS 0x08 +#define CARD_SHARE_BAROSSA_XD 0x00 +#define CARD_SHARE_BAROSSA_SD 0x01 +#define CARD_SHARE_BAROSSA_MS 0x02 + +#define MS_DRIVE_8 0x00 +#define MS_DRIVE_4 0x40 +#define MS_DRIVE_12 0x80 +#define SD_DRIVE_8 0x00 +#define SD_DRIVE_4 0x10 +#define SD_DRIVE_12 0x20 +#define XD_DRIVE_8 0x00 +#define XD_DRIVE_4 0x04 +#define XD_DRIVE_12 0x08 + +#define SPI_STOP 0x01 +#define XD_STOP 0x02 +#define SD_STOP 0x04 +#define MS_STOP 0x08 +#define SPI_CLR_ERR 0x10 +#define XD_CLR_ERR 0x20 +#define SD_CLR_ERR 0x40 +#define MS_CLR_ERR 0x80 + +#define CRC_FIX_CLK (0x00 << 0) +#define CRC_VAR_CLK0 (0x01 << 0) +#define CRC_VAR_CLK1 (0x02 << 0) +#define SD30_FIX_CLK (0x00 << 2) +#define SD30_VAR_CLK0 (0x01 << 2) +#define SD30_VAR_CLK1 (0x02 << 2) +#define SAMPLE_FIX_CLK (0x00 << 4) +#define SAMPLE_VAR_CLK0 (0x01 << 4) +#define SAMPLE_VAR_CLK1 (0x02 << 4) + +#define SDIO_VER_20 0x80 +#define SDIO_VER_10 0x00 +#define SDIO_VER_CHG 0x40 +#define SDIO_BUS_AUTO_SWITCH 0x10 + +#define PINGPONG_BUFFER 0x01 +#define RING_BUFFER 0x00 + +#define RB_FLUSH 0x80 + +#define DMA_DONE_INT_EN 0x80 +#define SUSPEND_INT_EN 0x40 +#define LINK_RDY_INT_EN 0x20 +#define LINK_DOWN_INT_EN 0x10 + +#define DMA_DONE_INT 0x80 +#define SUSPEND_INT 0x40 +#define LINK_RDY_INT 0x20 +#define LINK_DOWN_INT 0x10 + +#define MRD_ERR_INT_EN 0x40 +#define MWR_ERR_INT_EN 0x20 +#define SCSI_CMD_INT_EN 0x10 +#define TLP_RCV_INT_EN 0x08 +#define TLP_TRSMT_INT_EN 0x04 +#define MRD_COMPLETE_INT_EN 0x02 +#define MWR_COMPLETE_INT_EN 0x01 + +#define MRD_ERR_INT 0x40 +#define MWR_ERR_INT 0x20 +#define SCSI_CMD_INT 0x10 +#define TLP_RX_INT 0x08 +#define TLP_TX_INT 0x04 +#define MRD_COMPLETE_INT 0x02 +#define MWR_COMPLETE_INT 0x01 + +#define MSG_RX_INT_EN 0x08 +#define MRD_RX_INT_EN 0x04 +#define MWR_RX_INT_EN 0x02 +#define CPLD_RX_INT_EN 0x01 + +#define MSG_RX_INT 0x08 +#define MRD_RX_INT 0x04 +#define MWR_RX_INT 0x02 +#define CPLD_RX_INT 0x01 + +#define MSG_TX_INT_EN 0x08 +#define MRD_TX_INT_EN 0x04 +#define MWR_TX_INT_EN 0x02 +#define CPLD_TX_INT_EN 0x01 + +#define MSG_TX_INT 0x08 +#define MRD_TX_INT 0x04 +#define MWR_TX_INT 0x02 +#define CPLD_TX_INT 0x01 + +#define DMA_RST 0x80 +#define DMA_BUSY 0x04 +#define DMA_DIR_TO_CARD 0x00 +#define DMA_DIR_FROM_CARD 0x02 +#define DMA_EN 0x01 +#define DMA_128 (0 << 4) +#define DMA_256 (1 << 4) +#define DMA_512 (2 << 4) +#define DMA_1024 (3 << 4) +#define DMA_PACK_SIZE_MASK 0x30 + +#define XD_PWR_OFF_DELAY0 0x00 +#define XD_PWR_OFF_DELAY1 0x02 +#define XD_PWR_OFF_DELAY2 0x04 +#define XD_PWR_OFF_DELAY3 0x06 +#define XD_AUTO_PWR_OFF_EN 0xF7 +#define XD_NO_AUTO_PWR_OFF 0x08 + +#define XD_TIME_RWN_1 0x00 +#define XD_TIME_RWN_STEP 0x20 +#define XD_TIME_RW_1 0x00 +#define XD_TIME_RW_STEP 0x04 +#define XD_TIME_SETUP_1 0x00 +#define XD_TIME_SETUP_STEP 0x01 + +#define XD_ECC2_UNCORRECTABLE 0x80 +#define XD_ECC2_ERROR 0x40 +#define XD_ECC1_UNCORRECTABLE 0x20 +#define XD_ECC1_ERROR 0x10 +#define XD_RDY 0x04 +#define XD_CE_EN 0xFD +#define XD_CE_DISEN 0x02 +#define XD_WP_EN 0xFE +#define XD_WP_DISEN 0x01 + +#define XD_TRANSFER_START 0x80 +#define XD_TRANSFER_END 0x40 +#define XD_PPB_EMPTY 0x20 +#define XD_RESET 0x00 +#define XD_ERASE 0x01 +#define XD_READ_STATUS 0x02 +#define XD_READ_ID 0x03 +#define XD_READ_REDUNDANT 0x04 +#define XD_READ_PAGES 0x05 +#define XD_SET_CMD 0x06 +#define XD_NORMAL_READ 0x07 +#define XD_WRITE_PAGES 0x08 +#define XD_NORMAL_WRITE 0x09 +#define XD_WRITE_REDUNDANT 0x0A +#define XD_SET_ADDR 0x0B + +#define XD_PPB_TO_SIE 0x80 +#define XD_TO_PPB_ONLY 0x00 +#define XD_BA_TRANSFORM 0x40 +#define XD_BA_NO_TRANSFORM 0x00 +#define XD_NO_CALC_ECC 0x20 +#define XD_CALC_ECC 0x00 +#define XD_IGNORE_ECC 0x10 +#define XD_CHECK_ECC 0x00 +#define XD_DIRECT_TO_RB 0x08 +#define XD_ADDR_LENGTH_0 0x00 +#define XD_ADDR_LENGTH_1 0x01 +#define XD_ADDR_LENGTH_2 0x02 +#define XD_ADDR_LENGTH_3 0x03 +#define XD_ADDR_LENGTH_4 0x04 + +#define XD_GPG 0xFF +#define XD_BPG 0x00 + +#define XD_GBLK 0xFF +#define XD_LATER_BBLK 0xF0 + +#define XD_ECC2_ALL1 0x80 +#define XD_ECC1_ALL1 0x40 +#define XD_BA2_ALL0 0x20 +#define XD_BA1_ALL0 0x10 +#define XD_BA1_BA2_EQL 0x04 +#define XD_BA2_VALID 0x02 +#define XD_BA1_VALID 0x01 + +#define XD_PGSTS_ZEROBIT_OVER4 0x00 +#define XD_PGSTS_NOT_FF 0x02 +#define XD_AUTO_CHK_DATA_STATUS 0x01 + +#define RSTB_MODE_DETECT 0x80 +#define MODE_OUT_VLD 0x40 +#define MODE_OUT_0_NONE 0x00 +#define MODE_OUT_10_NONE 0x04 +#define MODE_OUT_10_47 0x05 +#define MODE_OUT_10_180 0x06 +#define MODE_OUT_10_680 0x07 +#define MODE_OUT_16_NONE 0x08 +#define MODE_OUT_16_47 0x09 +#define MODE_OUT_16_180 0x0A +#define MODE_OUT_16_680 0x0B +#define MODE_OUT_NONE_NONE 0x0C +#define MODE_OUT_NONE_47 0x0D +#define MODE_OUT_NONE_180 0x0E +#define MODE_OUT_NONE_680 0x0F + +#define CARD_OC_INT_EN 0x20 +#define CARD_DETECT_EN 0x08 + +#define MS_DETECT_EN 0x80 +#define MS_OCP_INT_EN 0x40 +#define MS_OCP_INT_CLR 0x20 +#define MS_OC_CLR 0x10 +#define SD_DETECT_EN 0x08 +#define SD_OCP_INT_EN 0x04 +#define SD_OCP_INT_CLR 0x02 +#define SD_OC_CLR 0x01 + +#define CARD_OCP_DETECT 0x80 +#define CARD_OC_NOW 0x08 +#define CARD_OC_EVER 0x04 + +#define MS_OCP_DETECT 0x80 +#define MS_OC_NOW 0x40 +#define MS_OC_EVER 0x20 +#define SD_OCP_DETECT 0x08 +#define SD_OC_NOW 0x04 +#define SD_OC_EVER 0x02 + +#define CARD_OC_INT_CLR 0x08 +#define CARD_OC_CLR 0x02 + +#define SD_OCP_GLITCH_MASK 0x07 +#define SD_OCP_GLITCH_6_4 0x00 +#define SD_OCP_GLITCH_64 0x01 +#define SD_OCP_GLITCH_640 0x02 +#define SD_OCP_GLITCH_1000 0x03 +#define SD_OCP_GLITCH_2000 0x04 +#define SD_OCP_GLITCH_4000 0x05 +#define SD_OCP_GLITCH_8000 0x06 +#define SD_OCP_GLITCH_10000 0x07 + +#define MS_OCP_GLITCH_MASK 0x70 +#define MS_OCP_GLITCH_6_4 (0x00 << 4) +#define MS_OCP_GLITCH_64 (0x01 << 4) +#define MS_OCP_GLITCH_640 (0x02 << 4) +#define MS_OCP_GLITCH_1000 (0x03 << 4) +#define MS_OCP_GLITCH_2000 (0x04 << 4) +#define MS_OCP_GLITCH_4000 (0x05 << 4) +#define MS_OCP_GLITCH_8000 (0x06 << 4) +#define MS_OCP_GLITCH_10000 (0x07 << 4) + +#define OCP_TIME_60 0x00 +#define OCP_TIME_100 (0x01 << 3) +#define OCP_TIME_200 (0x02 << 3) +#define OCP_TIME_400 (0x03 << 3) +#define OCP_TIME_600 (0x04 << 3) +#define OCP_TIME_800 (0x05 << 3) +#define OCP_TIME_1100 (0x06 << 3) +#define OCP_TIME_MASK 0x38 + +#define MS_OCP_TIME_60 0x00 +#define MS_OCP_TIME_100 (0x01 << 4) +#define MS_OCP_TIME_200 (0x02 << 4) +#define MS_OCP_TIME_400 (0x03 << 4) +#define MS_OCP_TIME_600 (0x04 << 4) +#define MS_OCP_TIME_800 (0x05 << 4) +#define MS_OCP_TIME_1100 (0x06 << 4) +#define MS_OCP_TIME_MASK 0x70 + +#define SD_OCP_TIME_60 0x00 +#define SD_OCP_TIME_100 0x01 +#define SD_OCP_TIME_200 0x02 +#define SD_OCP_TIME_400 0x03 +#define SD_OCP_TIME_600 0x04 +#define SD_OCP_TIME_800 0x05 +#define SD_OCP_TIME_1100 0x06 +#define SD_OCP_TIME_MASK 0x07 + +#define OCP_THD_315_417 0x00 +#define OCP_THD_283_783 (0x01 << 6) +#define OCP_THD_244_946 (0x02 << 6) +#define OCP_THD_191_1080 (0x03 << 6) +#define OCP_THD_MASK 0xC0 + +#define MS_OCP_THD_450 0x00 +#define MS_OCP_THD_550 (0x01 << 4) +#define MS_OCP_THD_650 (0x02 << 4) +#define MS_OCP_THD_750 (0x03 << 4) +#define MS_OCP_THD_850 (0x04 << 4) +#define MS_OCP_THD_950 (0x05 << 4) +#define MS_OCP_THD_1050 (0x06 << 4) +#define MS_OCP_THD_1150 (0x07 << 4) +#define MS_OCP_THD_MASK 0x70 + +#define SD_OCP_THD_450 0x00 +#define SD_OCP_THD_550 0x01 +#define SD_OCP_THD_650 0x02 +#define SD_OCP_THD_750 0x03 +#define SD_OCP_THD_850 0x04 +#define SD_OCP_THD_950 0x05 +#define SD_OCP_THD_1050 0x06 +#define SD_OCP_THD_1150 0x07 +#define SD_OCP_THD_MASK 0x07 + +#define FPGA_MS_PULL_CTL_EN 0xEF +#define FPGA_SD_PULL_CTL_EN 0xF7 +#define FPGA_XD_PULL_CTL_EN1 0xFE +#define FPGA_XD_PULL_CTL_EN2 0xFD +#define FPGA_XD_PULL_CTL_EN3 0xFB + +#define FPGA_MS_PULL_CTL_BIT 0x10 +#define FPGA_SD_PULL_CTL_BIT 0x08 + +#define BLINK_EN 0x08 +#define LED_GPIO0 (0 << 4) +#define LED_GPIO1 (1 << 4) +#define LED_GPIO2 (2 << 4) + +#define SDIO_BUS_CTRL 0x01 +#define SDIO_CD_CTRL 0x02 + +#define SSC_RSTB 0x80 +#define SSC_8X_EN 0x40 +#define SSC_FIX_FRAC 0x20 +#define SSC_SEL_1M 0x00 +#define SSC_SEL_2M 0x08 +#define SSC_SEL_4M 0x10 +#define SSC_SEL_8M 0x18 + +#define SSC_DEPTH_MASK 0x07 +#define SSC_DEPTH_DISALBE 0x00 +#define SSC_DEPTH_4M 0x01 +#define SSC_DEPTH_2M 0x02 +#define SSC_DEPTH_1M 0x03 +#define SSC_DEPTH_512K 0x04 +#define SSC_DEPTH_256K 0x05 +#define SSC_DEPTH_128K 0x06 +#define SSC_DEPTH_64K 0x07 + +#define XD_D3_NP 0x00 +#define XD_D3_PD (0x01 << 6) +#define XD_D3_PU (0x02 << 6) +#define XD_D2_NP 0x00 +#define XD_D2_PD (0x01 << 4) +#define XD_D2_PU (0x02 << 4) +#define XD_D1_NP 0x00 +#define XD_D1_PD (0x01 << 2) +#define XD_D1_PU (0x02 << 2) +#define XD_D0_NP 0x00 +#define XD_D0_PD 0x01 +#define XD_D0_PU 0x02 + +#define SD_D7_NP 0x00 +#define SD_D7_PD (0x01 << 4) +#define SD_DAT7_PU (0x02 << 4) +#define SD_CLK_NP 0x00 +#define SD_CLK_PD (0x01 << 2) +#define SD_CLK_PU (0x02 << 2) +#define SD_D5_NP 0x00 +#define SD_D5_PD 0x01 +#define SD_D5_PU 0x02 + +#define MS_D1_NP 0x00 +#define MS_D1_PD (0x01 << 6) +#define MS_D1_PU (0x02 << 6) +#define MS_D2_NP 0x00 +#define MS_D2_PD (0x01 << 4) +#define MS_D2_PU (0x02 << 4) +#define MS_CLK_NP 0x00 +#define MS_CLK_PD (0x01 << 2) +#define MS_CLK_PU (0x02 << 2) +#define MS_D6_NP 0x00 +#define MS_D6_PD 0x01 +#define MS_D6_PU 0x02 + +#define XD_D7_NP 0x00 +#define XD_D7_PD (0x01 << 6) +#define XD_D7_PU (0x02 << 6) +#define XD_D6_NP 0x00 +#define XD_D6_PD (0x01 << 4) +#define XD_D6_PU (0x02 << 4) +#define XD_D5_NP 0x00 +#define XD_D5_PD (0x01 << 2) +#define XD_D5_PU (0x02 << 2) +#define XD_D4_NP 0x00 +#define XD_D4_PD 0x01 +#define XD_D4_PU 0x02 + +#define SD_D6_NP 0x00 +#define SD_D6_PD (0x01 << 6) +#define SD_D6_PU (0x02 << 6) +#define SD_D0_NP 0x00 +#define SD_D0_PD (0x01 << 4) +#define SD_D0_PU (0x02 << 4) +#define SD_D1_NP 0x00 +#define SD_D1_PD 0x01 +#define SD_D1_PU 0x02 + +#define MS_D3_NP 0x00 +#define MS_D3_PD (0x01 << 6) +#define MS_D3_PU (0x02 << 6) +#define MS_D0_NP 0x00 +#define MS_D0_PD (0x01 << 4) +#define MS_D0_PU (0x02 << 4) +#define MS_BS_NP 0x00 +#define MS_BS_PD (0x01 << 2) +#define MS_BS_PU (0x02 << 2) + +#define XD_WP_NP 0x00 +#define XD_WP_PD (0x01 << 6) +#define XD_WP_PU (0x02 << 6) +#define XD_CE_NP 0x00 +#define XD_CE_PD (0x01 << 3) +#define XD_CE_PU (0x02 << 3) +#define XD_CLE_NP 0x00 +#define XD_CLE_PD (0x01 << 1) +#define XD_CLE_PU (0x02 << 1) +#define XD_CD_PD 0x00 +#define XD_CD_PU 0x01 + +#define SD_D4_NP 0x00 +#define SD_D4_PD (0x01 << 6) +#define SD_D4_PU (0x02 << 6) + +#define MS_D7_NP 0x00 +#define MS_D7_PD (0x01 << 6) +#define MS_D7_PU (0x02 << 6) + +#define XD_RDY_NP 0x00 +#define XD_RDY_PD (0x01 << 6) +#define XD_RDY_PU (0x02 << 6) +#define XD_WE_NP 0x00 +#define XD_WE_PD (0x01 << 4) +#define XD_WE_PU (0x02 << 4) +#define XD_RE_NP 0x00 +#define XD_RE_PD (0x01 << 2) +#define XD_RE_PU (0x02 << 2) +#define XD_ALE_NP 0x00 +#define XD_ALE_PD 0x01 +#define XD_ALE_PU 0x02 + +#define SD_D3_NP 0x00 +#define SD_D3_PD (0x01 << 4) +#define SD_D3_PU (0x02 << 4) +#define SD_D2_NP 0x00 +#define SD_D2_PD (0x01 << 2) +#define SD_D2_PU (0x02 << 2) + +#define MS_INS_PD 0x00 +#define MS_INS_PU (0x01 << 7) +#define SD_WP_NP 0x00 +#define SD_WP_PD (0x01 << 5) +#define SD_WP_PU (0x02 << 5) +#define SD_CD_PD 0x00 +#define SD_CD_PU (0x01 << 4) +#define SD_CMD_NP 0x00 +#define SD_CMD_PD (0x01 << 2) +#define SD_CMD_PU (0x02 << 2) + +#define MS_D5_NP 0x00 +#define MS_D5_PD (0x01 << 2) +#define MS_D5_PU (0x02 << 2) +#define MS_D4_NP 0x00 +#define MS_D4_PD 0x01 +#define MS_D4_PU 0x02 + +#define FORCE_PM_CLOCK 0x10 +#define EN_CLOCK_PM 0x01 + +#define HOST_ENTER_S3 0x02 +#define HOST_ENTER_S1 0x01 + +#define AUX_PWR_DETECTED 0x01 + +#define PHY_DEBUG_MODE 0x01 + +#define SPI_COMMAND_BIT_8 0xE0 +#define SPI_ADDRESS_BIT_24 0x17 +#define SPI_ADDRESS_BIT_32 0x1F + +#define SPI_TRANSFER0_START 0x80 +#define SPI_TRANSFER0_END 0x40 +#define SPI_C_MODE0 0x00 +#define SPI_CA_MODE0 0x01 +#define SPI_CDO_MODE0 0x02 +#define SPI_CDI_MODE0 0x03 +#define SPI_CADO_MODE0 0x04 +#define SPI_CADI_MODE0 0x05 +#define SPI_POLLING_MODE0 0x06 + +#define SPI_TRANSFER1_START 0x80 +#define SPI_TRANSFER1_END 0x40 +#define SPI_DO_MODE1 0x00 +#define SPI_DI_MODE1 0x01 + +#define CS_POLARITY_HIGH 0x40 +#define CS_POLARITY_LOW 0x00 +#define DTO_MSB_FIRST 0x00 +#define DTO_LSB_FIRST 0x20 +#define SPI_MASTER 0x00 +#define SPI_SLAVE 0x10 +#define SPI_MODE0 0x00 +#define SPI_MODE1 0x04 +#define SPI_MODE2 0x08 +#define SPI_MODE3 0x0C +#define SPI_MANUAL 0x00 +#define SPI_HALF_AUTO 0x01 +#define SPI_AUTO 0x02 +#define SPI_EEPROM_AUTO 0x03 + +#define EDO_TIMING_MASK 0x03 +#define SAMPLE_RISING 0x00 +#define SAMPLE_DELAY_HALF 0x01 +#define SAMPLE_DELAY_ONE 0x02 +#define SAPMLE_DELAY_ONE_HALF 0x03 +#define TCS_MASK 0x0C + +#define NOT_BYPASS_SD 0x02 +#define DISABLE_SDIO_FUNC 0x04 +#define SELECT_1LUN 0x08 + +#define PWR_GATE_EN 0x01 +#define LDO3318_PWR_MASK 0x06 +#define LDO_ON 0x00 +#define LDO_SUSPEND 0x04 +#define LDO_OFF 0x06 + +#define SD_CFG1 0xFDA0 +#define SD_CFG2 0xFDA1 +#define SD_CFG3 0xFDA2 +#define SD_STAT1 0xFDA3 +#define SD_STAT2 0xFDA4 +#define SD_BUS_STAT 0xFDA5 +#define SD_PAD_CTL 0xFDA6 +#define SD_SAMPLE_POINT_CTL 0xFDA7 +#define SD_PUSH_POINT_CTL 0xFDA8 +#define SD_CMD0 0xFDA9 +#define SD_CMD1 0xFDAA +#define SD_CMD2 0xFDAB +#define SD_CMD3 0xFDAC +#define SD_CMD4 0xFDAD +#define SD_CMD5 0xFDAE +#define SD_BYTE_CNT_L 0xFDAF +#define SD_BYTE_CNT_H 0xFDB0 +#define SD_BLOCK_CNT_L 0xFDB1 +#define SD_BLOCK_CNT_H 0xFDB2 +#define SD_TRANSFER 0xFDB3 +#define SD_CMD_STATE 0xFDB5 +#define SD_DATA_STATE 0xFDB6 + +#define DCM_DRP_CTL 0xFC23 +#define DCM_DRP_TRIG 0xFC24 +#define DCM_DRP_CFG 0xFC25 +#define DCM_DRP_WR_DATA_L 0xFC26 +#define DCM_DRP_WR_DATA_H 0xFC27 +#define DCM_DRP_RD_DATA_L 0xFC28 +#define DCM_DRP_RD_DATA_H 0xFC29 +#define SD_VPCLK0_CTL 0xFC2A +#define SD_VPCLK1_CTL 0xFC2B +#define SD_DCMPS0_CTL 0xFC2C +#define SD_DCMPS1_CTL 0xFC2D +#define SD_VPTX_CTL SD_VPCLK0_CTL +#define SD_VPRX_CTL SD_VPCLK1_CTL +#define SD_DCMPS_TX_CTL SD_DCMPS0_CTL +#define SD_DCMPS_RX_CTL SD_DCMPS1_CTL + +#define CARD_CLK_SOURCE 0xFC2E + +#define CARD_PWR_CTL 0xFD50 +#define CARD_CLK_SWITCH 0xFD51 +#define CARD_SHARE_MODE 0xFD52 +#define CARD_DRIVE_SEL 0xFD53 +#define CARD_STOP 0xFD54 +#define CARD_OE 0xFD55 +#define CARD_AUTO_BLINK 0xFD56 +#define CARD_GPIO_DIR 0xFD57 +#define CARD_GPIO 0xFD58 + +#define CARD_DATA_SOURCE 0xFD5B +#define CARD_SELECT 0xFD5C +#define SD30_DRIVE_SEL 0xFD5E + +#define CARD_CLK_EN 0xFD69 + +#define SDIO_CTRL 0xFD6B + +#define FPDCTL 0xFC00 +#define PDINFO 0xFC01 + +#define CLK_CTL 0xFC02 +#define CLK_DIV 0xFC03 +#define CLK_SEL 0xFC04 + +#define SSC_DIV_N_0 0xFC0F +#define SSC_DIV_N_1 0xFC10 + +#define RCCTL 0xFC14 + +#define FPGA_PULL_CTL 0xFC1D + +#define CARD_PULL_CTL1 0xFD60 +#define CARD_PULL_CTL2 0xFD61 +#define CARD_PULL_CTL3 0xFD62 +#define CARD_PULL_CTL4 0xFD63 +#define CARD_PULL_CTL5 0xFD64 +#define CARD_PULL_CTL6 0xFD65 + +#define IRQEN0 0xFE20 +#define IRQSTAT0 0xFE21 +#define IRQEN1 0xFE22 +#define IRQSTAT1 0xFE23 +#define TLPRIEN 0xFE24 +#define TLPRISTAT 0xFE25 +#define TLPTIEN 0xFE26 +#define TLPTISTAT 0xFE27 +#define DMATC0 0xFE28 +#define DMATC1 0xFE29 +#define DMATC2 0xFE2A +#define DMATC3 0xFE2B +#define DMACTL 0xFE2C +#define BCTL 0xFE2D +#define RBBC0 0xFE2E +#define RBBC1 0xFE2F +#define RBDAT 0xFE30 +#define RBCTL 0xFE34 +#define CFGADDR0 0xFE35 +#define CFGADDR1 0xFE36 +#define CFGDATA0 0xFE37 +#define CFGDATA1 0xFE38 +#define CFGDATA2 0xFE39 +#define CFGDATA3 0xFE3A +#define CFGRWCTL 0xFE3B +#define PHYRWCTL 0xFE3C +#define PHYDATA0 0xFE3D +#define PHYDATA1 0xFE3E +#define PHYADDR 0xFE3F +#define MSGRXDATA0 0xFE40 +#define MSGRXDATA1 0xFE41 +#define MSGRXDATA2 0xFE42 +#define MSGRXDATA3 0xFE43 +#define MSGTXDATA0 0xFE44 +#define MSGTXDATA1 0xFE45 +#define MSGTXDATA2 0xFE46 +#define MSGTXDATA3 0xFE47 +#define MSGTXCTL 0xFE48 +#define PETXCFG 0xFE49 + +#define CDRESUMECTL 0xFE52 +#define WAKE_SEL_CTL 0xFE54 +#define PME_FORCE_CTL 0xFE56 +#define ASPM_FORCE_CTL 0xFE57 +#define PM_CLK_FORCE_CTL 0xFE58 +#define PERST_GLITCH_WIDTH 0xFE5C +#define CHANGE_LINK_STATE 0xFE5B +#define RESET_LOAD_REG 0xFE5E +#define HOST_SLEEP_STATE 0xFE60 +#define MAIN_PWR_OFF_CTL 0xFE70 /* RTS5208 */ +#define SDIO_CFG 0xFE70 /* RTS5209 */ + +#define NFTS_TX_CTRL 0xFE72 + +#define PWR_GATE_CTRL 0xFE75 +#define PWD_SUSPEND_EN 0xFE76 + +#define EFUSE_CONTENT 0xFE5F + +#define XD_INIT 0xFD10 +#define XD_DTCTL 0xFD11 +#define XD_CTL 0xFD12 +#define XD_TRANSFER 0xFD13 +#define XD_CFG 0xFD14 +#define XD_ADDRESS0 0xFD15 +#define XD_ADDRESS1 0xFD16 +#define XD_ADDRESS2 0xFD17 +#define XD_ADDRESS3 0xFD18 +#define XD_ADDRESS4 0xFD19 +#define XD_DAT 0xFD1A +#define XD_PAGE_CNT 0xFD1B +#define XD_PAGE_STATUS 0xFD1C +#define XD_BLOCK_STATUS 0xFD1D +#define XD_BLOCK_ADDR1_L 0xFD1E +#define XD_BLOCK_ADDR1_H 0xFD1F +#define XD_BLOCK_ADDR2_L 0xFD20 +#define XD_BLOCK_ADDR2_H 0xFD21 +#define XD_BYTE_CNT_L 0xFD22 +#define XD_BYTE_CNT_H 0xFD23 +#define XD_PARITY 0xFD24 +#define XD_ECC_BIT1 0xFD25 +#define XD_ECC_BYTE1 0xFD26 +#define XD_ECC_BIT2 0xFD27 +#define XD_ECC_BYTE2 0xFD28 +#define XD_RESERVED0 0xFD29 +#define XD_RESERVED1 0xFD2A +#define XD_RESERVED2 0xFD2B +#define XD_RESERVED3 0xFD2C +#define XD_CHK_DATA_STATUS 0xFD2D +#define XD_CATCTL 0xFD2E + +#define MS_CFG 0xFD40 +#define MS_TPC 0xFD41 +#define MS_TRANS_CFG 0xFD42 +#define MS_TRANSFER 0xFD43 +#define MS_INT_REG 0xFD44 +#define MS_BYTE_CNT 0xFD45 +#define MS_SECTOR_CNT_L 0xFD46 +#define MS_SECTOR_CNT_H 0xFD47 +#define MS_DBUS_H 0xFD48 + +#define SSC_CTL1 0xFC11 +#define SSC_CTL2 0xFC12 + +#define OCPCTL 0xFC15 +#define OCPSTAT 0xFC16 +#define OCPCLR 0xFC17 /* 5208 */ +#define OCPGLITCH 0xFC17 /* 5209 */ +#define OCPPARA1 0xFC18 +#define OCPPARA2 0xFC19 + +#define EFUSE_OP 0xFC20 +#define EFUSE_CTRL 0xFC21 +#define EFUSE_DATA 0xFC22 + +#define SPI_COMMAND 0xFD80 +#define SPI_ADDR0 0xFD81 +#define SPI_ADDR1 0xFD82 +#define SPI_ADDR2 0xFD83 +#define SPI_ADDR3 0xFD84 +#define SPI_CA_NUMBER 0xFD85 +#define SPI_LENGTH0 0xFD86 +#define SPI_LENGTH1 0xFD87 +#define SPI_DATA 0xFD88 +#define SPI_DATA_NUMBER 0xFD89 +#define SPI_TRANSFER0 0xFD90 +#define SPI_TRANSFER1 0xFD91 +#define SPI_CONTROL 0xFD92 +#define SPI_SIG 0xFD93 +#define SPI_TCTL 0xFD94 +#define SPI_SLAVE_NUM 0xFD95 +#define SPI_CLK_DIVIDER0 0xFD96 +#define SPI_CLK_DIVIDER1 0xFD97 + +#define SRAM_BASE 0xE600 +#define RBUF_BASE 0xF400 +#define PPBUF_BASE1 0xF800 +#define PPBUF_BASE2 0xFA00 +#define IMAGE_FLAG_ADDR0 0xCE80 +#define IMAGE_FLAG_ADDR1 0xCE81 + +#define READ_OP 1 +#define WRITE_OP 2 + +#define LCTLR 0x80 + +#define POLLING_WAIT_CNT 1 +#define IDLE_MAX_COUNT 10 +#define SDIO_IDLE_COUNT 10 + +#define DEBOUNCE_CNT 5 + +void do_remaining_work(struct rtsx_chip *chip); +void try_to_switch_sdio_ctrl(struct rtsx_chip *chip); +void do_reset_sd_card(struct rtsx_chip *chip); +void do_reset_xd_card(struct rtsx_chip *chip); +void do_reset_ms_card(struct rtsx_chip *chip); +void rtsx_power_off_card(struct rtsx_chip *chip); +void rtsx_release_cards(struct rtsx_chip *chip); +void rtsx_reset_cards(struct rtsx_chip *chip); +void rtsx_reinit_cards(struct rtsx_chip *chip, int reset_chip); +void rtsx_init_cards(struct rtsx_chip *chip); +int switch_ssc_clock(struct rtsx_chip *chip, int clk); +int switch_normal_clock(struct rtsx_chip *chip, int clk); +int enable_card_clock(struct rtsx_chip *chip, u8 card); +int disable_card_clock(struct rtsx_chip *chip, u8 card); +int card_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 sec_addr, u16 sec_cnt); +void trans_dma_enable(enum dma_data_direction dir, struct rtsx_chip *chip, u32 byte_cnt, u8 pack_size); +void toggle_gpio(struct rtsx_chip *chip, u8 gpio); +void turn_on_led(struct rtsx_chip *chip, u8 gpio); +void turn_off_led(struct rtsx_chip *chip, u8 gpio); + +int card_share_mode(struct rtsx_chip *chip, int card); +int select_card(struct rtsx_chip *chip, int card); +int detect_card_cd(struct rtsx_chip *chip, int card); +int check_card_exist(struct rtsx_chip *chip, unsigned int lun); +int check_card_ready(struct rtsx_chip *chip, unsigned int lun); +int check_card_wp(struct rtsx_chip *chip, unsigned int lun); +int check_card_fail(struct rtsx_chip *chip, unsigned int lun); +int check_card_ejected(struct rtsx_chip *chip, unsigned int lun); +void eject_card(struct rtsx_chip *chip, unsigned int lun); +u8 get_lun_card(struct rtsx_chip *chip, unsigned int lun); + +static inline u32 get_card_size(struct rtsx_chip *chip, unsigned int lun) +{ +#ifdef SUPPORT_SD_LOCK + struct sd_info *sd_card = &(chip->sd_card); + + if ((get_lun_card(chip, lun) == SD_CARD) && (sd_card->sd_lock_status & SD_LOCKED)) + return 0; + else + return chip->capacity[lun]; +#else + return chip->capacity[lun]; +#endif +} + +static inline int switch_clock(struct rtsx_chip *chip, int clk) +{ + int retval = 0; + + if (chip->asic_code) + retval = switch_ssc_clock(chip, clk); + else + retval = switch_normal_clock(chip, clk); + + return retval; +} + +int card_power_on(struct rtsx_chip *chip, u8 card); +int card_power_off(struct rtsx_chip *chip, u8 card); + +static inline int card_power_off_all(struct rtsx_chip *chip) +{ + RTSX_WRITE_REG(chip, CARD_PWR_CTL, 0x0F, 0x0F); + + return STATUS_SUCCESS; +} + +static inline void rtsx_clear_xd_error(struct rtsx_chip *chip) +{ + rtsx_write_register(chip, CARD_STOP, XD_STOP | XD_CLR_ERR, XD_STOP | XD_CLR_ERR); +} + +static inline void rtsx_clear_sd_error(struct rtsx_chip *chip) +{ + rtsx_write_register(chip, CARD_STOP, SD_STOP | SD_CLR_ERR, SD_STOP | SD_CLR_ERR); +} + +static inline void rtsx_clear_ms_error(struct rtsx_chip *chip) +{ + rtsx_write_register(chip, CARD_STOP, MS_STOP | MS_CLR_ERR, MS_STOP | MS_CLR_ERR); +} + +static inline void rtsx_clear_spi_error(struct rtsx_chip *chip) +{ + rtsx_write_register(chip, CARD_STOP, SPI_STOP | SPI_CLR_ERR, SPI_STOP | SPI_CLR_ERR); +} + +#ifdef SUPPORT_SDIO_ASPM +void dynamic_configure_sdio_aspm(struct rtsx_chip *chip); +#endif + +#endif /* __REALTEK_RTSX_CARD_H */ --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx_transport.h +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx_transport.h @@ -0,0 +1,66 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_TRANSPORT_H +#define __REALTEK_RTSX_TRANSPORT_H + +#include "rtsx.h" +#include "rtsx_chip.h" + +#define WAIT_TIME 2000 + +unsigned int rtsx_stor_access_xfer_buf(unsigned char *buffer, + unsigned int buflen, struct scsi_cmnd *srb, unsigned int *index, + unsigned int *offset, enum xfer_buf_dir dir); +void rtsx_stor_set_xfer_buf(unsigned char *buffer, + unsigned int buflen, struct scsi_cmnd *srb); +void rtsx_stor_get_xfer_buf(unsigned char *buffer, + unsigned int buflen, struct scsi_cmnd *srb); +void rtsx_invoke_transport(struct scsi_cmnd *srb, struct rtsx_chip *chip); + + +#define rtsx_init_cmd(chip) ((chip)->ci = 0) + +void rtsx_add_cmd(struct rtsx_chip *chip, + u8 cmd_type, u16 reg_addr, u8 mask, u8 data); +void rtsx_send_cmd_no_wait(struct rtsx_chip *chip); +int rtsx_send_cmd(struct rtsx_chip *chip, u8 card, int timeout); + +extern inline u8 *rtsx_get_cmd_data(struct rtsx_chip *chip) +{ +#ifdef CMD_USING_SG + return (u8 *)(chip->host_sg_tbl_ptr); +#else + return (u8 *)(chip->host_cmds_ptr); +#endif +} + +int rtsx_transfer_data(struct rtsx_chip *chip, u8 card, void *buf, size_t len, + int use_sg, enum dma_data_direction dma_dir, int timeout); + +int rtsx_transfer_data_partial(struct rtsx_chip *chip, u8 card, void *buf, size_t len, + int use_sg, unsigned int *index, unsigned int *offset, + enum dma_data_direction dma_dir, int timeout); + +#endif /* __REALTEK_RTSX_TRANSPORT_H */ + --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx.h +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx.h @@ -0,0 +1,183 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_H +#define __REALTEK_RTSX_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "debug.h" +#include "trace.h" +#include "general.h" + +#define CR_DRIVER_NAME "rts_pstor" + +#define pci_get_bus_and_slot(bus, devfn) \ + pci_get_domain_bus_and_slot(0, (bus), (devfn)) + +/* + * macros for easy use + */ +#define rtsx_writel(chip, reg, value) \ + iowrite32(value, (chip)->rtsx->remap_addr + reg) +#define rtsx_readl(chip, reg) \ + ioread32((chip)->rtsx->remap_addr + reg) +#define rtsx_writew(chip, reg, value) \ + iowrite16(value, (chip)->rtsx->remap_addr + reg) +#define rtsx_readw(chip, reg) \ + ioread16((chip)->rtsx->remap_addr + reg) +#define rtsx_writeb(chip, reg, value) \ + iowrite8(value, (chip)->rtsx->remap_addr + reg) +#define rtsx_readb(chip, reg) \ + ioread8((chip)->rtsx->remap_addr + reg) + +#define rtsx_read_config_byte(chip, where, val) \ + pci_read_config_byte((chip)->rtsx->pci, where, val) + +#define rtsx_write_config_byte(chip, where, val) \ + pci_write_config_byte((chip)->rtsx->pci, where, val) + +#define wait_timeout_x(task_state, msecs) \ +do { \ + set_current_state((task_state)); \ + schedule_timeout((msecs) * HZ / 1000); \ +} while (0) +#define wait_timeout(msecs) wait_timeout_x(TASK_INTERRUPTIBLE, (msecs)) + + +#define STATE_TRANS_NONE 0 +#define STATE_TRANS_CMD 1 +#define STATE_TRANS_BUF 2 +#define STATE_TRANS_SG 3 + +#define TRANS_NOT_READY 0 +#define TRANS_RESULT_OK 1 +#define TRANS_RESULT_FAIL 2 + +#define SCSI_LUN(srb) ((srb)->device->lun) + +#define rtsx_alloc_dma_buf(chip, size, flag) kmalloc((size), (flag)) +#define rtsx_free_dma_buf(chip, ptr) kfree((ptr)) + +typedef unsigned long DELAY_PARA_T; + +struct rtsx_chip; + +struct rtsx_dev { + struct pci_dev *pci; + + /* pci resources */ + unsigned long addr; + void __iomem *remap_addr; + int irq; + + /* locks */ + spinlock_t reg_lock; + + /* mutual exclusion and synchronization structures */ + struct semaphore sema; /* to sleep thread on */ + struct completion notify; /* thread begin/end */ + wait_queue_head_t delay_wait; /* wait during scan, reset */ + struct mutex dev_mutex; + + /* host reserved buffer */ + void *rtsx_resv_buf; + dma_addr_t rtsx_resv_buf_addr; + + char trans_result; + char trans_state; + + struct completion *done; + /* Whether interrupt handler should care card cd info */ + u32 check_card_cd; + + struct rtsx_chip *chip; +}; + +typedef struct rtsx_dev rtsx_dev_t; + +/* Convert between rtsx_dev and the corresponding Scsi_Host */ +static inline struct Scsi_Host *rtsx_to_host(struct rtsx_dev *dev) +{ + return container_of((void *) dev, struct Scsi_Host, hostdata); +} +static inline struct rtsx_dev *host_to_rtsx(struct Scsi_Host *host) +{ + return (struct rtsx_dev *) host->hostdata; +} + +static inline void get_current_time(u8 *timeval_buf, int buf_len) +{ + struct timeval tv; + + if (!timeval_buf || (buf_len < 8)) + return; + + do_gettimeofday(&tv); + + timeval_buf[0] = (u8)(tv.tv_sec >> 24); + timeval_buf[1] = (u8)(tv.tv_sec >> 16); + timeval_buf[2] = (u8)(tv.tv_sec >> 8); + timeval_buf[3] = (u8)(tv.tv_sec); + timeval_buf[4] = (u8)(tv.tv_usec >> 24); + timeval_buf[5] = (u8)(tv.tv_usec >> 16); + timeval_buf[6] = (u8)(tv.tv_usec >> 8); + timeval_buf[7] = (u8)(tv.tv_usec); +} + +/* The scsi_lock() and scsi_unlock() macros protect the sm_state and the + * single queue element srb for write access */ +#define scsi_unlock(host) spin_unlock_irq(host->host_lock) +#define scsi_lock(host) spin_lock_irq(host->host_lock) + +#define lock_state(chip) spin_lock_irq(&((chip)->rtsx->reg_lock)) +#define unlock_state(chip) spin_unlock_irq(&((chip)->rtsx->reg_lock)) + +/* struct scsi_cmnd transfer buffer access utilities */ +enum xfer_buf_dir {TO_XFER_BUF, FROM_XFER_BUF}; + +int rtsx_read_pci_cfg_byte(u8 bus, u8 dev, u8 func, u8 offset, u8 *val); + +#endif /* __REALTEK_RTSX_H */ --- linux-2.6.38.orig/drivers/staging/rts_pstor/Makefile +++ linux-2.6.38/drivers/staging/rts_pstor/Makefile @@ -0,0 +1,16 @@ +EXTRA_CFLAGS := -Idrivers/scsi + +obj-$(CONFIG_RTS_PSTOR) := rts_pstor.o + +rts_pstor-y := \ + rtsx.o \ + rtsx_chip.o \ + rtsx_transport.o \ + rtsx_scsi.o \ + rtsx_card.o \ + general.o \ + sd.o \ + xd.o \ + ms.o \ + spi.o + --- linux-2.6.38.orig/drivers/staging/rts_pstor/trace.h +++ linux-2.6.38/drivers/staging/rts_pstor/trace.h @@ -0,0 +1,117 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_TRACE_H +#define __REALTEK_RTSX_TRACE_H + +#define _MSG_TRACE + +#ifdef _MSG_TRACE +static inline char *filename(char *path) +{ + char *ptr; + + if (path == NULL) + return NULL; + + ptr = path; + + while (*ptr != '\0') { + if ((*ptr == '\\') || (*ptr == '/')) + path = ptr + 1; + + ptr++; + } + + return path; +} + +#define TRACE_RET(chip, ret) \ +do { \ + char *_file = filename(__FILE__); \ + RTSX_DEBUGP("[%s][%s]:[%d]\n", _file, __func__, __LINE__); \ + (chip)->trace_msg[(chip)->msg_idx].line = (u16)(__LINE__); \ + strncpy((chip)->trace_msg[(chip)->msg_idx].func, __func__, MSG_FUNC_LEN-1); \ + strncpy((chip)->trace_msg[(chip)->msg_idx].file, _file, MSG_FILE_LEN-1); \ + get_current_time((chip)->trace_msg[(chip)->msg_idx].timeval_buf, TIME_VAL_LEN); \ + (chip)->trace_msg[(chip)->msg_idx].valid = 1; \ + (chip)->msg_idx++; \ + if ((chip)->msg_idx >= TRACE_ITEM_CNT) { \ + (chip)->msg_idx = 0; \ + } \ + return ret; \ +} while (0) + +#define TRACE_GOTO(chip, label) \ +do { \ + char *_file = filename(__FILE__); \ + RTSX_DEBUGP("[%s][%s]:[%d]\n", _file, __func__, __LINE__); \ + (chip)->trace_msg[(chip)->msg_idx].line = (u16)(__LINE__); \ + strncpy((chip)->trace_msg[(chip)->msg_idx].func, __func__, MSG_FUNC_LEN-1); \ + strncpy((chip)->trace_msg[(chip)->msg_idx].file, _file, MSG_FILE_LEN-1); \ + get_current_time((chip)->trace_msg[(chip)->msg_idx].timeval_buf, TIME_VAL_LEN); \ + (chip)->trace_msg[(chip)->msg_idx].valid = 1; \ + (chip)->msg_idx++; \ + if ((chip)->msg_idx >= TRACE_ITEM_CNT) { \ + (chip)->msg_idx = 0; \ + } \ + goto label; \ +} while (0) +#else +#define TRACE_RET(chip, ret) return ret +#define TRACE_GOTO(chip, label) goto label +#endif + +#if CONFIG_RTS_PSTOR_DEBUG +static inline void rtsx_dump(u8 *buf, int buf_len) +{ + int i; + u8 tmp[16] = {0}; + u8 *_ptr = buf; + + for (i = 0; i < ((buf_len)/16); i++) { + RTSX_DEBUGP("%02x %02x %02x %02x %02x %02x %02x %02x " + "%02x %02x %02x %02x %02x %02x %02x %02x\n", + _ptr[0], _ptr[1], _ptr[2], _ptr[3], _ptr[4], _ptr[5], + _ptr[6], _ptr[7], _ptr[8], _ptr[9], _ptr[10], _ptr[11], + _ptr[12], _ptr[13], _ptr[14], _ptr[15]); + _ptr += 16; + } + if ((buf_len) % 16) { + memcpy(tmp, _ptr, (buf_len) % 16); + _ptr = tmp; + RTSX_DEBUGP("%02x %02x %02x %02x %02x %02x %02x %02x " + "%02x %02x %02x %02x %02x %02x %02x %02x\n", + _ptr[0], _ptr[1], _ptr[2], _ptr[3], _ptr[4], _ptr[5], + _ptr[6], _ptr[7], _ptr[8], _ptr[9], _ptr[10], _ptr[11], + _ptr[12], _ptr[13], _ptr[14], _ptr[15]); + } +} + +#define RTSX_DUMP(buf, buf_len) rtsx_dump((u8 *)(buf), (buf_len)) + +#else +#define RTSX_DUMP(buf, buf_len) +#endif + +#endif /* __REALTEK_RTSX_TRACE_H */ --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx_transport.c +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx_transport.c @@ -0,0 +1,778 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include +#include +#include + +#include "rtsx.h" +#include "rtsx_scsi.h" +#include "rtsx_transport.h" +#include "rtsx_chip.h" +#include "rtsx_card.h" +#include "debug.h" + +/*********************************************************************** + * Scatter-gather transfer buffer access routines + ***********************************************************************/ + +/* Copy a buffer of length buflen to/from the srb's transfer buffer. + * (Note: for scatter-gather transfers (srb->use_sg > 0), srb->request_buffer + * points to a list of s-g entries and we ignore srb->request_bufflen. + * For non-scatter-gather transfers, srb->request_buffer points to the + * transfer buffer itself and srb->request_bufflen is the buffer's length.) + * Update the *index and *offset variables so that the next copy will + * pick up from where this one left off. */ + +unsigned int rtsx_stor_access_xfer_buf(unsigned char *buffer, + unsigned int buflen, struct scsi_cmnd *srb, unsigned int *index, + unsigned int *offset, enum xfer_buf_dir dir) +{ + unsigned int cnt; + + /* If not using scatter-gather, just transfer the data directly. + * Make certain it will fit in the available buffer space. */ + if (scsi_sg_count(srb) == 0) { + if (*offset >= scsi_bufflen(srb)) + return 0; + cnt = min(buflen, scsi_bufflen(srb) - *offset); + if (dir == TO_XFER_BUF) + memcpy((unsigned char *) scsi_sglist(srb) + *offset, + buffer, cnt); + else + memcpy(buffer, (unsigned char *) scsi_sglist(srb) + + *offset, cnt); + *offset += cnt; + + /* Using scatter-gather. We have to go through the list one entry + * at a time. Each s-g entry contains some number of pages, and + * each page has to be kmap()'ed separately. If the page is already + * in kernel-addressable memory then kmap() will return its address. + * If the page is not directly accessible -- such as a user buffer + * located in high memory -- then kmap() will map it to a temporary + * position in the kernel's virtual address space. */ + } else { + struct scatterlist *sg = + (struct scatterlist *) scsi_sglist(srb) + + *index; + + /* This loop handles a single s-g list entry, which may + * include multiple pages. Find the initial page structure + * and the starting offset within the page, and update + * the *offset and *index values for the next loop. */ + cnt = 0; + while (cnt < buflen && *index < scsi_sg_count(srb)) { + struct page *page = sg_page(sg) + + ((sg->offset + *offset) >> PAGE_SHIFT); + unsigned int poff = + (sg->offset + *offset) & (PAGE_SIZE-1); + unsigned int sglen = sg->length - *offset; + + if (sglen > buflen - cnt) { + + /* Transfer ends within this s-g entry */ + sglen = buflen - cnt; + *offset += sglen; + } else { + + /* Transfer continues to next s-g entry */ + *offset = 0; + ++*index; + ++sg; + } + + /* Transfer the data for all the pages in this + * s-g entry. For each page: call kmap(), do the + * transfer, and call kunmap() immediately after. */ + while (sglen > 0) { + unsigned int plen = min(sglen, (unsigned int) + PAGE_SIZE - poff); + unsigned char *ptr = kmap(page); + + if (dir == TO_XFER_BUF) + memcpy(ptr + poff, buffer + cnt, plen); + else + memcpy(buffer + cnt, ptr + poff, plen); + kunmap(page); + + /* Start at the beginning of the next page */ + poff = 0; + ++page; + cnt += plen; + sglen -= plen; + } + } + } + + /* Return the amount actually transferred */ + return cnt; +} + +/* Store the contents of buffer into srb's transfer buffer and set the +* SCSI residue. */ +void rtsx_stor_set_xfer_buf(unsigned char *buffer, + unsigned int buflen, struct scsi_cmnd *srb) +{ + unsigned int index = 0, offset = 0; + + rtsx_stor_access_xfer_buf(buffer, buflen, srb, &index, &offset, + TO_XFER_BUF); + if (buflen < scsi_bufflen(srb)) + scsi_set_resid(srb, scsi_bufflen(srb) - buflen); +} + +void rtsx_stor_get_xfer_buf(unsigned char *buffer, + unsigned int buflen, struct scsi_cmnd *srb) +{ + unsigned int index = 0, offset = 0; + + rtsx_stor_access_xfer_buf(buffer, buflen, srb, &index, &offset, + FROM_XFER_BUF); + if (buflen < scsi_bufflen(srb)) + scsi_set_resid(srb, scsi_bufflen(srb) - buflen); +} + + +/*********************************************************************** + * Transport routines + ***********************************************************************/ + +/* Invoke the transport and basic error-handling/recovery methods + * + * This is used to send the message to the device and receive the response. + */ +void rtsx_invoke_transport(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int result; + + result = rtsx_scsi_handler(srb, chip); + + /* if the command gets aborted by the higher layers, we need to + * short-circuit all other processing + */ + if (rtsx_chk_stat(chip, RTSX_STAT_ABORT)) { + RTSX_DEBUGP("-- command was aborted\n"); + srb->result = DID_ABORT << 16; + goto Handle_Errors; + } + + /* if there is a transport error, reset and don't auto-sense */ + if (result == TRANSPORT_ERROR) { + RTSX_DEBUGP("-- transport indicates error, resetting\n"); + srb->result = DID_ERROR << 16; + goto Handle_Errors; + } + + srb->result = SAM_STAT_GOOD; + + /* + * If we have a failure, we're going to do a REQUEST_SENSE + * automatically. Note that we differentiate between a command + * "failure" and an "error" in the transport mechanism. + */ + if (result == TRANSPORT_FAILED) { + /* set the result so the higher layers expect this data */ + srb->result = SAM_STAT_CHECK_CONDITION; + memcpy(srb->sense_buffer, + (unsigned char *)&(chip->sense_buffer[SCSI_LUN(srb)]), + sizeof(struct sense_data_t)); + } + + return; + + /* Error and abort processing: try to resynchronize with the device + * by issuing a port reset. If that fails, try a class-specific + * device reset. */ +Handle_Errors: + return; +} + +void rtsx_add_cmd(struct rtsx_chip *chip, + u8 cmd_type, u16 reg_addr, u8 mask, u8 data) +{ + u32 *cb = (u32 *)(chip->host_cmds_ptr); + u32 val = 0; + + val |= (u32)(cmd_type & 0x03) << 30; + val |= (u32)(reg_addr & 0x3FFF) << 16; + val |= (u32)mask << 8; + val |= (u32)data; + + spin_lock_irq(&chip->rtsx->reg_lock); + if (chip->ci < (HOST_CMDS_BUF_LEN / 4)) { + cb[(chip->ci)++] = cpu_to_le32(val); + } + spin_unlock_irq(&chip->rtsx->reg_lock); +} + +void rtsx_send_cmd_no_wait(struct rtsx_chip *chip) +{ + u32 val = 1 << 31; + + rtsx_writel(chip, RTSX_HCBAR, chip->host_cmds_addr); + + val |= (u32)(chip->ci * 4) & 0x00FFFFFF; + /* Hardware Auto Response */ + val |= 0x40000000; + rtsx_writel(chip, RTSX_HCBCTLR, val); +} + +int rtsx_send_cmd(struct rtsx_chip *chip, u8 card, int timeout) +{ + struct rtsx_dev *rtsx = chip->rtsx; + struct completion trans_done; + u32 val = 1 << 31; + long timeleft; + int err = 0; + + if (card == SD_CARD) { + rtsx->check_card_cd = SD_EXIST; + } else if (card == MS_CARD) { + rtsx->check_card_cd = MS_EXIST; + } else if (card == XD_CARD) { + rtsx->check_card_cd = XD_EXIST; + } else { + rtsx->check_card_cd = 0; + } + + spin_lock_irq(&rtsx->reg_lock); + + /* set up data structures for the wakeup system */ + rtsx->done = &trans_done; + rtsx->trans_result = TRANS_NOT_READY; + init_completion(&trans_done); + rtsx->trans_state = STATE_TRANS_CMD; + + rtsx_writel(chip, RTSX_HCBAR, chip->host_cmds_addr); + + val |= (u32)(chip->ci * 4) & 0x00FFFFFF; + /* Hardware Auto Response */ + val |= 0x40000000; + rtsx_writel(chip, RTSX_HCBCTLR, val); + + spin_unlock_irq(&rtsx->reg_lock); + + /* Wait for TRANS_OK_INT */ + timeleft = wait_for_completion_interruptible_timeout( + &trans_done, timeout * HZ / 1000); + if (timeleft <= 0) { + RTSX_DEBUGP("chip->int_reg = 0x%x\n", chip->int_reg); + err = -ETIMEDOUT; + TRACE_GOTO(chip, finish_send_cmd); + } + + spin_lock_irq(&rtsx->reg_lock); + if (rtsx->trans_result == TRANS_RESULT_FAIL) { + err = -EIO; + } else if (rtsx->trans_result == TRANS_RESULT_OK) { + err = 0; + } + spin_unlock_irq(&rtsx->reg_lock); + +finish_send_cmd: + rtsx->done = NULL; + rtsx->trans_state = STATE_TRANS_NONE; + + if (err < 0) + rtsx_stop_cmd(chip, card); + + return err; +} + +static inline void rtsx_add_sg_tbl( + struct rtsx_chip *chip, u32 addr, u32 len, u8 option) +{ + u64 *sgb = (u64 *)(chip->host_sg_tbl_ptr); + u64 val = 0; + u32 temp_len = 0; + u8 temp_opt = 0; + + do { + if (len > 0x80000) { + temp_len = 0x80000; + temp_opt = option & (~SG_END); + } else { + temp_len = len; + temp_opt = option; + } + val = ((u64)addr << 32) | ((u64)temp_len << 12) | temp_opt; + + if (chip->sgi < (HOST_SG_TBL_BUF_LEN / 8)) + sgb[(chip->sgi)++] = cpu_to_le64(val); + + len -= temp_len; + addr += temp_len; + } while (len); +} + +static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card, + struct scatterlist *sg, int num_sg, unsigned int *index, + unsigned int *offset, int size, + enum dma_data_direction dma_dir, int timeout) +{ + struct rtsx_dev *rtsx = chip->rtsx; + struct completion trans_done; + u8 dir; + int sg_cnt, i, resid; + int err = 0; + long timeleft; + u32 val = TRIG_DMA; + + if ((sg == NULL) || (num_sg <= 0) || !offset || !index) + return -EIO; + + if (dma_dir == DMA_TO_DEVICE) { + dir = HOST_TO_DEVICE; + } else if (dma_dir == DMA_FROM_DEVICE) { + dir = DEVICE_TO_HOST; + } else { + return -ENXIO; + } + + if (card == SD_CARD) { + rtsx->check_card_cd = SD_EXIST; + } else if (card == MS_CARD) { + rtsx->check_card_cd = MS_EXIST; + } else if (card == XD_CARD) { + rtsx->check_card_cd = XD_EXIST; + } else { + rtsx->check_card_cd = 0; + } + + spin_lock_irq(&rtsx->reg_lock); + + /* set up data structures for the wakeup system */ + rtsx->done = &trans_done; + + rtsx->trans_state = STATE_TRANS_SG; + rtsx->trans_result = TRANS_NOT_READY; + + spin_unlock_irq(&rtsx->reg_lock); + + sg_cnt = dma_map_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir); + + resid = size; + + chip->sgi = 0; + /* Usually the next entry will be @sg@ + 1, but if this sg element + * is part of a chained scatterlist, it could jump to the start of + * a new scatterlist array. So here we use sg_next to move to + * the proper sg + */ + for (i = 0; i < *index; i++) + sg = sg_next(sg); + for (i = *index; i < sg_cnt; i++) { + dma_addr_t addr; + unsigned int len; + u8 option; + + addr = sg_dma_address(sg); + len = sg_dma_len(sg); + + RTSX_DEBUGP("DMA addr: 0x%x, Len: 0x%x\n", + (unsigned int)addr, len); + RTSX_DEBUGP("*index = %d, *offset = %d\n", *index, *offset); + + addr += *offset; + + if ((len - *offset) > resid) { + *offset += resid; + len = resid; + resid = 0; + } else { + resid -= (len - *offset); + len -= *offset; + *offset = 0; + *index = *index + 1; + } + if ((i == (sg_cnt - 1)) || !resid) { + option = SG_VALID | SG_END | SG_TRANS_DATA; + } else { + option = SG_VALID | SG_TRANS_DATA; + } + + rtsx_add_sg_tbl(chip, (u32)addr, (u32)len, option); + + if (!resid) + break; + + sg = sg_next(sg); + } + + RTSX_DEBUGP("SG table count = %d\n", chip->sgi); + + val |= (u32)(dir & 0x01) << 29; + val |= ADMA_MODE; + + spin_lock_irq(&rtsx->reg_lock); + + init_completion(&trans_done); + + rtsx_writel(chip, RTSX_HDBAR, chip->host_sg_tbl_addr); + rtsx_writel(chip, RTSX_HDBCTLR, val); + + spin_unlock_irq(&rtsx->reg_lock); + + timeleft = wait_for_completion_interruptible_timeout( + &trans_done, timeout * HZ / 1000); + if (timeleft <= 0) { + RTSX_DEBUGP("Timeout (%s %d)\n", __func__, __LINE__); + RTSX_DEBUGP("chip->int_reg = 0x%x\n", chip->int_reg); + err = -ETIMEDOUT; + goto out; + } + + spin_lock_irq(&rtsx->reg_lock); + if (rtsx->trans_result == TRANS_RESULT_FAIL) { + err = -EIO; + spin_unlock_irq(&rtsx->reg_lock); + goto out; + } + spin_unlock_irq(&rtsx->reg_lock); + + /* Wait for TRANS_OK_INT */ + spin_lock_irq(&rtsx->reg_lock); + if (rtsx->trans_result == TRANS_NOT_READY) { + init_completion(&trans_done); + spin_unlock_irq(&rtsx->reg_lock); + timeleft = wait_for_completion_interruptible_timeout( + &trans_done, timeout * HZ / 1000); + if (timeleft <= 0) { + RTSX_DEBUGP("Timeout (%s %d)\n", __func__, __LINE__); + RTSX_DEBUGP("chip->int_reg = 0x%x\n", chip->int_reg); + err = -ETIMEDOUT; + goto out; + } + } else { + spin_unlock_irq(&rtsx->reg_lock); + } + + spin_lock_irq(&rtsx->reg_lock); + if (rtsx->trans_result == TRANS_RESULT_FAIL) { + err = -EIO; + } else if (rtsx->trans_result == TRANS_RESULT_OK) { + err = 0; + } + spin_unlock_irq(&rtsx->reg_lock); + +out: + rtsx->done = NULL; + rtsx->trans_state = STATE_TRANS_NONE; + dma_unmap_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir); + + if (err < 0) + rtsx_stop_cmd(chip, card); + + return err; +} + +static int rtsx_transfer_sglist_adma(struct rtsx_chip *chip, u8 card, + struct scatterlist *sg, int num_sg, + enum dma_data_direction dma_dir, int timeout) +{ + struct rtsx_dev *rtsx = chip->rtsx; + struct completion trans_done; + u8 dir; + int buf_cnt, i; + int err = 0; + long timeleft; + struct scatterlist *sg_ptr; + + if ((sg == NULL) || (num_sg <= 0)) + return -EIO; + + if (dma_dir == DMA_TO_DEVICE) { + dir = HOST_TO_DEVICE; + } else if (dma_dir == DMA_FROM_DEVICE) { + dir = DEVICE_TO_HOST; + } else { + return -ENXIO; + } + + if (card == SD_CARD) { + rtsx->check_card_cd = SD_EXIST; + } else if (card == MS_CARD) { + rtsx->check_card_cd = MS_EXIST; + } else if (card == XD_CARD) { + rtsx->check_card_cd = XD_EXIST; + } else { + rtsx->check_card_cd = 0; + } + + spin_lock_irq(&rtsx->reg_lock); + + /* set up data structures for the wakeup system */ + rtsx->done = &trans_done; + + rtsx->trans_state = STATE_TRANS_SG; + rtsx->trans_result = TRANS_NOT_READY; + + spin_unlock_irq(&rtsx->reg_lock); + + buf_cnt = dma_map_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir); + + sg_ptr = sg; + + for (i = 0; i <= buf_cnt / (HOST_SG_TBL_BUF_LEN / 8); i++) { + u32 val = TRIG_DMA; + int sg_cnt, j; + + if (i == buf_cnt / (HOST_SG_TBL_BUF_LEN / 8)) { + sg_cnt = buf_cnt % (HOST_SG_TBL_BUF_LEN / 8); + } else { + sg_cnt = (HOST_SG_TBL_BUF_LEN / 8); + } + + chip->sgi = 0; + for (j = 0; j < sg_cnt; j++) { + dma_addr_t addr = sg_dma_address(sg_ptr); + unsigned int len = sg_dma_len(sg_ptr); + u8 option; + + RTSX_DEBUGP("DMA addr: 0x%x, Len: 0x%x\n", + (unsigned int)addr, len); + + if (j == (sg_cnt - 1)) { + option = SG_VALID | SG_END | SG_TRANS_DATA; + } else { + option = SG_VALID | SG_TRANS_DATA; + } + + rtsx_add_sg_tbl(chip, (u32)addr, (u32)len, option); + + sg_ptr = sg_next(sg_ptr); + } + + RTSX_DEBUGP("SG table count = %d\n", chip->sgi); + + val |= (u32)(dir & 0x01) << 29; + val |= ADMA_MODE; + + spin_lock_irq(&rtsx->reg_lock); + + init_completion(&trans_done); + + rtsx_writel(chip, RTSX_HDBAR, chip->host_sg_tbl_addr); + rtsx_writel(chip, RTSX_HDBCTLR, val); + + spin_unlock_irq(&rtsx->reg_lock); + + timeleft = wait_for_completion_interruptible_timeout( + &trans_done, timeout * HZ / 1000); + if (timeleft <= 0) { + RTSX_DEBUGP("Timeout (%s %d)\n", __func__, __LINE__); + RTSX_DEBUGP("chip->int_reg = 0x%x\n", chip->int_reg); + err = -ETIMEDOUT; + goto out; + } + + spin_lock_irq(&rtsx->reg_lock); + if (rtsx->trans_result == TRANS_RESULT_FAIL) { + err = -EIO; + spin_unlock_irq(&rtsx->reg_lock); + goto out; + } + spin_unlock_irq(&rtsx->reg_lock); + + sg_ptr += sg_cnt; + } + + /* Wait for TRANS_OK_INT */ + spin_lock_irq(&rtsx->reg_lock); + if (rtsx->trans_result == TRANS_NOT_READY) { + init_completion(&trans_done); + spin_unlock_irq(&rtsx->reg_lock); + timeleft = wait_for_completion_interruptible_timeout( + &trans_done, timeout * HZ / 1000); + if (timeleft <= 0) { + RTSX_DEBUGP("Timeout (%s %d)\n", __func__, __LINE__); + RTSX_DEBUGP("chip->int_reg = 0x%x\n", chip->int_reg); + err = -ETIMEDOUT; + goto out; + } + } else { + spin_unlock_irq(&rtsx->reg_lock); + } + + spin_lock_irq(&rtsx->reg_lock); + if (rtsx->trans_result == TRANS_RESULT_FAIL) { + err = -EIO; + } else if (rtsx->trans_result == TRANS_RESULT_OK) { + err = 0; + } + spin_unlock_irq(&rtsx->reg_lock); + +out: + rtsx->done = NULL; + rtsx->trans_state = STATE_TRANS_NONE; + dma_unmap_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir); + + if (err < 0) + rtsx_stop_cmd(chip, card); + + return err; +} + +static int rtsx_transfer_buf(struct rtsx_chip *chip, u8 card, void *buf, size_t len, + enum dma_data_direction dma_dir, int timeout) +{ + struct rtsx_dev *rtsx = chip->rtsx; + struct completion trans_done; + dma_addr_t addr; + u8 dir; + int err = 0; + u32 val = (1 << 31); + long timeleft; + + if ((buf == NULL) || (len <= 0)) + return -EIO; + + if (dma_dir == DMA_TO_DEVICE) { + dir = HOST_TO_DEVICE; + } else if (dma_dir == DMA_FROM_DEVICE) { + dir = DEVICE_TO_HOST; + } else { + return -ENXIO; + } + + addr = dma_map_single(&(rtsx->pci->dev), buf, len, dma_dir); + if (!addr) + return -ENOMEM; + + if (card == SD_CARD) { + rtsx->check_card_cd = SD_EXIST; + } else if (card == MS_CARD) { + rtsx->check_card_cd = MS_EXIST; + } else if (card == XD_CARD) { + rtsx->check_card_cd = XD_EXIST; + } else { + rtsx->check_card_cd = 0; + } + + val |= (u32)(dir & 0x01) << 29; + val |= (u32)(len & 0x00FFFFFF); + + spin_lock_irq(&rtsx->reg_lock); + + /* set up data structures for the wakeup system */ + rtsx->done = &trans_done; + + init_completion(&trans_done); + + rtsx->trans_state = STATE_TRANS_BUF; + rtsx->trans_result = TRANS_NOT_READY; + + rtsx_writel(chip, RTSX_HDBAR, addr); + rtsx_writel(chip, RTSX_HDBCTLR, val); + + spin_unlock_irq(&rtsx->reg_lock); + + /* Wait for TRANS_OK_INT */ + timeleft = wait_for_completion_interruptible_timeout( + &trans_done, timeout * HZ / 1000); + if (timeleft <= 0) { + RTSX_DEBUGP("Timeout (%s %d)\n", __func__, __LINE__); + RTSX_DEBUGP("chip->int_reg = 0x%x\n", chip->int_reg); + err = -ETIMEDOUT; + goto out; + } + + spin_lock_irq(&rtsx->reg_lock); + if (rtsx->trans_result == TRANS_RESULT_FAIL) { + err = -EIO; + } else if (rtsx->trans_result == TRANS_RESULT_OK) { + err = 0; + } + spin_unlock_irq(&rtsx->reg_lock); + +out: + rtsx->done = NULL; + rtsx->trans_state = STATE_TRANS_NONE; + dma_unmap_single(&(rtsx->pci->dev), addr, len, dma_dir); + + if (err < 0) + rtsx_stop_cmd(chip, card); + + return err; +} + +int rtsx_transfer_data_partial(struct rtsx_chip *chip, u8 card, + void *buf, size_t len, int use_sg, unsigned int *index, + unsigned int *offset, enum dma_data_direction dma_dir, + int timeout) +{ + int err = 0; + + /* don't transfer data during abort processing */ + if (rtsx_chk_stat(chip, RTSX_STAT_ABORT)) + return -EIO; + + if (use_sg) { + err = rtsx_transfer_sglist_adma_partial(chip, card, + (struct scatterlist *)buf, use_sg, + index, offset, (int)len, dma_dir, timeout); + } else { + err = rtsx_transfer_buf(chip, card, + buf, len, dma_dir, timeout); + } + + if (err < 0) { + if (RTSX_TST_DELINK(chip)) { + RTSX_CLR_DELINK(chip); + chip->need_reinit = SD_CARD | MS_CARD | XD_CARD; + rtsx_reinit_cards(chip, 1); + } + } + + return err; +} + +int rtsx_transfer_data(struct rtsx_chip *chip, u8 card, void *buf, size_t len, + int use_sg, enum dma_data_direction dma_dir, int timeout) +{ + int err = 0; + + RTSX_DEBUGP("use_sg = %d\n", use_sg); + + /* don't transfer data during abort processing */ + if (rtsx_chk_stat(chip, RTSX_STAT_ABORT)) + return -EIO; + + if (use_sg) { + err = rtsx_transfer_sglist_adma(chip, card, + (struct scatterlist *)buf, + use_sg, dma_dir, timeout); + } else { + err = rtsx_transfer_buf(chip, card, buf, len, dma_dir, timeout); + } + + if (err < 0) { + if (RTSX_TST_DELINK(chip)) { + RTSX_CLR_DELINK(chip); + chip->need_reinit = SD_CARD | MS_CARD | XD_CARD; + rtsx_reinit_cards(chip, 1); + } + } + + return err; +} + --- linux-2.6.38.orig/drivers/staging/rts_pstor/spi.c +++ linux-2.6.38/drivers/staging/rts_pstor/spi.c @@ -0,0 +1,812 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include +#include +#include + +#include "rtsx.h" +#include "rtsx_transport.h" +#include "rtsx_scsi.h" +#include "rtsx_card.h" +#include "spi.h" + +static inline void spi_set_err_code(struct rtsx_chip *chip, u8 err_code) +{ + struct spi_info *spi = &(chip->spi); + + spi->err_code = err_code; +} + +static int spi_init(struct rtsx_chip *chip) +{ + RTSX_WRITE_REG(chip, SPI_CONTROL, 0xFF, + CS_POLARITY_LOW | DTO_MSB_FIRST | SPI_MASTER | SPI_MODE0 | SPI_AUTO); + RTSX_WRITE_REG(chip, SPI_TCTL, EDO_TIMING_MASK, SAMPLE_DELAY_HALF); + + return STATUS_SUCCESS; +} + +static int spi_set_init_para(struct rtsx_chip *chip) +{ + struct spi_info *spi = &(chip->spi); + int retval; + + RTSX_WRITE_REG(chip, SPI_CLK_DIVIDER1, 0xFF, (u8)(spi->clk_div >> 8)); + RTSX_WRITE_REG(chip, SPI_CLK_DIVIDER0, 0xFF, (u8)(spi->clk_div)); + + retval = switch_clock(chip, spi->spi_clock); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = select_card(chip, SPI_CARD); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + RTSX_WRITE_REG(chip, CARD_CLK_EN, SPI_CLK_EN, SPI_CLK_EN); + RTSX_WRITE_REG(chip, CARD_OE, SPI_OUTPUT_EN, SPI_OUTPUT_EN); + + wait_timeout(10); + + retval = spi_init(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + return STATUS_SUCCESS; +} + +static int sf_polling_status(struct rtsx_chip *chip, int msec) +{ + int retval; + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, SPI_RDSR); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_POLLING_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, msec); + if (retval < 0) { + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_BUSY_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sf_enable_write(struct rtsx_chip *chip, u8 ins) +{ + struct spi_info *spi = &(chip->spi); + int retval; + + if (!spi->write_en) + return STATUS_SUCCESS; + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, ins); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, SPI_COMMAND_BIT_8 | SPI_ADDRESS_BIT_24); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_C_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) { + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sf_disable_write(struct rtsx_chip *chip, u8 ins) +{ + struct spi_info *spi = &(chip->spi); + int retval; + + if (!spi->write_en) + return STATUS_SUCCESS; + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, ins); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, SPI_COMMAND_BIT_8 | SPI_ADDRESS_BIT_24); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_C_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) { + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static void sf_program(struct rtsx_chip *chip, u8 ins, u8 addr_mode, u32 addr, u16 len) +{ + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, ins); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, SPI_COMMAND_BIT_8 | SPI_ADDRESS_BIT_24); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_LENGTH0, 0xFF, (u8)len); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_LENGTH1, 0xFF, (u8)(len >> 8)); + if (addr_mode) { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR0, 0xFF, (u8)addr); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR1, 0xFF, (u8)(addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR2, 0xFF, (u8)(addr >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CADO_MODE0); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CDO_MODE0); + } + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); +} + +static int sf_erase(struct rtsx_chip *chip, u8 ins, u8 addr_mode, u32 addr) +{ + int retval; + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, ins); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, SPI_COMMAND_BIT_8 | SPI_ADDRESS_BIT_24); + if (addr_mode) { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR0, 0xFF, (u8)addr); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR1, 0xFF, (u8)(addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR2, 0xFF, (u8)(addr >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CA_MODE0); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_C_MODE0); + } + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) { + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int spi_init_eeprom(struct rtsx_chip *chip) +{ + int retval; + int clk; + + if (chip->asic_code) + clk = 30; + else + clk = CLK_30; + + RTSX_WRITE_REG(chip, SPI_CLK_DIVIDER1, 0xFF, 0x00); + RTSX_WRITE_REG(chip, SPI_CLK_DIVIDER0, 0xFF, 0x27); + + retval = switch_clock(chip, clk); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = select_card(chip, SPI_CARD); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + RTSX_WRITE_REG(chip, CARD_CLK_EN, SPI_CLK_EN, SPI_CLK_EN); + RTSX_WRITE_REG(chip, CARD_OE, SPI_OUTPUT_EN, SPI_OUTPUT_EN); + + wait_timeout(10); + + RTSX_WRITE_REG(chip, SPI_CONTROL, 0xFF, CS_POLARITY_HIGH | SPI_EEPROM_AUTO); + RTSX_WRITE_REG(chip, SPI_TCTL, EDO_TIMING_MASK, SAMPLE_DELAY_HALF); + + return STATUS_SUCCESS; +} + +static int spi_eeprom_program_enable(struct rtsx_chip *chip) +{ + int retval; + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, 0x86); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, 0x13); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CA_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + return STATUS_SUCCESS; +} + +int spi_erase_eeprom_chip(struct rtsx_chip *chip) +{ + int retval; + + retval = spi_init_eeprom(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = spi_eeprom_program_enable(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_GPIO_DIR, 0x01, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, 0x12); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, 0x84); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CA_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + RTSX_WRITE_REG(chip, CARD_GPIO_DIR, 0x01, 0x01); + + return STATUS_SUCCESS; +} + +int spi_erase_eeprom_byte(struct rtsx_chip *chip, u16 addr) +{ + int retval; + + retval = spi_init_eeprom(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = spi_eeprom_program_enable(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_GPIO_DIR, 0x01, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, 0x07); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR0, 0xFF, (u8)addr); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR1, 0xFF, (u8)(addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, 0x46); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CA_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + RTSX_WRITE_REG(chip, CARD_GPIO_DIR, 0x01, 0x01); + + return STATUS_SUCCESS; +} + + +int spi_read_eeprom(struct rtsx_chip *chip, u16 addr, u8 *val) +{ + int retval; + u8 data; + + retval = spi_init_eeprom(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_GPIO_DIR, 0x01, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, 0x06); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR0, 0xFF, (u8)addr); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR1, 0xFF, (u8)(addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, 0x46); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_LENGTH0, 0xFF, 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CADI_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + wait_timeout(5); + RTSX_READ_REG(chip, SPI_DATA, &data); + + if (val) + *val = data; + + RTSX_WRITE_REG(chip, CARD_GPIO_DIR, 0x01, 0x01); + + return STATUS_SUCCESS; +} + +int spi_write_eeprom(struct rtsx_chip *chip, u16 addr, u8 val) +{ + int retval; + + retval = spi_init_eeprom(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = spi_eeprom_program_enable(chip); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_GPIO_DIR, 0x01, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, 0x05); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR0, 0xFF, val); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR1, 0xFF, (u8)addr); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR2, 0xFF, (u8)(addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, 0x4E); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CA_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) + TRACE_RET(chip, STATUS_FAIL); + + RTSX_WRITE_REG(chip, CARD_GPIO_DIR, 0x01, 0x01); + + return STATUS_SUCCESS; +} + + +int spi_get_status(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct spi_info *spi = &(chip->spi); + + RTSX_DEBUGP("spi_get_status: err_code = 0x%x\n", spi->err_code); + rtsx_stor_set_xfer_buf(&(spi->err_code), min((int)scsi_bufflen(srb), 1), srb); + scsi_set_resid(srb, scsi_bufflen(srb) - 1); + + return STATUS_SUCCESS; +} + +int spi_set_parameter(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct spi_info *spi = &(chip->spi); + + spi_set_err_code(chip, SPI_NO_ERR); + + if (chip->asic_code) + spi->spi_clock = ((u16)(srb->cmnd[8]) << 8) | srb->cmnd[9]; + else + spi->spi_clock = srb->cmnd[3]; + + spi->clk_div = ((u16)(srb->cmnd[4]) << 8) | srb->cmnd[5]; + spi->write_en = srb->cmnd[6]; + + RTSX_DEBUGP("spi_set_parameter: spi_clock = %d, clk_div = %d, write_en = %d\n", + spi->spi_clock, spi->clk_div, spi->write_en); + + return STATUS_SUCCESS; +} + +int spi_read_flash_id(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + u16 len; + u8 *buf; + + spi_set_err_code(chip, SPI_NO_ERR); + + len = ((u16)(srb->cmnd[7]) << 8) | srb->cmnd[8]; + if (len > 512) { + spi_set_err_code(chip, SPI_INVALID_COMMAND); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = spi_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, srb->cmnd[3]); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR2, 0xFF, srb->cmnd[4]); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR1, 0xFF, srb->cmnd[5]); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR0, 0xFF, srb->cmnd[6]); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, SPI_COMMAND_BIT_8 | SPI_ADDRESS_BIT_24); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_LENGTH1, 0xFF, srb->cmnd[7]); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_LENGTH0, 0xFF, srb->cmnd[8]); + + if (len == 0) { + if (srb->cmnd[9]) { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, + 0xFF, SPI_TRANSFER0_START | SPI_CA_MODE0); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, + 0xFF, SPI_TRANSFER0_START | SPI_C_MODE0); + } + } else { + if (srb->cmnd[9]) { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, + 0xFF, SPI_TRANSFER0_START | SPI_CADI_MODE0); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, + 0xFF, SPI_TRANSFER0_START | SPI_CDI_MODE0); + } + } + + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) { + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + if (len) { + buf = (u8 *)kmalloc(len, GFP_KERNEL); + if (!buf) + TRACE_RET(chip, STATUS_ERROR); + + retval = rtsx_read_ppbuf(chip, buf, len); + if (retval != STATUS_SUCCESS) { + spi_set_err_code(chip, SPI_READ_ERR); + kfree(buf); + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_stor_set_xfer_buf(buf, scsi_bufflen(srb), srb); + scsi_set_resid(srb, 0); + + kfree(buf); + } + + return STATUS_SUCCESS; +} + +int spi_read_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + unsigned int index = 0, offset = 0; + u8 ins, slow_read; + u32 addr; + u16 len; + u8 *buf; + + spi_set_err_code(chip, SPI_NO_ERR); + + ins = srb->cmnd[3]; + addr = ((u32)(srb->cmnd[4]) << 16) | ((u32)(srb->cmnd[5]) << 8) | srb->cmnd[6]; + len = ((u16)(srb->cmnd[7]) << 8) | srb->cmnd[8]; + slow_read = srb->cmnd[9]; + + retval = spi_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + buf = (u8 *)rtsx_alloc_dma_buf(chip, SF_PAGE_LEN, GFP_KERNEL); + if (buf == NULL) + TRACE_RET(chip, STATUS_ERROR); + + while (len) { + u16 pagelen = SF_PAGE_LEN - (u8)addr; + + if (pagelen > len) + pagelen = len; + + rtsx_init_cmd(chip); + + trans_dma_enable(DMA_FROM_DEVICE, chip, 256, DMA_256); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, ins); + + if (slow_read) { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR0, 0xFF, (u8)addr); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR1, 0xFF, (u8)(addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR2, 0xFF, (u8)(addr >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, SPI_COMMAND_BIT_8 | SPI_ADDRESS_BIT_24); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR1, 0xFF, (u8)addr); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR2, 0xFF, (u8)(addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_ADDR3, 0xFF, (u8)(addr >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, SPI_COMMAND_BIT_8 | SPI_ADDRESS_BIT_32); + } + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_LENGTH1, 0xFF, (u8)(pagelen >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_LENGTH0, 0xFF, (u8)pagelen); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CADI_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data(chip, 0, buf, pagelen, 0, DMA_FROM_DEVICE, 10000); + if (retval < 0) { + rtsx_free_dma_buf(chip, buf); + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_stor_access_xfer_buf(buf, pagelen, srb, &index, &offset, TO_XFER_BUF); + + addr += pagelen; + len -= pagelen; + } + + scsi_set_resid(srb, 0); + rtsx_free_dma_buf(chip, buf); + + return STATUS_SUCCESS; +} + +int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + u8 ins, program_mode; + u32 addr; + u16 len; + u8 *buf; + unsigned int index = 0, offset = 0; + + spi_set_err_code(chip, SPI_NO_ERR); + + ins = srb->cmnd[3]; + addr = ((u32)(srb->cmnd[4]) << 16) | ((u32)(srb->cmnd[5]) << 8) | srb->cmnd[6]; + len = ((u16)(srb->cmnd[7]) << 8) | srb->cmnd[8]; + program_mode = srb->cmnd[9]; + + retval = spi_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + if (program_mode == BYTE_PROGRAM) { + buf = rtsx_alloc_dma_buf(chip, 4, GFP_KERNEL); + if (!buf) + TRACE_RET(chip, STATUS_ERROR); + + while (len) { + retval = sf_enable_write(chip, SPI_WREN); + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_stor_access_xfer_buf(buf, 1, srb, &index, &offset, FROM_XFER_BUF); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, PPBUF_BASE2, 0xFF, buf[0]); + sf_program(chip, ins, 1, addr, 1); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) { + rtsx_free_dma_buf(chip, buf); + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sf_polling_status(chip, 100); + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + addr++; + len--; + } + + rtsx_free_dma_buf(chip, buf); + + } else if (program_mode == AAI_PROGRAM) { + int first_byte = 1; + + retval = sf_enable_write(chip, SPI_WREN); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + buf = rtsx_alloc_dma_buf(chip, 4, GFP_KERNEL); + if (!buf) + TRACE_RET(chip, STATUS_ERROR); + + while (len) { + rtsx_stor_access_xfer_buf(buf, 1, srb, &index, &offset, FROM_XFER_BUF); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, PPBUF_BASE2, 0xFF, buf[0]); + if (first_byte) { + sf_program(chip, ins, 1, addr, 1); + first_byte = 0; + } else { + sf_program(chip, ins, 0, 0, 1); + } + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval < 0) { + rtsx_free_dma_buf(chip, buf); + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sf_polling_status(chip, 100); + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + len--; + } + + rtsx_free_dma_buf(chip, buf); + + retval = sf_disable_write(chip, SPI_WRDI); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = sf_polling_status(chip, 100); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + } else if (program_mode == PAGE_PROGRAM) { + buf = rtsx_alloc_dma_buf(chip, SF_PAGE_LEN, GFP_KERNEL); + if (!buf) + TRACE_RET(chip, STATUS_NOMEM); + + while (len) { + u16 pagelen = SF_PAGE_LEN - (u8)addr; + + if (pagelen > len) + pagelen = len; + + retval = sf_enable_write(chip, SPI_WREN); + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_init_cmd(chip); + + trans_dma_enable(DMA_TO_DEVICE, chip, 256, DMA_256); + sf_program(chip, ins, 1, addr, pagelen); + + rtsx_send_cmd_no_wait(chip); + + rtsx_stor_access_xfer_buf(buf, pagelen, srb, &index, &offset, FROM_XFER_BUF); + + retval = rtsx_transfer_data(chip, 0, buf, pagelen, 0, DMA_TO_DEVICE, 100); + if (retval < 0) { + rtsx_free_dma_buf(chip, buf); + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sf_polling_status(chip, 100); + if (retval != STATUS_SUCCESS) { + rtsx_free_dma_buf(chip, buf); + TRACE_RET(chip, STATUS_FAIL); + } + + addr += pagelen; + len -= pagelen; + } + + rtsx_free_dma_buf(chip, buf); + } else { + spi_set_err_code(chip, SPI_INVALID_COMMAND); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int spi_erase_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + u8 ins, erase_mode; + u32 addr; + + spi_set_err_code(chip, SPI_NO_ERR); + + ins = srb->cmnd[3]; + addr = ((u32)(srb->cmnd[4]) << 16) | ((u32)(srb->cmnd[5]) << 8) | srb->cmnd[6]; + erase_mode = srb->cmnd[9]; + + retval = spi_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + if (erase_mode == PAGE_ERASE) { + retval = sf_enable_write(chip, SPI_WREN); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = sf_erase(chip, ins, 1, addr); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + } else if (erase_mode == CHIP_ERASE) { + retval = sf_enable_write(chip, SPI_WREN); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + retval = sf_erase(chip, ins, 0, 0); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + } else { + spi_set_err_code(chip, SPI_INVALID_COMMAND); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int spi_write_flash_status(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + u8 ins, status, ewsr; + + ins = srb->cmnd[3]; + status = srb->cmnd[4]; + ewsr = srb->cmnd[5]; + + retval = spi_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sf_enable_write(chip, ewsr); + if (retval != STATUS_SUCCESS) + TRACE_RET(chip, STATUS_FAIL); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_COMMAND, 0xFF, ins); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_CA_NUMBER, 0xFF, SPI_COMMAND_BIT_8 | SPI_ADDRESS_BIT_24); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_LENGTH1, 0xFF, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_LENGTH0, 0xFF, 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, PPBUF_BASE2, 0xFF, status); + rtsx_add_cmd(chip, WRITE_REG_CMD, SPI_TRANSFER0, 0xFF, SPI_TRANSFER0_START | SPI_CDO_MODE0); + rtsx_add_cmd(chip, CHECK_REG_CMD, SPI_TRANSFER0, SPI_TRANSFER0_END, SPI_TRANSFER0_END); + + retval = rtsx_send_cmd(chip, 0, 100); + if (retval != STATUS_SUCCESS) { + rtsx_clear_spi_error(chip); + spi_set_err_code(chip, SPI_HW_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + --- linux-2.6.38.orig/drivers/staging/rts_pstor/debug.h +++ linux-2.6.38/drivers/staging/rts_pstor/debug.h @@ -0,0 +1,43 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_DEBUG_H +#define __REALTEK_RTSX_DEBUG_H + +#include + +#define RTSX_STOR "rts_pstor: " + +#if CONFIG_RTS_PSTOR_DEBUG +#define RTSX_DEBUGP(x...) printk(KERN_DEBUG RTSX_STOR x) +#define RTSX_DEBUGPN(x...) printk(KERN_DEBUG x) +#define RTSX_DEBUGPX(x...) printk(x) +#define RTSX_DEBUG(x) x +#else +#define RTSX_DEBUGP(x...) +#define RTSX_DEBUGPN(x...) +#define RTSX_DEBUGPX(x...) +#define RTSX_DEBUG(x) +#endif + +#endif /* __REALTEK_RTSX_DEBUG_H */ --- linux-2.6.38.orig/drivers/staging/rts_pstor/spi.h +++ linux-2.6.38/drivers/staging/rts_pstor/spi.h @@ -0,0 +1,65 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_SPI_H +#define __REALTEK_RTSX_SPI_H + +/* SPI operation error */ +#define SPI_NO_ERR 0x00 +#define SPI_HW_ERR 0x01 +#define SPI_INVALID_COMMAND 0x02 +#define SPI_READ_ERR 0x03 +#define SPI_WRITE_ERR 0x04 +#define SPI_ERASE_ERR 0x05 +#define SPI_BUSY_ERR 0x06 + +/* Serial flash instruction */ +#define SPI_READ 0x03 +#define SPI_FAST_READ 0x0B +#define SPI_WREN 0x06 +#define SPI_WRDI 0x04 +#define SPI_RDSR 0x05 + +#define SF_PAGE_LEN 256 + +#define BYTE_PROGRAM 0 +#define AAI_PROGRAM 1 +#define PAGE_PROGRAM 2 + +#define PAGE_ERASE 0 +#define CHIP_ERASE 1 + +int spi_erase_eeprom_chip(struct rtsx_chip *chip); +int spi_erase_eeprom_byte(struct rtsx_chip *chip, u16 addr); +int spi_read_eeprom(struct rtsx_chip *chip, u16 addr, u8 *val); +int spi_write_eeprom(struct rtsx_chip *chip, u16 addr, u8 val); +int spi_get_status(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int spi_set_parameter(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int spi_read_flash_id(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int spi_read_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int spi_erase_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int spi_write_flash_status(struct scsi_cmnd *srb, struct rtsx_chip *chip); + + +#endif /* __REALTEK_RTSX_SPI_H */ --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx.c +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx.c @@ -0,0 +1,1124 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include +#include +#include +#include + +#include "rtsx.h" +#include "rtsx_chip.h" +#include "rtsx_transport.h" +#include "rtsx_scsi.h" +#include "rtsx_card.h" +#include "general.h" + +#include "ms.h" +#include "sd.h" +#include "xd.h" + +#define DRIVER_VERSION "v1.10" + +MODULE_DESCRIPTION("Realtek PCI-Express card reader driver"); +MODULE_LICENSE("GPL"); +MODULE_VERSION(DRIVER_VERSION); + +static unsigned int delay_use = 1; +module_param(delay_use, uint, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(delay_use, "seconds to delay before using a new device"); + +static int ss_en; +module_param(ss_en, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(ss_en, "enable selective suspend"); + +static int ss_interval = 50; +module_param(ss_interval, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(ss_interval, "Interval to enter ss state in seconds"); + +static int auto_delink_en; +module_param(auto_delink_en, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(auto_delink_en, "enable auto delink"); + +static unsigned char aspm_l0s_l1_en; +module_param(aspm_l0s_l1_en, byte, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(aspm_l0s_l1_en, "enable device aspm"); + +static int msi_en; +module_param(msi_en, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(msi_en, "enable msi"); + +/* These are used to make sure the module doesn't unload before all the + * threads have exited. + */ +static atomic_t total_threads = ATOMIC_INIT(0); +static DECLARE_COMPLETION(threads_gone); + +static irqreturn_t rtsx_interrupt(int irq, void *dev_id); + +/*********************************************************************** + * Host functions + ***********************************************************************/ + +static const char *host_info(struct Scsi_Host *host) +{ + return "SCSI emulation for PCI-Express Mass Storage devices"; +} + +static int slave_alloc (struct scsi_device *sdev) +{ + /* + * Set the INQUIRY transfer length to 36. We don't use any of + * the extra data and many devices choke if asked for more or + * less than 36 bytes. + */ + sdev->inquiry_len = 36; + return 0; +} + +static int slave_configure(struct scsi_device *sdev) +{ + /* Scatter-gather buffers (all but the last) must have a length + * divisible by the bulk maxpacket size. Otherwise a data packet + * would end up being short, causing a premature end to the data + * transfer. Since high-speed bulk pipes have a maxpacket size + * of 512, we'll use that as the scsi device queue's DMA alignment + * mask. Guaranteeing proper alignment of the first buffer will + * have the desired effect because, except at the beginning and + * the end, scatter-gather buffers follow page boundaries. */ + blk_queue_dma_alignment(sdev->request_queue, (512 - 1)); + + /* Set the SCSI level to at least 2. We'll leave it at 3 if that's + * what is originally reported. We need this to avoid confusing + * the SCSI layer with devices that report 0 or 1, but need 10-byte + * commands (ala ATAPI devices behind certain bridges, or devices + * which simply have broken INQUIRY data). + * + * NOTE: This means /dev/sg programs (ala cdrecord) will get the + * actual information. This seems to be the preference for + * programs like that. + * + * NOTE: This also means that /proc/scsi/scsi and sysfs may report + * the actual value or the modified one, depending on where the + * data comes from. + */ + if (sdev->scsi_level < SCSI_2) + sdev->scsi_level = sdev->sdev_target->scsi_level = SCSI_2; + + return 0; +} + + +/*********************************************************************** + * /proc/scsi/ functions + ***********************************************************************/ + +/* we use this macro to help us write into the buffer */ +#undef SPRINTF +#define SPRINTF(args...) \ + do { if (pos < buffer+length) pos += sprintf(pos, ## args); } while (0) + +static int proc_info (struct Scsi_Host *host, char *buffer, + char **start, off_t offset, int length, int inout) +{ + char *pos = buffer; + + /* if someone is sending us data, just throw it away */ + if (inout) + return length; + + /* print the controller name */ + SPRINTF(" Host scsi%d: %s\n", host->host_no, CR_DRIVER_NAME); + + /* print product, vendor, and driver version strings */ + SPRINTF(" Vendor: Realtek Corp.\n"); + SPRINTF(" Product: PCIE Card Reader\n"); + SPRINTF(" Version: %s\n", DRIVER_VERSION); + + /* + * Calculate start of next buffer, and return value. + */ + *start = buffer + offset; + + if ((pos - buffer) < offset) + return 0; + else if ((pos - buffer - offset) < length) + return pos - buffer - offset; + else + return length; +} + +/* queue a command */ +/* This is always called with scsi_lock(host) held */ +static int queuecommand_lck(struct scsi_cmnd *srb, + void (*done)(struct scsi_cmnd *)) +{ + struct rtsx_dev *dev = host_to_rtsx(srb->device->host); + struct rtsx_chip *chip = dev->chip; + + /* check for state-transition errors */ + if (chip->srb != NULL) { + printk(KERN_ERR "Error in %s: chip->srb = %p\n", + __func__, chip->srb); + return SCSI_MLQUEUE_HOST_BUSY; + } + + /* fail the command if we are disconnecting */ + if (rtsx_chk_stat(chip, RTSX_STAT_DISCONNECT)) { + printk(KERN_INFO "Fail command during disconnect\n"); + srb->result = DID_NO_CONNECT << 16; + done(srb); + return 0; + } + + /* enqueue the command and wake up the control thread */ + srb->scsi_done = done; + chip->srb = srb; + up(&(dev->sema)); + + return 0; +} + +static DEF_SCSI_QCMD(queuecommand) + +/*********************************************************************** + * Error handling functions + ***********************************************************************/ + +/* Command timeout and abort */ +static int command_abort(struct scsi_cmnd *srb) +{ + struct Scsi_Host *host = srb->device->host; + struct rtsx_dev *dev = host_to_rtsx(host); + struct rtsx_chip *chip = dev->chip; + + printk(KERN_INFO "%s called\n", __func__); + + scsi_lock(host); + + /* Is this command still active? */ + if (chip->srb != srb) { + scsi_unlock(host); + printk(KERN_INFO "-- nothing to abort\n"); + return FAILED; + } + + rtsx_set_stat(chip, RTSX_STAT_ABORT); + + scsi_unlock(host); + + /* Wait for the aborted command to finish */ + wait_for_completion(&dev->notify); + + return SUCCESS; +} + +/* This invokes the transport reset mechanism to reset the state of the + * device */ +static int device_reset(struct scsi_cmnd *srb) +{ + int result = 0; + + printk(KERN_INFO "%s called\n", __func__); + + return result < 0 ? FAILED : SUCCESS; +} + +/* Simulate a SCSI bus reset by resetting the device's USB port. */ +static int bus_reset(struct scsi_cmnd *srb) +{ + int result = 0; + + printk(KERN_INFO "%s called\n", __func__); + + return result < 0 ? FAILED : SUCCESS; +} + + +/* + * this defines our host template, with which we'll allocate hosts + */ + +static struct scsi_host_template rtsx_host_template = { + /* basic userland interface stuff */ + .name = CR_DRIVER_NAME, + .proc_name = CR_DRIVER_NAME, + .proc_info = proc_info, + .info = host_info, + + /* command interface -- queued only */ + .queuecommand = queuecommand, + + /* error and abort handlers */ + .eh_abort_handler = command_abort, + .eh_device_reset_handler = device_reset, + .eh_bus_reset_handler = bus_reset, + + /* queue commands only, only one command per LUN */ + .can_queue = 1, + .cmd_per_lun = 1, + + /* unknown initiator id */ + .this_id = -1, + + .slave_alloc = slave_alloc, + .slave_configure = slave_configure, + + /* lots of sg segments can be handled */ + .sg_tablesize = SG_ALL, + + /* limit the total size of a transfer to 120 KB */ + .max_sectors = 240, + + /* merge commands... this seems to help performance, but + * periodically someone should test to see which setting is more + * optimal. + */ + .use_clustering = 1, + + /* emulated HBA */ + .emulated = 1, + + /* we do our own delay after a device or bus reset */ + .skip_settle_delay = 1, + + /* module management */ + .module = THIS_MODULE +}; + + +static int rtsx_acquire_irq(struct rtsx_dev *dev) +{ + struct rtsx_chip *chip = dev->chip; + + printk(KERN_INFO "%s: chip->msi_en = %d, pci->irq = %d\n", + __func__, chip->msi_en, dev->pci->irq); + + if (request_irq(dev->pci->irq, rtsx_interrupt, + chip->msi_en ? 0 : IRQF_SHARED, + CR_DRIVER_NAME, dev)) { + printk(KERN_ERR "rtsx: unable to grab IRQ %d, " + "disabling device\n", dev->pci->irq); + return -1; + } + + dev->irq = dev->pci->irq; + pci_intx(dev->pci, !chip->msi_en); + + return 0; +} + + +int rtsx_read_pci_cfg_byte(u8 bus, u8 dev, u8 func, u8 offset, u8 *val) +{ + struct pci_dev *pdev; + u8 data; + u8 devfn = (dev << 3) | func; + + pdev = pci_get_bus_and_slot(bus, devfn); + if (!pdev) + return -1; + + pci_read_config_byte(pdev, offset, &data); + if (val) + *val = data; + + return 0; +} + +#ifdef CONFIG_PM +/* + * power management + */ +static int rtsx_suspend(struct pci_dev *pci, pm_message_t state) +{ + struct rtsx_dev *dev = (struct rtsx_dev *)pci_get_drvdata(pci); + struct rtsx_chip *chip; + + printk(KERN_INFO "Ready to suspend\n"); + + if (!dev) { + printk(KERN_ERR "Invalid memory\n"); + return 0; + } + + /* lock the device pointers */ + mutex_lock(&(dev->dev_mutex)); + + chip = dev->chip; + + rtsx_do_before_power_down(chip, PM_S3); + + if (dev->irq >= 0) { + synchronize_irq(dev->irq); + free_irq(dev->irq, (void *)dev); + dev->irq = -1; + } + + if (chip->msi_en) + pci_disable_msi(pci); + + pci_save_state(pci); + pci_enable_wake(pci, pci_choose_state(pci, state), 1); + pci_disable_device(pci); + pci_set_power_state(pci, pci_choose_state(pci, state)); + + /* unlock the device pointers */ + mutex_unlock(&dev->dev_mutex); + + return 0; +} + +static int rtsx_resume(struct pci_dev *pci) +{ + struct rtsx_dev *dev = (struct rtsx_dev *)pci_get_drvdata(pci); + struct rtsx_chip *chip; + + printk(KERN_INFO "Ready to resume\n"); + + if (!dev) { + printk(KERN_ERR "Invalid memory\n"); + return 0; + } + + chip = dev->chip; + + /* lock the device pointers */ + mutex_lock(&(dev->dev_mutex)); + + pci_set_power_state(pci, PCI_D0); + pci_restore_state(pci); + if (pci_enable_device(pci) < 0) { + printk(KERN_ERR "%s: pci_enable_device failed, " + "disabling device\n", CR_DRIVER_NAME); + /* unlock the device pointers */ + mutex_unlock(&dev->dev_mutex); + return -EIO; + } + pci_set_master(pci); + + if (chip->msi_en) { + if (pci_enable_msi(pci) < 0) + chip->msi_en = 0; + } + + if (rtsx_acquire_irq(dev) < 0) { + /* unlock the device pointers */ + mutex_unlock(&dev->dev_mutex); + return -EIO; + } + + rtsx_write_register(chip, HOST_SLEEP_STATE, 0x03, 0x00); + rtsx_init_chip(chip); + + /* unlock the device pointers */ + mutex_unlock(&dev->dev_mutex); + + return 0; +} +#endif /* CONFIG_PM */ + +static void rtsx_shutdown(struct pci_dev *pci) +{ + struct rtsx_dev *dev = (struct rtsx_dev *)pci_get_drvdata(pci); + struct rtsx_chip *chip; + + printk(KERN_INFO "Ready to shutdown\n"); + + if (!dev) { + printk(KERN_ERR "Invalid memory\n"); + return; + } + + chip = dev->chip; + + rtsx_do_before_power_down(chip, PM_S1); + + if (dev->irq >= 0) { + synchronize_irq(dev->irq); + free_irq(dev->irq, (void *)dev); + dev->irq = -1; + } + + if (chip->msi_en) + pci_disable_msi(pci); + + pci_disable_device(pci); + + return; +} + +static int rtsx_control_thread(void *__dev) +{ + struct rtsx_dev *dev = (struct rtsx_dev *)__dev; + struct rtsx_chip *chip = dev->chip; + struct Scsi_Host *host = rtsx_to_host(dev); + + current->flags |= PF_NOFREEZE; + + for (;;) { + if (down_interruptible(&dev->sema)) + break; + + /* lock the device pointers */ + mutex_lock(&(dev->dev_mutex)); + + /* if the device has disconnected, we are free to exit */ + if (rtsx_chk_stat(chip, RTSX_STAT_DISCONNECT)) { + printk(KERN_INFO "-- rtsx-control exiting\n"); + mutex_unlock(&dev->dev_mutex); + break; + } + + /* lock access to the state */ + scsi_lock(host); + + /* has the command aborted ? */ + if (rtsx_chk_stat(chip, RTSX_STAT_ABORT)) { + chip->srb->result = DID_ABORT << 16; + goto SkipForAbort; + } + + scsi_unlock(host); + + /* reject the command if the direction indicator + * is UNKNOWN + */ + if (chip->srb->sc_data_direction == DMA_BIDIRECTIONAL) { + printk(KERN_ERR "UNKNOWN data direction\n"); + chip->srb->result = DID_ERROR << 16; + } + + /* reject if target != 0 or if LUN is higher than + * the maximum known LUN + */ + else if (chip->srb->device->id) { + printk(KERN_ERR "Bad target number (%d:%d)\n", + chip->srb->device->id, chip->srb->device->lun); + chip->srb->result = DID_BAD_TARGET << 16; + } + + else if (chip->srb->device->lun > chip->max_lun) { + printk(KERN_ERR "Bad LUN (%d:%d)\n", + chip->srb->device->id, chip->srb->device->lun); + chip->srb->result = DID_BAD_TARGET << 16; + } + + /* we've got a command, let's do it! */ + else { + RTSX_DEBUG(scsi_show_command(chip->srb)); + rtsx_invoke_transport(chip->srb, chip); + } + + /* lock access to the state */ + scsi_lock(host); + + /* did the command already complete because of a disconnect? */ + if (!chip->srb) + ; /* nothing to do */ + + /* indicate that the command is done */ + else if (chip->srb->result != DID_ABORT << 16) { + chip->srb->scsi_done(chip->srb); + } else { +SkipForAbort: + printk(KERN_ERR "scsi command aborted\n"); + } + + if (rtsx_chk_stat(chip, RTSX_STAT_ABORT)) { + complete(&(dev->notify)); + + rtsx_set_stat(chip, RTSX_STAT_IDLE); + } + + /* finished working on this command */ + chip->srb = NULL; + scsi_unlock(host); + + /* unlock the device pointers */ + mutex_unlock(&dev->dev_mutex); + } /* for (;;) */ + + scsi_host_put(host); + + /* notify the exit routine that we're actually exiting now + * + * complete()/wait_for_completion() is similar to up()/down(), + * except that complete() is safe in the case where the structure + * is getting deleted in a parallel mode of execution (i.e. just + * after the down() -- that's necessary for the thread-shutdown + * case. + * + * complete_and_exit() goes even further than this -- it is safe in + * the case that the thread of the caller is going away (not just + * the structure) -- this is necessary for the module-remove case. + * This is important in preemption kernels, which transfer the flow + * of execution immediately upon a complete(). + */ + complete_and_exit(&threads_gone, 0); +} + + +static int rtsx_polling_thread(void *__dev) +{ + struct rtsx_dev *dev = (struct rtsx_dev *)__dev; + struct rtsx_chip *chip = dev->chip; + struct Scsi_Host *host = rtsx_to_host(dev); + struct sd_info *sd_card = &(chip->sd_card); + struct xd_info *xd_card = &(chip->xd_card); + struct ms_info *ms_card = &(chip->ms_card); + + sd_card->cleanup_counter = 0; + xd_card->cleanup_counter = 0; + ms_card->cleanup_counter = 0; + + /* Wait until SCSI scan finished */ + wait_timeout((delay_use + 5) * 1000); + + for (;;) { + wait_timeout(POLLING_INTERVAL); + + /* lock the device pointers */ + mutex_lock(&(dev->dev_mutex)); + + /* if the device has disconnected, we are free to exit */ + if (rtsx_chk_stat(chip, RTSX_STAT_DISCONNECT)) { + printk(KERN_INFO "-- rtsx-polling exiting\n"); + mutex_unlock(&dev->dev_mutex); + break; + } + + mutex_unlock(&dev->dev_mutex); + + mspro_polling_format_status(chip); + + /* lock the device pointers */ + mutex_lock(&(dev->dev_mutex)); + + rtsx_polling_func(chip); + + /* unlock the device pointers */ + mutex_unlock(&dev->dev_mutex); + } + + scsi_host_put(host); + complete_and_exit(&threads_gone, 0); +} + +/* + * interrupt handler + */ +static irqreturn_t rtsx_interrupt(int irq, void *dev_id) +{ + struct rtsx_dev *dev = dev_id; + struct rtsx_chip *chip; + int retval; + u32 status; + + if (dev) { + chip = dev->chip; + } else { + return IRQ_NONE; + } + + if (!chip) { + return IRQ_NONE; + } + + spin_lock(&dev->reg_lock); + + retval = rtsx_pre_handle_interrupt(chip); + if (retval == STATUS_FAIL) { + spin_unlock(&dev->reg_lock); + if (chip->int_reg == 0xFFFFFFFF) { + return IRQ_HANDLED; + } else { + return IRQ_NONE; + } + } + + status = chip->int_reg; + + if (dev->check_card_cd) { + if (!(dev->check_card_cd & status)) { + /* card not exist, return TRANS_RESULT_FAIL */ + dev->trans_result = TRANS_RESULT_FAIL; + if (dev->done) + complete(dev->done); + goto Exit; + } + } + + if (status & (NEED_COMPLETE_INT | DELINK_INT)) { + if (status & (TRANS_FAIL_INT | DELINK_INT)) { + if (status & DELINK_INT) { + RTSX_SET_DELINK(chip); + } + dev->trans_result = TRANS_RESULT_FAIL; + if (dev->done) + complete(dev->done); + } else if (status & TRANS_OK_INT) { + dev->trans_result = TRANS_RESULT_OK; + if (dev->done) + complete(dev->done); + } else if (status & DATA_DONE_INT) { + dev->trans_result = TRANS_NOT_READY; + if (dev->done && (dev->trans_state == STATE_TRANS_SG)) + complete(dev->done); + } + } + +Exit: + spin_unlock(&dev->reg_lock); + return IRQ_HANDLED; +} + + +/* Release all our dynamic resources */ +static void rtsx_release_resources(struct rtsx_dev *dev) +{ + printk(KERN_INFO "-- %s\n", __func__); + + if (dev->rtsx_resv_buf) { + dma_free_coherent(&(dev->pci->dev), HOST_CMDS_BUF_LEN, + dev->rtsx_resv_buf, dev->rtsx_resv_buf_addr); + dev->chip->host_cmds_ptr = NULL; + dev->chip->host_sg_tbl_ptr = NULL; + } + + pci_disable_device(dev->pci); + pci_release_regions(dev->pci); + + if (dev->irq > 0) { + free_irq(dev->irq, (void *)dev); + } + if (dev->chip->msi_en) { + pci_disable_msi(dev->pci); + } + + /* Tell the control thread to exit. The SCSI host must + * already have been removed so it won't try to queue + * any more commands. + */ + printk(KERN_INFO "-- sending exit command to thread\n"); + up(&dev->sema); +} + +/* First stage of disconnect processing: stop all commands and remove + * the host */ +static void quiesce_and_remove_host(struct rtsx_dev *dev) +{ + struct Scsi_Host *host = rtsx_to_host(dev); + struct rtsx_chip *chip = dev->chip; + + /* Prevent new transfers, stop the current command, and + * interrupt a SCSI-scan or device-reset delay */ + mutex_lock(&dev->dev_mutex); + scsi_lock(host); + rtsx_set_stat(chip, RTSX_STAT_DISCONNECT); + scsi_unlock(host); + mutex_unlock(&dev->dev_mutex); + wake_up(&dev->delay_wait); + + /* Wait some time to let other threads exist */ + wait_timeout(100); + + /* queuecommand won't accept any new commands and the control + * thread won't execute a previously-queued command. If there + * is such a command pending, complete it with an error. */ + mutex_lock(&dev->dev_mutex); + if (chip->srb) { + chip->srb->result = DID_NO_CONNECT << 16; + scsi_lock(host); + chip->srb->scsi_done(dev->chip->srb); + chip->srb = NULL; + scsi_unlock(host); + } + mutex_unlock(&dev->dev_mutex); + + /* Now we own no commands so it's safe to remove the SCSI host */ + scsi_remove_host(host); +} + +/* Second stage of disconnect processing: deallocate all resources */ +static void release_everything(struct rtsx_dev *dev) +{ + rtsx_release_resources(dev); + + /* Drop our reference to the host; the SCSI core will free it + * when the refcount becomes 0. */ + scsi_host_put(rtsx_to_host(dev)); +} + +/* Thread to carry out delayed SCSI-device scanning */ +static int rtsx_scan_thread(void *__dev) +{ + struct rtsx_dev *dev = (struct rtsx_dev *)__dev; + struct rtsx_chip *chip = dev->chip; + + /* Wait for the timeout to expire or for a disconnect */ + if (delay_use > 0) { + printk(KERN_INFO "%s: waiting for device " + "to settle before scanning\n", CR_DRIVER_NAME); + wait_event_interruptible_timeout(dev->delay_wait, + rtsx_chk_stat(chip, RTSX_STAT_DISCONNECT), + delay_use * HZ); + } + + /* If the device is still connected, perform the scanning */ + if (!rtsx_chk_stat(chip, RTSX_STAT_DISCONNECT)) { + scsi_scan_host(rtsx_to_host(dev)); + printk(KERN_INFO "%s: device scan complete\n", CR_DRIVER_NAME); + + /* Should we unbind if no devices were detected? */ + } + + scsi_host_put(rtsx_to_host(dev)); + complete_and_exit(&threads_gone, 0); +} + +static void rtsx_init_options(struct rtsx_chip *chip) +{ + chip->vendor_id = chip->rtsx->pci->vendor; + chip->product_id = chip->rtsx->pci->device; + chip->adma_mode = 1; + chip->lun_mc = 0; + chip->driver_first_load = 1; +#ifdef HW_AUTO_SWITCH_SD_BUS + chip->sdio_in_charge = 0; +#endif + + chip->mspro_formatter_enable = 1; + chip->ignore_sd = 0; + chip->use_hw_setting = 0; + chip->lun_mode = DEFAULT_SINGLE; + chip->auto_delink_en = auto_delink_en; + chip->ss_en = ss_en; + chip->ss_idle_period = ss_interval * 1000; + chip->remote_wakeup_en = 0; + chip->aspm_l0s_l1_en = aspm_l0s_l1_en; + chip->dynamic_aspm = 1; + chip->fpga_sd_sdr104_clk = CLK_200; + chip->fpga_sd_ddr50_clk = CLK_100; + chip->fpga_sd_sdr50_clk = CLK_100; + chip->fpga_sd_hs_clk = CLK_100; + chip->fpga_mmc_52m_clk = CLK_80; + chip->fpga_ms_hg_clk = CLK_80; + chip->fpga_ms_4bit_clk = CLK_80; + chip->fpga_ms_1bit_clk = CLK_40; + chip->asic_sd_sdr104_clk = 203; + chip->asic_sd_sdr50_clk = 98; + chip->asic_sd_ddr50_clk = 98; + chip->asic_sd_hs_clk = 98; + chip->asic_mmc_52m_clk = 98; + chip->asic_ms_hg_clk = 117; + chip->asic_ms_4bit_clk = 78; + chip->asic_ms_1bit_clk = 39; + chip->ssc_depth_sd_sdr104 = SSC_DEPTH_2M; + chip->ssc_depth_sd_sdr50 = SSC_DEPTH_2M; + chip->ssc_depth_sd_ddr50 = SSC_DEPTH_1M; + chip->ssc_depth_sd_hs = SSC_DEPTH_1M; + chip->ssc_depth_mmc_52m = SSC_DEPTH_1M; + chip->ssc_depth_ms_hg = SSC_DEPTH_1M; + chip->ssc_depth_ms_4bit = SSC_DEPTH_512K; + chip->ssc_depth_low_speed = SSC_DEPTH_512K; + chip->ssc_en = 1; + chip->sd_speed_prior = 0x01040203; + chip->sd_current_prior = 0x00010203; + chip->sd_ctl = SD_PUSH_POINT_AUTO | SD_SAMPLE_POINT_AUTO | SUPPORT_MMC_DDR_MODE; + chip->sd_ddr_tx_phase = 0; + chip->mmc_ddr_tx_phase = 1; + chip->sd_default_tx_phase = 15; + chip->sd_default_rx_phase = 15; + chip->pmos_pwr_on_interval = 200; + chip->sd_voltage_switch_delay = 1000; + chip->ms_power_class_en = 3; + + chip->sd_400mA_ocp_thd = 1; + chip->sd_800mA_ocp_thd = 5; + chip->ms_ocp_thd = 2; + + chip->card_drive_sel = 0x55; + chip->sd30_drive_sel_1v8 = 0x03; + chip->sd30_drive_sel_3v3 = 0x01; + + chip->do_delink_before_power_down = 1; + chip->auto_power_down = 1; + chip->polling_config = 0; + + chip->force_clkreq_0 = 1; + chip->ft2_fast_mode = 0; + + chip->sdio_retry_cnt = 1; + + chip->xd_timeout = 2000; + chip->sd_timeout = 10000; + chip->ms_timeout = 2000; + chip->mspro_timeout = 15000; + + chip->power_down_in_ss = 1; + + chip->sdr104_en = 1; + chip->sdr50_en = 1; + chip->ddr50_en = 1; + + chip->delink_stage1_step = 100; + chip->delink_stage2_step = 40; + chip->delink_stage3_step = 20; + + chip->auto_delink_in_L1 = 1; + chip->blink_led = 1; + chip->msi_en = msi_en; + chip->hp_watch_bios_hotplug = 0; + chip->max_payload = 0; + chip->phy_voltage = 0; + + chip->support_ms_8bit = 1; + chip->s3_pwr_off_delay = 1000; +} + +static int __devinit rtsx_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) +{ + struct Scsi_Host *host; + struct rtsx_dev *dev; + int err = 0; + struct task_struct *th; + + RTSX_DEBUGP("Realtek PCI-E card reader detected\n"); + + err = pci_enable_device(pci); + if (err < 0) { + printk(KERN_ERR "PCI enable device failed!\n"); + return err; + } + + err = pci_request_regions(pci, CR_DRIVER_NAME); + if (err < 0) { + printk(KERN_ERR "PCI request regions for %s failed!\n", CR_DRIVER_NAME); + pci_disable_device(pci); + return err; + } + + /* + * Ask the SCSI layer to allocate a host structure, with extra + * space at the end for our private rtsx_dev structure. + */ + host = scsi_host_alloc(&rtsx_host_template, sizeof(*dev)); + if (!host) { + printk(KERN_ERR "Unable to allocate the scsi host\n"); + pci_release_regions(pci); + pci_disable_device(pci); + return -ENOMEM; + } + + dev = host_to_rtsx(host); + memset(dev, 0, sizeof(struct rtsx_dev)); + + dev->chip = kzalloc(sizeof(struct rtsx_chip), GFP_KERNEL); + if (dev->chip == NULL) { + goto errout; + } + + spin_lock_init(&dev->reg_lock); + mutex_init(&(dev->dev_mutex)); + sema_init(&(dev->sema), 0); + init_completion(&(dev->notify)); + init_waitqueue_head(&dev->delay_wait); + + dev->pci = pci; + dev->irq = -1; + + printk(KERN_INFO "Resource length: 0x%x\n", (unsigned int)pci_resource_len(pci, 0)); + dev->addr = pci_resource_start(pci, 0); + dev->remap_addr = ioremap_nocache(dev->addr, pci_resource_len(pci, 0)); + if (dev->remap_addr == NULL) { + printk(KERN_ERR "ioremap error\n"); + err = -ENXIO; + goto errout; + } + + /* Using "unsigned long" cast here to eliminate gcc warning in 64-bit system */ + printk(KERN_INFO "Original address: 0x%lx, remapped address: 0x%lx\n", + (unsigned long)(dev->addr), (unsigned long)(dev->remap_addr)); + + dev->rtsx_resv_buf = dma_alloc_coherent(&(pci->dev), RTSX_RESV_BUF_LEN, + &(dev->rtsx_resv_buf_addr), GFP_KERNEL); + if (dev->rtsx_resv_buf == NULL) { + printk(KERN_ERR "alloc dma buffer fail\n"); + err = -ENXIO; + goto errout; + } + dev->chip->host_cmds_ptr = dev->rtsx_resv_buf; + dev->chip->host_cmds_addr = dev->rtsx_resv_buf_addr; + dev->chip->host_sg_tbl_ptr = dev->rtsx_resv_buf + HOST_CMDS_BUF_LEN; + dev->chip->host_sg_tbl_addr = dev->rtsx_resv_buf_addr + HOST_CMDS_BUF_LEN; + + dev->chip->rtsx = dev; + + rtsx_init_options(dev->chip); + + printk(KERN_INFO "pci->irq = %d\n", pci->irq); + + if (dev->chip->msi_en) { + if (pci_enable_msi(pci) < 0) + dev->chip->msi_en = 0; + } + + if (rtsx_acquire_irq(dev) < 0) { + err = -EBUSY; + goto errout; + } + + pci_set_master(pci); + synchronize_irq(dev->irq); + + err = scsi_add_host(host, &pci->dev); + if (err) { + printk(KERN_ERR "Unable to add the scsi host\n"); + goto errout; + } + + rtsx_init_chip(dev->chip); + + /* Start up our control thread */ + th = kthread_create(rtsx_control_thread, dev, CR_DRIVER_NAME); + if (IS_ERR(th)) { + printk(KERN_ERR "Unable to start control thread\n"); + err = PTR_ERR(th); + goto errout; + } + + /* Take a reference to the host for the control thread and + * count it among all the threads we have launched. Then + * start it up. */ + scsi_host_get(rtsx_to_host(dev)); + atomic_inc(&total_threads); + wake_up_process(th); + + /* Start up the thread for delayed SCSI-device scanning */ + th = kthread_create(rtsx_scan_thread, dev, "rtsx-scan"); + if (IS_ERR(th)) { + printk(KERN_ERR "Unable to start the device-scanning thread\n"); + quiesce_and_remove_host(dev); + err = PTR_ERR(th); + goto errout; + } + + /* Take a reference to the host for the scanning thread and + * count it among all the threads we have launched. Then + * start it up. */ + scsi_host_get(rtsx_to_host(dev)); + atomic_inc(&total_threads); + wake_up_process(th); + + /* Start up the thread for polling thread */ + th = kthread_create(rtsx_polling_thread, dev, "rtsx-polling"); + if (IS_ERR(th)) { + printk(KERN_ERR "Unable to start the device-polling thread\n"); + quiesce_and_remove_host(dev); + err = PTR_ERR(th); + goto errout; + } + + /* Take a reference to the host for the polling thread and + * count it among all the threads we have launched. Then + * start it up. */ + scsi_host_get(rtsx_to_host(dev)); + atomic_inc(&total_threads); + wake_up_process(th); + + pci_set_drvdata(pci, dev); + + return 0; + + /* We come here if there are any problems */ +errout: + printk(KERN_ERR "rtsx_probe() failed\n"); + release_everything(dev); + + return err; +} + + +static void __devexit rtsx_remove(struct pci_dev *pci) +{ + struct rtsx_dev *dev = (struct rtsx_dev *)pci_get_drvdata(pci); + + printk(KERN_INFO "rtsx_remove() called\n"); + + quiesce_and_remove_host(dev); + release_everything(dev); + + pci_set_drvdata(pci, NULL); +} + +/* PCI IDs */ +static struct pci_device_id rtsx_ids[] = { + { 0x10EC, 0x5208, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_OTHERS << 16, 0xFF0000 }, + { 0x10EC, 0x5209, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_OTHERS << 16, 0xFF0000 }, + { 0x10EC, 0x5288, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_OTHERS << 16, 0xFF0000 }, + { 0, }, +}; + +MODULE_DEVICE_TABLE(pci, rtsx_ids); + +/* pci_driver definition */ +static struct pci_driver driver = { + .name = CR_DRIVER_NAME, + .id_table = rtsx_ids, + .probe = rtsx_probe, + .remove = __devexit_p(rtsx_remove), +#ifdef CONFIG_PM + .suspend = rtsx_suspend, + .resume = rtsx_resume, +#endif + .shutdown = rtsx_shutdown, +}; + +static int __init rtsx_init(void) +{ + printk(KERN_INFO "Initializing Realtek PCIE storage driver...\n"); + + return pci_register_driver(&driver); +} + +static void __exit rtsx_exit(void) +{ + printk(KERN_INFO "rtsx_exit() called\n"); + + pci_unregister_driver(&driver); + + /* Don't return until all of our control and scanning threads + * have exited. Since each thread signals threads_gone as its + * last act, we have to call wait_for_completion the right number + * of times. + */ + while (atomic_read(&total_threads) > 0) { + wait_for_completion(&threads_gone); + atomic_dec(&total_threads); + } + + printk(KERN_INFO "%s module exit\n", CR_DRIVER_NAME); +} + +module_init(rtsx_init) +module_exit(rtsx_exit) + --- linux-2.6.38.orig/drivers/staging/rts_pstor/rtsx_scsi.c +++ linux-2.6.38/drivers/staging/rts_pstor/rtsx_scsi.c @@ -0,0 +1,3203 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include +#include +#include + +#include "rtsx.h" +#include "rtsx_transport.h" +#include "rtsx_sys.h" +#include "rtsx_card.h" +#include "rtsx_chip.h" +#include "rtsx_scsi.h" +#include "sd.h" +#include "ms.h" +#include "spi.h" + +void scsi_show_command(struct scsi_cmnd *srb) +{ + char *what = NULL; + int i, unknown_cmd = 0; + + switch (srb->cmnd[0]) { + case TEST_UNIT_READY: what = "TEST_UNIT_READY"; break; + case REZERO_UNIT: what = "REZERO_UNIT"; break; + case REQUEST_SENSE: what = "REQUEST_SENSE"; break; + case FORMAT_UNIT: what = "FORMAT_UNIT"; break; + case READ_BLOCK_LIMITS: what = "READ_BLOCK_LIMITS"; break; + case REASSIGN_BLOCKS: what = "REASSIGN_BLOCKS"; break; + case READ_6: what = "READ_6"; break; + case WRITE_6: what = "WRITE_6"; break; + case SEEK_6: what = "SEEK_6"; break; + case READ_REVERSE: what = "READ_REVERSE"; break; + case WRITE_FILEMARKS: what = "WRITE_FILEMARKS"; break; + case SPACE: what = "SPACE"; break; + case INQUIRY: what = "INQUIRY"; break; + case RECOVER_BUFFERED_DATA: what = "RECOVER_BUFFERED_DATA"; break; + case MODE_SELECT: what = "MODE_SELECT"; break; + case RESERVE: what = "RESERVE"; break; + case RELEASE: what = "RELEASE"; break; + case COPY: what = "COPY"; break; + case ERASE: what = "ERASE"; break; + case MODE_SENSE: what = "MODE_SENSE"; break; + case START_STOP: what = "START_STOP"; break; + case RECEIVE_DIAGNOSTIC: what = "RECEIVE_DIAGNOSTIC"; break; + case SEND_DIAGNOSTIC: what = "SEND_DIAGNOSTIC"; break; + case ALLOW_MEDIUM_REMOVAL: what = "ALLOW_MEDIUM_REMOVAL"; break; + case SET_WINDOW: what = "SET_WINDOW"; break; + case READ_CAPACITY: what = "READ_CAPACITY"; break; + case READ_10: what = "READ_10"; break; + case WRITE_10: what = "WRITE_10"; break; + case SEEK_10: what = "SEEK_10"; break; + case WRITE_VERIFY: what = "WRITE_VERIFY"; break; + case VERIFY: what = "VERIFY"; break; + case SEARCH_HIGH: what = "SEARCH_HIGH"; break; + case SEARCH_EQUAL: what = "SEARCH_EQUAL"; break; + case SEARCH_LOW: what = "SEARCH_LOW"; break; + case SET_LIMITS: what = "SET_LIMITS"; break; + case READ_POSITION: what = "READ_POSITION"; break; + case SYNCHRONIZE_CACHE: what = "SYNCHRONIZE_CACHE"; break; + case LOCK_UNLOCK_CACHE: what = "LOCK_UNLOCK_CACHE"; break; + case READ_DEFECT_DATA: what = "READ_DEFECT_DATA"; break; + case MEDIUM_SCAN: what = "MEDIUM_SCAN"; break; + case COMPARE: what = "COMPARE"; break; + case COPY_VERIFY: what = "COPY_VERIFY"; break; + case WRITE_BUFFER: what = "WRITE_BUFFER"; break; + case READ_BUFFER: what = "READ_BUFFER"; break; + case UPDATE_BLOCK: what = "UPDATE_BLOCK"; break; + case READ_LONG: what = "READ_LONG"; break; + case WRITE_LONG: what = "WRITE_LONG"; break; + case CHANGE_DEFINITION: what = "CHANGE_DEFINITION"; break; + case WRITE_SAME: what = "WRITE_SAME"; break; + case GPCMD_READ_SUBCHANNEL: what = "READ SUBCHANNEL"; break; + case READ_TOC: what = "READ_TOC"; break; + case GPCMD_READ_HEADER: what = "READ HEADER"; break; + case GPCMD_PLAY_AUDIO_10: what = "PLAY AUDIO (10)"; break; + case GPCMD_PLAY_AUDIO_MSF: what = "PLAY AUDIO MSF"; break; + case GPCMD_GET_EVENT_STATUS_NOTIFICATION: + what = "GET EVENT/STATUS NOTIFICATION"; break; + case GPCMD_PAUSE_RESUME: what = "PAUSE/RESUME"; break; + case LOG_SELECT: what = "LOG_SELECT"; break; + case LOG_SENSE: what = "LOG_SENSE"; break; + case GPCMD_STOP_PLAY_SCAN: what = "STOP PLAY/SCAN"; break; + case GPCMD_READ_DISC_INFO: what = "READ DISC INFORMATION"; break; + case GPCMD_READ_TRACK_RZONE_INFO: + what = "READ TRACK INFORMATION"; break; + case GPCMD_RESERVE_RZONE_TRACK: what = "RESERVE TRACK"; break; + case GPCMD_SEND_OPC: what = "SEND OPC"; break; + case MODE_SELECT_10: what = "MODE_SELECT_10"; break; + case GPCMD_REPAIR_RZONE_TRACK: what = "REPAIR TRACK"; break; + case 0x59: what = "READ MASTER CUE"; break; + case MODE_SENSE_10: what = "MODE_SENSE_10"; break; + case GPCMD_CLOSE_TRACK: what = "CLOSE TRACK/SESSION"; break; + case 0x5C: what = "READ BUFFER CAPACITY"; break; + case 0x5D: what = "SEND CUE SHEET"; break; + case GPCMD_BLANK: what = "BLANK"; break; + case REPORT_LUNS: what = "REPORT LUNS"; break; + case MOVE_MEDIUM: what = "MOVE_MEDIUM or PLAY AUDIO (12)"; break; + case READ_12: what = "READ_12"; break; + case WRITE_12: what = "WRITE_12"; break; + case WRITE_VERIFY_12: what = "WRITE_VERIFY_12"; break; + case SEARCH_HIGH_12: what = "SEARCH_HIGH_12"; break; + case SEARCH_EQUAL_12: what = "SEARCH_EQUAL_12"; break; + case SEARCH_LOW_12: what = "SEARCH_LOW_12"; break; + case SEND_VOLUME_TAG: what = "SEND_VOLUME_TAG"; break; + case READ_ELEMENT_STATUS: what = "READ_ELEMENT_STATUS"; break; + case GPCMD_READ_CD_MSF: what = "READ CD MSF"; break; + case GPCMD_SCAN: what = "SCAN"; break; + case GPCMD_SET_SPEED: what = "SET CD SPEED"; break; + case GPCMD_MECHANISM_STATUS: what = "MECHANISM STATUS"; break; + case GPCMD_READ_CD: what = "READ CD"; break; + case 0xE1: what = "WRITE CONTINUE"; break; + case WRITE_LONG_2: what = "WRITE_LONG_2"; break; + case VENDOR_CMND: what = "Realtek's vendor command"; break; + default: what = "(unknown command)"; unknown_cmd = 1; break; + } + + if (srb->cmnd[0] != TEST_UNIT_READY) { + RTSX_DEBUGP("Command %s (%d bytes)\n", what, srb->cmd_len); + } + if (unknown_cmd) { + RTSX_DEBUGP(""); + for (i = 0; i < srb->cmd_len && i < 16; i++) + RTSX_DEBUGPN(" %02x", srb->cmnd[i]); + RTSX_DEBUGPN("\n"); + } +} + +void set_sense_type(struct rtsx_chip *chip, unsigned int lun, int sense_type) +{ + switch (sense_type) { + case SENSE_TYPE_MEDIA_CHANGE: + set_sense_data(chip, lun, CUR_ERR, 0x06, 0, 0x28, 0, 0, 0); + break; + + case SENSE_TYPE_MEDIA_NOT_PRESENT: + set_sense_data(chip, lun, CUR_ERR, 0x02, 0, 0x3A, 0, 0, 0); + break; + + case SENSE_TYPE_MEDIA_LBA_OVER_RANGE: + set_sense_data(chip, lun, CUR_ERR, 0x05, 0, 0x21, 0, 0, 0); + break; + + case SENSE_TYPE_MEDIA_LUN_NOT_SUPPORT: + set_sense_data(chip, lun, CUR_ERR, 0x05, 0, 0x25, 0, 0, 0); + break; + + case SENSE_TYPE_MEDIA_WRITE_PROTECT: + set_sense_data(chip, lun, CUR_ERR, 0x07, 0, 0x27, 0, 0, 0); + break; + + case SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR: + set_sense_data(chip, lun, CUR_ERR, 0x03, 0, 0x11, 0, 0, 0); + break; + + case SENSE_TYPE_MEDIA_WRITE_ERR: + set_sense_data(chip, lun, CUR_ERR, 0x03, 0, 0x0C, 0x02, 0, 0); + break; + + case SENSE_TYPE_MEDIA_INVALID_CMD_FIELD: + set_sense_data(chip, lun, CUR_ERR, ILGAL_REQ, 0, + ASC_INVLD_CDB, ASCQ_INVLD_CDB, CDB_ILLEGAL, 1); + break; + + case SENSE_TYPE_FORMAT_IN_PROGRESS: + set_sense_data(chip, lun, CUR_ERR, 0x02, 0, 0x04, 0x04, 0, 0); + break; + + case SENSE_TYPE_FORMAT_CMD_FAILED: + set_sense_data(chip, lun, CUR_ERR, 0x03, 0, 0x31, 0x01, 0, 0); + break; + +#ifdef SUPPORT_MAGIC_GATE + case SENSE_TYPE_MG_KEY_FAIL_NOT_ESTAB: + set_sense_data(chip, lun, CUR_ERR, 0x05, 0, 0x6F, 0x02, 0, 0); + break; + + case SENSE_TYPE_MG_KEY_FAIL_NOT_AUTHEN: + set_sense_data(chip, lun, CUR_ERR, 0x05, 0, 0x6F, 0x00, 0, 0); + break; + + case SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM: + set_sense_data(chip, lun, CUR_ERR, 0x02, 0, 0x30, 0x00, 0, 0); + break; + + case SENSE_TYPE_MG_WRITE_ERR: + set_sense_data(chip, lun, CUR_ERR, 0x03, 0, 0x0C, 0x00, 0, 0); + break; +#endif + +#ifdef SUPPORT_SD_LOCK + case SENSE_TYPE_MEDIA_READ_FORBIDDEN: + set_sense_data(chip, lun, CUR_ERR, 0x07, 0, 0x11, 0x13, 0, 0); + break; +#endif + + case SENSE_TYPE_NO_SENSE: + default: + set_sense_data(chip, lun, CUR_ERR, 0, 0, 0, 0, 0, 0); + break; + } +} + +void set_sense_data(struct rtsx_chip *chip, unsigned int lun, u8 err_code, u8 sense_key, + u32 info, u8 asc, u8 ascq, u8 sns_key_info0, u16 sns_key_info1) +{ + struct sense_data_t *sense = &(chip->sense_buffer[lun]); + + sense->err_code = err_code; + sense->sense_key = sense_key; + sense->info[0] = (u8)(info >> 24); + sense->info[1] = (u8)(info >> 16); + sense->info[2] = (u8)(info >> 8); + sense->info[3] = (u8)info; + + sense->ad_sense_len = sizeof(struct sense_data_t) - 8; + sense->asc = asc; + sense->ascq = ascq; + if (sns_key_info0 != 0) { + sense->sns_key_info[0] = SKSV | sns_key_info0; + sense->sns_key_info[1] = (sns_key_info1 & 0xf0) >> 8; + sense->sns_key_info[2] = sns_key_info1 & 0x0f; + } +} + +static int test_unit_ready(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned int lun = SCSI_LUN(srb); + + if (!check_card_ready(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + return TRANSPORT_FAILED; + } + + if (!(CHK_BIT(chip->lun_mc, lun))) { + SET_BIT(chip->lun_mc, lun); + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + return TRANSPORT_FAILED; + } + +#ifdef SUPPORT_SD_LOCK + if (get_lun_card(chip, SCSI_LUN(srb)) == SD_CARD) { + struct sd_info *sd_card = &(chip->sd_card); + if (sd_card->sd_lock_notify) { + sd_card->sd_lock_notify = 0; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + return TRANSPORT_FAILED; + } else if (sd_card->sd_lock_status & SD_LOCKED) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_READ_FORBIDDEN); + return TRANSPORT_FAILED; + } + } +#endif + + return TRANSPORT_GOOD; +} + +static unsigned char formatter_inquiry_str[20] = { + 'M', 'E', 'M', 'O', 'R', 'Y', 'S', 'T', 'I', 'C', 'K', +#ifdef SUPPORT_MAGIC_GATE + '-', 'M', 'G', /* Byte[47:49] */ +#else + 0x20, 0x20, 0x20, /* Byte[47:49] */ +#endif + +#ifdef SUPPORT_MAGIC_GATE + 0x0B, /* Byte[50]: MG, MS, MSPro, MSXC */ +#else + 0x09, /* Byte[50]: MS, MSPro, MSXC */ +#endif + 0x00, /* Byte[51]: Category Specific Commands */ + 0x00, /* Byte[52]: Access Control and feature */ + 0x20, 0x20, 0x20, /* Byte[53:55] */ +}; + +static int inquiry(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned int lun = SCSI_LUN(srb); + char *inquiry_default = (char *)"Generic-xD/SD/M.S. 1.00 "; + char *inquiry_sdms = (char *)"Generic-SD/MemoryStick 1.00 "; + char *inquiry_sd = (char *)"Generic-SD/MMC 1.00 "; + char *inquiry_ms = (char *)"Generic-MemoryStick 1.00 "; + char *inquiry_string; + unsigned char sendbytes; + unsigned char *buf; + u8 card = get_lun_card(chip, lun); + int pro_formatter_flag = 0; + unsigned char inquiry_buf[] = { + QULIFIRE|DRCT_ACCESS_DEV, + RMB_DISC|0x0D, + 0x00, + 0x01, + 0x1f, + 0x02, + 0, + REL_ADR|WBUS_32|WBUS_16|SYNC|LINKED|CMD_QUE|SFT_RE, + }; + + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + if (chip->lun2card[lun] == SD_CARD) { + inquiry_string = inquiry_sd; + } else { + inquiry_string = inquiry_ms; + } + } else if (CHECK_LUN_MODE(chip, SD_MS_1LUN)) { + inquiry_string = inquiry_sdms; + } else { + inquiry_string = inquiry_default; + } + + buf = vmalloc(scsi_bufflen(srb)); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + +#ifdef SUPPORT_MAGIC_GATE + if ((chip->mspro_formatter_enable) && + (chip->lun2card[lun] & MS_CARD)) +#else + if (chip->mspro_formatter_enable) +#endif + { + if (!card || (card == MS_CARD)) { + pro_formatter_flag = 1; + } + } + + if (pro_formatter_flag) { + if (scsi_bufflen(srb) < 56) { + sendbytes = (unsigned char)(scsi_bufflen(srb)); + } else { + sendbytes = 56; + } + } else { + if (scsi_bufflen(srb) < 36) { + sendbytes = (unsigned char)(scsi_bufflen(srb)); + } else { + sendbytes = 36; + } + } + + if (sendbytes > 8) { + memcpy(buf, inquiry_buf, 8); + memcpy(buf + 8, inquiry_string, sendbytes - 8); + if (pro_formatter_flag) { + /* Additional Length */ + buf[4] = 0x33; + } + } else { + memcpy(buf, inquiry_buf, sendbytes); + } + + if (pro_formatter_flag) { + if (sendbytes > 36) { + memcpy(buf + 36, formatter_inquiry_str, sendbytes - 36); + } + } + + scsi_set_resid(srb, 0); + + rtsx_stor_set_xfer_buf(buf, scsi_bufflen(srb), srb); + vfree(buf); + + return TRANSPORT_GOOD; +} + + +static int start_stop_unit(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned int lun = SCSI_LUN(srb); + + scsi_set_resid(srb, scsi_bufflen(srb)); + + if (srb->cmnd[1] == 1) + return TRANSPORT_GOOD; + + switch (srb->cmnd[0x4]) { + case STOP_MEDIUM: + /* Media disabled */ + return TRANSPORT_GOOD; + + case UNLOAD_MEDIUM: + /* Media shall be unload */ + if (check_card_ready(chip, lun)) + eject_card(chip, lun); + return TRANSPORT_GOOD; + + case MAKE_MEDIUM_READY: + case LOAD_MEDIUM: + if (check_card_ready(chip, lun)) { + return TRANSPORT_GOOD; + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + break; + } + + TRACE_RET(chip, TRANSPORT_ERROR); +} + + +static int allow_medium_removal(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int prevent; + + prevent = srb->cmnd[4] & 0x1; + + scsi_set_resid(srb, 0); + + if (prevent) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + return TRANSPORT_GOOD; +} + + +static int request_sense(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct sense_data_t *sense; + unsigned int lun = SCSI_LUN(srb); + struct ms_info *ms_card = &(chip->ms_card); + unsigned char *tmp, *buf; + + sense = &(chip->sense_buffer[lun]); + + if ((get_lun_card(chip, lun) == MS_CARD) && ms_card->pro_under_formatting) { + if (ms_card->format_status == FORMAT_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_NO_SENSE); + ms_card->pro_under_formatting = 0; + ms_card->progress = 0; + } else if (ms_card->format_status == FORMAT_IN_PROGRESS) { + /* Logical Unit Not Ready Format in Progress */ + set_sense_data(chip, lun, CUR_ERR, 0x02, 0, 0x04, 0x04, + 0, (u16)(ms_card->progress)); + } else { + /* Format Command Failed */ + set_sense_type(chip, lun, SENSE_TYPE_FORMAT_CMD_FAILED); + ms_card->pro_under_formatting = 0; + ms_card->progress = 0; + } + + rtsx_set_stat(chip, RTSX_STAT_RUN); + } + + buf = vmalloc(scsi_bufflen(srb)); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + tmp = (unsigned char *)sense; + memcpy(buf, tmp, scsi_bufflen(srb)); + + rtsx_stor_set_xfer_buf(buf, scsi_bufflen(srb), srb); + vfree(buf); + + scsi_set_resid(srb, 0); + /* Reset Sense Data */ + set_sense_type(chip, lun, SENSE_TYPE_NO_SENSE); + return TRANSPORT_GOOD; +} + +static void ms_mode_sense(struct rtsx_chip *chip, u8 cmd, + int lun, u8 *buf, int buf_len) +{ + struct ms_info *ms_card = &(chip->ms_card); + int sys_info_offset; + int data_size = buf_len; + int support_format = 0; + int i = 0; + + if (cmd == MODE_SENSE) { + sys_info_offset = 8; + if (data_size > 0x68) { + data_size = 0x68; + } + buf[i++] = 0x67; /* Mode Data Length */ + } else { + sys_info_offset = 12; + if (data_size > 0x6C) { + data_size = 0x6C; + } + buf[i++] = 0x00; /* Mode Data Length (MSB) */ + buf[i++] = 0x6A; /* Mode Data Length (LSB) */ + } + + /* Medium Type Code */ + if (check_card_ready(chip, lun)) { + if (CHK_MSXC(ms_card)) { + support_format = 1; + buf[i++] = 0x40; + } else if (CHK_MSPRO(ms_card)) { + support_format = 1; + buf[i++] = 0x20; + } else { + buf[i++] = 0x10; + } + + /* WP */ + if (check_card_wp(chip, lun)) { + buf[i++] = 0x80; + } else { + buf[i++] = 0x00; + } + } else { + buf[i++] = 0x00; /* MediaType */ + buf[i++] = 0x00; /* WP */ + } + + buf[i++] = 0x00; /* Reserved */ + + if (cmd == MODE_SENSE_10) { + buf[i++] = 0x00; /* Reserved */ + buf[i++] = 0x00; /* Block descriptor length(MSB) */ + buf[i++] = 0x00; /* Block descriptor length(LSB) */ + + /* The Following Data is the content of "Page 0x20" */ + if (data_size >= 9) + buf[i++] = 0x20; /* Page Code */ + if (data_size >= 10) + buf[i++] = 0x62; /* Page Length */ + if (data_size >= 11) + buf[i++] = 0x00; /* No Access Control */ + if (data_size >= 12) { + if (support_format) { + buf[i++] = 0xC0; /* SF, SGM */ + } else { + buf[i++] = 0x00; + } + } + } else { + /* The Following Data is the content of "Page 0x20" */ + if (data_size >= 5) + buf[i++] = 0x20; /* Page Code */ + if (data_size >= 6) + buf[i++] = 0x62; /* Page Length */ + if (data_size >= 7) + buf[i++] = 0x00; /* No Access Control */ + if (data_size >= 8) { + if (support_format) { + buf[i++] = 0xC0; /* SF, SGM */ + } else { + buf[i++] = 0x00; + } + } + } + + if (data_size > sys_info_offset) { + /* 96 Bytes Attribute Data */ + int len = data_size - sys_info_offset; + len = (len < 96) ? len : 96; + + memcpy(buf + sys_info_offset, ms_card->raw_sys_info, len); + } +} + +static int mode_sense(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned int lun = SCSI_LUN(srb); + unsigned int dataSize; + int status; + int pro_formatter_flag; + unsigned char pageCode, *buf; + u8 card = get_lun_card(chip, lun); + +#ifndef SUPPORT_MAGIC_GATE + if (!check_card_ready(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + scsi_set_resid(srb, scsi_bufflen(srb)); + TRACE_RET(chip, TRANSPORT_FAILED); + } +#endif + + pro_formatter_flag = 0; + dataSize = 8; +#ifdef SUPPORT_MAGIC_GATE + if ((chip->lun2card[lun] & MS_CARD)) { + if (!card || (card == MS_CARD)) { + dataSize = 108; + if (chip->mspro_formatter_enable) { + pro_formatter_flag = 1; + } + } + } +#else + if (card == MS_CARD) { + if (chip->mspro_formatter_enable) { + pro_formatter_flag = 1; + dataSize = 108; + } + } +#endif + + buf = kmalloc(dataSize, GFP_KERNEL); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + pageCode = srb->cmnd[2] & 0x3f; + + if ((pageCode == 0x3F) || (pageCode == 0x1C) || + (pageCode == 0x00) || + (pro_formatter_flag && (pageCode == 0x20))) { + if (srb->cmnd[0] == MODE_SENSE) { + if ((pageCode == 0x3F) || (pageCode == 0x20)) { + ms_mode_sense(chip, srb->cmnd[0], + lun, buf, dataSize); + } else { + dataSize = 4; + buf[0] = 0x03; + buf[1] = 0x00; + if (check_card_wp(chip, lun)) { + buf[2] = 0x80; + } else { + buf[2] = 0x00; + } + buf[3] = 0x00; + } + } else { + if ((pageCode == 0x3F) || (pageCode == 0x20)) { + ms_mode_sense(chip, srb->cmnd[0], + lun, buf, dataSize); + } else { + dataSize = 8; + buf[0] = 0x00; + buf[1] = 0x06; + buf[2] = 0x00; + if (check_card_wp(chip, lun)) { + buf[3] = 0x80; + } else { + buf[3] = 0x00; + } + buf[4] = 0x00; + buf[5] = 0x00; + buf[6] = 0x00; + buf[7] = 0x00; + } + } + status = TRANSPORT_GOOD; + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + scsi_set_resid(srb, scsi_bufflen(srb)); + status = TRANSPORT_FAILED; + } + + if (status == TRANSPORT_GOOD) { + unsigned int len = min(scsi_bufflen(srb), dataSize); + rtsx_stor_set_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + } + kfree(buf); + + return status; +} + +static int read_write(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ +#ifdef SUPPORT_SD_LOCK + struct sd_info *sd_card = &(chip->sd_card); +#endif + unsigned int lun = SCSI_LUN(srb); + int retval; + u32 start_sec; + u16 sec_cnt; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + if (!check_card_ready(chip, lun) || (get_card_size(chip, lun) == 0)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (!(CHK_BIT(chip->lun_mc, lun))) { + SET_BIT(chip->lun_mc, lun); + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + return TRANSPORT_FAILED; + } + +#ifdef SUPPORT_SD_LOCK + if (sd_card->sd_erase_status) { + /* Accessing to any card is forbidden + * until the erase procedure of SD is completed + */ + RTSX_DEBUGP("SD card being erased!\n"); + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_READ_FORBIDDEN); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (get_lun_card(chip, lun) == SD_CARD) { + if (sd_card->sd_lock_status & SD_LOCKED) { + RTSX_DEBUGP("SD card locked!\n"); + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_READ_FORBIDDEN); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } +#endif + + if ((srb->cmnd[0] == READ_10) || (srb->cmnd[0] == WRITE_10)) { + start_sec = ((u32)srb->cmnd[2] << 24) | ((u32)srb->cmnd[3] << 16) | + ((u32)srb->cmnd[4] << 8) | ((u32)srb->cmnd[5]); + sec_cnt = ((u16)(srb->cmnd[7]) << 8) | srb->cmnd[8]; + } else if ((srb->cmnd[0] == READ_6) || (srb->cmnd[0] == WRITE_6)) { + start_sec = ((u32)(srb->cmnd[1] & 0x1F) << 16) | + ((u32)srb->cmnd[2] << 8) | ((u32)srb->cmnd[3]); + sec_cnt = srb->cmnd[4]; + } else if ((srb->cmnd[0] == VENDOR_CMND) && (srb->cmnd[1] == SCSI_APP_CMD) && + ((srb->cmnd[2] == PP_READ10) || (srb->cmnd[2] == PP_WRITE10))) { + start_sec = ((u32)srb->cmnd[4] << 24) | ((u32)srb->cmnd[5] << 16) | + ((u32)srb->cmnd[6] << 8) | ((u32)srb->cmnd[7]); + sec_cnt = ((u16)(srb->cmnd[9]) << 8) | srb->cmnd[10]; + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + /* In some test, we will receive a start_sec like 0xFFFFFFFF. + * In this situation, start_sec + sec_cnt will overflow, so we + * need to judge start_sec at first + */ + if ((start_sec > get_card_size(chip, lun)) || + ((start_sec + sec_cnt) > get_card_size(chip, lun))) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_LBA_OVER_RANGE); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (sec_cnt == 0) { + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; + } + + if (chip->rw_fail_cnt[lun] == 3) { + RTSX_DEBUGP("read/write fail three times in succession\n"); + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + } + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (srb->sc_data_direction == DMA_TO_DEVICE) { + if (check_card_wp(chip, lun)) { + RTSX_DEBUGP("Write protected card!\n"); + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_PROTECT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + if (CHECK_PID(chip, 0x5209) && chip->max_payload) { + u8 val = 0x10 | (chip->max_payload << 5); + retval = rtsx_write_cfg_dw(chip, 0, 0x78, 0xFF, val); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + } + } + + retval = card_rw(srb, chip, start_sec, sec_cnt); + if (retval != STATUS_SUCCESS) { + if (chip->need_release & chip->lun2card[lun]) { + chip->rw_fail_cnt[lun] = 0; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + } else { + chip->rw_fail_cnt[lun]++; + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + } + } + retval = TRANSPORT_FAILED; + TRACE_GOTO(chip, Exit); + } else { + chip->rw_fail_cnt[lun] = 0; + retval = TRANSPORT_GOOD; + } + + scsi_set_resid(srb, 0); + +Exit: + if (srb->sc_data_direction == DMA_TO_DEVICE) { + if (CHECK_PID(chip, 0x5209) && chip->max_payload) { + retval = rtsx_write_cfg_dw(chip, 0, 0x78, 0xFF, 0x10); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + } + } + + return retval; +} + +static int read_format_capacity(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned char *buf; + unsigned int lun = SCSI_LUN(srb); + unsigned int buf_len; + u8 card = get_lun_card(chip, lun); + u32 card_size; + int desc_cnt; + int i = 0; + + if (!check_card_ready(chip, lun)) { + if (!chip->mspro_formatter_enable) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + buf_len = (scsi_bufflen(srb) > 12) ? 0x14 : 12; + + buf = kmalloc(buf_len, GFP_KERNEL); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + buf[i++] = 0; + buf[i++] = 0; + buf[i++] = 0; + + /* Capacity List Length */ + if ((buf_len > 12) && chip->mspro_formatter_enable && + (chip->lun2card[lun] & MS_CARD) && + (!card || (card == MS_CARD))) { + buf[i++] = 0x10; + desc_cnt = 2; + } else { + buf[i++] = 0x08; + desc_cnt = 1; + } + + while (desc_cnt) { + if (check_card_ready(chip, lun)) { + card_size = get_card_size(chip, lun); + buf[i++] = (unsigned char)(card_size >> 24); + buf[i++] = (unsigned char)(card_size >> 16); + buf[i++] = (unsigned char)(card_size >> 8); + buf[i++] = (unsigned char)card_size; + + if (desc_cnt == 2) { + buf[i++] = 2; + } else { + buf[i++] = 0; + } + } else { + buf[i++] = 0xFF; + buf[i++] = 0xFF; + buf[i++] = 0xFF; + buf[i++] = 0xFF; + + if (desc_cnt == 2) { + buf[i++] = 3; + } else { + buf[i++] = 0; + } + } + + buf[i++] = 0x00; + buf[i++] = 0x02; + buf[i++] = 0x00; + + desc_cnt--; + } + + buf_len = min(scsi_bufflen(srb), buf_len); + rtsx_stor_set_xfer_buf(buf, buf_len, srb); + kfree(buf); + + scsi_set_resid(srb, scsi_bufflen(srb) - buf_len); + + return TRANSPORT_GOOD; +} + +static int read_capacity(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned char *buf; + unsigned int lun = SCSI_LUN(srb); + u32 card_size; + + if (!check_card_ready(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (!(CHK_BIT(chip->lun_mc, lun))) { + SET_BIT(chip->lun_mc, lun); + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + return TRANSPORT_FAILED; + } + + buf = kmalloc(8, GFP_KERNEL); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + card_size = get_card_size(chip, lun); + buf[0] = (unsigned char)((card_size - 1) >> 24); + buf[1] = (unsigned char)((card_size - 1) >> 16); + buf[2] = (unsigned char)((card_size - 1) >> 8); + buf[3] = (unsigned char)(card_size - 1); + + buf[4] = 0x00; + buf[5] = 0x00; + buf[6] = 0x02; + buf[7] = 0x00; + + rtsx_stor_set_xfer_buf(buf, scsi_bufflen(srb), srb); + kfree(buf); + + scsi_set_resid(srb, 0); + + return TRANSPORT_GOOD; +} + +static int read_eeprom(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned short len, i; + int retval; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + len = ((u16)srb->cmnd[4] << 8) | srb->cmnd[5]; + + buf = (u8 *)vmalloc(len); + if (!buf) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + for (i = 0; i < len; i++) { + retval = spi_read_eeprom(chip, i, buf + i); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + len = (unsigned short)min(scsi_bufflen(srb), (unsigned int)len); + rtsx_stor_set_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + vfree(buf); + + return TRANSPORT_GOOD; +} + +static int write_eeprom(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned short len, i; + int retval; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + len = ((u16)srb->cmnd[4] << 8) | srb->cmnd[5]; + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (len == 511) { + retval = spi_erase_eeprom_chip(chip); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + len = (unsigned short)min(scsi_bufflen(srb), (unsigned int)len); + buf = (u8 *)vmalloc(len); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + rtsx_stor_get_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + for (i = 0; i < len; i++) { + retval = spi_write_eeprom(chip, i, buf[i]); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + vfree(buf); + } + + return TRANSPORT_GOOD; +} + +static int read_mem(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned short addr, len, i; + int retval; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = ((u16)srb->cmnd[2] << 8) | srb->cmnd[3]; + len = ((u16)srb->cmnd[4] << 8) | srb->cmnd[5]; + + if (addr < 0xFC00) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + buf = (u8 *)vmalloc(len); + if (!buf) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + for (i = 0; i < len; i++) { + retval = rtsx_read_register(chip, addr + i, buf + i); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + len = (unsigned short)min(scsi_bufflen(srb), (unsigned int)len); + rtsx_stor_set_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + vfree(buf); + + return TRANSPORT_GOOD; +} + +static int write_mem(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned short addr, len, i; + int retval; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = ((u16)srb->cmnd[2] << 8) | srb->cmnd[3]; + len = ((u16)srb->cmnd[4] << 8) | srb->cmnd[5]; + + if (addr < 0xFC00) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + len = (unsigned short)min(scsi_bufflen(srb), (unsigned int)len); + buf = (u8 *)vmalloc(len); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + rtsx_stor_get_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + for (i = 0; i < len; i++) { + retval = rtsx_write_register(chip, addr + i, 0xFF, buf[i]); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + vfree(buf); + + return TRANSPORT_GOOD; +} + +static int get_sd_csd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + unsigned int lun = SCSI_LUN(srb); + + if (!check_card_ready(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (get_lun_card(chip, lun) != SD_CARD) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + scsi_set_resid(srb, 0); + rtsx_stor_set_xfer_buf(sd_card->raw_csd, scsi_bufflen(srb), srb); + + return TRANSPORT_GOOD; +} + +static int toggle_gpio_cmd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + u8 gpio = srb->cmnd[2]; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + if (gpio > 3) + gpio = 1; + toggle_gpio(chip, gpio); + + return TRANSPORT_GOOD; +} + +#ifdef _MSG_TRACE +static int trace_msg_cmd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned char *ptr, *buf = NULL; + int i, msg_cnt; + u8 clear; + unsigned int buf_len; + + buf_len = 4 + ((2 + MSG_FUNC_LEN + MSG_FILE_LEN + TIME_VAL_LEN) * TRACE_ITEM_CNT); + + if ((scsi_bufflen(srb) < buf_len) || (scsi_sglist(srb) == NULL)) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + clear = srb->cmnd[2]; + + buf = (unsigned char *)vmalloc(scsi_bufflen(srb)); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + ptr = buf; + + if (chip->trace_msg[chip->msg_idx].valid) { + msg_cnt = TRACE_ITEM_CNT; + } else { + msg_cnt = chip->msg_idx; + } + *(ptr++) = (u8)(msg_cnt >> 24); + *(ptr++) = (u8)(msg_cnt >> 16); + *(ptr++) = (u8)(msg_cnt >> 8); + *(ptr++) = (u8)msg_cnt; + RTSX_DEBUGP("Trace message count is %d\n", msg_cnt); + + for (i = 1; i <= msg_cnt; i++) { + int j, idx; + + idx = chip->msg_idx - i; + if (idx < 0) + idx += TRACE_ITEM_CNT; + + *(ptr++) = (u8)(chip->trace_msg[idx].line >> 8); + *(ptr++) = (u8)(chip->trace_msg[idx].line); + for (j = 0; j < MSG_FUNC_LEN; j++) { + *(ptr++) = chip->trace_msg[idx].func[j]; + } + for (j = 0; j < MSG_FILE_LEN; j++) { + *(ptr++) = chip->trace_msg[idx].file[j]; + } + for (j = 0; j < TIME_VAL_LEN; j++) { + *(ptr++) = chip->trace_msg[idx].timeval_buf[j]; + } + } + + rtsx_stor_set_xfer_buf(buf, scsi_bufflen(srb), srb); + vfree(buf); + + if (clear) { + chip->msg_idx = 0; + for (i = 0; i < TRACE_ITEM_CNT; i++) + chip->trace_msg[i].valid = 0; + } + + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; +} +#endif + +static int read_host_reg(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + u8 addr, buf[4]; + u32 val; + unsigned int len; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = srb->cmnd[4]; + + val = rtsx_readl(chip, addr); + RTSX_DEBUGP("Host register (0x%x): 0x%x\n", addr, val); + + buf[0] = (u8)(val >> 24); + buf[1] = (u8)(val >> 16); + buf[2] = (u8)(val >> 8); + buf[3] = (u8)val; + + len = min(scsi_bufflen(srb), (unsigned int)4); + rtsx_stor_set_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + return TRANSPORT_GOOD; +} + +static int write_host_reg(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + u8 addr, buf[4]; + u32 val; + unsigned int len; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = srb->cmnd[4]; + + len = min(scsi_bufflen(srb), (unsigned int)4); + rtsx_stor_get_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + val = ((u32)buf[0] << 24) | ((u32)buf[1] << 16) | ((u32)buf[2] << 8) | buf[3]; + + rtsx_writel(chip, addr, val); + + return TRANSPORT_GOOD; +} + +static int set_variable(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned lun = SCSI_LUN(srb); + + if (srb->cmnd[3] == 1) { + /* Variable Clock */ + struct xd_info *xd_card = &(chip->xd_card); + struct sd_info *sd_card = &(chip->sd_card); + struct ms_info *ms_card = &(chip->ms_card); + + switch (srb->cmnd[4]) { + case XD_CARD: + xd_card->xd_clock = srb->cmnd[5]; + break; + + case SD_CARD: + sd_card->sd_clock = srb->cmnd[5]; + break; + + case MS_CARD: + ms_card->ms_clock = srb->cmnd[5]; + break; + + default: + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else if (srb->cmnd[3] == 2) { + if (srb->cmnd[4]) { + chip->blink_led = 1; + } else { + int retval; + + chip->blink_led = 0; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + turn_off_led(chip, LED_GPIO); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + return TRANSPORT_GOOD; +} + +static int get_variable(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned int lun = SCSI_LUN(srb); + + if (srb->cmnd[3] == 1) { + struct xd_info *xd_card = &(chip->xd_card); + struct sd_info *sd_card = &(chip->sd_card); + struct ms_info *ms_card = &(chip->ms_card); + u8 tmp; + + switch (srb->cmnd[4]) { + case XD_CARD: + tmp = (u8)(xd_card->xd_clock); + break; + + case SD_CARD: + tmp = (u8)(sd_card->sd_clock); + break; + + case MS_CARD: + tmp = (u8)(ms_card->ms_clock); + break; + + default: + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + rtsx_stor_set_xfer_buf(&tmp, 1, srb); + } else if (srb->cmnd[3] == 2) { + u8 tmp = chip->blink_led; + rtsx_stor_set_xfer_buf(&tmp, 1, srb); + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + return TRANSPORT_GOOD; +} + +static int dma_access_ring_buffer(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + unsigned int lun = SCSI_LUN(srb); + u16 len; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + len = ((u16)(srb->cmnd[4]) << 8) | srb->cmnd[5]; + len = min(len, (u16)scsi_bufflen(srb)); + + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + RTSX_DEBUGP("Read from device\n"); + } else { + RTSX_DEBUGP("Write to device\n"); + } + + retval = rtsx_transfer_data(chip, 0, scsi_sglist(srb), len, + scsi_sg_count(srb), srb->sc_data_direction, 1000); + if (retval < 0) { + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + } + TRACE_RET(chip, TRANSPORT_FAILED); + } + scsi_set_resid(srb, 0); + + return TRANSPORT_GOOD; +} + +static int get_dev_status(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + struct ms_info *ms_card = &(chip->ms_card); + int buf_len; + unsigned int lun = SCSI_LUN(srb); + u8 card = get_lun_card(chip, lun); + u8 status[32]; +#ifdef SUPPORT_OCP + u8 oc_now_mask = 0, oc_ever_mask = 0; +#endif + + memset(status, 0, 32); + + status[0] = (u8)(chip->product_id); + status[1] = chip->ic_version; + + if (chip->auto_delink_en) { + status[2] = 0x10; + } else { + status[2] = 0x00; + } + + status[3] = 20; + status[4] = 10; + status[5] = 05; + status[6] = 21; + + if (chip->card_wp) { + status[7] = 0x20; + } else { + status[7] = 0x00; + } + +#ifdef SUPPORT_OCP + status[8] = 0; + if (CHECK_LUN_MODE(chip, SD_MS_2LUN) && (chip->lun2card[lun] == MS_CARD)) { + oc_now_mask = MS_OC_NOW; + oc_ever_mask = MS_OC_EVER; + } else { + oc_now_mask = SD_OC_NOW; + oc_ever_mask = SD_OC_EVER; + } + + if (chip->ocp_stat & oc_now_mask) { + status[8] |= 0x02; + } + if (chip->ocp_stat & oc_ever_mask) { + status[8] |= 0x01; + } +#endif + + if (card == SD_CARD) { + if (CHK_SD(sd_card)) { + if (CHK_SD_HCXC(sd_card)) { + if (sd_card->capacity > 0x4000000) { + status[0x0E] = 0x02; + } else { + status[0x0E] = 0x01; + } + } else { + status[0x0E] = 0x00; + } + + if (CHK_SD_SDR104(sd_card)) { + status[0x0F] = 0x03; + } else if (CHK_SD_DDR50(sd_card)) { + status[0x0F] = 0x04; + } else if (CHK_SD_SDR50(sd_card)) { + status[0x0F] = 0x02; + } else if (CHK_SD_HS(sd_card)) { + status[0x0F] = 0x01; + } else { + status[0x0F] = 0x00; + } + } else { + if (CHK_MMC_SECTOR_MODE(sd_card)) { + status[0x0E] = 0x01; + } else { + status[0x0E] = 0x00; + } + + if (CHK_MMC_DDR52(sd_card)) { + status[0x0F] = 0x03; + } else if (CHK_MMC_52M(sd_card)) { + status[0x0F] = 0x02; + } else if (CHK_MMC_26M(sd_card)) { + status[0x0F] = 0x01; + } else { + status[0x0F] = 0x00; + } + } + } else if (card == MS_CARD) { + if (CHK_MSPRO(ms_card)) { + if (CHK_MSXC(ms_card)) { + status[0x0E] = 0x01; + } else { + status[0x0E] = 0x00; + } + + if (CHK_HG8BIT(ms_card)) { + status[0x0F] = 0x01; + } else { + status[0x0F] = 0x00; + } + } + } + +#ifdef SUPPORT_SD_LOCK + if (card == SD_CARD) { + status[0x17] = 0x80; + if (sd_card->sd_erase_status) + status[0x17] |= 0x01; + if (sd_card->sd_lock_status & SD_LOCKED) { + status[0x17] |= 0x02; + status[0x07] |= 0x40; + } + if (sd_card->sd_lock_status & SD_PWD_EXIST) + status[0x17] |= 0x04; + } else { + status[0x17] = 0x00; + } + + RTSX_DEBUGP("status[0x17] = 0x%x\n", status[0x17]); +#endif + + status[0x18] = 0x8A; + status[0x1A] = 0x28; +#ifdef SUPPORT_SD_LOCK + status[0x1F] = 0x01; +#endif + + buf_len = min(scsi_bufflen(srb), (unsigned int)sizeof(status)); + rtsx_stor_set_xfer_buf(status, buf_len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - buf_len); + + return TRANSPORT_GOOD; +} + +static int set_chip_mode(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int phy_debug_mode; + int retval; + u16 reg; + + if (!CHECK_PID(chip, 0x5208)) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + phy_debug_mode = (int)(srb->cmnd[3]); + + if (phy_debug_mode) { + chip->phy_debug_mode = 1; + retval = rtsx_write_register(chip, CDRESUMECTL, 0x77, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + rtsx_disable_bus_int(chip); + + retval = rtsx_read_phy_register(chip, 0x1C, ®); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + reg |= 0x0001; + retval = rtsx_write_phy_register(chip, 0x1C, reg); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + chip->phy_debug_mode = 0; + retval = rtsx_write_register(chip, CDRESUMECTL, 0x77, 0x77); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + rtsx_enable_bus_int(chip); + + retval = rtsx_read_phy_register(chip, 0x1C, ®); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + reg &= 0xFFFE; + retval = rtsx_write_phy_register(chip, 0x1C, reg); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + return TRANSPORT_GOOD; +} + +static int rw_mem_cmd_buf(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval = STATUS_SUCCESS; + unsigned int lun = SCSI_LUN(srb); + u8 cmd_type, mask, value, idx; + u16 addr; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + switch (srb->cmnd[3]) { + case INIT_BATCHCMD: + rtsx_init_cmd(chip); + break; + + case ADD_BATCHCMD: + cmd_type = srb->cmnd[4]; + if (cmd_type > 2) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + addr = (srb->cmnd[5] << 8) | srb->cmnd[6]; + mask = srb->cmnd[7]; + value = srb->cmnd[8]; + rtsx_add_cmd(chip, cmd_type, addr, mask, value); + break; + + case SEND_BATCHCMD: + retval = rtsx_send_cmd(chip, 0, 1000); + break; + + case GET_BATCHRSP: + idx = srb->cmnd[4]; + value = *(rtsx_get_cmd_data(chip) + idx); + if (scsi_bufflen(srb) < 1) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + rtsx_stor_set_xfer_buf(&value, 1, srb); + scsi_set_resid(srb, 0); + break; + + default: + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + return TRANSPORT_GOOD; +} + +static int suit_cmd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int result; + + switch (srb->cmnd[3]) { + case INIT_BATCHCMD: + case ADD_BATCHCMD: + case SEND_BATCHCMD: + case GET_BATCHRSP: + result = rw_mem_cmd_buf(srb, chip); + break; + default: + result = TRANSPORT_ERROR; + } + + return result; +} + +static int read_phy_register(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned short addr, len, i; + int retval; + u8 *buf; + u16 val; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = ((u16)srb->cmnd[4] << 8) | srb->cmnd[5]; + len = ((u16)srb->cmnd[6] << 8) | srb->cmnd[7]; + + if (len % 2) + len -= len % 2; + + if (len) { + buf = (u8 *)vmalloc(len); + if (!buf) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + for (i = 0; i < len / 2; i++) { + retval = rtsx_read_phy_register(chip, addr + i, &val); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + buf[2*i] = (u8)(val >> 8); + buf[2*i+1] = (u8)val; + } + + len = (unsigned short)min(scsi_bufflen(srb), (unsigned int)len); + rtsx_stor_set_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + vfree(buf); + } + + return TRANSPORT_GOOD; +} + +static int write_phy_register(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned short addr, len, i; + int retval; + u8 *buf; + u16 val; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = ((u16)srb->cmnd[4] << 8) | srb->cmnd[5]; + len = ((u16)srb->cmnd[6] << 8) | srb->cmnd[7]; + + if (len % 2) + len -= len % 2; + + if (len) { + len = (unsigned short)min(scsi_bufflen(srb), (unsigned int)len); + + buf = (u8 *)vmalloc(len); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + rtsx_stor_get_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + for (i = 0; i < len / 2; i++) { + val = ((u16)buf[2*i] << 8) | buf[2*i+1]; + retval = rtsx_write_phy_register(chip, addr + i, val); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + vfree(buf); + } + + return TRANSPORT_GOOD; +} + +static int erase_eeprom2(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned short addr; + int retval; + u8 mode; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + mode = srb->cmnd[3]; + addr = ((u16)srb->cmnd[4] << 8) | srb->cmnd[5]; + + if (mode == 0) { + retval = spi_erase_eeprom_chip(chip); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else if (mode == 1) { + retval = spi_erase_eeprom_byte(chip, addr); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + return TRANSPORT_GOOD; +} + +static int read_eeprom2(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned short addr, len, i; + int retval; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = ((u16)srb->cmnd[4] << 8) | srb->cmnd[5]; + len = ((u16)srb->cmnd[6] << 8) | srb->cmnd[7]; + + buf = (u8 *)vmalloc(len); + if (!buf) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + for (i = 0; i < len; i++) { + retval = spi_read_eeprom(chip, addr + i, buf + i); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + len = (unsigned short)min(scsi_bufflen(srb), (unsigned int)len); + rtsx_stor_set_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + vfree(buf); + + return TRANSPORT_GOOD; +} + +static int write_eeprom2(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned short addr, len, i; + int retval; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = ((u16)srb->cmnd[4] << 8) | srb->cmnd[5]; + len = ((u16)srb->cmnd[6] << 8) | srb->cmnd[7]; + + len = (unsigned short)min(scsi_bufflen(srb), (unsigned int)len); + buf = (u8 *)vmalloc(len); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + rtsx_stor_get_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + for (i = 0; i < len; i++) { + retval = spi_write_eeprom(chip, addr + i, buf[i]); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + vfree(buf); + + return TRANSPORT_GOOD; +} + +static int read_efuse(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + u8 addr, len, i; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = srb->cmnd[4]; + len = srb->cmnd[5]; + + buf = (u8 *)vmalloc(len); + if (!buf) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + for (i = 0; i < len; i++) { + retval = rtsx_read_efuse(chip, addr + i, buf + i); + if (retval != STATUS_SUCCESS) { + vfree(buf); + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + len = (u8)min(scsi_bufflen(srb), (unsigned int)len); + rtsx_stor_set_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + vfree(buf); + + return TRANSPORT_GOOD; +} + +static int write_efuse(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval, result = TRANSPORT_GOOD; + u16 val; + u8 addr, len, i; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + addr = srb->cmnd[4]; + len = srb->cmnd[5]; + + len = (u8)min(scsi_bufflen(srb), (unsigned int)len); + buf = (u8 *)vmalloc(len); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + rtsx_stor_get_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + retval = rtsx_force_power_on(chip, SSC_PDCTL); + if (retval != STATUS_SUCCESS) { + vfree(buf); + TRACE_RET(chip, TRANSPORT_ERROR); + } + + if (chip->asic_code) { + retval = rtsx_read_phy_register(chip, 0x08, &val); + if (retval != STATUS_SUCCESS) { + vfree(buf); + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = rtsx_write_register(chip, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_OFF); + if (retval != STATUS_SUCCESS) { + vfree(buf); + TRACE_RET(chip, TRANSPORT_ERROR); + } + + wait_timeout(600); + + retval = rtsx_write_phy_register(chip, 0x08, 0x4C00 | chip->phy_voltage); + if (retval != STATUS_SUCCESS) { + vfree(buf); + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = rtsx_write_register(chip, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_ON); + if (retval != STATUS_SUCCESS) { + vfree(buf); + TRACE_RET(chip, TRANSPORT_ERROR); + } + + wait_timeout(600); + } + + retval = card_power_on(chip, SPI_CARD); + if (retval != STATUS_SUCCESS) { + vfree(buf); + TRACE_RET(chip, TRANSPORT_ERROR); + } + + wait_timeout(50); + + for (i = 0; i < len; i++) { + retval = rtsx_write_efuse(chip, addr + i, buf[i]); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + result = TRANSPORT_FAILED; + TRACE_GOTO(chip, Exit); + } + } + +Exit: + vfree(buf); + + retval = card_power_off(chip, SPI_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + if (chip->asic_code) { + retval = rtsx_write_register(chip, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_OFF); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + wait_timeout(600); + + retval = rtsx_write_phy_register(chip, 0x08, val); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = rtsx_write_register(chip, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_ON); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + } + + return result; +} + +static int read_cfg_byte(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + u8 func, func_max; + u16 addr, len; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + func = srb->cmnd[3]; + addr = ((u16)(srb->cmnd[4]) << 8) | srb->cmnd[5]; + len = ((u16)(srb->cmnd[6]) << 8) | srb->cmnd[7]; + + RTSX_DEBUGP("%s: func = %d, addr = 0x%x, len = %d\n", __func__, func, addr, len); + + if (CHK_SDIO_EXIST(chip) && !CHK_SDIO_IGNORED(chip)) { + func_max = 1; + } else { + func_max = 0; + } + + if (func > func_max) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + buf = (u8 *)vmalloc(len); + if (!buf) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = rtsx_read_cfg_seq(chip, func, addr, buf, len); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + vfree(buf); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + len = (u16)min(scsi_bufflen(srb), (unsigned int)len); + rtsx_stor_set_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + vfree(buf); + + return TRANSPORT_GOOD; +} + +static int write_cfg_byte(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval; + u8 func, func_max; + u16 addr, len; + u8 *buf; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + func = srb->cmnd[3]; + addr = ((u16)(srb->cmnd[4]) << 8) | srb->cmnd[5]; + len = ((u16)(srb->cmnd[6]) << 8) | srb->cmnd[7]; + + RTSX_DEBUGP("%s: func = %d, addr = 0x%x\n", __func__, func, addr); + + if (CHK_SDIO_EXIST(chip) && !CHK_SDIO_IGNORED(chip)) { + func_max = 1; + } else { + func_max = 0; + } + + if (func > func_max) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + len = (unsigned short)min(scsi_bufflen(srb), (unsigned int)len); + buf = (u8 *)vmalloc(len); + if (!buf) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + rtsx_stor_get_xfer_buf(buf, len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - len); + + retval = rtsx_write_cfg_seq(chip, func, addr, buf, len); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_WRITE_ERR); + vfree(buf); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + vfree(buf); + + return TRANSPORT_GOOD; +} + +static int app_cmd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int result; + + switch (srb->cmnd[2]) { + case PP_READ10: + case PP_WRITE10: + result = read_write(srb, chip); + break; + + case READ_HOST_REG: + result = read_host_reg(srb, chip); + break; + + case WRITE_HOST_REG: + result = write_host_reg(srb, chip); + break; + + case GET_VAR: + result = get_variable(srb, chip); + break; + + case SET_VAR: + result = set_variable(srb, chip); + break; + + case DMA_READ: + case DMA_WRITE: + result = dma_access_ring_buffer(srb, chip); + break; + + case READ_PHY: + result = read_phy_register(srb, chip); + break; + + case WRITE_PHY: + result = write_phy_register(srb, chip); + break; + + case ERASE_EEPROM2: + result = erase_eeprom2(srb, chip); + break; + + case READ_EEPROM2: + result = read_eeprom2(srb, chip); + break; + + case WRITE_EEPROM2: + result = write_eeprom2(srb, chip); + break; + + case READ_EFUSE: + result = read_efuse(srb, chip); + break; + + case WRITE_EFUSE: + result = write_efuse(srb, chip); + break; + + case READ_CFG: + result = read_cfg_byte(srb, chip); + break; + + case WRITE_CFG: + result = write_cfg_byte(srb, chip); + break; + + case SET_CHIP_MODE: + result = set_chip_mode(srb, chip); + break; + + case SUIT_CMD: + result = suit_cmd(srb, chip); + break; + + case GET_DEV_STATUS: + result = get_dev_status(srb, chip); + break; + + default: + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + return result; +} + + +static int read_status(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + u8 rtsx_status[16]; + int buf_len; + unsigned int lun = SCSI_LUN(srb); + + rtsx_status[0] = (u8)(chip->vendor_id >> 8); + rtsx_status[1] = (u8)(chip->vendor_id); + + rtsx_status[2] = (u8)(chip->product_id >> 8); + rtsx_status[3] = (u8)(chip->product_id); + + rtsx_status[4] = (u8)lun; + + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + if (chip->lun2card[lun] == SD_CARD) { + rtsx_status[5] = 2; + } else { + rtsx_status[5] = 3; + } + } else { + if (chip->card_exist) { + if (chip->card_exist & XD_CARD) { + rtsx_status[5] = 4; + } else if (chip->card_exist & SD_CARD) { + rtsx_status[5] = 2; + } else if (chip->card_exist & MS_CARD) { + rtsx_status[5] = 3; + } else { + rtsx_status[5] = 7; + } + } else { + rtsx_status[5] = 7; + } + } + + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + rtsx_status[6] = 2; + } else { + rtsx_status[6] = 1; + } + + rtsx_status[7] = (u8)(chip->product_id); + rtsx_status[8] = chip->ic_version; + + if (check_card_exist(chip, lun)) { + rtsx_status[9] = 1; + } else { + rtsx_status[9] = 0; + } + + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + rtsx_status[10] = 0; + } else { + rtsx_status[10] = 1; + } + + if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { + if (chip->lun2card[lun] == SD_CARD) { + rtsx_status[11] = SD_CARD; + } else { + rtsx_status[11] = MS_CARD; + } + } else { + rtsx_status[11] = XD_CARD | SD_CARD | MS_CARD; + } + + if (check_card_ready(chip, lun)) { + rtsx_status[12] = 1; + } else { + rtsx_status[12] = 0; + } + + if (get_lun_card(chip, lun) == XD_CARD) { + rtsx_status[13] = 0x40; + } else if (get_lun_card(chip, lun) == SD_CARD) { + struct sd_info *sd_card = &(chip->sd_card); + + rtsx_status[13] = 0x20; + if (CHK_SD(sd_card)) { + if (CHK_SD_HCXC(sd_card)) + rtsx_status[13] |= 0x04; + if (CHK_SD_HS(sd_card)) + rtsx_status[13] |= 0x02; + } else { + rtsx_status[13] |= 0x08; + if (CHK_MMC_52M(sd_card)) + rtsx_status[13] |= 0x02; + if (CHK_MMC_SECTOR_MODE(sd_card)) + rtsx_status[13] |= 0x04; + } + } else if (get_lun_card(chip, lun) == MS_CARD) { + struct ms_info *ms_card = &(chip->ms_card); + + if (CHK_MSPRO(ms_card)) { + rtsx_status[13] = 0x38; + if (CHK_HG8BIT(ms_card)) + rtsx_status[13] |= 0x04; +#ifdef SUPPORT_MSXC + if (CHK_MSXC(ms_card)) + rtsx_status[13] |= 0x01; +#endif + } else { + rtsx_status[13] = 0x30; + } + } else { + if (CHECK_LUN_MODE(chip, DEFAULT_SINGLE)) { +#ifdef SUPPORT_SDIO + if (chip->sd_io && chip->sd_int) { + rtsx_status[13] = 0x60; + } else { + rtsx_status[13] = 0x70; + } +#else + rtsx_status[13] = 0x70; +#endif + } else { + if (chip->lun2card[lun] == SD_CARD) { + rtsx_status[13] = 0x20; + } else { + rtsx_status[13] = 0x30; + } + } + } + + rtsx_status[14] = 0x78; + if (CHK_SDIO_EXIST(chip) && !CHK_SDIO_IGNORED(chip)) { + rtsx_status[15] = 0x83; + } else { + rtsx_status[15] = 0x82; + } + + buf_len = min(scsi_bufflen(srb), (unsigned int)sizeof(rtsx_status)); + rtsx_stor_set_xfer_buf(rtsx_status, buf_len, srb); + scsi_set_resid(srb, scsi_bufflen(srb) - buf_len); + + return TRANSPORT_GOOD; +} + +static int get_card_bus_width(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned int lun = SCSI_LUN(srb); + u8 card, bus_width; + + if (!check_card_ready(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + card = get_lun_card(chip, lun); + if ((card == SD_CARD) || (card == MS_CARD)) { + bus_width = chip->card_bus_width[lun]; + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + scsi_set_resid(srb, 0); + rtsx_stor_set_xfer_buf(&bus_width, scsi_bufflen(srb), srb); + + return TRANSPORT_GOOD; +} + +static int spi_vendor_cmd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int result; + unsigned int lun = SCSI_LUN(srb); + u8 gpio_dir; + + if (CHECK_PID(chip, 0x5208) && CHECK_PID(chip, 0x5288)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + rtsx_force_power_on(chip, SSC_PDCTL); + + rtsx_read_register(chip, CARD_GPIO_DIR, &gpio_dir); + rtsx_write_register(chip, CARD_GPIO_DIR, 0x07, gpio_dir & 0x06); + + switch (srb->cmnd[2]) { + case SCSI_SPI_GETSTATUS: + result = spi_get_status(srb, chip); + break; + + case SCSI_SPI_SETPARAMETER: + result = spi_set_parameter(srb, chip); + break; + + case SCSI_SPI_READFALSHID: + result = spi_read_flash_id(srb, chip); + break; + + case SCSI_SPI_READFLASH: + result = spi_read_flash(srb, chip); + break; + + case SCSI_SPI_WRITEFLASH: + result = spi_write_flash(srb, chip); + break; + + case SCSI_SPI_WRITEFLASHSTATUS: + result = spi_write_flash_status(srb, chip); + break; + + case SCSI_SPI_ERASEFLASH: + result = spi_erase_flash(srb, chip); + break; + + default: + rtsx_write_register(chip, CARD_GPIO_DIR, 0x07, gpio_dir); + + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + rtsx_write_register(chip, CARD_GPIO_DIR, 0x07, gpio_dir); + + if (result != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + + return TRANSPORT_GOOD; +} + +static int vendor_cmnd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int result; + + switch (srb->cmnd[1]) { + case READ_STATUS: + result = read_status(srb, chip); + break; + + case READ_MEM: + result = read_mem(srb, chip); + break; + + case WRITE_MEM: + result = write_mem(srb, chip); + break; + + case READ_EEPROM: + result = read_eeprom(srb, chip); + break; + + case WRITE_EEPROM: + result = write_eeprom(srb, chip); + break; + + case TOGGLE_GPIO: + result = toggle_gpio_cmd(srb, chip); + break; + + case GET_SD_CSD: + result = get_sd_csd(srb, chip); + break; + + case GET_BUS_WIDTH: + result = get_card_bus_width(srb, chip); + break; + +#ifdef _MSG_TRACE + case TRACE_MSG: + result = trace_msg_cmd(srb, chip); + break; +#endif + + case SCSI_APP_CMD: + result = app_cmd(srb, chip); + break; + + case SPI_VENDOR_COMMAND: + result = spi_vendor_cmd(srb, chip); + break; + + default: + set_sense_type(chip, SCSI_LUN(srb), SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + return result; +} + +#if !defined(LED_AUTO_BLINK) && !defined(REGULAR_BLINK) +void led_shine(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned int lun = SCSI_LUN(srb); + u16 sec_cnt; + + if ((srb->cmnd[0] == READ_10) || (srb->cmnd[0] == WRITE_10)) { + sec_cnt = ((u16)(srb->cmnd[7]) << 8) | srb->cmnd[8]; + } else if ((srb->cmnd[0] == READ_6) || (srb->cmnd[0] == WRITE_6)) { + sec_cnt = srb->cmnd[4]; + } else { + return; + } + + if (chip->rw_cap[lun] >= GPIO_TOGGLE_THRESHOLD) { + toggle_gpio(chip, LED_GPIO); + chip->rw_cap[lun] = 0; + } else { + chip->rw_cap[lun] += sec_cnt; + } +} +#endif + +static int ms_format_cmnd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + unsigned int lun = SCSI_LUN(srb); + int retval, quick_format; + + if (get_lun_card(chip, lun) != MS_CARD) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_LUN_NOT_SUPPORT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if ((srb->cmnd[3] != 0x4D) || (srb->cmnd[4] != 0x47) || + (srb->cmnd[5] != 0x66) || (srb->cmnd[6] != 0x6D) || + (srb->cmnd[7] != 0x74)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + + if (!check_card_ready(chip, lun) || + (get_card_size(chip, lun) == 0)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + if (srb->cmnd[8] & 0x01) { + quick_format = 0; + } else { + quick_format = 1; + } + + if (!(chip->card_ready & MS_CARD)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (chip->card_wp & MS_CARD) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_PROTECT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (!CHK_MSPRO(ms_card)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_LUN_NOT_SUPPORT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + retval = mspro_format(srb, chip, MS_SHORT_DATA_LEN, quick_format); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_FORMAT_CMD_FAILED); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; +} + +#ifdef SUPPORT_PCGL_1P18 +static int get_ms_information(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + unsigned int lun = SCSI_LUN(srb); + u8 dev_info_id, data_len; + u8 *buf; + unsigned int buf_len; + int i; + + if (!check_card_ready(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + if ((get_lun_card(chip, lun) != MS_CARD)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_LUN_NOT_SUPPORT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if ((srb->cmnd[2] != 0xB0) || (srb->cmnd[4] != 0x4D) || + (srb->cmnd[5] != 0x53) || (srb->cmnd[6] != 0x49) || + (srb->cmnd[7] != 0x44)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + dev_info_id = srb->cmnd[3]; + if ((CHK_MSXC(ms_card) && (dev_info_id == 0x10)) || + (!CHK_MSXC(ms_card) && (dev_info_id == 0x13)) || + !CHK_MSPRO(ms_card)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (dev_info_id == 0x15) { + buf_len = data_len = 0x3A; + } else { + buf_len = data_len = 0x6A; + } + + buf = (u8 *)kmalloc(buf_len, GFP_KERNEL); + if (!buf) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + i = 0; + /* GET Memory Stick Media Information Response Header */ + buf[i++] = 0x00; /* Data length MSB */ + buf[i++] = data_len; /* Data length LSB */ + /* Device Information Type Code */ + if (CHK_MSXC(ms_card)) { + buf[i++] = 0x03; + } else { + buf[i++] = 0x02; + } + /* SGM bit */ + buf[i++] = 0x01; + /* Reserved */ + buf[i++] = 0x00; + buf[i++] = 0x00; + buf[i++] = 0x00; + /* Number of Device Information */ + buf[i++] = 0x01; + + /* Device Information Body */ + + /* Device Information ID Number */ + buf[i++] = dev_info_id; + /* Device Information Length */ + if (dev_info_id == 0x15) { + data_len = 0x31; + } else { + data_len = 0x61; + } + buf[i++] = 0x00; /* Data length MSB */ + buf[i++] = data_len; /* Data length LSB */ + /* Valid Bit */ + buf[i++] = 0x80; + if ((dev_info_id == 0x10) || (dev_info_id == 0x13)) { + /* System Information */ + memcpy(buf+i, ms_card->raw_sys_info, 96); + } else { + /* Model Name */ + memcpy(buf+i, ms_card->raw_model_name, 48); + } + + rtsx_stor_set_xfer_buf(buf, buf_len, srb); + + if (dev_info_id == 0x15) { + scsi_set_resid(srb, scsi_bufflen(srb)-0x3C); + } else { + scsi_set_resid(srb, scsi_bufflen(srb)-0x6C); + } + + kfree(buf); + return STATUS_SUCCESS; +} +#endif + +static int ms_sp_cmnd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + int retval = TRANSPORT_ERROR; + + if (srb->cmnd[2] == MS_FORMAT) { + retval = ms_format_cmnd(srb, chip); + } +#ifdef SUPPORT_PCGL_1P18 + else if (srb->cmnd[2] == GET_MS_INFORMATION) { + retval = get_ms_information(srb, chip); + } +#endif + + return retval; +} + +#ifdef SUPPORT_CPRM +static int sd_extention_cmnd(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + unsigned int lun = SCSI_LUN(srb); + int result; + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + sd_cleanup_work(chip); + + if (!check_card_ready(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + if ((get_lun_card(chip, lun) != SD_CARD)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_LUN_NOT_SUPPORT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + switch (srb->cmnd[0]) { + case SD_PASS_THRU_MODE: + result = sd_pass_thru_mode(srb, chip); + break; + + case SD_EXECUTE_NO_DATA: + result = sd_execute_no_data(srb, chip); + break; + + case SD_EXECUTE_READ: + result = sd_execute_read_data(srb, chip); + break; + + case SD_EXECUTE_WRITE: + result = sd_execute_write_data(srb, chip); + break; + + case SD_GET_RSP: + result = sd_get_cmd_rsp(srb, chip); + break; + + case SD_HW_RST: + result = sd_hw_rst(srb, chip); + break; + + default: + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + return result; +} +#endif + +#ifdef SUPPORT_MAGIC_GATE +static int mg_report_key(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + unsigned int lun = SCSI_LUN(srb); + int retval; + u8 key_format; + + RTSX_DEBUGP("--%s--\n", __func__); + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + ms_cleanup_work(chip); + + if (!check_card_ready(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + if ((get_lun_card(chip, lun) != MS_CARD)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_LUN_NOT_SUPPORT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (srb->cmnd[7] != KC_MG_R_PRO) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (!CHK_MSPRO(ms_card)) { + set_sense_type(chip, lun, SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + key_format = srb->cmnd[10] & 0x3F; + RTSX_DEBUGP("key_format = 0x%x\n", key_format); + + switch (key_format) { + case KF_GET_LOC_EKB: + if ((scsi_bufflen(srb) == 0x41C) && + (srb->cmnd[8] == 0x04) && + (srb->cmnd[9] == 0x1C)) { + retval = mg_get_local_EKB(srb, chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + break; + + case KF_RSP_CHG: + if ((scsi_bufflen(srb) == 0x24) && + (srb->cmnd[8] == 0x00) && + (srb->cmnd[9] == 0x24)) { + retval = mg_get_rsp_chg(srb, chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + break; + + case KF_GET_ICV: + ms_card->mg_entry_num = srb->cmnd[5]; + if ((scsi_bufflen(srb) == 0x404) && + (srb->cmnd[8] == 0x04) && + (srb->cmnd[9] == 0x04) && + (srb->cmnd[2] == 0x00) && + (srb->cmnd[3] == 0x00) && + (srb->cmnd[4] == 0x00) && + (srb->cmnd[5] < 32)) { + retval = mg_get_ICV(srb, chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + break; + + default: + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; +} + +static int mg_send_key(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct ms_info *ms_card = &(chip->ms_card); + unsigned int lun = SCSI_LUN(srb); + int retval; + u8 key_format; + + RTSX_DEBUGP("--%s--\n", __func__); + + rtsx_disable_aspm(chip); + + if (chip->ss_en && (rtsx_get_stat(chip) == RTSX_STAT_SS)) { + rtsx_exit_ss(chip); + wait_timeout(100); + } + rtsx_set_stat(chip, RTSX_STAT_RUN); + + ms_cleanup_work(chip); + + if (!check_card_ready(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + if (check_card_wp(chip, lun)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_PROTECT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + if ((get_lun_card(chip, lun) != MS_CARD)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_LUN_NOT_SUPPORT); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (srb->cmnd[7] != KC_MG_R_PRO) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (!CHK_MSPRO(ms_card)) { + set_sense_type(chip, lun, SENSE_TYPE_MG_INCOMPATIBLE_MEDIUM); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + key_format = srb->cmnd[10] & 0x3F; + RTSX_DEBUGP("key_format = 0x%x\n", key_format); + + switch (key_format) { + case KF_SET_LEAF_ID: + if ((scsi_bufflen(srb) == 0x0C) && + (srb->cmnd[8] == 0x00) && + (srb->cmnd[9] == 0x0C)) { + retval = mg_set_leaf_id(srb, chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + break; + + case KF_CHG_HOST: + if ((scsi_bufflen(srb) == 0x0C) && + (srb->cmnd[8] == 0x00) && + (srb->cmnd[9] == 0x0C)) { + retval = mg_chg(srb, chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + break; + + case KF_RSP_HOST: + if ((scsi_bufflen(srb) == 0x0C) && + (srb->cmnd[8] == 0x00) && + (srb->cmnd[9] == 0x0C)) { + retval = mg_rsp(srb, chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + break; + + case KF_SET_ICV: + ms_card->mg_entry_num = srb->cmnd[5]; + if ((scsi_bufflen(srb) == 0x404) && + (srb->cmnd[8] == 0x04) && + (srb->cmnd[9] == 0x04) && + (srb->cmnd[2] == 0x00) && + (srb->cmnd[3] == 0x00) && + (srb->cmnd[4] == 0x00) && + (srb->cmnd[5] < 32)) { + retval = mg_set_ICV(srb, chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + break; + + default: + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; +} +#endif + +int rtsx_scsi_handler(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ +#ifdef SUPPORT_SD_LOCK + struct sd_info *sd_card = &(chip->sd_card); +#endif + struct ms_info *ms_card = &(chip->ms_card); + unsigned int lun = SCSI_LUN(srb); + int result; + +#ifdef SUPPORT_SD_LOCK + if (sd_card->sd_erase_status) { + /* Block all SCSI command except for + * REQUEST_SENSE and rs_ppstatus + */ + if (!((srb->cmnd[0] == VENDOR_CMND) && + (srb->cmnd[1] == SCSI_APP_CMD) && + (srb->cmnd[2] == GET_DEV_STATUS)) && + (srb->cmnd[0] != REQUEST_SENSE)) { + /* Logical Unit Not Ready Format in Progress */ + set_sense_data(chip, lun, CUR_ERR, + 0x02, 0, 0x04, 0x04, 0, 0); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } +#endif + + if ((get_lun_card(chip, lun) == MS_CARD) && + (ms_card->format_status == FORMAT_IN_PROGRESS)) { + if ((srb->cmnd[0] != REQUEST_SENSE) && (srb->cmnd[0] != INQUIRY)) { + /* Logical Unit Not Ready Format in Progress */ + set_sense_data(chip, lun, CUR_ERR, 0x02, 0, 0x04, 0x04, + 0, (u16)(ms_card->progress)); + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + + switch (srb->cmnd[0]) { + case READ_10: + case WRITE_10: + case READ_6: + case WRITE_6: + result = read_write(srb, chip); +#if !defined(LED_AUTO_BLINK) && !defined(REGULAR_BLINK) + led_shine(srb, chip); +#endif + break; + + case TEST_UNIT_READY: + result = test_unit_ready(srb, chip); + break; + + case INQUIRY: + result = inquiry(srb, chip); + break; + + case READ_CAPACITY: + result = read_capacity(srb, chip); + break; + + case START_STOP: + result = start_stop_unit(srb, chip); + break; + + case ALLOW_MEDIUM_REMOVAL: + result = allow_medium_removal(srb, chip); + break; + + case REQUEST_SENSE: + result = request_sense(srb, chip); + break; + + case MODE_SENSE: + case MODE_SENSE_10: + result = mode_sense(srb, chip); + break; + + case 0x23: + result = read_format_capacity(srb, chip); + break; + + case VENDOR_CMND: + result = vendor_cmnd(srb, chip); + break; + + case MS_SP_CMND: + result = ms_sp_cmnd(srb, chip); + break; + +#ifdef SUPPORT_CPRM + case SD_PASS_THRU_MODE: + case SD_EXECUTE_NO_DATA: + case SD_EXECUTE_READ: + case SD_EXECUTE_WRITE: + case SD_GET_RSP: + case SD_HW_RST: + result = sd_extention_cmnd(srb, chip); + break; +#endif + +#ifdef SUPPORT_MAGIC_GATE + case CMD_MSPRO_MG_RKEY: + result = mg_report_key(srb, chip); + break; + + case CMD_MSPRO_MG_SKEY: + result = mg_send_key(srb, chip); + break; +#endif + + case FORMAT_UNIT: + case MODE_SELECT: + case VERIFY: + result = TRANSPORT_GOOD; + break; + + default: + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + result = TRANSPORT_FAILED; + } + + return result; +} --- linux-2.6.38.orig/drivers/staging/rts_pstor/general.h +++ linux-2.6.38/drivers/staging/rts_pstor/general.h @@ -0,0 +1,31 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __RTSX_GENERAL_H +#define __RTSX_GENERAL_H + +#include "rtsx.h" + +int bit1cnt_long(u32 data); + +#endif /* __RTSX_GENERAL_H */ --- linux-2.6.38.orig/drivers/staging/rts_pstor/sd.h +++ linux-2.6.38/drivers/staging/rts_pstor/sd.h @@ -0,0 +1,295 @@ +/* Driver for Realtek PCI-Express card reader + * Header file + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#ifndef __REALTEK_RTSX_SD_H +#define __REALTEK_RTSX_SD_H + +#include "rtsx_chip.h" + +#define SUPPORT_VOLTAGE 0x003C0000 + +/* Error Code */ +#define SD_NO_ERROR 0x0 +#define SD_CRC_ERR 0x80 +#define SD_TO_ERR 0x40 +#define SD_NO_CARD 0x20 +#define SD_BUSY 0x10 +#define SD_STS_ERR 0x08 +#define SD_RSP_TIMEOUT 0x04 +#define SD_IO_ERR 0x02 + +/* MMC/SD Command Index */ +/* Basic command (class 0) */ +#define GO_IDLE_STATE 0 +#define SEND_OP_COND 1 +#define ALL_SEND_CID 2 +#define SET_RELATIVE_ADDR 3 +#define SEND_RELATIVE_ADDR 3 +#define SET_DSR 4 +#define IO_SEND_OP_COND 5 +#define SWITCH 6 +#define SELECT_CARD 7 +#define DESELECT_CARD 7 +/* CMD8 is "SEND_EXT_CSD" for MMC4.x Spec + * while is "SEND_IF_COND" for SD 2.0 + */ +#define SEND_EXT_CSD 8 +#define SEND_IF_COND 8 + +#define SEND_CSD 9 +#define SEND_CID 10 +#define VOLTAGE_SWITCH 11 +#define READ_DAT_UTIL_STOP 11 +#define STOP_TRANSMISSION 12 +#define SEND_STATUS 13 +#define GO_INACTIVE_STATE 15 + +#define SET_BLOCKLEN 16 +#define READ_SINGLE_BLOCK 17 +#define READ_MULTIPLE_BLOCK 18 +#define SEND_TUNING_PATTERN 19 + +#define BUSTEST_R 14 +#define BUSTEST_W 19 + +#define WRITE_BLOCK 24 +#define WRITE_MULTIPLE_BLOCK 25 +#define PROGRAM_CSD 27 + +#define ERASE_WR_BLK_START 32 +#define ERASE_WR_BLK_END 33 +#define ERASE_CMD 38 + +#define LOCK_UNLOCK 42 +#define IO_RW_DIRECT 52 + +#define APP_CMD 55 +#define GEN_CMD 56 + +#define SET_BUS_WIDTH 6 +#define SD_STATUS 13 +#define SEND_NUM_WR_BLOCKS 22 +#define SET_WR_BLK_ERASE_COUNT 23 +#define SD_APP_OP_COND 41 +#define SET_CLR_CARD_DETECT 42 +#define SEND_SCR 51 + +#define SD_READ_COMPLETE 0x00 +#define SD_READ_TO 0x01 +#define SD_READ_ADVENCE 0x02 + +#define SD_CHECK_MODE 0x00 +#define SD_SWITCH_MODE 0x80 +#define SD_FUNC_GROUP_1 0x01 +#define SD_FUNC_GROUP_2 0x02 +#define SD_FUNC_GROUP_3 0x03 +#define SD_FUNC_GROUP_4 0x04 +#define SD_CHECK_SPEC_V1_1 0xFF + +#define NO_ARGUMENT 0x00 +#define CHECK_PATTERN 0x000000AA +#define VOLTAGE_SUPPLY_RANGE 0x00000100 +#define SUPPORT_HIGH_AND_EXTENDED_CAPACITY 0x40000000 +#define SUPPORT_MAX_POWER_PERMANCE 0x10000000 +#define SUPPORT_1V8 0x01000000 + +#define SWTICH_NO_ERR 0x00 +#define CARD_NOT_EXIST 0x01 +#define SPEC_NOT_SUPPORT 0x02 +#define CHECK_MODE_ERR 0x03 +#define CHECK_NOT_READY 0x04 +#define SWITCH_CRC_ERR 0x05 +#define SWITCH_MODE_ERR 0x06 +#define SWITCH_PASS 0x07 + +#ifdef SUPPORT_SD_LOCK +#define SD_ERASE 0x08 +#define SD_LOCK 0x04 +#define SD_UNLOCK 0x00 +#define SD_CLR_PWD 0x02 +#define SD_SET_PWD 0x01 + +#define SD_PWD_LEN 0x10 + +#define SD_LOCKED 0x80 +#define SD_LOCK_1BIT_MODE 0x40 +#define SD_PWD_EXIST 0x20 +#define SD_UNLOCK_POW_ON 0x01 +#define SD_SDR_RST 0x02 + +#define SD_NOT_ERASE 0x00 +#define SD_UNDER_ERASING 0x01 +#define SD_COMPLETE_ERASE 0x02 + +#define SD_RW_FORBIDDEN 0x0F + +#endif + +#define HS_SUPPORT 0x01 +#define SDR50_SUPPORT 0x02 +#define SDR104_SUPPORT 0x03 +#define DDR50_SUPPORT 0x04 + +#define HS_SUPPORT_MASK 0x02 +#define SDR50_SUPPORT_MASK 0x04 +#define SDR104_SUPPORT_MASK 0x08 +#define DDR50_SUPPORT_MASK 0x10 + +#define HS_QUERY_SWITCH_OK 0x01 +#define SDR50_QUERY_SWITCH_OK 0x02 +#define SDR104_QUERY_SWITCH_OK 0x03 +#define DDR50_QUERY_SWITCH_OK 0x04 + +#define HS_SWITCH_BUSY 0x02 +#define SDR50_SWITCH_BUSY 0x04 +#define SDR104_SWITCH_BUSY 0x08 +#define DDR50_SWITCH_BUSY 0x10 + +#define FUNCTION_GROUP1_SUPPORT_OFFSET 0x0D +#define FUNCTION_GROUP1_QUERY_SWITCH_OFFSET 0x10 +#define FUNCTION_GROUP1_CHECK_BUSY_OFFSET 0x1D + +#define DRIVING_TYPE_A 0x01 +#define DRIVING_TYPE_B 0x00 +#define DRIVING_TYPE_C 0x02 +#define DRIVING_TYPE_D 0x03 + +#define DRIVING_TYPE_A_MASK 0x02 +#define DRIVING_TYPE_B_MASK 0x01 +#define DRIVING_TYPE_C_MASK 0x04 +#define DRIVING_TYPE_D_MASK 0x08 + +#define TYPE_A_QUERY_SWITCH_OK 0x01 +#define TYPE_B_QUERY_SWITCH_OK 0x00 +#define TYPE_C_QUERY_SWITCH_OK 0x02 +#define TYPE_D_QUERY_SWITCH_OK 0x03 + +#define TYPE_A_SWITCH_BUSY 0x02 +#define TYPE_B_SWITCH_BUSY 0x01 +#define TYPE_C_SWITCH_BUSY 0x04 +#define TYPE_D_SWITCH_BUSY 0x08 + +#define FUNCTION_GROUP3_SUPPORT_OFFSET 0x09 +#define FUNCTION_GROUP3_QUERY_SWITCH_OFFSET 0x0F +#define FUNCTION_GROUP3_CHECK_BUSY_OFFSET 0x19 + +#define CURRENT_LIMIT_200 0x00 +#define CURRENT_LIMIT_400 0x01 +#define CURRENT_LIMIT_600 0x02 +#define CURRENT_LIMIT_800 0x03 + +#define CURRENT_LIMIT_200_MASK 0x01 +#define CURRENT_LIMIT_400_MASK 0x02 +#define CURRENT_LIMIT_600_MASK 0x04 +#define CURRENT_LIMIT_800_MASK 0x08 + +#define CURRENT_LIMIT_200_QUERY_SWITCH_OK 0x00 +#define CURRENT_LIMIT_400_QUERY_SWITCH_OK 0x01 +#define CURRENT_LIMIT_600_QUERY_SWITCH_OK 0x02 +#define CURRENT_LIMIT_800_QUERY_SWITCH_OK 0x03 + +#define CURRENT_LIMIT_200_SWITCH_BUSY 0x01 +#define CURRENT_LIMIT_400_SWITCH_BUSY 0x02 +#define CURRENT_LIMIT_600_SWITCH_BUSY 0x04 +#define CURRENT_LIMIT_800_SWITCH_BUSY 0x08 + +#define FUNCTION_GROUP4_SUPPORT_OFFSET 0x07 +#define FUNCTION_GROUP4_QUERY_SWITCH_OFFSET 0x0F +#define FUNCTION_GROUP4_CHECK_BUSY_OFFSET 0x17 + +#define DATA_STRUCTURE_VER_OFFSET 0x11 + +#define MAX_PHASE 31 + +#define MMC_8BIT_BUS 0x0010 +#define MMC_4BIT_BUS 0x0020 + +#define MMC_SWITCH_ERR 0x80 + +#define SD_IO_3V3 0 +#define SD_IO_1V8 1 + +#define TUNE_TX 0x00 +#define TUNE_RX 0x01 + +#define CHANGE_TX 0x00 +#define CHANGE_RX 0x01 + +#define DCM_HIGH_FREQUENCY_MODE 0x00 +#define DCM_LOW_FREQUENCY_MODE 0x01 + +#define DCM_HIGH_FREQUENCY_MODE_SET 0x0C +#define DCM_Low_FREQUENCY_MODE_SET 0x00 + +#define MULTIPLY_BY_1 0x00 +#define MULTIPLY_BY_2 0x01 +#define MULTIPLY_BY_3 0x02 +#define MULTIPLY_BY_4 0x03 +#define MULTIPLY_BY_5 0x04 +#define MULTIPLY_BY_6 0x05 +#define MULTIPLY_BY_7 0x06 +#define MULTIPLY_BY_8 0x07 +#define MULTIPLY_BY_9 0x08 +#define MULTIPLY_BY_10 0x09 + +#define DIVIDE_BY_2 0x01 +#define DIVIDE_BY_3 0x02 +#define DIVIDE_BY_4 0x03 +#define DIVIDE_BY_5 0x04 +#define DIVIDE_BY_6 0x05 +#define DIVIDE_BY_7 0x06 +#define DIVIDE_BY_8 0x07 +#define DIVIDE_BY_9 0x08 +#define DIVIDE_BY_10 0x09 + +struct timing_phase_path { + int start; + int end; + int mid; + int len; +}; + +int sd_select_card(struct rtsx_chip *chip, int select); +int sd_pull_ctl_enable(struct rtsx_chip *chip); +int reset_sd_card(struct rtsx_chip *chip); +int sd_switch_clock(struct rtsx_chip *chip); +void sd_stop_seq_mode(struct rtsx_chip *chip); +int sd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 start_sector, u16 sector_cnt); +void sd_cleanup_work(struct rtsx_chip *chip); +int sd_power_off_card3v3(struct rtsx_chip *chip); +int release_sd_card(struct rtsx_chip *chip); +#ifdef SUPPORT_CPRM +int soft_reset_sd_card(struct rtsx_chip *chip); +int ext_sd_send_cmd_get_rsp(struct rtsx_chip *chip, u8 cmd_idx, + u32 arg, u8 rsp_type, u8 *rsp, int rsp_len, int special_check); +int ext_sd_get_rsp(struct rtsx_chip *chip, int len, u8 *rsp, u8 rsp_type); + +int sd_pass_thru_mode(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int sd_execute_no_data(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int sd_execute_read_data(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int sd_execute_write_data(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int sd_get_cmd_rsp(struct scsi_cmnd *srb, struct rtsx_chip *chip); +int sd_hw_rst(struct scsi_cmnd *srb, struct rtsx_chip *chip); +#endif + +#endif /* __REALTEK_RTSX_SD_H */ --- linux-2.6.38.orig/drivers/staging/rts_pstor/TODO +++ linux-2.6.38/drivers/staging/rts_pstor/TODO @@ -0,0 +1,5 @@ +TODO: +- support more pcie card reader of Realtek family +- use kernel coding style +- checkpatch.pl fixes + --- linux-2.6.38.orig/drivers/staging/rts_pstor/sd.c +++ linux-2.6.38/drivers/staging/rts_pstor/sd.c @@ -0,0 +1,4776 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#include +#include +#include + +#include "rtsx.h" +#include "rtsx_transport.h" +#include "rtsx_scsi.h" +#include "rtsx_card.h" +#include "sd.h" + +#define SD_MAX_RETRY_COUNT 3 + +static u16 REG_SD_CFG1; +static u16 REG_SD_CFG2; +static u16 REG_SD_CFG3; +static u16 REG_SD_STAT1; +static u16 REG_SD_STAT2; +static u16 REG_SD_BUS_STAT; +static u16 REG_SD_PAD_CTL; +static u16 REG_SD_SAMPLE_POINT_CTL; +static u16 REG_SD_PUSH_POINT_CTL; +static u16 REG_SD_CMD0; +static u16 REG_SD_CMD1; +static u16 REG_SD_CMD2; +static u16 REG_SD_CMD3; +static u16 REG_SD_CMD4; +static u16 REG_SD_CMD5; +static u16 REG_SD_BYTE_CNT_L; +static u16 REG_SD_BYTE_CNT_H; +static u16 REG_SD_BLOCK_CNT_L; +static u16 REG_SD_BLOCK_CNT_H; +static u16 REG_SD_TRANSFER; +static u16 REG_SD_VPCLK0_CTL; +static u16 REG_SD_VPCLK1_CTL; +static u16 REG_SD_DCMPS0_CTL; +static u16 REG_SD_DCMPS1_CTL; + +static inline void sd_set_err_code(struct rtsx_chip *chip, u8 err_code) +{ + struct sd_info *sd_card = &(chip->sd_card); + + sd_card->err_code |= err_code; +} + +static inline void sd_clr_err_code(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + + sd_card->err_code = 0; +} + +static inline int sd_check_err_code(struct rtsx_chip *chip, u8 err_code) +{ + struct sd_info *sd_card = &(chip->sd_card); + + return sd_card->err_code & err_code; +} + +static void sd_init_reg_addr(struct rtsx_chip *chip) +{ + if (CHECK_PID(chip, 0x5209)) { + REG_SD_CFG1 = SD_CFG1; + REG_SD_CFG2 = SD_CFG2; + REG_SD_CFG3 = SD_CFG3; + REG_SD_STAT1 = SD_STAT1; + REG_SD_STAT2 = SD_STAT2; + REG_SD_BUS_STAT = SD_BUS_STAT; + REG_SD_PAD_CTL = SD_PAD_CTL; + REG_SD_SAMPLE_POINT_CTL = SD_SAMPLE_POINT_CTL; + REG_SD_PUSH_POINT_CTL = SD_PUSH_POINT_CTL; + REG_SD_CMD0 = SD_CMD0; + REG_SD_CMD1 = SD_CMD1; + REG_SD_CMD2 = SD_CMD2; + REG_SD_CMD3 = SD_CMD3; + REG_SD_CMD4 = SD_CMD4; + REG_SD_CMD5 = SD_CMD5; + REG_SD_BYTE_CNT_L = SD_BYTE_CNT_L; + REG_SD_BYTE_CNT_H = SD_BYTE_CNT_H; + REG_SD_BLOCK_CNT_L = SD_BLOCK_CNT_L; + REG_SD_BLOCK_CNT_H = SD_BLOCK_CNT_H; + REG_SD_TRANSFER = SD_TRANSFER; + REG_SD_VPCLK0_CTL = SD_VPCLK0_CTL; + REG_SD_VPCLK1_CTL = SD_VPCLK1_CTL; + REG_SD_DCMPS0_CTL = SD_DCMPS0_CTL; + REG_SD_DCMPS1_CTL = SD_DCMPS1_CTL; + } else { + REG_SD_CFG1 = 0xFD31; + REG_SD_CFG2 = 0xFD33; + REG_SD_CFG3 = 0xFD3E; + REG_SD_STAT1 = 0xFD30; + REG_SD_STAT2 = 0; + REG_SD_BUS_STAT = 0; + REG_SD_PAD_CTL = 0; + REG_SD_SAMPLE_POINT_CTL = 0; + REG_SD_PUSH_POINT_CTL = 0; + REG_SD_CMD0 = 0xFD34; + REG_SD_CMD1 = 0xFD35; + REG_SD_CMD2 = 0xFD36; + REG_SD_CMD3 = 0xFD37; + REG_SD_CMD4 = 0xFD38; + REG_SD_CMD5 = 0xFD5A; + REG_SD_BYTE_CNT_L = 0xFD39; + REG_SD_BYTE_CNT_H = 0xFD3A; + REG_SD_BLOCK_CNT_L = 0xFD3B; + REG_SD_BLOCK_CNT_H = 0xFD3C; + REG_SD_TRANSFER = 0xFD32; + REG_SD_VPCLK0_CTL = 0; + REG_SD_VPCLK1_CTL = 0; + REG_SD_DCMPS0_CTL = 0; + REG_SD_DCMPS1_CTL = 0; + } +} + +static int sd_check_data0_status(struct rtsx_chip *chip) +{ + u8 stat; + + if (CHECK_PID(chip, 0x5209)) { + RTSX_READ_REG(chip, REG_SD_BUS_STAT, &stat); + } else { + RTSX_READ_REG(chip, REG_SD_STAT1, &stat); + } + + if (!(stat & SD_DAT0_STATUS)) { + sd_set_err_code(chip, SD_BUSY); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_send_cmd_get_rsp(struct rtsx_chip *chip, u8 cmd_idx, + u32 arg, u8 rsp_type, u8 *rsp, int rsp_len) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + int timeout = 100; + u16 reg_addr; + u8 *ptr; + int stat_idx = 0; + int rty_cnt = 0; + + sd_clr_err_code(chip); + + RTSX_DEBUGP("SD/MMC CMD %d, arg = 0x%08x\n", cmd_idx, arg); + + if (rsp_type == SD_RSP_TYPE_R1b) + timeout = 3000; + +RTY_SEND_CMD: + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD0, 0xFF, 0x40 | cmd_idx); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD1, 0xFF, (u8)(arg >> 24)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD2, 0xFF, (u8)(arg >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD3, 0xFF, (u8)(arg >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD4, 0xFF, (u8)arg); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, rsp_type); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, + 0x01, PINGPONG_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, + 0xFF, SD_TM_CMD_RSP | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, + SD_TRANSFER_END | SD_STAT_IDLE, SD_TRANSFER_END | SD_STAT_IDLE); + + if (rsp_type == SD_RSP_TYPE_R2) { + for (reg_addr = PPBUF_BASE2; reg_addr < PPBUF_BASE2 + 16; reg_addr++) { + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr, 0, 0); + } + stat_idx = 16; + } else if (rsp_type != SD_RSP_TYPE_R0) { + for (reg_addr = REG_SD_CMD0; reg_addr <= REG_SD_CMD4; reg_addr++) { + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr, 0, 0); + } + stat_idx = 5; + } + + rtsx_add_cmd(chip, READ_REG_CMD, REG_SD_STAT1, 0, 0); + + retval = rtsx_send_cmd(chip, SD_CARD, timeout); + if (retval < 0) { + u8 val; + + rtsx_read_register(chip, REG_SD_STAT1, &val); + RTSX_DEBUGP("SD_STAT1: 0x%x\n", val); + + if (CHECK_PID(chip, 0x5209)) { + rtsx_read_register(chip, REG_SD_STAT2, &val); + RTSX_DEBUGP("SD_STAT2: 0x%x\n", val); + + if (val & SD_RSP_80CLK_TIMEOUT) { + rtsx_clear_sd_error(chip); + sd_set_err_code(chip, SD_RSP_TIMEOUT); + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_read_register(chip, REG_SD_BUS_STAT, &val); + RTSX_DEBUGP("SD_BUS_STAT: 0x%x\n", val); + } else { + rtsx_read_register(chip, REG_SD_CFG3, &val); + RTSX_DEBUGP("SD_CFG3: 0x%x\n", val); + } + + if (retval == -ETIMEDOUT) { + if (rsp_type & SD_WAIT_BUSY_END) { + retval = sd_check_data0_status(chip); + if (retval != STATUS_SUCCESS) { + rtsx_clear_sd_error(chip); + TRACE_RET(chip, retval); + } + } else { + sd_set_err_code(chip, SD_TO_ERR); + } + retval = STATUS_TIMEDOUT; + } else { + retval = STATUS_FAIL; + } + rtsx_clear_sd_error(chip); + + TRACE_RET(chip, retval); + } + + if (rsp_type == SD_RSP_TYPE_R0) + return STATUS_SUCCESS; + + ptr = rtsx_get_cmd_data(chip) + 1; + + if ((ptr[0] & 0xC0) != 0) { + sd_set_err_code(chip, SD_STS_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + if (!(rsp_type & SD_NO_CHECK_CRC7)) { + if (ptr[stat_idx] & SD_CRC7_ERR) { + if (cmd_idx == WRITE_MULTIPLE_BLOCK) { + sd_set_err_code(chip, SD_CRC_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + if (rty_cnt < SD_MAX_RETRY_COUNT) { + wait_timeout(20); + rty_cnt++; + goto RTY_SEND_CMD; + } else { + sd_set_err_code(chip, SD_CRC_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + } + } + + if ((rsp_type == SD_RSP_TYPE_R1) || (rsp_type == SD_RSP_TYPE_R1b)) { + if ((cmd_idx != SEND_RELATIVE_ADDR) && (cmd_idx != SEND_IF_COND)) { + if (cmd_idx != STOP_TRANSMISSION) { + if (ptr[1] & 0x80) { + TRACE_RET(chip, STATUS_FAIL); + } + } +#ifdef SUPPORT_SD_LOCK + if (ptr[1] & 0x7D) +#else + if (ptr[1] & 0x7F) +#endif + { + RTSX_DEBUGP("ptr[1]: 0x%02x\n", ptr[1]); + TRACE_RET(chip, STATUS_FAIL); + } + if (ptr[2] & 0xFF) { + RTSX_DEBUGP("ptr[2]: 0x%02x\n", ptr[2]); + TRACE_RET(chip, STATUS_FAIL); + } + if (ptr[3] & 0x80) { + RTSX_DEBUGP("ptr[3]: 0x%02x\n", ptr[3]); + TRACE_RET(chip, STATUS_FAIL); + } + if (ptr[3] & 0x01) { + sd_card->sd_data_buf_ready = 1; + } else { + sd_card->sd_data_buf_ready = 0; + } + } + } + + if (rsp && rsp_len) + memcpy(rsp, ptr, rsp_len); + + return STATUS_SUCCESS; +} + +static int sd_read_data(struct rtsx_chip *chip, + u8 trans_mode, u8 *cmd, int cmd_len, u16 byte_cnt, + u16 blk_cnt, u8 bus_width, u8 *buf, int buf_len, + int timeout) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + int i; + + sd_clr_err_code(chip); + + if (!buf) + buf_len = 0; + + if (buf_len > 512) { + TRACE_RET(chip, STATUS_FAIL); + } + + rtsx_init_cmd(chip); + + if (cmd_len) { + RTSX_DEBUGP("SD/MMC CMD %d\n", cmd[0] - 0x40); + for (i = 0; i < (cmd_len < 6 ? cmd_len : 6); i++) { + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD0 + i, 0xFF, cmd[i]); + } + } + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_L, 0xFF, (u8)byte_cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_H, 0xFF, (u8)(byte_cnt >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_L, 0xFF, (u8)blk_cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_H, 0xFF, (u8)(blk_cnt >> 8)); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG1, 0x03, bus_width); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, + SD_CALCULATE_CRC7 | SD_CHECK_CRC16 | SD_NO_WAIT_BUSY_END | + SD_CHECK_CRC7 | SD_RSP_LEN_6); + if (trans_mode != SD_TM_AUTO_TUNING) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + } + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, trans_mode | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + retval = rtsx_send_cmd(chip, SD_CARD, timeout); + if (retval < 0) { + if (retval == -ETIMEDOUT) { + sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, + SD_RSP_TYPE_R1, NULL, 0); + } + + TRACE_RET(chip, STATUS_FAIL); + } + + if (buf && buf_len) { + retval = rtsx_read_ppbuf(chip, buf, buf_len); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +static int sd_write_data(struct rtsx_chip *chip, u8 trans_mode, + u8 *cmd, int cmd_len, u16 byte_cnt, u16 blk_cnt, u8 bus_width, + u8 *buf, int buf_len, int timeout) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + int i; + + sd_clr_err_code(chip); + + if (!buf) + buf_len = 0; + + if (buf_len > 512) { + /* This function can't write data more than one page */ + TRACE_RET(chip, STATUS_FAIL); + } + + if (buf && buf_len) { + retval = rtsx_write_ppbuf(chip, buf, buf_len); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + rtsx_init_cmd(chip); + + if (cmd_len) { + RTSX_DEBUGP("SD/MMC CMD %d\n", cmd[0] - 0x40); + for (i = 0; i < (cmd_len < 6 ? cmd_len : 6); i++) { + rtsx_add_cmd(chip, WRITE_REG_CMD, + REG_SD_CMD0 + i, 0xFF, cmd[i]); + } + } + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_L, 0xFF, (u8)byte_cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_H, 0xFF, (u8)(byte_cnt >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_L, 0xFF, (u8)blk_cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_H, 0xFF, (u8)(blk_cnt >> 8)); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG1, 0x03, bus_width); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, + SD_CALCULATE_CRC7 | SD_CHECK_CRC16 | SD_NO_WAIT_BUSY_END | + SD_CHECK_CRC7 | SD_RSP_LEN_6); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, trans_mode | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + retval = rtsx_send_cmd(chip, SD_CARD, timeout); + if (retval < 0) { + if (retval == -ETIMEDOUT) { + sd_send_cmd_get_rsp(chip, SEND_STATUS, + sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + } + + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_check_csd(struct rtsx_chip *chip, char check_wp) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + int i; + u8 csd_ver, trans_speed; + u8 rsp[16]; + + for (i = 0; i < 6; i++) { + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_send_cmd_get_rsp(chip, SEND_CSD, sd_card->sd_addr, SD_RSP_TYPE_R2, rsp, 16); + if (retval == STATUS_SUCCESS) + break; + } + + if (i == 6) { + TRACE_RET(chip, STATUS_FAIL); + } + + memcpy(sd_card->raw_csd, rsp + 1, 15); + + if (CHECK_PID(chip, 0x5209)) { + RTSX_READ_REG(chip, REG_SD_CMD5, sd_card->raw_csd + 15); + } + + RTSX_DEBUGP("CSD Response:\n"); + RTSX_DUMP(sd_card->raw_csd, 16); + + csd_ver = (rsp[1] & 0xc0) >> 6; + RTSX_DEBUGP("csd_ver = %d\n", csd_ver); + + trans_speed = rsp[4]; + if ((trans_speed & 0x07) == 0x02) { + if ((trans_speed & 0xf8) >= 0x30) { + if (chip->asic_code) { + sd_card->sd_clock = 47; + } else { + sd_card->sd_clock = CLK_50; + } + } else if ((trans_speed & 0xf8) == 0x28) { + if (chip->asic_code) { + sd_card->sd_clock = 39; + } else { + sd_card->sd_clock = CLK_40; + } + } else if ((trans_speed & 0xf8) == 0x20) { + if (chip->asic_code) { + sd_card->sd_clock = 29; + } else { + sd_card->sd_clock = CLK_30; + } + } else if ((trans_speed & 0xf8) >= 0x10) { + if (chip->asic_code) { + sd_card->sd_clock = 23; + } else { + sd_card->sd_clock = CLK_20; + } + } else if ((trans_speed & 0x08) >= 0x08) { + if (chip->asic_code) { + sd_card->sd_clock = 19; + } else { + sd_card->sd_clock = CLK_20; + } + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_MMC_SECTOR_MODE(sd_card)) { + sd_card->capacity = 0; + } else { + if ((!CHK_SD_HCXC(sd_card)) || (csd_ver == 0)) { + u8 blk_size, c_size_mult; + u16 c_size; + blk_size = rsp[6] & 0x0F; + c_size = ((u16)(rsp[7] & 0x03) << 10) + + ((u16)rsp[8] << 2) + + ((u16)(rsp[9] & 0xC0) >> 6); + c_size_mult = (u8)((rsp[10] & 0x03) << 1); + c_size_mult += (rsp[11] & 0x80) >> 7; + sd_card->capacity = (((u32)(c_size + 1)) * (1 << (c_size_mult + 2))) << (blk_size - 9); + } else { + u32 total_sector = 0; + total_sector = (((u32)rsp[8] & 0x3f) << 16) | + ((u32)rsp[9] << 8) | (u32)rsp[10]; + sd_card->capacity = (total_sector + 1) << 10; + } + } + + if (check_wp) { + if (rsp[15] & 0x30) { + chip->card_wp |= SD_CARD; + } + RTSX_DEBUGP("CSD WP Status: 0x%x\n", rsp[15]); + } + + return STATUS_SUCCESS; +} + +static int sd_set_sample_push_timing(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + + if (CHECK_PID(chip, 0x5209)) { + if (CHK_SD_SDR104(sd_card) || CHK_SD_SDR50(sd_card)) { + RTSX_WRITE_REG(chip, SD_CFG1, 0x0C | SD_ASYNC_FIFO_NOT_RST, + SD_30_MODE | SD_ASYNC_FIFO_NOT_RST); + RTSX_WRITE_REG(chip, CLK_CTL, CLK_LOW_FREQ, CLK_LOW_FREQ); + RTSX_WRITE_REG(chip, CARD_CLK_SOURCE, 0xFF, + CRC_VAR_CLK0 | SD30_FIX_CLK | SAMPLE_VAR_CLK1); + RTSX_WRITE_REG(chip, CLK_CTL, CLK_LOW_FREQ, 0); + } else if (CHK_SD_DDR50(sd_card) || CHK_MMC_DDR52(sd_card)) { + RTSX_WRITE_REG(chip, SD_CFG1, 0x0C | SD_ASYNC_FIFO_NOT_RST, + SD_DDR_MODE | SD_ASYNC_FIFO_NOT_RST); + RTSX_WRITE_REG(chip, CLK_CTL, CLK_LOW_FREQ, CLK_LOW_FREQ); + RTSX_WRITE_REG(chip, CARD_CLK_SOURCE, 0xFF, + CRC_VAR_CLK0 | SD30_FIX_CLK | SAMPLE_VAR_CLK1); + RTSX_WRITE_REG(chip, CLK_CTL, CLK_LOW_FREQ, 0); + RTSX_WRITE_REG(chip, SD_PUSH_POINT_CTL, DDR_VAR_TX_CMD_DAT, + DDR_VAR_TX_CMD_DAT); + RTSX_WRITE_REG(chip, SD_SAMPLE_POINT_CTL, DDR_VAR_RX_DAT | DDR_VAR_RX_CMD, + DDR_VAR_RX_DAT | DDR_VAR_RX_CMD); + } else { + u8 val = 0; + + RTSX_WRITE_REG(chip, SD_CFG1, 0x0C, SD_20_MODE); + RTSX_WRITE_REG(chip, CLK_CTL, CLK_LOW_FREQ, CLK_LOW_FREQ); + RTSX_WRITE_REG(chip, CARD_CLK_SOURCE, 0xFF, + CRC_FIX_CLK | SD30_VAR_CLK0 | SAMPLE_VAR_CLK1); + RTSX_WRITE_REG(chip, CLK_CTL, CLK_LOW_FREQ, 0); + + if ((chip->sd_ctl & SD_PUSH_POINT_CTL_MASK) == SD_PUSH_POINT_AUTO) { + val = SD20_TX_NEG_EDGE; + } else if ((chip->sd_ctl & SD_PUSH_POINT_CTL_MASK) == SD_PUSH_POINT_DELAY) { + val = SD20_TX_14_AHEAD; + } else { + val = SD20_TX_NEG_EDGE; + } + RTSX_WRITE_REG(chip, SD_PUSH_POINT_CTL, SD20_TX_SEL_MASK, val); + + if ((chip->sd_ctl & SD_SAMPLE_POINT_CTL_MASK) == SD_SAMPLE_POINT_AUTO) { + if (chip->asic_code) { + if (CHK_SD_HS(sd_card) || CHK_MMC_52M(sd_card)) { + val = SD20_RX_14_DELAY; + } else { + val = SD20_RX_POS_EDGE; + } + } else { + val = SD20_RX_14_DELAY; + } + } else if ((chip->sd_ctl & SD_SAMPLE_POINT_CTL_MASK) == SD_SAMPLE_POINT_DELAY) { + val = SD20_RX_14_DELAY; + } else { + val = SD20_RX_POS_EDGE; + } + RTSX_WRITE_REG(chip, SD_SAMPLE_POINT_CTL, SD20_RX_SEL_MASK, val); + } + } else { + u8 val = 0; + + if ((chip->sd_ctl & SD_PUSH_POINT_CTL_MASK) == SD_PUSH_POINT_DELAY) { + val |= 0x10; + } + + if ((chip->sd_ctl & SD_SAMPLE_POINT_CTL_MASK) == SD_SAMPLE_POINT_AUTO) { + if (chip->asic_code) { + if (CHK_SD_HS(sd_card) || CHK_MMC_52M(sd_card)) { + if (val & 0x10) { + val |= 0x04; + } else { + val |= 0x08; + } + } + } else { + if (val & 0x10) { + val |= 0x04; + } else { + val |= 0x08; + } + } + } else if ((chip->sd_ctl & SD_SAMPLE_POINT_CTL_MASK) == SD_SAMPLE_POINT_DELAY) { + if (val & 0x10) { + val |= 0x04; + } else { + val |= 0x08; + } + } + + RTSX_WRITE_REG(chip, REG_SD_CFG1, 0x1C, val); + } + + return STATUS_SUCCESS; +} + +static void sd_choose_proper_clock(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + + if (CHK_SD_SDR104(sd_card)) { + if (chip->asic_code) { + sd_card->sd_clock = chip->asic_sd_sdr104_clk; + } else { + sd_card->sd_clock = chip->fpga_sd_sdr104_clk; + } + } else if (CHK_SD_DDR50(sd_card)) { + if (chip->asic_code) { + sd_card->sd_clock = chip->asic_sd_ddr50_clk; + } else { + sd_card->sd_clock = chip->fpga_sd_ddr50_clk; + } + } else if (CHK_SD_SDR50(sd_card)) { + if (chip->asic_code) { + sd_card->sd_clock = chip->asic_sd_sdr50_clk; + } else { + sd_card->sd_clock = chip->fpga_sd_sdr50_clk; + } + } else if (CHK_SD_HS(sd_card)) { + if (chip->asic_code) { + sd_card->sd_clock = chip->asic_sd_hs_clk; + } else { + sd_card->sd_clock = chip->fpga_sd_hs_clk; + } + } else if (CHK_MMC_52M(sd_card) || CHK_MMC_DDR52(sd_card)) { + if (chip->asic_code) { + sd_card->sd_clock = chip->asic_mmc_52m_clk; + } else { + sd_card->sd_clock = chip->fpga_mmc_52m_clk; + } + } else if (CHK_MMC_26M(sd_card)) { + if (chip->asic_code) { + sd_card->sd_clock = 48; + } else { + sd_card->sd_clock = CLK_50; + } + } +} + +static int sd_set_clock_divider(struct rtsx_chip *chip, u8 clk_div) +{ + u8 mask = 0, val = 0; + + if (CHECK_PID(chip, 0x5209)) { + mask = SD_CLK_DIVIDE_MASK; + val = clk_div; + } else { + mask = 0x60; + if (clk_div == SD_CLK_DIVIDE_0) { + val = 0x00; + } else if (clk_div == SD_CLK_DIVIDE_128) { + val = 0x40; + } else if (clk_div == SD_CLK_DIVIDE_256) { + val = 0x20; + } + } + + RTSX_WRITE_REG(chip, REG_SD_CFG1, mask, val); + + return STATUS_SUCCESS; +} + +static int sd_set_init_para(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + + retval = sd_set_sample_push_timing(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + sd_choose_proper_clock(chip); + + retval = switch_clock(chip, sd_card->sd_clock); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int sd_select_card(struct rtsx_chip *chip, int select) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 cmd_idx, cmd_type; + u32 addr; + + if (select) { + cmd_idx = SELECT_CARD; + cmd_type = SD_RSP_TYPE_R1; + addr = sd_card->sd_addr; + } else { + cmd_idx = DESELECT_CARD; + cmd_type = SD_RSP_TYPE_R0; + addr = 0; + } + + retval = sd_send_cmd_get_rsp(chip, cmd_idx, addr, cmd_type, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +#ifdef SUPPORT_SD_LOCK +static int sd_update_lock_status(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 rsp[5]; + + retval = sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, SD_RSP_TYPE_R1, rsp, 5); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (rsp[1] & 0x02) { + sd_card->sd_lock_status |= SD_LOCKED; + } else { + sd_card->sd_lock_status &= ~SD_LOCKED; + } + + RTSX_DEBUGP("sd_card->sd_lock_status = 0x%x\n", sd_card->sd_lock_status); + + if (rsp[1] & 0x01) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} +#endif + +static int sd_wait_state_data_ready(struct rtsx_chip *chip, u8 state, u8 data_ready, int polling_cnt) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval, i; + u8 rsp[5]; + + for (i = 0; i < polling_cnt; i++) { + retval = sd_send_cmd_get_rsp(chip, SEND_STATUS, + sd_card->sd_addr, SD_RSP_TYPE_R1, rsp, 5); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (((rsp[3] & 0x1E) == state) && ((rsp[3] & 0x01) == data_ready)) { + return STATUS_SUCCESS; + } + } + + TRACE_RET(chip, STATUS_FAIL); +} + +static int sd_change_bank_voltage(struct rtsx_chip *chip, u8 voltage) +{ + int retval; + + if (voltage == SD_IO_3V3) { + if (chip->asic_code) { + retval = rtsx_write_phy_register(chip, 0x08, 0x4FC0 | chip->phy_voltage); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + RTSX_WRITE_REG(chip, SD_PAD_CTL, SD_IO_USING_1V8, 0); + } + } else if (voltage == SD_IO_1V8) { + if (chip->asic_code) { + retval = rtsx_write_phy_register(chip, 0x08, 0x4C40 | chip->phy_voltage); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + RTSX_WRITE_REG(chip, SD_PAD_CTL, SD_IO_USING_1V8, SD_IO_USING_1V8); + } + } else { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_voltage_switch(struct rtsx_chip *chip) +{ + int retval; + u8 stat; + + RTSX_WRITE_REG(chip, SD_BUS_STAT, SD_CLK_TOGGLE_EN | SD_CLK_FORCE_STOP, SD_CLK_TOGGLE_EN); + + retval = sd_send_cmd_get_rsp(chip, VOLTAGE_SWITCH, 0, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + udelay(chip->sd_voltage_switch_delay); + + RTSX_READ_REG(chip, SD_BUS_STAT, &stat); + if (stat & (SD_CMD_STATUS | SD_DAT3_STATUS | SD_DAT2_STATUS | + SD_DAT1_STATUS | SD_DAT0_STATUS)) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, SD_BUS_STAT, 0xFF, SD_CLK_FORCE_STOP); + retval = sd_change_bank_voltage(chip, SD_IO_1V8); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + wait_timeout(50); + + RTSX_WRITE_REG(chip, SD_BUS_STAT, 0xFF, SD_CLK_TOGGLE_EN); + wait_timeout(10); + + RTSX_READ_REG(chip, SD_BUS_STAT, &stat); + if ((stat & (SD_CMD_STATUS | SD_DAT3_STATUS | SD_DAT2_STATUS | + SD_DAT1_STATUS | SD_DAT0_STATUS)) != + (SD_CMD_STATUS | SD_DAT3_STATUS | SD_DAT2_STATUS | + SD_DAT1_STATUS | SD_DAT0_STATUS)) { + RTSX_DEBUGP("SD_BUS_STAT: 0x%x\n", stat); + rtsx_write_register(chip, SD_BUS_STAT, SD_CLK_TOGGLE_EN | SD_CLK_FORCE_STOP, 0); + rtsx_write_register(chip, CARD_CLK_EN, 0xFF, 0); + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, SD_BUS_STAT, SD_CLK_TOGGLE_EN | SD_CLK_FORCE_STOP, 0); + + return STATUS_SUCCESS; +} + +static int sd_reset_dcm(struct rtsx_chip *chip, u8 tune_dir) +{ + if (tune_dir == TUNE_RX) { + RTSX_WRITE_REG(chip, DCM_DRP_CTL, 0xFF, DCM_RESET | DCM_RX); + RTSX_WRITE_REG(chip, DCM_DRP_CTL, 0xFF, DCM_RX); + } else { + RTSX_WRITE_REG(chip, DCM_DRP_CTL, 0xFF, DCM_RESET | DCM_TX); + RTSX_WRITE_REG(chip, DCM_DRP_CTL, 0xFF, DCM_TX); + } + + return STATUS_SUCCESS; +} + +static int sd_change_phase(struct rtsx_chip *chip, u8 sample_point, u8 tune_dir) +{ + struct sd_info *sd_card = &(chip->sd_card); + u16 SD_VP_CTL, SD_DCMPS_CTL; + u8 val; + int retval; + int ddr_rx = 0; + + RTSX_DEBUGP("sd_change_phase (sample_point = %d, tune_dir = %d)\n", + sample_point, tune_dir); + + if (tune_dir == TUNE_RX) { + SD_VP_CTL = SD_VPRX_CTL; + SD_DCMPS_CTL = SD_DCMPS_RX_CTL; + if (CHK_SD_DDR50(sd_card)) { + ddr_rx = 1; + } + } else { + SD_VP_CTL = SD_VPTX_CTL; + SD_DCMPS_CTL = SD_DCMPS_TX_CTL; + } + + if (chip->asic_code) { + RTSX_WRITE_REG(chip, CLK_CTL, CHANGE_CLK, CHANGE_CLK); + RTSX_WRITE_REG(chip, SD_VP_CTL, 0x1F, sample_point); + RTSX_WRITE_REG(chip, SD_VPCLK0_CTL, PHASE_NOT_RESET, 0); + RTSX_WRITE_REG(chip, SD_VPCLK0_CTL, PHASE_NOT_RESET, PHASE_NOT_RESET); + RTSX_WRITE_REG(chip, CLK_CTL, CHANGE_CLK, 0); + } else { +#if CONFIG_RTS_PSTOR_DEBUG + rtsx_read_register(chip, SD_VP_CTL, &val); + RTSX_DEBUGP("SD_VP_CTL: 0x%x\n", val); + rtsx_read_register(chip, SD_DCMPS_CTL, &val); + RTSX_DEBUGP("SD_DCMPS_CTL: 0x%x\n", val); +#endif + + if (ddr_rx) { + RTSX_WRITE_REG(chip, SD_VP_CTL, PHASE_CHANGE, PHASE_CHANGE); + udelay(50); + RTSX_WRITE_REG(chip, SD_VP_CTL, 0xFF, + PHASE_CHANGE | PHASE_NOT_RESET | sample_point); + } else { + RTSX_WRITE_REG(chip, CLK_CTL, CHANGE_CLK, CHANGE_CLK); + udelay(50); + RTSX_WRITE_REG(chip, SD_VP_CTL, 0xFF, + PHASE_NOT_RESET | sample_point); + } + udelay(100); + + rtsx_init_cmd(chip); + rtsx_add_cmd(chip, WRITE_REG_CMD, SD_DCMPS_CTL, DCMPS_CHANGE, DCMPS_CHANGE); + rtsx_add_cmd(chip, CHECK_REG_CMD, SD_DCMPS_CTL, DCMPS_CHANGE_DONE, DCMPS_CHANGE_DONE); + retval = rtsx_send_cmd(chip, SD_CARD, 100); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, Fail); + } + + val = *rtsx_get_cmd_data(chip); + if (val & DCMPS_ERROR) { + TRACE_GOTO(chip, Fail); + } + if ((val & DCMPS_CURRENT_PHASE) != sample_point) { + TRACE_GOTO(chip, Fail); + } + RTSX_WRITE_REG(chip, SD_DCMPS_CTL, DCMPS_CHANGE, 0); + if (ddr_rx) { + RTSX_WRITE_REG(chip, SD_VP_CTL, PHASE_CHANGE, 0); + } else { + RTSX_WRITE_REG(chip, CLK_CTL, CHANGE_CLK, 0); + } + udelay(50); + } + + RTSX_WRITE_REG(chip, SD_CFG1, SD_ASYNC_FIFO_NOT_RST, 0); + + return STATUS_SUCCESS; + +Fail: +#if CONFIG_RTS_PSTOR_DEBUG + rtsx_read_register(chip, SD_VP_CTL, &val); + RTSX_DEBUGP("SD_VP_CTL: 0x%x\n", val); + rtsx_read_register(chip, SD_DCMPS_CTL, &val); + RTSX_DEBUGP("SD_DCMPS_CTL: 0x%x\n", val); +#endif + + rtsx_write_register(chip, SD_DCMPS_CTL, DCMPS_CHANGE, 0); + rtsx_write_register(chip, SD_VP_CTL, PHASE_CHANGE, 0); + wait_timeout(10); + sd_reset_dcm(chip, tune_dir); + return STATUS_FAIL; +} + +static int sd_check_spec(struct rtsx_chip *chip, u8 bus_width) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 cmd[5], buf[8]; + + retval = sd_send_cmd_get_rsp(chip, APP_CMD, sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + cmd[0] = 0x40 | SEND_SCR; + cmd[1] = 0; + cmd[2] = 0; + cmd[3] = 0; + cmd[4] = 0; + + retval = sd_read_data(chip, SD_TM_NORMAL_READ, cmd, 5, 8, 1, bus_width, buf, 8, 250); + if (retval != STATUS_SUCCESS) { + rtsx_clear_sd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + memcpy(sd_card->raw_scr, buf, 8); + + if ((buf[0] & 0x0F) == 0) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_query_switch_result(struct rtsx_chip *chip, u8 func_group, u8 func_to_switch, + u8 *buf, int buf_len) +{ + u8 support_mask = 0, query_switch = 0, switch_busy = 0; + int support_offset = 0, query_switch_offset = 0, check_busy_offset = 0; + + if (func_group == SD_FUNC_GROUP_1) { + support_offset = FUNCTION_GROUP1_SUPPORT_OFFSET; + query_switch_offset = FUNCTION_GROUP1_QUERY_SWITCH_OFFSET; + check_busy_offset = FUNCTION_GROUP1_CHECK_BUSY_OFFSET; + + switch (func_to_switch) { + case HS_SUPPORT: + support_mask = HS_SUPPORT_MASK; + query_switch = HS_QUERY_SWITCH_OK; + switch_busy = HS_SWITCH_BUSY; + break; + + case SDR50_SUPPORT: + support_mask = SDR50_SUPPORT_MASK; + query_switch = SDR50_QUERY_SWITCH_OK; + switch_busy = SDR50_SWITCH_BUSY; + break; + + case SDR104_SUPPORT: + support_mask = SDR104_SUPPORT_MASK; + query_switch = SDR104_QUERY_SWITCH_OK; + switch_busy = SDR104_SWITCH_BUSY; + break; + + case DDR50_SUPPORT: + support_mask = DDR50_SUPPORT_MASK; + query_switch = DDR50_QUERY_SWITCH_OK; + switch_busy = DDR50_SWITCH_BUSY; + break; + + default: + TRACE_RET(chip, STATUS_FAIL); + } + } else if (func_group == SD_FUNC_GROUP_3) { + support_offset = FUNCTION_GROUP3_SUPPORT_OFFSET; + query_switch_offset = FUNCTION_GROUP3_QUERY_SWITCH_OFFSET; + check_busy_offset = FUNCTION_GROUP3_CHECK_BUSY_OFFSET; + + switch (func_to_switch) { + case DRIVING_TYPE_A: + support_mask = DRIVING_TYPE_A_MASK; + query_switch = TYPE_A_QUERY_SWITCH_OK; + switch_busy = TYPE_A_SWITCH_BUSY; + break; + + case DRIVING_TYPE_C: + support_mask = DRIVING_TYPE_C_MASK; + query_switch = TYPE_C_QUERY_SWITCH_OK; + switch_busy = TYPE_C_SWITCH_BUSY; + break; + + case DRIVING_TYPE_D: + support_mask = DRIVING_TYPE_D_MASK; + query_switch = TYPE_D_QUERY_SWITCH_OK; + switch_busy = TYPE_D_SWITCH_BUSY; + break; + + default: + TRACE_RET(chip, STATUS_FAIL); + } + } else if (func_group == SD_FUNC_GROUP_4) { + support_offset = FUNCTION_GROUP4_SUPPORT_OFFSET; + query_switch_offset = FUNCTION_GROUP4_QUERY_SWITCH_OFFSET; + check_busy_offset = FUNCTION_GROUP4_CHECK_BUSY_OFFSET; + + switch (func_to_switch) { + case CURRENT_LIMIT_400: + support_mask = CURRENT_LIMIT_400_MASK; + query_switch = CURRENT_LIMIT_400_QUERY_SWITCH_OK; + switch_busy = CURRENT_LIMIT_400_SWITCH_BUSY; + break; + + case CURRENT_LIMIT_600: + support_mask = CURRENT_LIMIT_600_MASK; + query_switch = CURRENT_LIMIT_600_QUERY_SWITCH_OK; + switch_busy = CURRENT_LIMIT_600_SWITCH_BUSY; + break; + + case CURRENT_LIMIT_800: + support_mask = CURRENT_LIMIT_800_MASK; + query_switch = CURRENT_LIMIT_800_QUERY_SWITCH_OK; + switch_busy = CURRENT_LIMIT_800_SWITCH_BUSY; + break; + + default: + TRACE_RET(chip, STATUS_FAIL); + } + } else { + TRACE_RET(chip, STATUS_FAIL); + } + + if (func_group == SD_FUNC_GROUP_1) { + if (!(buf[support_offset] & support_mask) || + ((buf[query_switch_offset] & 0x0F) != query_switch)) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + /* Check 'Busy Status' */ + if ((buf[DATA_STRUCTURE_VER_OFFSET] == 0x01) && + ((buf[check_busy_offset] & switch_busy) == switch_busy)) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_check_switch_mode(struct rtsx_chip *chip, u8 mode, + u8 func_group, u8 func_to_switch, u8 bus_width) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 cmd[5], buf[64]; + + RTSX_DEBUGP("sd_check_switch_mode (mode = %d, func_group = %d, func_to_switch = %d)\n", + mode, func_group, func_to_switch); + + cmd[0] = 0x40 | SWITCH; + cmd[1] = mode; + + if (func_group == SD_FUNC_GROUP_1) { + cmd[2] = 0xFF; + cmd[3] = 0xFF; + cmd[4] = 0xF0 + func_to_switch; + } else if (func_group == SD_FUNC_GROUP_3) { + cmd[2] = 0xFF; + cmd[3] = 0xF0 + func_to_switch; + cmd[4] = 0xFF; + } else if (func_group == SD_FUNC_GROUP_4) { + cmd[2] = 0xFF; + cmd[3] = 0x0F + (func_to_switch << 4); + cmd[4] = 0xFF; + } else { + cmd[1] = SD_CHECK_MODE; + cmd[2] = 0xFF; + cmd[3] = 0xFF; + cmd[4] = 0xFF; + } + + retval = sd_read_data(chip, SD_TM_NORMAL_READ, cmd, 5, 64, 1, bus_width, buf, 64, 250); + if (retval != STATUS_SUCCESS) { + rtsx_clear_sd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_DUMP(buf, 64); + + if (func_group == NO_ARGUMENT) { + sd_card->func_group1_mask = buf[0x0D]; + sd_card->func_group2_mask = buf[0x0B]; + sd_card->func_group3_mask = buf[0x09]; + sd_card->func_group4_mask = buf[0x07]; + + RTSX_DEBUGP("func_group1_mask = 0x%02x\n", buf[0x0D]); + RTSX_DEBUGP("func_group2_mask = 0x%02x\n", buf[0x0B]); + RTSX_DEBUGP("func_group3_mask = 0x%02x\n", buf[0x09]); + RTSX_DEBUGP("func_group4_mask = 0x%02x\n", buf[0x07]); + } else { + /* Maximum current consumption, check whether current is acceptable; + * bit[511:496] = 0x0000 means some error happaned. + */ + u16 cc = ((u16)buf[0] << 8) | buf[1]; + RTSX_DEBUGP("Maximum current consumption: %dmA\n", cc); + if ((cc == 0) || (cc > 800)) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = sd_query_switch_result(chip, func_group, func_to_switch, buf, 64); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if ((cc > 400) || (func_to_switch > CURRENT_LIMIT_400)) { + RTSX_WRITE_REG(chip, OCPPARA2, SD_OCP_THD_MASK, chip->sd_800mA_ocp_thd); + RTSX_WRITE_REG(chip, CARD_PWR_CTL, PMOS_STRG_MASK, PMOS_STRG_800mA); + } + } + + return STATUS_SUCCESS; +} + +static u8 downgrade_switch_mode(u8 func_group, u8 func_to_switch) +{ + if (func_group == SD_FUNC_GROUP_1) { + if (func_to_switch > HS_SUPPORT) { + func_to_switch--; + } + } else if (func_group == SD_FUNC_GROUP_4) { + if (func_to_switch > CURRENT_LIMIT_200) { + func_to_switch--; + } + } + + return func_to_switch; +} + +static int sd_check_switch(struct rtsx_chip *chip, + u8 func_group, u8 func_to_switch, u8 bus_width) +{ + int retval; + int i; + int switch_good = 0; + + for (i = 0; i < 3; i++) { + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_check_switch_mode(chip, SD_CHECK_MODE, func_group, + func_to_switch, bus_width); + if (retval == STATUS_SUCCESS) { + u8 stat; + + retval = sd_check_switch_mode(chip, SD_SWITCH_MODE, + func_group, func_to_switch, bus_width); + if (retval == STATUS_SUCCESS) { + switch_good = 1; + break; + } + + RTSX_READ_REG(chip, SD_STAT1, &stat); + if (stat & SD_CRC16_ERR) { + RTSX_DEBUGP("SD CRC16 error when switching mode\n"); + TRACE_RET(chip, STATUS_FAIL); + } + } + + func_to_switch = downgrade_switch_mode(func_group, func_to_switch); + + wait_timeout(20); + } + + if (!switch_good) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_switch_function(struct rtsx_chip *chip, u8 bus_width) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + int i; + u8 func_to_switch = 0; + + /* Get supported functions */ + retval = sd_check_switch_mode(chip, SD_CHECK_MODE, + NO_ARGUMENT, NO_ARGUMENT, bus_width); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + sd_card->func_group1_mask &= ~(sd_card->sd_switch_fail); + + /* Function Group 1: Access Mode */ + for (i = 0; i < 4; i++) { + switch ((u8)(chip->sd_speed_prior >> (i*8))) { + case SDR104_SUPPORT: + if ((sd_card->func_group1_mask & SDR104_SUPPORT_MASK) + && chip->sdr104_en) { + func_to_switch = SDR104_SUPPORT; + } + break; + + case DDR50_SUPPORT: + if ((sd_card->func_group1_mask & DDR50_SUPPORT_MASK) + && chip->ddr50_en) { + func_to_switch = DDR50_SUPPORT; + } + break; + + case SDR50_SUPPORT: + if ((sd_card->func_group1_mask & SDR50_SUPPORT_MASK) + && chip->sdr50_en) { + func_to_switch = SDR50_SUPPORT; + } + break; + + case HS_SUPPORT: + if (sd_card->func_group1_mask & HS_SUPPORT_MASK) { + func_to_switch = HS_SUPPORT; + } + break; + + default: + continue; + } + + + if (func_to_switch) { + break; + } + } + RTSX_DEBUGP("SD_FUNC_GROUP_1: func_to_switch = 0x%02x", func_to_switch); + +#ifdef SUPPORT_SD_LOCK + if ((sd_card->sd_lock_status & SD_SDR_RST) + && (DDR50_SUPPORT == func_to_switch) + && (sd_card->func_group1_mask & SDR50_SUPPORT_MASK)) { + func_to_switch = SDR50_SUPPORT; + RTSX_DEBUGP("Using SDR50 instead of DDR50 for SD Lock\n"); + } +#endif + + if (func_to_switch) { + retval = sd_check_switch(chip, SD_FUNC_GROUP_1, func_to_switch, bus_width); + if (retval != STATUS_SUCCESS) { + if (func_to_switch == SDR104_SUPPORT) { + sd_card->sd_switch_fail = SDR104_SUPPORT_MASK; + } else if (func_to_switch == DDR50_SUPPORT) { + sd_card->sd_switch_fail = + SDR104_SUPPORT_MASK | DDR50_SUPPORT_MASK; + } else if (func_to_switch == SDR50_SUPPORT) { + sd_card->sd_switch_fail = + SDR104_SUPPORT_MASK | DDR50_SUPPORT_MASK | + SDR50_SUPPORT_MASK; + } + TRACE_RET(chip, STATUS_FAIL); + } + + if (func_to_switch == SDR104_SUPPORT) { + SET_SD_SDR104(sd_card); + } else if (func_to_switch == DDR50_SUPPORT) { + SET_SD_DDR50(sd_card); + } else if (func_to_switch == SDR50_SUPPORT) { + SET_SD_SDR50(sd_card); + } else { + SET_SD_HS(sd_card); + } + } + + if (CHK_SD_DDR50(sd_card)) { + RTSX_WRITE_REG(chip, SD_PUSH_POINT_CTL, 0x06, 0x04); + retval = sd_set_sample_push_timing(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (!func_to_switch || (func_to_switch == HS_SUPPORT)) { + /* Do not try to switch current limit if the card doesn't + * support UHS mode or we don't want it to support UHS mode + */ + return STATUS_SUCCESS; + } + + /* Function Group 4: Current Limit */ + func_to_switch = 0xFF; + + for (i = 0; i < 4; i++) { + switch ((u8)(chip->sd_current_prior >> (i*8))) { + case CURRENT_LIMIT_800: + if (sd_card->func_group4_mask & CURRENT_LIMIT_800_MASK) { + func_to_switch = CURRENT_LIMIT_800; + } + break; + + case CURRENT_LIMIT_600: + if (sd_card->func_group4_mask & CURRENT_LIMIT_600_MASK) { + func_to_switch = CURRENT_LIMIT_600; + } + break; + + case CURRENT_LIMIT_400: + if (sd_card->func_group4_mask & CURRENT_LIMIT_400_MASK) { + func_to_switch = CURRENT_LIMIT_400; + } + break; + + case CURRENT_LIMIT_200: + if (sd_card->func_group4_mask & CURRENT_LIMIT_200_MASK) { + func_to_switch = CURRENT_LIMIT_200; + } + break; + + default: + continue; + } + + if (func_to_switch != 0xFF) { + break; + } + } + + RTSX_DEBUGP("SD_FUNC_GROUP_4: func_to_switch = 0x%02x", func_to_switch); + + if (func_to_switch <= CURRENT_LIMIT_800) { + retval = sd_check_switch(chip, SD_FUNC_GROUP_4, func_to_switch, bus_width); + if (retval != STATUS_SUCCESS) { + if (sd_check_err_code(chip, SD_NO_CARD)) { + TRACE_RET(chip, STATUS_FAIL); + } + } + RTSX_DEBUGP("Switch current limit finished! (%d)\n", retval); + } + + if (CHK_SD_DDR50(sd_card)) { + RTSX_WRITE_REG(chip, SD_PUSH_POINT_CTL, 0x06, 0); + } + + return STATUS_SUCCESS; +} + +static int sd_wait_data_idle(struct rtsx_chip *chip) +{ + int retval = STATUS_TIMEDOUT; + int i; + u8 val = 0; + + for (i = 0; i < 100; i++) { + RTSX_READ_REG(chip, SD_DATA_STATE, &val); + if (val & SD_DATA_IDLE) { + retval = STATUS_SUCCESS; + break; + } + udelay(100); + } + RTSX_DEBUGP("SD_DATA_STATE: 0x%02x\n", val); + + return retval; +} + +static int sd_sdr_tuning_rx_cmd(struct rtsx_chip *chip, u8 sample_point) +{ + int retval; + u8 cmd[5]; + + retval = sd_change_phase(chip, sample_point, TUNE_RX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + cmd[0] = 0x40 | SEND_TUNING_PATTERN; + cmd[1] = 0; + cmd[2] = 0; + cmd[3] = 0; + cmd[4] = 0; + + retval = sd_read_data(chip, SD_TM_AUTO_TUNING, + cmd, 5, 0x40, 1, SD_BUS_WIDTH_4, NULL, 0, 100); + if (retval != STATUS_SUCCESS) { + (void)sd_wait_data_idle(chip); + + rtsx_clear_sd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_ddr_tuning_rx_cmd(struct rtsx_chip *chip, u8 sample_point) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 cmd[5]; + + retval = sd_change_phase(chip, sample_point, TUNE_RX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_DEBUGP("sd ddr tuning rx\n"); + + retval = sd_send_cmd_get_rsp(chip, APP_CMD, sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + cmd[0] = 0x40 | SD_STATUS; + cmd[1] = 0; + cmd[2] = 0; + cmd[3] = 0; + cmd[4] = 0; + + retval = sd_read_data(chip, SD_TM_NORMAL_READ, + cmd, 5, 64, 1, SD_BUS_WIDTH_4, NULL, 0, 100); + if (retval != STATUS_SUCCESS) { + (void)sd_wait_data_idle(chip); + + rtsx_clear_sd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int mmc_ddr_tunning_rx_cmd(struct rtsx_chip *chip, u8 sample_point) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 cmd[5], bus_width; + + if (CHK_MMC_8BIT(sd_card)) { + bus_width = SD_BUS_WIDTH_8; + } else if (CHK_MMC_4BIT(sd_card)) { + bus_width = SD_BUS_WIDTH_4; + } else { + bus_width = SD_BUS_WIDTH_1; + } + + retval = sd_change_phase(chip, sample_point, TUNE_RX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_DEBUGP("mmc ddr tuning rx\n"); + + cmd[0] = 0x40 | SEND_EXT_CSD; + cmd[1] = 0; + cmd[2] = 0; + cmd[3] = 0; + cmd[4] = 0; + + retval = sd_read_data(chip, SD_TM_NORMAL_READ, + cmd, 5, 0x200, 1, bus_width, NULL, 0, 100); + if (retval != STATUS_SUCCESS) { + (void)sd_wait_data_idle(chip); + + rtsx_clear_sd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_sdr_tuning_tx_cmd(struct rtsx_chip *chip, u8 sample_point) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + + retval = sd_change_phase(chip, sample_point, TUNE_TX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, SD_CFG3, SD_RSP_80CLK_TIMEOUT_EN, SD_RSP_80CLK_TIMEOUT_EN); + + retval = sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, + SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + if (sd_check_err_code(chip, SD_RSP_TIMEOUT)) { + rtsx_write_register(chip, SD_CFG3, SD_RSP_80CLK_TIMEOUT_EN, 0); + TRACE_RET(chip, STATUS_FAIL); + } + } + + RTSX_WRITE_REG(chip, SD_CFG3, SD_RSP_80CLK_TIMEOUT_EN, 0); + + return STATUS_SUCCESS; +} + +static int sd_ddr_tuning_tx_cmd(struct rtsx_chip *chip, u8 sample_point) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 cmd[5], bus_width; + + retval = sd_change_phase(chip, sample_point, TUNE_TX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_SD(sd_card)) { + bus_width = SD_BUS_WIDTH_4; + } else { + if (CHK_MMC_8BIT(sd_card)) { + bus_width = SD_BUS_WIDTH_8; + } else if (CHK_MMC_4BIT(sd_card)) { + bus_width = SD_BUS_WIDTH_4; + } else { + bus_width = SD_BUS_WIDTH_1; + } + } + + retval = sd_wait_state_data_ready(chip, 0x08, 1, 1000); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, SD_CFG3, SD_RSP_80CLK_TIMEOUT_EN, SD_RSP_80CLK_TIMEOUT_EN); + + cmd[0] = 0x40 | PROGRAM_CSD; + cmd[1] = 0; + cmd[2] = 0; + cmd[3] = 0; + cmd[4] = 0; + + retval = sd_write_data(chip, SD_TM_AUTO_WRITE_2, + cmd, 5, 16, 1, bus_width, sd_card->raw_csd, 16, 100); + if (retval != STATUS_SUCCESS) { + rtsx_clear_sd_error(chip); + rtsx_write_register(chip, SD_CFG3, SD_RSP_80CLK_TIMEOUT_EN, 0); + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, SD_CFG3, SD_RSP_80CLK_TIMEOUT_EN, 0); + + sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + + return STATUS_SUCCESS; +} + +static u8 sd_search_final_phase(struct rtsx_chip *chip, u32 phase_map, u8 tune_dir) +{ + struct sd_info *sd_card = &(chip->sd_card); + struct timing_phase_path path[MAX_PHASE + 1]; + int i, j, cont_path_cnt; + int new_block, max_len, final_path_idx; + u8 final_phase = 0xFF; + + if (phase_map == 0xFFFFFFFF) { + if (tune_dir == TUNE_RX) { + final_phase = (u8)chip->sd_default_rx_phase; + } else { + final_phase = (u8)chip->sd_default_tx_phase; + } + + goto Search_Finish; + } + + cont_path_cnt = 0; + new_block = 1; + j = 0; + for (i = 0; i < MAX_PHASE + 1; i++) { + if (phase_map & (1 << i)) { + if (new_block) { + new_block = 0; + j = cont_path_cnt++; + path[j].start = i; + path[j].end = i; + } else { + path[j].end = i; + } + } else { + new_block = 1; + if (cont_path_cnt) { + int idx = cont_path_cnt - 1; + path[idx].len = path[idx].end - path[idx].start + 1; + path[idx].mid = path[idx].start + path[idx].len / 2; + } + } + } + + if (cont_path_cnt == 0) { + RTSX_DEBUGP("No continuous phase path\n"); + goto Search_Finish; + } else { + int idx = cont_path_cnt - 1; + path[idx].len = path[idx].end - path[idx].start + 1; + path[idx].mid = path[idx].start + path[idx].len / 2; + } + + if ((path[0].start == 0) && (path[cont_path_cnt - 1].end == MAX_PHASE)) { + path[0].start = path[cont_path_cnt - 1].start - MAX_PHASE - 1; + path[0].len += path[cont_path_cnt - 1].len; + path[0].mid = path[0].start + path[0].len / 2; + if (path[0].mid < 0) { + path[0].mid += MAX_PHASE + 1; + } + cont_path_cnt--; + } + + max_len = 0; + final_phase = 0; + final_path_idx = 0; + for (i = 0; i < cont_path_cnt; i++) { + if (path[i].len > max_len) { + max_len = path[i].len; + final_phase = (u8)path[i].mid; + final_path_idx = i; + } + + RTSX_DEBUGP("path[%d].start = %d\n", i, path[i].start); + RTSX_DEBUGP("path[%d].end = %d\n", i, path[i].end); + RTSX_DEBUGP("path[%d].len = %d\n", i, path[i].len); + RTSX_DEBUGP("path[%d].mid = %d\n", i, path[i].mid); + RTSX_DEBUGP("\n"); + } + + if (tune_dir == TUNE_TX) { + if (CHK_SD_SDR104(sd_card)) { + if (max_len > 15) { + int temp_mid = (max_len - 16) / 2; + int temp_final_phase = + path[final_path_idx].end - (max_len - (6 + temp_mid)); + + if (temp_final_phase < 0) { + final_phase = (u8)(temp_final_phase + MAX_PHASE + 1); + } else { + final_phase = (u8)temp_final_phase; + } + } + } else if (CHK_SD_SDR50(sd_card)) { + if (max_len > 12) { + int temp_mid = (max_len - 13) / 2; + int temp_final_phase = + path[final_path_idx].end - (max_len - (3 + temp_mid)); + + if (temp_final_phase < 0) { + final_phase = (u8)(temp_final_phase + MAX_PHASE + 1); + } else { + final_phase = (u8)temp_final_phase; + } + } + } + } + +Search_Finish: + RTSX_DEBUGP("Final choosen phase: %d\n", final_phase); + return final_phase; +} + +static int sd_tuning_rx(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + int i, j; + u32 raw_phase_map[3], phase_map; + u8 final_phase; + int (*tuning_cmd)(struct rtsx_chip *chip, u8 sample_point); + + if (CHK_SD(sd_card)) { + if (CHK_SD_DDR50(sd_card)) { + tuning_cmd = sd_ddr_tuning_rx_cmd; + } else { + tuning_cmd = sd_sdr_tuning_rx_cmd; + } + } else { + if (CHK_MMC_DDR52(sd_card)) { + tuning_cmd = mmc_ddr_tunning_rx_cmd; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + + for (i = 0; i < 3; i++) { + raw_phase_map[i] = 0; + for (j = MAX_PHASE; j >= 0; j--) { + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = tuning_cmd(chip, (u8)j); + if (retval == STATUS_SUCCESS) { + raw_phase_map[i] |= 1 << j; + } + } + } + + phase_map = raw_phase_map[0] & raw_phase_map[1] & raw_phase_map[2]; + for (i = 0; i < 3; i++) { + RTSX_DEBUGP("RX raw_phase_map[%d] = 0x%08x\n", i, raw_phase_map[i]); + } + RTSX_DEBUGP("RX phase_map = 0x%08x\n", phase_map); + + final_phase = sd_search_final_phase(chip, phase_map, TUNE_RX); + if (final_phase == 0xFF) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_change_phase(chip, final_phase, TUNE_RX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_ddr_pre_tuning_tx(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + int i; + u32 phase_map; + u8 final_phase; + + RTSX_WRITE_REG(chip, SD_CFG3, SD_RSP_80CLK_TIMEOUT_EN, SD_RSP_80CLK_TIMEOUT_EN); + + phase_map = 0; + for (i = MAX_PHASE; i >= 0; i--) { + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_NO_CARD); + rtsx_write_register(chip, SD_CFG3, + SD_RSP_80CLK_TIMEOUT_EN, 0); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_change_phase(chip, (u8)i, TUNE_TX); + if (retval != STATUS_SUCCESS) { + continue; + } + + retval = sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, + SD_RSP_TYPE_R1, NULL, 0); + if ((retval == STATUS_SUCCESS) || !sd_check_err_code(chip, SD_RSP_TIMEOUT)) { + phase_map |= 1 << i; + } + } + + RTSX_WRITE_REG(chip, SD_CFG3, SD_RSP_80CLK_TIMEOUT_EN, 0); + + RTSX_DEBUGP("DDR TX pre tune phase_map = 0x%08x\n", phase_map); + + final_phase = sd_search_final_phase(chip, phase_map, TUNE_TX); + if (final_phase == 0xFF) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_change_phase(chip, final_phase, TUNE_TX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_DEBUGP("DDR TX pre tune phase: %d\n", (int)final_phase); + + return STATUS_SUCCESS; +} + +static int sd_tuning_tx(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + int i, j; + u32 raw_phase_map[3], phase_map; + u8 final_phase; + int (*tuning_cmd)(struct rtsx_chip *chip, u8 sample_point); + + if (CHK_SD(sd_card)) { + if (CHK_SD_DDR50(sd_card)) { + tuning_cmd = sd_ddr_tuning_tx_cmd; + } else { + tuning_cmd = sd_sdr_tuning_tx_cmd; + } + } else { + if (CHK_MMC_DDR52(sd_card)) { + tuning_cmd = sd_ddr_tuning_tx_cmd; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + + for (i = 0; i < 3; i++) { + raw_phase_map[i] = 0; + for (j = MAX_PHASE; j >= 0; j--) { + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_NO_CARD); + rtsx_write_register(chip, SD_CFG3, + SD_RSP_80CLK_TIMEOUT_EN, 0); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = tuning_cmd(chip, (u8)j); + if (retval == STATUS_SUCCESS) { + raw_phase_map[i] |= 1 << j; + } + } + } + + phase_map = raw_phase_map[0] & raw_phase_map[1] & raw_phase_map[2]; + for (i = 0; i < 3; i++) { + RTSX_DEBUGP("TX raw_phase_map[%d] = 0x%08x\n", i, raw_phase_map[i]); + } + RTSX_DEBUGP("TX phase_map = 0x%08x\n", phase_map); + + final_phase = sd_search_final_phase(chip, phase_map, TUNE_TX); + if (final_phase == 0xFF) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_change_phase(chip, final_phase, TUNE_TX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_sdr_tuning(struct rtsx_chip *chip) +{ + int retval; + + retval = sd_tuning_tx(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_tuning_rx(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_ddr_tuning(struct rtsx_chip *chip) +{ + int retval; + + if (!(chip->sd_ctl & SD_DDR_TX_PHASE_SET_BY_USER)) { + retval = sd_ddr_pre_tuning_tx(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + retval = sd_change_phase(chip, (u8)chip->sd_ddr_tx_phase, TUNE_TX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = sd_tuning_rx(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (!(chip->sd_ctl & SD_DDR_TX_PHASE_SET_BY_USER)) { + retval = sd_tuning_tx(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +static int mmc_ddr_tuning(struct rtsx_chip *chip) +{ + int retval; + + if (!(chip->sd_ctl & MMC_DDR_TX_PHASE_SET_BY_USER)) { + retval = sd_ddr_pre_tuning_tx(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + retval = sd_change_phase(chip, (u8)chip->mmc_ddr_tx_phase, TUNE_TX); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = sd_tuning_rx(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (!(chip->sd_ctl & MMC_DDR_TX_PHASE_SET_BY_USER)) { + retval = sd_tuning_tx(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +int sd_switch_clock(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + int re_tuning = 0; + + retval = select_card(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHECK_PID(chip, 0x5209) && + (CHK_SD30_SPEED(sd_card) || CHK_MMC_DDR52(sd_card))) { + if (sd_card->need_retune && (sd_card->sd_clock != chip->cur_clk)) { + re_tuning = 1; + sd_card->need_retune = 0; + } + } + + retval = switch_clock(chip, sd_card->sd_clock); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (re_tuning) { + if (CHK_SD(sd_card)) { + if (CHK_SD_DDR50(sd_card)) { + retval = sd_ddr_tuning(chip); + } else { + retval = sd_sdr_tuning(chip); + } + } else { + if (CHK_MMC_DDR52(sd_card)) { + retval = mmc_ddr_tuning(chip); + } + } + + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + return STATUS_SUCCESS; +} + +static int sd_prepare_reset(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + + if (chip->asic_code) { + sd_card->sd_clock = 29; + } else { + sd_card->sd_clock = CLK_30; + } + + sd_card->sd_type = 0; + sd_card->seq_mode = 0; + sd_card->sd_data_buf_ready = 0; + sd_card->capacity = 0; + +#ifdef SUPPORT_SD_LOCK + sd_card->sd_lock_status = 0; + sd_card->sd_erase_status = 0; +#endif + + chip->capacity[chip->card2lun[SD_CARD]] = 0; + chip->sd_io = 0; + + retval = sd_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, retval); + } + + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, REG_SD_CFG1, 0xFF, + SD_CLK_DIVIDE_128 | SD_20_MODE | SD_BUS_WIDTH_1); + RTSX_WRITE_REG(chip, SD_SAMPLE_POINT_CTL, 0xFF, SD20_RX_POS_EDGE); + RTSX_WRITE_REG(chip, SD_PUSH_POINT_CTL, 0xFF, 0); + } else { + RTSX_WRITE_REG(chip, REG_SD_CFG1, 0xFF, 0x40); + } + + RTSX_WRITE_REG(chip, CARD_STOP, SD_STOP | SD_CLR_ERR, SD_STOP | SD_CLR_ERR); + + retval = select_card(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_pull_ctl_disable(struct rtsx_chip *chip) +{ + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL1, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL2, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL3, 0xFF, 0xD5); + } else if (CHECK_PID(chip, 0x5208)) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL1, 0xFF, + XD_D3_PD | SD_D7_PD | SD_CLK_PD | SD_D5_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL2, 0xFF, + SD_D6_PD | SD_D0_PD | SD_D1_PD | XD_D5_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL3, 0xFF, + SD_D4_PD | XD_CE_PD | XD_CLE_PD | XD_CD_PU); + RTSX_WRITE_REG(chip, CARD_PULL_CTL4, 0xFF, + XD_RDY_PD | SD_D3_PD | SD_D2_PD | XD_ALE_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL5, 0xFF, + MS_INS_PU | SD_WP_PD | SD_CD_PU | SD_CMD_PD); + RTSX_WRITE_REG(chip, CARD_PULL_CTL6, 0xFF, MS_D5_PD | MS_D4_PD); + } else if (CHECK_PID(chip, 0x5288)) { + if (CHECK_BARO_PKG(chip, QFN)) { + RTSX_WRITE_REG(chip, CARD_PULL_CTL1, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL2, 0xFF, 0x55); + RTSX_WRITE_REG(chip, CARD_PULL_CTL3, 0xFF, 0x4B); + RTSX_WRITE_REG(chip, CARD_PULL_CTL4, 0xFF, 0x69); + } + } + + return STATUS_SUCCESS; +} + +int sd_pull_ctl_enable(struct rtsx_chip *chip) +{ + int retval; + + rtsx_init_cmd(chip); + + if (CHECK_PID(chip, 0x5209)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0xAA); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0xAA); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0xE9); + } else if (CHECK_PID(chip, 0x5208)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, + XD_D3_PD | SD_DAT7_PU | SD_CLK_NP | SD_D5_PU); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, + SD_D6_PU | SD_D0_PU | SD_D1_PU | XD_D5_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, + SD_D4_PU | XD_CE_PD | XD_CLE_PD | XD_CD_PU); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, + XD_RDY_PD | SD_D3_PU | SD_D2_PU | XD_ALE_PD); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL5, 0xFF, + MS_INS_PU | SD_WP_PU | SD_CD_PU | SD_CMD_PU); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL6, 0xFF, MS_D5_PD | MS_D4_PD); + } else if (CHECK_PID(chip, 0x5288)) { + if (CHECK_BARO_PKG(chip, QFN)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL1, 0xFF, 0xA8); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL2, 0xFF, 0x5A); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL3, 0xFF, 0x95); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_PULL_CTL4, 0xFF, 0xAA); + } + } + + retval = rtsx_send_cmd(chip, SD_CARD, 100); + if (retval < 0) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_init_power(struct rtsx_chip *chip) +{ + int retval; + + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_OFF); + } + + retval = sd_power_off_card3v3(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (!chip->ft2_fast_mode) { + wait_timeout(250); + } + + retval = enable_card_clock(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (chip->asic_code) { + retval = sd_pull_ctl_enable(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + RTSX_WRITE_REG(chip, FPGA_PULL_CTL, FPGA_SD_PULL_CTL_BIT | 0x20, 0); + } + + if (chip->ft2_fast_mode) { + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, PWR_GATE_CTRL, LDO3318_PWR_MASK, LDO_ON); + } + } else { + retval = card_power_on(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + wait_timeout(260); + +#ifdef SUPPORT_OCP + if (chip->ocp_stat & (SD_OC_NOW | SD_OC_EVER)) { + RTSX_DEBUGP("Over current, OCPSTAT is 0x%x\n", chip->ocp_stat); + TRACE_RET(chip, STATUS_FAIL); + } +#endif + } + + RTSX_WRITE_REG(chip, CARD_OE, SD_OUTPUT_EN, SD_OUTPUT_EN); + + return STATUS_SUCCESS; +} + +static int sd_dummy_clock(struct rtsx_chip *chip) +{ + if (CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, SD_BUS_STAT, SD_CLK_TOGGLE_EN, SD_CLK_TOGGLE_EN); + wait_timeout(5); + RTSX_WRITE_REG(chip, SD_BUS_STAT, SD_CLK_TOGGLE_EN, 0x00); + } else { + RTSX_WRITE_REG(chip, REG_SD_CFG3, 0x01, 0x01); + wait_timeout(5); + RTSX_WRITE_REG(chip, REG_SD_CFG3, 0x01, 0); + } + + return STATUS_SUCCESS; +} + +static int sd_read_lba0(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 cmd[5], bus_width; + + cmd[0] = 0x40 | READ_SINGLE_BLOCK; + cmd[1] = 0; + cmd[2] = 0; + cmd[3] = 0; + cmd[4] = 0; + + if (CHK_SD(sd_card)) { + bus_width = SD_BUS_WIDTH_4; + } else { + if (CHK_MMC_8BIT(sd_card)) { + bus_width = SD_BUS_WIDTH_8; + } else if (CHK_MMC_4BIT(sd_card)) { + bus_width = SD_BUS_WIDTH_4; + } else { + bus_width = SD_BUS_WIDTH_1; + } + } + + retval = sd_read_data(chip, SD_TM_NORMAL_READ, cmd, + 5, 512, 1, bus_width, NULL, 0, 100); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +static int sd_check_wp_state(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u32 val; + u16 sd_card_type; + u8 cmd[5], buf[64]; + + retval = sd_send_cmd_get_rsp(chip, APP_CMD, + sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + cmd[0] = 0x40 | SD_STATUS; + cmd[1] = 0; + cmd[2] = 0; + cmd[3] = 0; + cmd[4] = 0; + + retval = sd_read_data(chip, SD_TM_NORMAL_READ, cmd, 5, 64, 1, SD_BUS_WIDTH_4, buf, 64, 250); + if (retval != STATUS_SUCCESS) { + rtsx_clear_sd_error(chip); + + sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_DEBUGP("ACMD13:\n"); + RTSX_DUMP(buf, 64); + + sd_card_type = ((u16)buf[2] << 8) | buf[3]; + RTSX_DEBUGP("sd_card_type = 0x%04x\n", sd_card_type); + if ((sd_card_type == 0x0001) || (sd_card_type == 0x0002)) { + /* ROM card or OTP */ + chip->card_wp |= SD_CARD; + } + + /* Check SD Machanical Write-Protect Switch */ + val = rtsx_readl(chip, RTSX_BIPR); + if (val & SD_WRITE_PROTECT) { + chip->card_wp |= SD_CARD; + } + + return STATUS_SUCCESS; +} + +static int reset_sd(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval, i = 0, j = 0, k = 0, hi_cap_flow = 0; + int sd_dont_switch = 0; + int support_1v8 = 0; + int try_sdio = 1; + u8 rsp[16]; + u8 switch_bus_width; + u32 voltage = 0; + int sd20_mode = 0; + + SET_SD(sd_card); + +Switch_Fail: + + i = 0; + j = 0; + k = 0; + hi_cap_flow = 0; + +#ifdef SUPPORT_SD_LOCK + if (sd_card->sd_lock_status & SD_UNLOCK_POW_ON) + goto SD_UNLOCK_ENTRY; +#endif + + retval = sd_prepare_reset(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_dummy_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_SDIO_EXIST(chip) && !CHK_SDIO_IGNORED(chip) && try_sdio) { + int rty_cnt = 0; + + for (; rty_cnt < chip->sdio_retry_cnt; rty_cnt++) { + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_send_cmd_get_rsp(chip, IO_SEND_OP_COND, 0, SD_RSP_TYPE_R4, rsp, 5); + if (retval == STATUS_SUCCESS) { + int func_num = (rsp[1] >> 4) && 0x07; + if (func_num) { + RTSX_DEBUGP("SD_IO card (Function number: %d)!\n", func_num); + chip->sd_io = 1; + TRACE_RET(chip, STATUS_FAIL); + } + + break; + } + + sd_init_power(chip); + + sd_dummy_clock(chip); + } + + RTSX_DEBUGP("Normal card!\n"); + } + + /* Start Initialization Process of SD Card */ +RTY_SD_RST: + retval = sd_send_cmd_get_rsp(chip, GO_IDLE_STATE, 0, SD_RSP_TYPE_R0, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + wait_timeout(20); + + retval = sd_send_cmd_get_rsp(chip, SEND_IF_COND, 0x000001AA, SD_RSP_TYPE_R7, rsp, 5); + if (retval == STATUS_SUCCESS) { + if ((rsp[4] == 0xAA) && ((rsp[3] & 0x0f) == 0x01)) { + hi_cap_flow = 1; + if (CHECK_PID(chip, 0x5209)) { + if (sd20_mode) { + voltage = SUPPORT_VOLTAGE | + SUPPORT_HIGH_AND_EXTENDED_CAPACITY; + } else { + voltage = SUPPORT_VOLTAGE | + SUPPORT_HIGH_AND_EXTENDED_CAPACITY | + SUPPORT_MAX_POWER_PERMANCE | SUPPORT_1V8; + } + } else { + voltage = SUPPORT_VOLTAGE | 0x40000000; + } + } + } + + if (!hi_cap_flow) { + voltage = SUPPORT_VOLTAGE; + + retval = sd_send_cmd_get_rsp(chip, GO_IDLE_STATE, 0, SD_RSP_TYPE_R0, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + wait_timeout(20); + } + + do { + retval = sd_send_cmd_get_rsp(chip, APP_CMD, 0, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + j++; + if (j < 3) { + goto RTY_SD_RST; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = sd_send_cmd_get_rsp(chip, SD_APP_OP_COND, voltage, SD_RSP_TYPE_R3, rsp, 5); + if (retval != STATUS_SUCCESS) { + k++; + if (k < 3) { + goto RTY_SD_RST; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + + i++; + wait_timeout(20); + } while (!(rsp[1] & 0x80) && (i < 255)); + + if (i == 255) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (hi_cap_flow) { + if (rsp[1] & 0x40) { + SET_SD_HCXC(sd_card); + } else { + CLR_SD_HCXC(sd_card); + } + if (CHECK_PID(chip, 0x5209) && CHK_SD_HCXC(sd_card) && !sd20_mode) { + support_1v8 = (rsp[1] & 0x01) ? 1 : 0; + } else { + support_1v8 = 0; + } + } else { + CLR_SD_HCXC(sd_card); + support_1v8 = 0; + } + RTSX_DEBUGP("support_1v8 = %d\n", support_1v8); + + if (support_1v8) { + retval = sd_voltage_switch(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + retval = sd_send_cmd_get_rsp(chip, ALL_SEND_CID, 0, SD_RSP_TYPE_R2, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + for (i = 0; i < 3; i++) { + retval = sd_send_cmd_get_rsp(chip, SEND_RELATIVE_ADDR, 0, SD_RSP_TYPE_R6, rsp, 5); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + sd_card->sd_addr = (u32)rsp[1] << 24; + sd_card->sd_addr += (u32)rsp[2] << 16; + + if (sd_card->sd_addr) { + break; + } + } + + retval = sd_check_csd(chip, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_select_card(chip, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + +#ifdef SUPPORT_SD_LOCK +SD_UNLOCK_ENTRY: + retval = sd_update_lock_status(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (sd_card->sd_lock_status & SD_LOCKED) { + sd_card->sd_lock_status |= (SD_LOCK_1BIT_MODE | SD_PWD_EXIST); + return STATUS_SUCCESS; + } else if (!(sd_card->sd_lock_status & SD_UNLOCK_POW_ON)) { + sd_card->sd_lock_status &= ~SD_PWD_EXIST; + } +#endif + + retval = sd_send_cmd_get_rsp(chip, APP_CMD, sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = sd_send_cmd_get_rsp(chip, SET_CLR_CARD_DETECT, 0, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (support_1v8) { + retval = sd_send_cmd_get_rsp(chip, APP_CMD, sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = sd_send_cmd_get_rsp(chip, SET_BUS_WIDTH, 2, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + switch_bus_width = SD_BUS_WIDTH_4; + } else { + switch_bus_width = SD_BUS_WIDTH_1; + } + + retval = sd_send_cmd_get_rsp(chip, SET_BLOCKLEN, 0x200, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_set_clock_divider(chip, SD_CLK_DIVIDE_0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (!(sd_card->raw_csd[4] & 0x40)) + sd_dont_switch = 1; + + if (!sd_dont_switch) { + if (sd20_mode) { + /* Set sd_switch_fail here, because we needn't + * switch to UHS mode + */ + sd_card->sd_switch_fail = SDR104_SUPPORT_MASK | + DDR50_SUPPORT_MASK | SDR50_SUPPORT_MASK; + } + + /* Check the card whether follow SD1.1 spec or higher */ + retval = sd_check_spec(chip, switch_bus_width); + if (retval == STATUS_SUCCESS) { + retval = sd_switch_function(chip, switch_bus_width); + if (retval != STATUS_SUCCESS) { + if (CHECK_PID(chip, 0x5209)) { + sd_change_bank_voltage(chip, SD_IO_3V3); + } + sd_init_power(chip); + sd_dont_switch = 1; + try_sdio = 0; + + goto Switch_Fail; + } + } else { + if (support_1v8) { + if (CHECK_PID(chip, 0x5209)) { + sd_change_bank_voltage(chip, SD_IO_3V3); + } + sd_init_power(chip); + sd_dont_switch = 1; + try_sdio = 0; + + goto Switch_Fail; + } + } + } + + if (!support_1v8) { + retval = sd_send_cmd_get_rsp(chip, APP_CMD, sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + retval = sd_send_cmd_get_rsp(chip, SET_BUS_WIDTH, 2, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + +#ifdef SUPPORT_SD_LOCK + sd_card->sd_lock_status &= ~SD_LOCK_1BIT_MODE; +#endif + + if (!sd20_mode && CHK_SD30_SPEED(sd_card)) { + int read_lba0 = 1; + + RTSX_WRITE_REG(chip, SD30_DRIVE_SEL, 0x07, chip->sd30_drive_sel_1v8); + + retval = sd_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_SD_DDR50(sd_card)) { + retval = sd_ddr_tuning(chip); + } else { + retval = sd_sdr_tuning(chip); + } + + if (retval != STATUS_SUCCESS) { + if (sd20_mode) { + TRACE_RET(chip, STATUS_FAIL); + } else { + retval = sd_init_power(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + try_sdio = 0; + sd20_mode = 1; + goto Switch_Fail; + } + } + + sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + + if (CHK_SD_DDR50(sd_card)) { + retval = sd_wait_state_data_ready(chip, 0x08, 1, 1000); + if (retval != STATUS_SUCCESS) { + read_lba0 = 0; + } + } + + if (read_lba0) { + retval = sd_read_lba0(chip); + if (retval != STATUS_SUCCESS) { + if (sd20_mode) { + TRACE_RET(chip, STATUS_FAIL); + } else { + retval = sd_init_power(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + try_sdio = 0; + sd20_mode = 1; + goto Switch_Fail; + } + } + } + } + + retval = sd_check_wp_state(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + chip->card_bus_width[chip->card2lun[SD_CARD]] = 4; + +#ifdef SUPPORT_SD_LOCK + if (sd_card->sd_lock_status & SD_UNLOCK_POW_ON) { + RTSX_WRITE_REG(chip, REG_SD_BLOCK_CNT_H, 0xFF, 0x02); + RTSX_WRITE_REG(chip, REG_SD_BLOCK_CNT_L, 0xFF, 0x00); + } +#endif + + return STATUS_SUCCESS; +} + + +static int mmc_test_switch_bus(struct rtsx_chip *chip, u8 width) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 buf[8] = {0}, bus_width, *ptr; + u16 byte_cnt; + int len; + + retval = sd_send_cmd_get_rsp(chip, BUSTEST_W, 0, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (width == MMC_8BIT_BUS) { + buf[0] = 0x55; + buf[1] = 0xAA; + len = 8; + byte_cnt = 8; + bus_width = SD_BUS_WIDTH_8; + } else { + buf[0] = 0x5A; + len = 4; + byte_cnt = 4; + bus_width = SD_BUS_WIDTH_4; + } + + if (!CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, REG_SD_CFG3, 0x02, 0x02); + } + + retval = sd_write_data(chip, SD_TM_AUTO_WRITE_3, + NULL, 0, byte_cnt, 1, bus_width, buf, len, 100); + if (retval != STATUS_SUCCESS) { + if (CHECK_PID(chip, 0x5209)) { + u8 val1 = 0, val2 = 0; + rtsx_read_register(chip, REG_SD_STAT1, &val1); + rtsx_read_register(chip, REG_SD_STAT2, &val2); + rtsx_clear_sd_error(chip); + if ((val1 & 0xE0) || val2) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + rtsx_clear_sd_error(chip); + rtsx_write_register(chip, REG_SD_CFG3, 0x02, 0); + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (!CHECK_PID(chip, 0x5209)) { + RTSX_WRITE_REG(chip, REG_SD_CFG3, 0x02, 0); + } + + RTSX_DEBUGP("SD/MMC CMD %d\n", BUSTEST_R); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD0, 0xFF, 0x40 | BUSTEST_R); + + if (width == MMC_8BIT_BUS) { + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_L, 0xFF, 0x08); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_L, 0xFF, 0x04); + } + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_L, 0xFF, 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_H, 0xFF, 0); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, + SD_CALCULATE_CRC7 | SD_NO_CHECK_CRC16 | SD_NO_WAIT_BUSY_END | + SD_CHECK_CRC7 | SD_RSP_LEN_6); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, SD_TM_NORMAL_READ | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2, 0, 0); + if (width == MMC_8BIT_BUS) { + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + 1, 0, 0); + } + + retval = rtsx_send_cmd(chip, SD_CARD, 100); + if (retval < 0) { + rtsx_clear_sd_error(chip); + TRACE_RET(chip, STATUS_FAIL); + } + + ptr = rtsx_get_cmd_data(chip) + 1; + + if (width == MMC_8BIT_BUS) { + RTSX_DEBUGP("BUSTEST_R [8bits]: 0x%02x 0x%02x\n", ptr[0], ptr[1]); + if ((ptr[0] == 0xAA) && (ptr[1] == 0x55)) { + u8 rsp[5]; + u32 arg; + + if (CHK_MMC_DDR52(sd_card)) { + arg = 0x03B70600; + } else { + arg = 0x03B70200; + } + retval = sd_send_cmd_get_rsp(chip, SWITCH, arg, SD_RSP_TYPE_R1b, rsp, 5); + if ((retval == STATUS_SUCCESS) && !(rsp[4] & MMC_SWITCH_ERR)) { + return STATUS_SUCCESS; + } + } + } else { + RTSX_DEBUGP("BUSTEST_R [4bits]: 0x%02x\n", ptr[0]); + if (ptr[0] == 0xA5) { + u8 rsp[5]; + u32 arg; + + if (CHK_MMC_DDR52(sd_card)) { + arg = 0x03B70500; + } else { + arg = 0x03B70100; + } + retval = sd_send_cmd_get_rsp(chip, SWITCH, arg, SD_RSP_TYPE_R1b, rsp, 5); + if ((retval == STATUS_SUCCESS) && !(rsp[4] & MMC_SWITCH_ERR)) { + return STATUS_SUCCESS; + } + } + } + + TRACE_RET(chip, STATUS_FAIL); +} + + +static int mmc_switch_timing_bus(struct rtsx_chip *chip, int switch_ddr) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + u8 *ptr, card_type, card_type_mask = 0; + + CLR_MMC_HS(sd_card); + + RTSX_DEBUGP("SD/MMC CMD %d\n", SEND_EXT_CSD); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD0, 0xFF, 0x40 | SEND_EXT_CSD); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD1, 0xFF, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD2, 0xFF, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD3, 0xFF, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD4, 0xFF, 0); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_L, 0xFF, 0); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_H, 0xFF, 2); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_L, 0xFF, 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_H, 0xFF, 0); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, + SD_CALCULATE_CRC7 | SD_CHECK_CRC16 | SD_NO_WAIT_BUSY_END | + SD_CHECK_CRC7 | SD_RSP_LEN_6); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, SD_TM_NORMAL_READ | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + 196, 0xFF, 0); + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + 212, 0xFF, 0); + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + 213, 0xFF, 0); + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + 214, 0xFF, 0); + rtsx_add_cmd(chip, READ_REG_CMD, PPBUF_BASE2 + 215, 0xFF, 0); + + retval = rtsx_send_cmd(chip, SD_CARD, 1000); + if (retval < 0) { + if (retval == -ETIMEDOUT) { + rtsx_clear_sd_error(chip); + sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, + SD_RSP_TYPE_R1, NULL, 0); + } + TRACE_RET(chip, STATUS_FAIL); + } + + ptr = rtsx_get_cmd_data(chip); + if (ptr[0] & SD_TRANSFER_ERR) { + sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_MMC_SECTOR_MODE(sd_card)) { + sd_card->capacity = ((u32)ptr[5] << 24) | ((u32)ptr[4] << 16) | + ((u32)ptr[3] << 8) | ((u32)ptr[2]); + } + + if (CHECK_PID(chip, 0x5209)) { +#ifdef SUPPORT_SD_LOCK + if (!(sd_card->sd_lock_status & SD_SDR_RST) && + (chip->sd_ctl & SUPPORT_MMC_DDR_MODE)) { + card_type_mask = 0x07; + } else { + card_type_mask = 0x03; + } +#else + if (chip->sd_ctl & SUPPORT_MMC_DDR_MODE) { + card_type_mask = 0x07; + } else { + card_type_mask = 0x03; + } +#endif + } else { + card_type_mask = 0x03; + } + card_type = ptr[1] & card_type_mask; + if (card_type) { + u8 rsp[5]; + + if (card_type & 0x04) { + if (switch_ddr) { + SET_MMC_DDR52(sd_card); + } else { + SET_MMC_52M(sd_card); + } + } else if (card_type & 0x02) { + SET_MMC_52M(sd_card); + } else { + SET_MMC_26M(sd_card); + } + + retval = sd_send_cmd_get_rsp(chip, SWITCH, + 0x03B90100, SD_RSP_TYPE_R1b, rsp, 5); + if ((retval != STATUS_SUCCESS) || (rsp[4] & MMC_SWITCH_ERR)) { + CLR_MMC_HS(sd_card); + } + } + + sd_choose_proper_clock(chip); + retval = switch_clock(chip, sd_card->sd_clock); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (mmc_test_switch_bus(chip, MMC_8BIT_BUS) == STATUS_SUCCESS) { + SET_MMC_8BIT(sd_card); + chip->card_bus_width[chip->card2lun[SD_CARD]] = 8; +#ifdef SUPPORT_SD_LOCK + sd_card->sd_lock_status &= ~SD_LOCK_1BIT_MODE; +#endif + } else if (mmc_test_switch_bus(chip, MMC_4BIT_BUS) == STATUS_SUCCESS) { + SET_MMC_4BIT(sd_card); + chip->card_bus_width[chip->card2lun[SD_CARD]] = 4; +#ifdef SUPPORT_SD_LOCK + sd_card->sd_lock_status &= ~SD_LOCK_1BIT_MODE; +#endif + } else { + CLR_MMC_8BIT(sd_card); + CLR_MMC_4BIT(sd_card); + } + + return STATUS_SUCCESS; +} + + +static int reset_mmc(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval, i = 0, j = 0, k = 0; + int switch_ddr = 1; + u8 rsp[16]; + u8 spec_ver = 0; + u32 temp; + +#ifdef SUPPORT_SD_LOCK + if (sd_card->sd_lock_status & SD_UNLOCK_POW_ON) + goto MMC_UNLOCK_ENTRY; +#endif + +DDR_TUNING_FAIL: + + retval = sd_prepare_reset(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, retval); + } + + SET_MMC(sd_card); + +RTY_MMC_RST: + retval = sd_send_cmd_get_rsp(chip, GO_IDLE_STATE, 0, SD_RSP_TYPE_R0, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + do { + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_send_cmd_get_rsp(chip, SEND_OP_COND, + (SUPPORT_VOLTAGE|0x40000000), SD_RSP_TYPE_R3, rsp, 5); + if (retval != STATUS_SUCCESS) { + if (sd_check_err_code(chip, SD_BUSY) || sd_check_err_code(chip, SD_TO_ERR)) { + k++; + if (k < 20) { + sd_clr_err_code(chip); + goto RTY_MMC_RST; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + j++; + if (j < 100) { + sd_clr_err_code(chip); + goto RTY_MMC_RST; + } else { + TRACE_RET(chip, STATUS_FAIL); + } + } + } + + wait_timeout(20); + i++; + } while (!(rsp[1] & 0x80) && (i < 255)); + + if (i == 255) { + TRACE_RET(chip, STATUS_FAIL); + } + + if ((rsp[1] & 0x60) == 0x40) { + SET_MMC_SECTOR_MODE(sd_card); + } else { + CLR_MMC_SECTOR_MODE(sd_card); + } + + retval = sd_send_cmd_get_rsp(chip, ALL_SEND_CID, 0, SD_RSP_TYPE_R2, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + sd_card->sd_addr = 0x00100000; + retval = sd_send_cmd_get_rsp(chip, SET_RELATIVE_ADDR, sd_card->sd_addr, SD_RSP_TYPE_R6, rsp, 5); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_check_csd(chip, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + spec_ver = (sd_card->raw_csd[0] & 0x3C) >> 2; + + retval = sd_select_card(chip, 1); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_send_cmd_get_rsp(chip, SET_BLOCKLEN, 0x200, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + +#ifdef SUPPORT_SD_LOCK +MMC_UNLOCK_ENTRY: + retval = sd_update_lock_status(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } +#endif + + retval = sd_set_clock_divider(chip, SD_CLK_DIVIDE_0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + chip->card_bus_width[chip->card2lun[SD_CARD]] = 1; + + if (!sd_card->mmc_dont_switch_bus) { + if (spec_ver == 4) { + (void)mmc_switch_timing_bus(chip, switch_ddr); + } + + if (CHK_MMC_SECTOR_MODE(sd_card) && (sd_card->capacity == 0)) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (switch_ddr && CHK_MMC_DDR52(sd_card)) { + retval = sd_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = mmc_ddr_tuning(chip); + if (retval != STATUS_SUCCESS) { + retval = sd_init_power(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + switch_ddr = 0; + goto DDR_TUNING_FAIL; + } + + retval = sd_wait_state_data_ready(chip, 0x08, 1, 1000); + if (retval == STATUS_SUCCESS) { + retval = sd_read_lba0(chip); + if (retval != STATUS_SUCCESS) { + retval = sd_init_power(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + switch_ddr = 0; + goto DDR_TUNING_FAIL; + } + } + } + } + +#ifdef SUPPORT_SD_LOCK + if (sd_card->sd_lock_status & SD_UNLOCK_POW_ON) { + RTSX_WRITE_REG(chip, REG_SD_BLOCK_CNT_H, 0xFF, 0x02); + RTSX_WRITE_REG(chip, REG_SD_BLOCK_CNT_L, 0xFF, 0x00); + } +#endif + + temp = rtsx_readl(chip, RTSX_BIPR); + if (temp & SD_WRITE_PROTECT) { + chip->card_wp |= SD_CARD; + } + + return STATUS_SUCCESS; +} + +int reset_sd_card(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + + sd_init_reg_addr(chip); + + memset(sd_card, 0, sizeof(struct sd_info)); + chip->capacity[chip->card2lun[SD_CARD]] = 0; + + retval = enable_card_clock(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (chip->ignore_sd && CHK_SDIO_EXIST(chip) && !CHK_SDIO_IGNORED(chip)) { + if (chip->asic_code) { + retval = sd_pull_ctl_enable(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + retval = rtsx_write_register(chip, FPGA_PULL_CTL, + FPGA_SD_PULL_CTL_BIT | 0x20, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + retval = card_share_mode(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + chip->sd_io = 1; + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_init_power(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (chip->sd_ctl & RESET_MMC_FIRST) { + retval = reset_mmc(chip); + if ((retval != STATUS_SUCCESS) && !sd_check_err_code(chip, SD_NO_CARD)) { + retval = reset_sd(chip); + if (retval != STATUS_SUCCESS) { + if (CHECK_PID(chip, 0x5209)) { + retval = sd_change_bank_voltage(chip, SD_IO_3V3); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + } + } + } else { + retval = reset_sd(chip); + if (retval != STATUS_SUCCESS) { + if (sd_check_err_code(chip, SD_NO_CARD)) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHECK_PID(chip, 0x5209)) { + retval = sd_change_bank_voltage(chip, SD_IO_3V3); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (!chip->sd_io) { + retval = reset_mmc(chip); + } + } + } + + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_set_clock_divider(chip, SD_CLK_DIVIDE_0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + RTSX_WRITE_REG(chip, REG_SD_BYTE_CNT_L, 0xFF, 0); + RTSX_WRITE_REG(chip, REG_SD_BYTE_CNT_H, 0xFF, 2); + + chip->capacity[chip->card2lun[SD_CARD]] = sd_card->capacity; + + retval = sd_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_DEBUGP("sd_card->sd_type = 0x%x\n", sd_card->sd_type); + + return STATUS_SUCCESS; +} + +static int reset_mmc_only(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + + sd_card->sd_type = 0; + sd_card->seq_mode = 0; + sd_card->sd_data_buf_ready = 0; + sd_card->capacity = 0; + sd_card->sd_switch_fail = 0; + +#ifdef SUPPORT_SD_LOCK + sd_card->sd_lock_status = 0; + sd_card->sd_erase_status = 0; +#endif + + chip->capacity[chip->card2lun[SD_CARD]] = sd_card->capacity = 0; + + retval = enable_card_clock(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_init_power(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = reset_mmc(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + retval = sd_set_clock_divider(chip, SD_CLK_DIVIDE_0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + RTSX_WRITE_REG(chip, REG_SD_BYTE_CNT_L, 0xFF, 0); + RTSX_WRITE_REG(chip, REG_SD_BYTE_CNT_H, 0xFF, 2); + + chip->capacity[chip->card2lun[SD_CARD]] = sd_card->capacity; + + retval = sd_set_init_para(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_DEBUGP("In reset_mmc_only, sd_card->sd_type = 0x%x\n", sd_card->sd_type); + + return STATUS_SUCCESS; +} + +#define WAIT_DATA_READY_RTY_CNT 255 + +static int wait_data_buf_ready(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int i, retval; + + for (i = 0; i < WAIT_DATA_READY_RTY_CNT; i++) { + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_NO_CARD); + TRACE_RET(chip, STATUS_FAIL); + } + + sd_card->sd_data_buf_ready = 0; + + retval = sd_send_cmd_get_rsp(chip, SEND_STATUS, + sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (sd_card->sd_data_buf_ready) { + return sd_send_cmd_get_rsp(chip, SEND_STATUS, + sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + } + } + + sd_set_err_code(chip, SD_TO_ERR); + + TRACE_RET(chip, STATUS_FAIL); +} + +void sd_stop_seq_mode(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + + if (sd_card->seq_mode) { + retval = sd_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + return; + } + + retval = sd_send_cmd_get_rsp(chip, STOP_TRANSMISSION, 0, + SD_RSP_TYPE_R1b, NULL, 0); + if (retval != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_STS_ERR); + } + retval = sd_wait_state_data_ready(chip, 0x08, 1, 1000); + if (retval != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_STS_ERR); + } + sd_card->seq_mode = 0; + + rtsx_write_register(chip, RBCTL, RB_FLUSH, RB_FLUSH); + } +} + +static inline int sd_auto_tune_clock(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + + if (chip->asic_code) { + if (sd_card->sd_clock > 30) { + sd_card->sd_clock -= 20; + } + } else { + switch (sd_card->sd_clock) { + case CLK_200: + sd_card->sd_clock = CLK_150; + break; + + case CLK_150: + sd_card->sd_clock = CLK_120; + break; + + case CLK_120: + sd_card->sd_clock = CLK_100; + break; + + case CLK_100: + sd_card->sd_clock = CLK_80; + break; + + case CLK_80: + sd_card->sd_clock = CLK_60; + break; + + case CLK_60: + sd_card->sd_clock = CLK_50; + break; + + default: + break; + } + } + + retval = sd_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + return STATUS_SUCCESS; +} + +int sd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 start_sector, u16 sector_cnt) +{ + struct sd_info *sd_card = &(chip->sd_card); + u32 data_addr; + u8 cfg2; + int retval; + + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + RTSX_DEBUGP("sd_rw: Read %d %s from 0x%x\n", sector_cnt, + (sector_cnt > 1) ? "sectors" : "sector", start_sector); + } else { + RTSX_DEBUGP("sd_rw: Write %d %s to 0x%x\n", sector_cnt, + (sector_cnt > 1) ? "sectors" : "sector", start_sector); + } + + sd_card->cleanup_counter = 0; + + if (!(chip->card_ready & SD_CARD)) { + sd_card->seq_mode = 0; + + retval = reset_sd_card(chip); + if (retval == STATUS_SUCCESS) { + chip->card_ready |= SD_CARD; + chip->card_fail &= ~SD_CARD; + } else { + chip->card_ready &= ~SD_CARD; + chip->card_fail |= SD_CARD; + chip->capacity[chip->card2lun[SD_CARD]] = 0; + chip->rw_need_retry = 1; + TRACE_RET(chip, STATUS_FAIL); + } + } + + if (!CHK_SD_HCXC(sd_card) && !CHK_MMC_SECTOR_MODE(sd_card)) { + data_addr = start_sector << 9; + } else { + data_addr = start_sector; + } + + sd_clr_err_code(chip); + + retval = sd_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_IO_ERR); + TRACE_GOTO(chip, RW_FAIL); + } + + if (sd_card->seq_mode && ((sd_card->pre_dir != srb->sc_data_direction) + || ((sd_card->pre_sec_addr + sd_card->pre_sec_cnt) != start_sector))) { + if ((sd_card->pre_sec_cnt < 0x80) + && (sd_card->pre_dir == DMA_FROM_DEVICE) + && !CHK_SD30_SPEED(sd_card) + && !CHK_SD_HS(sd_card) + && !CHK_MMC_HS(sd_card)) { + sd_send_cmd_get_rsp(chip, SEND_STATUS, + sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + } + + retval = sd_send_cmd_get_rsp(chip, STOP_TRANSMISSION, + 0, SD_RSP_TYPE_R1b, NULL, 0); + if (retval != STATUS_SUCCESS) { + chip->rw_need_retry = 1; + sd_set_err_code(chip, SD_STS_ERR); + TRACE_GOTO(chip, RW_FAIL); + } + + sd_card->seq_mode = 0; + + retval = rtsx_write_register(chip, RBCTL, RB_FLUSH, RB_FLUSH); + if (retval != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_IO_ERR); + TRACE_GOTO(chip, RW_FAIL); + } + + if ((sd_card->pre_sec_cnt < 0x80) + && !CHK_SD30_SPEED(sd_card) + && !CHK_SD_HS(sd_card) + && !CHK_MMC_HS(sd_card)) { + sd_send_cmd_get_rsp(chip, SEND_STATUS, + sd_card->sd_addr, SD_RSP_TYPE_R1, NULL, 0); + } + } + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_L, 0xFF, 0x00); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_H, 0xFF, 0x02); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_L, 0xFF, (u8)sector_cnt); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_H, 0xFF, (u8)(sector_cnt >> 8)); + + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, RING_BUFFER); + + if (CHK_MMC_8BIT(sd_card)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG1, 0x03, SD_BUS_WIDTH_8); + } else if (CHK_MMC_4BIT(sd_card) || CHK_SD(sd_card)) { + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG1, 0x03, SD_BUS_WIDTH_4); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG1, 0x03, SD_BUS_WIDTH_1); + } + + if (sd_card->seq_mode) { + cfg2 = SD_NO_CALCULATE_CRC7 | SD_CHECK_CRC16 | SD_NO_WAIT_BUSY_END | + SD_NO_CHECK_CRC7 | SD_RSP_LEN_0; + if (CHECK_PID(chip, 0x5209)) { + if (!CHK_SD30_SPEED(sd_card)) { + cfg2 |= SD_NO_CHECK_WAIT_CRC_TO; + } + } + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, cfg2); + + trans_dma_enable(srb->sc_data_direction, chip, sector_cnt * 512, DMA_512); + + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, + SD_TM_AUTO_READ_3 | SD_TRANSFER_START); + } else { + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, + SD_TM_AUTO_WRITE_3 | SD_TRANSFER_START); + } + + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + } else { + if (srb->sc_data_direction == DMA_FROM_DEVICE) { + RTSX_DEBUGP("SD/MMC CMD %d\n", READ_MULTIPLE_BLOCK); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD0, 0xFF, + 0x40 | READ_MULTIPLE_BLOCK); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD1, 0xFF, (u8)(data_addr >> 24)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD2, 0xFF, (u8)(data_addr >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD3, 0xFF, (u8)(data_addr >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD4, 0xFF, (u8)data_addr); + + cfg2 = SD_CALCULATE_CRC7 | SD_CHECK_CRC16 | SD_NO_WAIT_BUSY_END | + SD_CHECK_CRC7 | SD_RSP_LEN_6; + if (CHECK_PID(chip, 0x5209)) { + if (!CHK_SD30_SPEED(sd_card)) { + cfg2 |= SD_NO_CHECK_WAIT_CRC_TO; + } + } + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, cfg2); + + trans_dma_enable(srb->sc_data_direction, chip, sector_cnt * 512, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, + SD_TM_AUTO_READ_2 | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, + SD_TRANSFER_END, SD_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + } else { + retval = rtsx_send_cmd(chip, SD_CARD, 50); + if (retval < 0) { + rtsx_clear_sd_error(chip); + + chip->rw_need_retry = 1; + sd_set_err_code(chip, SD_TO_ERR); + TRACE_GOTO(chip, RW_FAIL); + } + + retval = wait_data_buf_ready(chip); + if (retval != STATUS_SUCCESS) { + chip->rw_need_retry = 1; + sd_set_err_code(chip, SD_TO_ERR); + TRACE_GOTO(chip, RW_FAIL); + } + + retval = sd_send_cmd_get_rsp(chip, WRITE_MULTIPLE_BLOCK, + data_addr, SD_RSP_TYPE_R1, NULL, 0); + if (retval != STATUS_SUCCESS) { + chip->rw_need_retry = 1; + TRACE_GOTO(chip, RW_FAIL); + } + + rtsx_init_cmd(chip); + + cfg2 = SD_NO_CALCULATE_CRC7 | SD_CHECK_CRC16 | SD_NO_WAIT_BUSY_END | + SD_NO_CHECK_CRC7 | SD_RSP_LEN_0; + if (CHECK_PID(chip, 0x5209)) { + if (!CHK_SD30_SPEED(sd_card)) { + cfg2 |= SD_NO_CHECK_WAIT_CRC_TO; + } + } + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, cfg2); + + trans_dma_enable(srb->sc_data_direction, chip, sector_cnt * 512, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, + SD_TM_AUTO_WRITE_3 | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, + SD_TRANSFER_END, SD_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + } + + sd_card->seq_mode = 1; + } + + retval = rtsx_transfer_data(chip, SD_CARD, scsi_sglist(srb), scsi_bufflen(srb), + scsi_sg_count(srb), srb->sc_data_direction, chip->sd_timeout); + if (retval < 0) { + u8 stat = 0; + int err; + + sd_card->seq_mode = 0; + + if (retval == -ETIMEDOUT) { + err = STATUS_TIMEDOUT; + } else { + err = STATUS_FAIL; + } + + rtsx_read_register(chip, REG_SD_STAT1, &stat); + rtsx_clear_sd_error(chip); + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + chip->rw_need_retry = 0; + RTSX_DEBUGP("No card exist, exit sd_rw\n"); + TRACE_RET(chip, STATUS_FAIL); + } + + chip->rw_need_retry = 1; + + retval = sd_send_cmd_get_rsp(chip, STOP_TRANSMISSION, 0, SD_RSP_TYPE_R1b, NULL, 0); + if (retval != STATUS_SUCCESS) { + sd_set_err_code(chip, SD_STS_ERR); + TRACE_GOTO(chip, RW_FAIL); + } + + if (stat & (SD_CRC7_ERR | SD_CRC16_ERR | SD_CRC_WRITE_ERR)) { + RTSX_DEBUGP("SD CRC error, tune clock!\n"); + sd_set_err_code(chip, SD_CRC_ERR); + TRACE_GOTO(chip, RW_FAIL); + } + + if (err == STATUS_TIMEDOUT) { + sd_set_err_code(chip, SD_TO_ERR); + TRACE_GOTO(chip, RW_FAIL); + } + + TRACE_RET(chip, err); + } + + sd_card->pre_sec_addr = start_sector; + sd_card->pre_sec_cnt = sector_cnt; + sd_card->pre_dir = srb->sc_data_direction; + + return STATUS_SUCCESS; + +RW_FAIL: + sd_card->seq_mode = 0; + + if (detect_card_cd(chip, SD_CARD) != STATUS_SUCCESS) { + chip->rw_need_retry = 0; + RTSX_DEBUGP("No card exist, exit sd_rw\n"); + TRACE_RET(chip, STATUS_FAIL); + } + + if (sd_check_err_code(chip, SD_CRC_ERR)) { + if (CHK_MMC_4BIT(sd_card) || CHK_MMC_8BIT(sd_card)) { + sd_card->mmc_dont_switch_bus = 1; + reset_mmc_only(chip); + sd_card->mmc_dont_switch_bus = 0; + } else { + sd_card->need_retune = 1; + sd_auto_tune_clock(chip); + } + } else if (sd_check_err_code(chip, SD_TO_ERR | SD_STS_ERR)) { + retval = reset_sd_card(chip); + if (retval != STATUS_SUCCESS) { + chip->card_ready &= ~SD_CARD; + chip->card_fail |= SD_CARD; + chip->capacity[chip->card2lun[SD_CARD]] = 0; + } + } + + TRACE_RET(chip, STATUS_FAIL); +} + +#ifdef SUPPORT_CPRM +int soft_reset_sd_card(struct rtsx_chip *chip) +{ + return reset_sd(chip); +} + +int ext_sd_send_cmd_get_rsp(struct rtsx_chip *chip, u8 cmd_idx, + u32 arg, u8 rsp_type, u8 *rsp, int rsp_len, int special_check) +{ + int retval; + int timeout = 100; + u16 reg_addr; + u8 *ptr; + int stat_idx = 0; + int rty_cnt = 0; + + RTSX_DEBUGP("EXT SD/MMC CMD %d\n", cmd_idx); + + if (rsp_type == SD_RSP_TYPE_R1b) { + timeout = 3000; + } + +RTY_SEND_CMD: + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD0, 0xFF, 0x40 | cmd_idx); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD1, 0xFF, (u8)(arg >> 24)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD2, 0xFF, (u8)(arg >> 16)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD3, 0xFF, (u8)(arg >> 8)); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD4, 0xFF, (u8)arg); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, rsp_type); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, + 0x01, PINGPONG_BUFFER); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, + 0xFF, SD_TM_CMD_RSP | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + if (rsp_type == SD_RSP_TYPE_R2) { + for (reg_addr = PPBUF_BASE2; reg_addr < PPBUF_BASE2 + 16; reg_addr++) { + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr, 0, 0); + } + stat_idx = 17; + } else if (rsp_type != SD_RSP_TYPE_R0) { + for (reg_addr = REG_SD_CMD0; reg_addr <= REG_SD_CMD4; reg_addr++) { + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr, 0, 0); + } + stat_idx = 6; + } + rtsx_add_cmd(chip, READ_REG_CMD, REG_SD_CMD5, 0, 0); + + rtsx_add_cmd(chip, READ_REG_CMD, REG_SD_STAT1, 0, 0); + + retval = rtsx_send_cmd(chip, SD_CARD, timeout); + if (retval < 0) { + if (retval == -ETIMEDOUT) { + rtsx_clear_sd_error(chip); + + if (rsp_type & SD_WAIT_BUSY_END) { + retval = sd_check_data0_status(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, retval); + } + } else { + sd_set_err_code(chip, SD_TO_ERR); + } + } + TRACE_RET(chip, STATUS_FAIL); + } + + if (rsp_type == SD_RSP_TYPE_R0) { + return STATUS_SUCCESS; + } + + ptr = rtsx_get_cmd_data(chip) + 1; + + if ((ptr[0] & 0xC0) != 0) { + sd_set_err_code(chip, SD_STS_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + + if (!(rsp_type & SD_NO_CHECK_CRC7)) { + if (ptr[stat_idx] & SD_CRC7_ERR) { + if (cmd_idx == WRITE_MULTIPLE_BLOCK) { + sd_set_err_code(chip, SD_CRC_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + if (rty_cnt < SD_MAX_RETRY_COUNT) { + wait_timeout(20); + rty_cnt++; + goto RTY_SEND_CMD; + } else { + sd_set_err_code(chip, SD_CRC_ERR); + TRACE_RET(chip, STATUS_FAIL); + } + } + } + + if ((cmd_idx == SELECT_CARD) || (cmd_idx == APP_CMD) || + (cmd_idx == SEND_STATUS) || (cmd_idx == STOP_TRANSMISSION)) { + if ((cmd_idx != STOP_TRANSMISSION) && (special_check == 0)) { + if (ptr[1] & 0x80) { + TRACE_RET(chip, STATUS_FAIL); + } + } +#ifdef SUPPORT_SD_LOCK + if (ptr[1] & 0x7D) +#else + if (ptr[1] & 0x7F) +#endif + { + TRACE_RET(chip, STATUS_FAIL); + } + if (ptr[2] & 0xF8) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (cmd_idx == SELECT_CARD) { + if (rsp_type == SD_RSP_TYPE_R2) { + if ((ptr[3] & 0x1E) != 0x04) { + TRACE_RET(chip, STATUS_FAIL); + } + } else if (rsp_type == SD_RSP_TYPE_R2) { + if ((ptr[3] & 0x1E) != 0x03) { + TRACE_RET(chip, STATUS_FAIL); + } + } + } + } + + if (rsp && rsp_len) { + memcpy(rsp, ptr, rsp_len); + } + + return STATUS_SUCCESS; +} + +int ext_sd_get_rsp(struct rtsx_chip *chip, int len, u8 *rsp, u8 rsp_type) +{ + int retval, rsp_len; + u16 reg_addr; + + if (rsp_type == SD_RSP_TYPE_R0) { + return STATUS_SUCCESS; + } + + rtsx_init_cmd(chip); + + if (rsp_type == SD_RSP_TYPE_R2) { + for (reg_addr = PPBUF_BASE2; reg_addr < PPBUF_BASE2 + 16; reg_addr++) { + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr, 0xFF, 0); + } + rsp_len = 17; + } else if (rsp_type != SD_RSP_TYPE_R0) { + for (reg_addr = REG_SD_CMD0; reg_addr <= REG_SD_CMD4; reg_addr++) { + rtsx_add_cmd(chip, READ_REG_CMD, reg_addr, 0xFF, 0); + } + rsp_len = 6; + } + rtsx_add_cmd(chip, READ_REG_CMD, REG_SD_CMD5, 0xFF, 0); + + retval = rtsx_send_cmd(chip, SD_CARD, 100); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (rsp) { + int min_len = (rsp_len < len) ? rsp_len : len; + + memcpy(rsp, rtsx_get_cmd_data(chip), min_len); + + RTSX_DEBUGP("min_len = %d\n", min_len); + RTSX_DEBUGP("Response in cmd buf: 0x%x 0x%x 0x%x 0x%x\n", + rsp[0], rsp[1], rsp[2], rsp[3]); + } + + return STATUS_SUCCESS; +} + +int sd_pass_thru_mode(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + unsigned int lun = SCSI_LUN(srb); + int len; + u8 buf[18] = { + 0x00, + 0x00, + 0x00, + 0x0E, + 0x00, + 0x00, + 0x00, + 0x00, + 0x53, + 0x44, + 0x20, + 0x43, + 0x61, + 0x72, + 0x64, + 0x00, + 0x00, + 0x00, + }; + + sd_card->pre_cmd_err = 0; + + if (!(CHK_BIT(chip->lun_mc, lun))) { + SET_BIT(chip->lun_mc, lun); + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if ((0x53 != srb->cmnd[2]) || (0x44 != srb->cmnd[3]) || (0x20 != srb->cmnd[4]) || + (0x43 != srb->cmnd[5]) || (0x61 != srb->cmnd[6]) || + (0x72 != srb->cmnd[7]) || (0x64 != srb->cmnd[8])) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + switch (srb->cmnd[1] & 0x0F) { + case 0: + sd_card->sd_pass_thru_en = 0; + break; + + case 1: + sd_card->sd_pass_thru_en = 1; + break; + + default: + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + buf[5] = (1 == CHK_SD(sd_card)) ? 0x01 : 0x02; + if (chip->card_wp & SD_CARD) { + buf[5] |= 0x80; + } + + buf[6] = (u8)(sd_card->sd_addr >> 16); + buf[7] = (u8)(sd_card->sd_addr >> 24); + + buf[15] = chip->max_lun; + + len = min(18, (int)scsi_bufflen(srb)); + rtsx_stor_set_xfer_buf(buf, len, srb); + + return TRANSPORT_GOOD; +} + +static inline int get_rsp_type(struct scsi_cmnd *srb, u8 *rsp_type, int *rsp_len) +{ + if (!rsp_type || !rsp_len) { + return STATUS_FAIL; + } + + switch (srb->cmnd[10]) { + case 0x03: + *rsp_type = SD_RSP_TYPE_R0; + *rsp_len = 0; + break; + + case 0x04: + *rsp_type = SD_RSP_TYPE_R1; + *rsp_len = 6; + break; + + case 0x05: + *rsp_type = SD_RSP_TYPE_R1b; + *rsp_len = 6; + break; + + case 0x06: + *rsp_type = SD_RSP_TYPE_R2; + *rsp_len = 17; + break; + + case 0x07: + *rsp_type = SD_RSP_TYPE_R3; + *rsp_len = 6; + break; + + default: + return STATUS_FAIL; + } + + return STATUS_SUCCESS; +} + +int sd_execute_no_data(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + unsigned int lun = SCSI_LUN(srb); + int retval, rsp_len; + u8 cmd_idx, rsp_type; + u8 standby = 0, acmd = 0; + u32 arg; + + if (!sd_card->sd_pass_thru_en) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + retval = sd_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (sd_card->pre_cmd_err) { + sd_card->pre_cmd_err = 0; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + cmd_idx = srb->cmnd[2] & 0x3F; + if (srb->cmnd[1] & 0x02) { + standby = 1; + } + if (srb->cmnd[1] & 0x01) { + acmd = 1; + } + + arg = ((u32)srb->cmnd[3] << 24) | ((u32)srb->cmnd[4] << 16) | + ((u32)srb->cmnd[5] << 8) | srb->cmnd[6]; + + retval = get_rsp_type(srb, &rsp_type, &rsp_len); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + sd_card->last_rsp_type = rsp_type; + + retval = sd_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + +#ifdef SUPPORT_SD_LOCK + if ((sd_card->sd_lock_status & SD_LOCK_1BIT_MODE) == 0) { + if (CHK_MMC_8BIT(sd_card)) { + retval = rtsx_write_register(chip, REG_SD_CFG1, 0x03, SD_BUS_WIDTH_8); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else if (CHK_SD(sd_card) || CHK_MMC_4BIT(sd_card)) { + retval = rtsx_write_register(chip, REG_SD_CFG1, 0x03, SD_BUS_WIDTH_4); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + } +#else + retval = rtsx_write_register(chip, REG_SD_CFG1, 0x03, SD_BUS_WIDTH_4); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } +#endif + + if (standby) { + retval = sd_select_card(chip, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Cmd_Failed); + } + } + + if (acmd) { + retval = ext_sd_send_cmd_get_rsp(chip, APP_CMD, sd_card->sd_addr, + SD_RSP_TYPE_R1, NULL, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Cmd_Failed); + } + } + + retval = ext_sd_send_cmd_get_rsp(chip, cmd_idx, arg, rsp_type, + sd_card->rsp, rsp_len, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Cmd_Failed); + } + + if (standby) { + retval = sd_select_card(chip, 1); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Cmd_Failed); + } + } + +#ifdef SUPPORT_SD_LOCK + retval = sd_update_lock_status(chip); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Cmd_Failed); + } +#endif + + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; + +SD_Execute_Cmd_Failed: + sd_card->pre_cmd_err = 1; + set_sense_type(chip, lun, SENSE_TYPE_NO_SENSE); + release_sd_card(chip); + do_reset_sd_card(chip); + if (!(chip->card_ready & SD_CARD)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + } + + TRACE_RET(chip, TRANSPORT_FAILED); +} + +int sd_execute_read_data(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + unsigned int lun = SCSI_LUN(srb); + int retval, rsp_len, i; + int cmd13_checkbit = 0, read_err = 0; + u8 cmd_idx, rsp_type, bus_width; + u8 send_cmd12 = 0, standby = 0, acmd = 0; + u32 data_len; + + if (!sd_card->sd_pass_thru_en) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (sd_card->pre_cmd_err) { + sd_card->pre_cmd_err = 0; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + retval = sd_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + + cmd_idx = srb->cmnd[2] & 0x3F; + if (srb->cmnd[1] & 0x04) { + send_cmd12 = 1; + } + if (srb->cmnd[1] & 0x02) { + standby = 1; + } + if (srb->cmnd[1] & 0x01) { + acmd = 1; + } + + data_len = ((u32)srb->cmnd[7] << 16) | ((u32)srb->cmnd[8] << 8) | srb->cmnd[9]; + + retval = get_rsp_type(srb, &rsp_type, &rsp_len); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + sd_card->last_rsp_type = rsp_type; + + retval = sd_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + +#ifdef SUPPORT_SD_LOCK + if ((sd_card->sd_lock_status & SD_LOCK_1BIT_MODE) == 0) { + if (CHK_MMC_8BIT(sd_card)) { + bus_width = SD_BUS_WIDTH_8; + } else if (CHK_SD(sd_card) || CHK_MMC_4BIT(sd_card)) { + bus_width = SD_BUS_WIDTH_4; + } else { + bus_width = SD_BUS_WIDTH_1; + } + } else { + bus_width = SD_BUS_WIDTH_4; + } + RTSX_DEBUGP("bus_width = %d\n", bus_width); +#else + bus_width = SD_BUS_WIDTH_4; +#endif + + if (data_len < 512) { + retval = ext_sd_send_cmd_get_rsp(chip, SET_BLOCKLEN, data_len, + SD_RSP_TYPE_R1, NULL, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + } + + if (standby) { + retval = sd_select_card(chip, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + } + + if (acmd) { + retval = ext_sd_send_cmd_get_rsp(chip, APP_CMD, sd_card->sd_addr, + SD_RSP_TYPE_R1, NULL, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + } + + if (data_len <= 512) { + int min_len; + u8 *buf; + u16 byte_cnt, blk_cnt; + u8 cmd[5]; + + byte_cnt = ((u16)(srb->cmnd[8] & 0x03) << 8) | srb->cmnd[9]; + blk_cnt = 1; + + cmd[0] = 0x40 | cmd_idx; + cmd[1] = srb->cmnd[3]; + cmd[2] = srb->cmnd[4]; + cmd[3] = srb->cmnd[5]; + cmd[4] = srb->cmnd[6]; + + buf = (u8 *)kmalloc(data_len, GFP_KERNEL); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + retval = sd_read_data(chip, SD_TM_NORMAL_READ, cmd, 5, byte_cnt, + blk_cnt, bus_width, buf, data_len, 2000); + if (retval != STATUS_SUCCESS) { + read_err = 1; + kfree(buf); + rtsx_clear_sd_error(chip); + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + + min_len = min(data_len, scsi_bufflen(srb)); + rtsx_stor_set_xfer_buf(buf, min_len, srb); + + kfree(buf); + } else if (!(data_len & 0x1FF)) { + rtsx_init_cmd(chip); + + trans_dma_enable(DMA_FROM_DEVICE, chip, data_len, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_H, 0xFF, 0x02); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_L, 0xFF, 0x00); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_H, + 0xFF, (srb->cmnd[7] & 0xFE) >> 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_L, + 0xFF, (u8)((data_len & 0x0001FE00) >> 9)); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD0, 0xFF, 0x40 | cmd_idx); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD1, 0xFF, srb->cmnd[3]); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD2, 0xFF, srb->cmnd[4]); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD3, 0xFF, srb->cmnd[5]); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CMD4, 0xFF, srb->cmnd[6]); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG1, 0x03, bus_width); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_CFG2, 0xFF, rsp_type); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, + 0xFF, SD_TM_AUTO_READ_2 | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data(chip, SD_CARD, scsi_sglist(srb), scsi_bufflen(srb), + scsi_sg_count(srb), DMA_FROM_DEVICE, 10000); + if (retval < 0) { + read_err = 1; + rtsx_clear_sd_error(chip); + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + + } else { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + + retval = ext_sd_get_rsp(chip, rsp_len, sd_card->rsp, rsp_type); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + + if (standby) { + retval = sd_select_card(chip, 1); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + } + + if (send_cmd12) { + retval = ext_sd_send_cmd_get_rsp(chip, STOP_TRANSMISSION, + 0, SD_RSP_TYPE_R1b, NULL, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + } + + if (data_len < 512) { + retval = ext_sd_send_cmd_get_rsp(chip, SET_BLOCKLEN, 0x200, + SD_RSP_TYPE_R1, NULL, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + + retval = rtsx_write_register(chip, SD_BYTE_CNT_H, 0xFF, 0x02); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + retval = rtsx_write_register(chip, SD_BYTE_CNT_L, 0xFF, 0x00); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + } + + if ((srb->cmnd[1] & 0x02) || (srb->cmnd[1] & 0x04)) { + cmd13_checkbit = 1; + } + + for (i = 0; i < 3; i++) { + retval = ext_sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, + SD_RSP_TYPE_R1, NULL, 0, cmd13_checkbit); + if (retval == STATUS_SUCCESS) { + break; + } + } + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Read_Cmd_Failed); + } + + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; + +SD_Execute_Read_Cmd_Failed: + sd_card->pre_cmd_err = 1; + set_sense_type(chip, lun, SENSE_TYPE_NO_SENSE); + if (read_err) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR); + } + release_sd_card(chip); + do_reset_sd_card(chip); + if (!(chip->card_ready & SD_CARD)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + } + + TRACE_RET(chip, TRANSPORT_FAILED); +} + +int sd_execute_write_data(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + unsigned int lun = SCSI_LUN(srb); + int retval, rsp_len, i; + int cmd13_checkbit = 0, write_err = 0; + u8 cmd_idx, rsp_type; + u8 send_cmd12 = 0, standby = 0, acmd = 0; + u32 data_len, arg; +#ifdef SUPPORT_SD_LOCK + int lock_cmd_fail = 0; + u8 sd_lock_state = 0; + u8 lock_cmd_type = 0; +#endif + + if (!sd_card->sd_pass_thru_en) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (sd_card->pre_cmd_err) { + sd_card->pre_cmd_err = 0; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + retval = sd_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + + cmd_idx = srb->cmnd[2] & 0x3F; + if (srb->cmnd[1] & 0x04) { + send_cmd12 = 1; + } + if (srb->cmnd[1] & 0x02) { + standby = 1; + } + if (srb->cmnd[1] & 0x01) { + acmd = 1; + } + + data_len = ((u32)srb->cmnd[7] << 16) | ((u32)srb->cmnd[8] << 8) | srb->cmnd[9]; + arg = ((u32)srb->cmnd[3] << 24) | ((u32)srb->cmnd[4] << 16) | + ((u32)srb->cmnd[5] << 8) | srb->cmnd[6]; + +#ifdef SUPPORT_SD_LOCK + if (cmd_idx == LOCK_UNLOCK) { + sd_lock_state = sd_card->sd_lock_status; + sd_lock_state &= SD_LOCKED; + } +#endif + + retval = get_rsp_type(srb, &rsp_type, &rsp_len); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + sd_card->last_rsp_type = rsp_type; + + retval = sd_switch_clock(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + +#ifdef SUPPORT_SD_LOCK + if ((sd_card->sd_lock_status & SD_LOCK_1BIT_MODE) == 0) { + if (CHK_MMC_8BIT(sd_card)) { + retval = rtsx_write_register(chip, REG_SD_CFG1, 0x03, SD_BUS_WIDTH_8); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } else if (CHK_SD(sd_card) || CHK_MMC_4BIT(sd_card)) { + retval = rtsx_write_register(chip, REG_SD_CFG1, 0x03, SD_BUS_WIDTH_4); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } + } + } +#else + retval = rtsx_write_register(chip, REG_SD_CFG1, 0x03, SD_BUS_WIDTH_4); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, TRANSPORT_FAILED); + } +#endif + + if (data_len < 512) { + retval = ext_sd_send_cmd_get_rsp(chip, SET_BLOCKLEN, data_len, + SD_RSP_TYPE_R1, NULL, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + } + + if (standby) { + retval = sd_select_card(chip, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + } + + if (acmd) { + retval = ext_sd_send_cmd_get_rsp(chip, APP_CMD, sd_card->sd_addr, + SD_RSP_TYPE_R1, NULL, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + } + + retval = ext_sd_send_cmd_get_rsp(chip, cmd_idx, arg, rsp_type, + sd_card->rsp, rsp_len, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + + if (data_len <= 512) { + u16 i; + u8 *buf; + + buf = (u8 *)kmalloc(data_len, GFP_KERNEL); + if (buf == NULL) { + TRACE_RET(chip, TRANSPORT_ERROR); + } + + rtsx_stor_get_xfer_buf(buf, data_len, srb); + +#ifdef SUPPORT_SD_LOCK + if (cmd_idx == LOCK_UNLOCK) { + lock_cmd_type = buf[0] & 0x0F; + } +#endif + + if (data_len > 256) { + rtsx_init_cmd(chip); + for (i = 0; i < 256; i++) { + rtsx_add_cmd(chip, WRITE_REG_CMD, + PPBUF_BASE2 + i, 0xFF, buf[i]); + } + retval = rtsx_send_cmd(chip, 0, 250); + if (retval != STATUS_SUCCESS) { + kfree(buf); + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + + rtsx_init_cmd(chip); + for (i = 256; i < data_len; i++) { + rtsx_add_cmd(chip, WRITE_REG_CMD, + PPBUF_BASE2 + i, 0xFF, buf[i]); + } + retval = rtsx_send_cmd(chip, 0, 250); + if (retval != STATUS_SUCCESS) { + kfree(buf); + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + } else { + rtsx_init_cmd(chip); + for (i = 0; i < data_len; i++) { + rtsx_add_cmd(chip, WRITE_REG_CMD, + PPBUF_BASE2 + i, 0xFF, buf[i]); + } + retval = rtsx_send_cmd(chip, 0, 250); + if (retval != STATUS_SUCCESS) { + kfree(buf); + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + } + + kfree(buf); + + rtsx_init_cmd(chip); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_H, 0xFF, srb->cmnd[8] & 0x03); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_L, 0xFF, srb->cmnd[9]); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_H, 0xFF, 0x00); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_L, 0xFF, 0x01); + rtsx_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01, PINGPONG_BUFFER); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, + SD_TM_AUTO_WRITE_3 | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + retval = rtsx_send_cmd(chip, SD_CARD, 250); + } else if (!(data_len & 0x1FF)) { + rtsx_init_cmd(chip); + + trans_dma_enable(DMA_TO_DEVICE, chip, data_len, DMA_512); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_H, 0xFF, 0x02); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BYTE_CNT_L, 0xFF, 0x00); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_H, + 0xFF, (srb->cmnd[7] & 0xFE) >> 1); + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_BLOCK_CNT_L, + 0xFF, (u8)((data_len & 0x0001FE00) >> 9)); + + rtsx_add_cmd(chip, WRITE_REG_CMD, REG_SD_TRANSFER, 0xFF, SD_TM_AUTO_WRITE_3 | SD_TRANSFER_START); + rtsx_add_cmd(chip, CHECK_REG_CMD, REG_SD_TRANSFER, SD_TRANSFER_END, SD_TRANSFER_END); + + rtsx_send_cmd_no_wait(chip); + + retval = rtsx_transfer_data(chip, SD_CARD, scsi_sglist(srb), scsi_bufflen(srb), + scsi_sg_count(srb), DMA_TO_DEVICE, 10000); + + } else { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + + if (retval < 0) { + write_err = 1; + rtsx_clear_sd_error(chip); + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + +#ifdef SUPPORT_SD_LOCK + if (cmd_idx == LOCK_UNLOCK) { + if (lock_cmd_type == SD_ERASE) { + sd_card->sd_erase_status = SD_UNDER_ERASING; + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; + } + + rtsx_init_cmd(chip); + if (CHECK_PID(chip, 0x5209)) { + rtsx_add_cmd(chip, CHECK_REG_CMD, SD_BUS_STAT, SD_DAT0_STATUS, SD_DAT0_STATUS); + } else { + rtsx_add_cmd(chip, CHECK_REG_CMD, 0xFD30, 0x02, 0x02); + } + rtsx_send_cmd(chip, SD_CARD, 250); + + retval = sd_update_lock_status(chip); + if (retval != STATUS_SUCCESS) { + RTSX_DEBUGP("Lock command fail!\n"); + lock_cmd_fail = 1; + } + } +#endif /* SUPPORT_SD_LOCK */ + + if (standby) { + retval = sd_select_card(chip, 1); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + } + + if (send_cmd12) { + retval = ext_sd_send_cmd_get_rsp(chip, STOP_TRANSMISSION, + 0, SD_RSP_TYPE_R1b, NULL, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + } + + if (data_len < 512) { + retval = ext_sd_send_cmd_get_rsp(chip, SET_BLOCKLEN, 0x200, + SD_RSP_TYPE_R1, NULL, 0, 0); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + + retval = rtsx_write_register(chip, SD_BYTE_CNT_H, 0xFF, 0x02); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + rtsx_write_register(chip, SD_BYTE_CNT_L, 0xFF, 0x00); + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + } + + if ((srb->cmnd[1] & 0x02) || (srb->cmnd[1] & 0x04)) { + cmd13_checkbit = 1; + } + + for (i = 0; i < 3; i++) { + retval = ext_sd_send_cmd_get_rsp(chip, SEND_STATUS, sd_card->sd_addr, + SD_RSP_TYPE_R1, NULL, 0, cmd13_checkbit); + if (retval == STATUS_SUCCESS) { + break; + } + } + if (retval != STATUS_SUCCESS) { + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + +#ifdef SUPPORT_SD_LOCK + if (cmd_idx == LOCK_UNLOCK) { + if (!lock_cmd_fail) { + RTSX_DEBUGP("lock_cmd_type = 0x%x\n", lock_cmd_type); + if (lock_cmd_type & SD_CLR_PWD) { + sd_card->sd_lock_status &= ~SD_PWD_EXIST; + } + if (lock_cmd_type & SD_SET_PWD) { + sd_card->sd_lock_status |= SD_PWD_EXIST; + } + } + + RTSX_DEBUGP("sd_lock_state = 0x%x, sd_card->sd_lock_status = 0x%x\n", + sd_lock_state, sd_card->sd_lock_status); + if (sd_lock_state ^ (sd_card->sd_lock_status & SD_LOCKED)) { + sd_card->sd_lock_notify = 1; + if (sd_lock_state) { + if (sd_card->sd_lock_status & SD_LOCK_1BIT_MODE) { + sd_card->sd_lock_status |= (SD_UNLOCK_POW_ON | SD_SDR_RST); + if (CHK_SD(sd_card)) { + retval = reset_sd(chip); + if (retval != STATUS_SUCCESS) { + sd_card->sd_lock_status &= ~(SD_UNLOCK_POW_ON | SD_SDR_RST); + TRACE_GOTO(chip, SD_Execute_Write_Cmd_Failed); + } + } + + sd_card->sd_lock_status &= ~(SD_UNLOCK_POW_ON | SD_SDR_RST); + } + } + } + } + + if (lock_cmd_fail) { + scsi_set_resid(srb, 0); + set_sense_type(chip, lun, SENSE_TYPE_NO_SENSE); + TRACE_RET(chip, TRANSPORT_FAILED); + } +#endif /* SUPPORT_SD_LOCK */ + + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; + +SD_Execute_Write_Cmd_Failed: + sd_card->pre_cmd_err = 1; + set_sense_type(chip, lun, SENSE_TYPE_NO_SENSE); + if (write_err) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR); + } + release_sd_card(chip); + do_reset_sd_card(chip); + if (!(chip->card_ready & SD_CARD)) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + } + + TRACE_RET(chip, TRANSPORT_FAILED); +} + +int sd_get_cmd_rsp(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + unsigned int lun = SCSI_LUN(srb); + int count; + u16 data_len; + + if (!sd_card->sd_pass_thru_en) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (sd_card->pre_cmd_err) { + sd_card->pre_cmd_err = 0; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + data_len = ((u16)srb->cmnd[7] << 8) | srb->cmnd[8]; + + if (sd_card->last_rsp_type == SD_RSP_TYPE_R0) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } else if (sd_card->last_rsp_type == SD_RSP_TYPE_R2) { + count = (data_len < 17) ? data_len : 17; + } else { + count = (data_len < 6) ? data_len : 6; + } + rtsx_stor_set_xfer_buf(sd_card->rsp, count, srb); + + RTSX_DEBUGP("Response length: %d\n", data_len); + RTSX_DEBUGP("Response: 0x%x 0x%x 0x%x 0x%x\n", + sd_card->rsp[0], sd_card->rsp[1], sd_card->rsp[2], sd_card->rsp[3]); + + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; +} + +int sd_hw_rst(struct scsi_cmnd *srb, struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + unsigned int lun = SCSI_LUN(srb); + int retval; + + if (!sd_card->sd_pass_thru_en) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if (sd_card->pre_cmd_err) { + sd_card->pre_cmd_err = 0; + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + if ((0x53 != srb->cmnd[2]) || (0x44 != srb->cmnd[3]) || (0x20 != srb->cmnd[4]) || + (0x43 != srb->cmnd[5]) || (0x61 != srb->cmnd[6]) || + (0x72 != srb->cmnd[7]) || (0x64 != srb->cmnd[8])) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + switch (srb->cmnd[1] & 0x0F) { + case 0: +#ifdef SUPPORT_SD_LOCK + if (0x64 == srb->cmnd[9]) { + sd_card->sd_lock_status |= SD_SDR_RST; + } +#endif + retval = reset_sd_card(chip); + if (retval != STATUS_SUCCESS) { +#ifdef SUPPORT_SD_LOCK + sd_card->sd_lock_status &= ~SD_SDR_RST; +#endif + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + sd_card->pre_cmd_err = 1; + TRACE_RET(chip, TRANSPORT_FAILED); + } +#ifdef SUPPORT_SD_LOCK + sd_card->sd_lock_status &= ~SD_SDR_RST; +#endif + break; + + case 1: + retval = soft_reset_sd_card(chip); + if (retval != STATUS_SUCCESS) { + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT); + sd_card->pre_cmd_err = 1; + TRACE_RET(chip, TRANSPORT_FAILED); + } + break; + + default: + set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD); + TRACE_RET(chip, TRANSPORT_FAILED); + } + + scsi_set_resid(srb, 0); + return TRANSPORT_GOOD; +} +#endif + +void sd_cleanup_work(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + + if (sd_card->seq_mode) { + RTSX_DEBUGP("SD: stop transmission\n"); + sd_stop_seq_mode(chip); + sd_card->cleanup_counter = 0; + } +} + +int sd_power_off_card3v3(struct rtsx_chip *chip) +{ + int retval; + + retval = disable_card_clock(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + RTSX_WRITE_REG(chip, CARD_OE, SD_OUTPUT_EN, 0); + + if (!chip->ft2_fast_mode) { + retval = card_power_off(chip, SD_CARD); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + wait_timeout(50); + } + + if (chip->asic_code) { + retval = sd_pull_ctl_disable(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + } else { + RTSX_WRITE_REG(chip, FPGA_PULL_CTL, + FPGA_SD_PULL_CTL_BIT | 0x20, FPGA_SD_PULL_CTL_BIT); + } + + return STATUS_SUCCESS; +} + +int release_sd_card(struct rtsx_chip *chip) +{ + struct sd_info *sd_card = &(chip->sd_card); + int retval; + + RTSX_DEBUGP("release_sd_card\n"); + + chip->card_ready &= ~SD_CARD; + chip->card_fail &= ~SD_CARD; + chip->card_wp &= ~SD_CARD; + + chip->sd_io = 0; + chip->sd_int = 0; + +#ifdef SUPPORT_SD_LOCK + sd_card->sd_lock_status = 0; + sd_card->sd_erase_status = 0; +#endif + + memset(sd_card->raw_csd, 0, 16); + memset(sd_card->raw_scr, 0, 8); + + retval = sd_power_off_card3v3(chip); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHECK_PID(chip, 0x5209)) { + retval = sd_change_bank_voltage(chip, SD_IO_3V3); + if (retval != STATUS_SUCCESS) { + TRACE_RET(chip, STATUS_FAIL); + } + + if (CHK_SD30_SPEED(sd_card)) { + RTSX_WRITE_REG(chip, SD30_DRIVE_SEL, 0x07, chip->sd30_drive_sel_3v3); + } + + RTSX_WRITE_REG(chip, OCPPARA2, SD_OCP_THD_MASK, chip->sd_400mA_ocp_thd); + } + + return STATUS_SUCCESS; +} --- linux-2.6.38.orig/drivers/staging/iio/imu/adis16400.h +++ linux-2.6.38/drivers/staging/iio/imu/adis16400.h @@ -17,7 +17,8 @@ #ifndef SPI_ADIS16400_H_ #define SPI_ADIS16400_H_ -#define ADIS16400_STARTUP_DELAY 220 /* ms */ +#define ADIS16400_STARTUP_DELAY 290 /* ms */ +#define ADIS16400_MTEST_DELAY 90 /* ms */ #define ADIS16400_READ_REG(a) a #define ADIS16400_WRITE_REG(a) ((a) | 0x80) --- linux-2.6.38.orig/drivers/staging/iio/imu/adis16400_ring.c +++ linux-2.6.38/drivers/staging/iio/imu/adis16400_ring.c @@ -122,12 +122,10 @@ .tx_buf = st->tx, .bits_per_word = 8, .len = 2, - .cs_change = 0, }, { .rx_buf = rx, .bits_per_word = 8, .len = 24, - .cs_change = 1, }, }; @@ -162,9 +160,10 @@ work_trigger_to_ring); struct iio_ring_buffer *ring = st->indio_dev->ring; - int i = 0; + int i = 0, j; s16 *data; size_t datasize = ring->access.get_bytes_per_datum(ring); + unsigned long mask = ring->scan_mask; data = kmalloc(datasize , GFP_KERNEL); if (data == NULL) { @@ -174,9 +173,12 @@ if (ring->scan_count) if (adis16400_spi_read_burst(&st->indio_dev->dev, st->rx) >= 0) - for (; i < ring->scan_count; i++) + for (; i < ring->scan_count; i++) { + j = __ffs(mask); + mask &= ~(1 << j); data[i] = be16_to_cpup( - (__be16 *)&(st->rx[i*2])); + (__be16 *)&(st->rx[j*2])); + } /* Guaranteed to be aligned with 8 byte boundary */ if (ring->scan_timestamp) --- linux-2.6.38.orig/drivers/staging/iio/imu/adis16400_core.c +++ linux-2.6.38/drivers/staging/iio/imu/adis16400_core.c @@ -93,7 +93,6 @@ .tx_buf = st->tx + 2, .bits_per_word = 8, .len = 2, - .cs_change = 1, }, }; @@ -137,7 +136,6 @@ .rx_buf = st->rx, .bits_per_word = 8, .len = 2, - .cs_change = 1, }, }; @@ -375,7 +373,7 @@ dev_err(dev, "problem starting self test"); goto err_ret; } - + msleep(ADIS16400_MTEST_DELAY); adis16400_check_status(dev); err_ret: @@ -497,12 +495,12 @@ _reg) static ADIS16400_DEV_ATTR_CALIBBIAS(GYRO_X, ADIS16400_XGYRO_OFF); -static ADIS16400_DEV_ATTR_CALIBBIAS(GYRO_Y, ADIS16400_XGYRO_OFF); -static ADIS16400_DEV_ATTR_CALIBBIAS(GYRO_Z, ADIS16400_XGYRO_OFF); +static ADIS16400_DEV_ATTR_CALIBBIAS(GYRO_Y, ADIS16400_YGYRO_OFF); +static ADIS16400_DEV_ATTR_CALIBBIAS(GYRO_Z, ADIS16400_ZGYRO_OFF); static ADIS16400_DEV_ATTR_CALIBBIAS(ACCEL_X, ADIS16400_XACCL_OFF); -static ADIS16400_DEV_ATTR_CALIBBIAS(ACCEL_Y, ADIS16400_XACCL_OFF); -static ADIS16400_DEV_ATTR_CALIBBIAS(ACCEL_Z, ADIS16400_XACCL_OFF); +static ADIS16400_DEV_ATTR_CALIBBIAS(ACCEL_Y, ADIS16400_YACCL_OFF); +static ADIS16400_DEV_ATTR_CALIBBIAS(ACCEL_Z, ADIS16400_ZACCL_OFF); static IIO_DEV_ATTR_IN_NAMED_RAW(0, supply, adis16400_read_14bit_signed, --- linux-2.6.38.orig/drivers/staging/rtl8712/rtl871x_ioctl_set.c +++ linux-2.6.38/drivers/staging/rtl8712/rtl871x_ioctl_set.c @@ -68,7 +68,10 @@ pmlmepriv->fw_state |= _FW_UNDER_LINKING; pmlmepriv->pscanned = plist; pmlmepriv->to_join = true; - if (_queue_empty(queue) == true) { + + /* adhoc mode will start with an empty queue, but skip checking */ + if (!check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) && + _queue_empty(queue)) { if (pmlmepriv->fw_state & _FW_UNDER_LINKING) pmlmepriv->fw_state ^= _FW_UNDER_LINKING; /* when set_ssid/set_bssid for do_join(), but scanning queue --- linux-2.6.38.orig/drivers/staging/tidspbridge/rmgr/proc.c +++ linux-2.6.38/drivers/staging/tidspbridge/rmgr/proc.c @@ -781,12 +781,14 @@ (u32)pmpu_addr, ul_size, dir); + mutex_lock(&proc_lock); + /* find requested memory are in cached mapping information */ map_obj = find_containing_mapping(pr_ctxt, (u32) pmpu_addr, ul_size); if (!map_obj) { pr_err("%s: find_containing_mapping failed\n", __func__); status = -EFAULT; - goto err_out; + goto no_map; } if (memory_give_ownership(map_obj, (u32) pmpu_addr, ul_size, dir)) { @@ -795,6 +797,8 @@ status = -EFAULT; } +no_map: + mutex_unlock(&proc_lock); err_out: return status; @@ -819,21 +823,24 @@ (u32)pmpu_addr, ul_size, dir); + mutex_lock(&proc_lock); + /* find requested memory are in cached mapping information */ map_obj = find_containing_mapping(pr_ctxt, (u32) pmpu_addr, ul_size); if (!map_obj) { pr_err("%s: find_containing_mapping failed\n", __func__); status = -EFAULT; - goto err_out; + goto no_map; } if (memory_regain_ownership(map_obj, (u32) pmpu_addr, ul_size, dir)) { pr_err("%s: InValid address parameters %p %x\n", __func__, pmpu_addr, ul_size); status = -EFAULT; - goto err_out; } +no_map: + mutex_unlock(&proc_lock); err_out: return status; } @@ -1726,9 +1733,8 @@ (p_proc_object->hbridge_context, va_align, size_align); } - mutex_unlock(&proc_lock); if (status) - goto func_end; + goto unmap_failed; /* * A successful unmap should be followed by removal of map_obj @@ -1737,6 +1743,9 @@ */ remove_mapping_information(pr_ctxt, (u32) map_addr, size_align); +unmap_failed: + mutex_unlock(&proc_lock); + func_end: dev_dbg(bridge, "%s: hprocessor: 0x%p map_addr: 0x%p status: 0x%x\n", __func__, hprocessor, map_addr, status); --- linux-2.6.38.orig/drivers/staging/hv/connection.c +++ linux-2.6.38/drivers/staging/hv/connection.c @@ -281,7 +281,7 @@ for (dword = 0; dword < maxdword; dword++) { if (recvInterruptPage[dword]) { for (bit = 0; bit < 32; bit++) { - if (test_and_clear_bit(bit, (unsigned long *)&recvInterruptPage[dword])) { + if (sync_test_and_clear_bit(bit, (unsigned long *)&recvInterruptPage[dword])) { relid = (dword << 5) + bit; DPRINT_DBG(VMBUS, "event detected for relid - %d", relid); @@ -320,7 +320,7 @@ int VmbusSetEvent(u32 childRelId) { /* Each u32 represents 32 channels */ - set_bit(childRelId & 31, + sync_set_bit(childRelId & 31, (unsigned long *)gVmbusConnection.SendInterruptPage + (childRelId >> 5)); --- linux-2.6.38.orig/drivers/staging/hv/channel.c +++ linux-2.6.38/drivers/staging/hv/channel.c @@ -76,14 +76,14 @@ if (channel->offermsg.monitor_allocated) { /* Each u32 represents 32 channels */ - set_bit(channel->offermsg.child_relid & 31, + sync_set_bit(channel->offermsg.child_relid & 31, (unsigned long *) gVmbusConnection.SendInterruptPage + (channel->offermsg.child_relid >> 5)); monitorpage = gVmbusConnection.MonitorPages; monitorpage++; /* Get the child to parent monitor page */ - set_bit(channel->monitor_bit, + sync_set_bit(channel->monitor_bit, (unsigned long *)&monitorpage->trigger_group [channel->monitor_grp].pending); @@ -99,7 +99,7 @@ if (Channel->offermsg.monitor_allocated) { /* Each u32 represents 32 channels */ - clear_bit(Channel->offermsg.child_relid & 31, + sync_clear_bit(Channel->offermsg.child_relid & 31, (unsigned long *)gVmbusConnection.SendInterruptPage + (Channel->offermsg.child_relid >> 5)); @@ -107,7 +107,7 @@ (struct hv_monitor_page *)gVmbusConnection.MonitorPages; monitorPage++; /* Get the child to parent monitor page */ - clear_bit(Channel->monitor_bit, + sync_clear_bit(Channel->monitor_bit, (unsigned long *)&monitorPage->trigger_group [Channel->monitor_grp].Pending); } --- linux-2.6.38.orig/drivers/staging/hv/vmbus_private.h +++ linux-2.6.38/drivers/staging/hv/vmbus_private.h @@ -31,6 +31,7 @@ #include "channel_mgmt.h" #include "ring_buffer.h" #include +#include /* --- linux-2.6.38.orig/drivers/staging/hv/vmbus_drv.c +++ linux-2.6.38/drivers/staging/hv/vmbus_drv.c @@ -291,7 +291,7 @@ event = (union hv_synic_event_flags *)page_addr + VMBUS_MESSAGE_SINT; /* Since we are a child, we only need to check bit 0 */ - if (test_and_clear_bit(0, (unsigned long *) &event->flags32[0])) { + if (sync_test_and_clear_bit(0, (unsigned long *) &event->flags32[0])) { DPRINT_DBG(VMBUS, "received event %d", event->flags32[0]); ret |= 0x2; } --- linux-2.6.38.orig/drivers/staging/hv/netvsc_drv.c +++ linux-2.6.38/drivers/staging/hv/netvsc_drv.c @@ -46,6 +46,7 @@ /* point back to our device context */ struct vm_device *device_ctx; unsigned long avail; + struct work_struct work; }; struct netvsc_driver_context { @@ -225,6 +226,7 @@ unsigned int status) { struct vm_device *device_ctx = to_vm_device(device_obj); + struct net_device_context *ndev_ctx; struct net_device *net = dev_get_drvdata(&device_ctx->device); if (!net) { @@ -237,6 +239,8 @@ netif_carrier_on(net); netif_wake_queue(net); netif_notify_peers(net); + ndev_ctx = netdev_priv(net); + schedule_work(&ndev_ctx->work); } else { netif_carrier_off(net); netif_stop_queue(net); @@ -336,6 +340,25 @@ .ndo_set_mac_address = eth_mac_addr, }; +/* + * Send GARP packet to network peers after migrations. + * After Quick Migration, the network is not immediately operational in the + * current context when receiving RNDIS_STATUS_MEDIA_CONNECT event. So, add + * another netif_notify_peers() into a scheduled work, otherwise GARP packet + * will not be sent after quick migration, and cause network disconnection. + */ +static void netvsc_send_garp(struct work_struct *w) +{ + struct net_device_context *ndev_ctx; + struct net_device *net; + + msleep(20); + ndev_ctx = container_of(w, struct net_device_context, work); + net = dev_get_drvdata(&ndev_ctx->device_ctx->device); + netif_notify_peers(net); +} + + static int netvsc_probe(struct device *device) { struct driver_context *driver_ctx = @@ -364,6 +387,7 @@ net_device_ctx->device_ctx = device_ctx; net_device_ctx->avail = ring_size; dev_set_drvdata(device, net); + INIT_WORK(&net_device_ctx->work, netvsc_send_garp); /* Notify the netvsc driver of the new device */ ret = net_drv_obj->base.OnDeviceAdd(device_obj, &device_info); --- linux-2.6.38.orig/drivers/staging/easycap/easycap.h +++ linux-2.6.38/drivers/staging/easycap/easycap.h @@ -79,6 +79,7 @@ #include #include #include +#include /*vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv*/ #if defined(EASYCAP_IS_VIDEODEV_CLIENT) --- linux-2.6.38.orig/drivers/staging/winbond/core.h +++ linux-2.6.38/drivers/staging/winbond/core.h @@ -3,6 +3,7 @@ #include #include +#include #include "wbhal.h" #include "mto.h" --- linux-2.6.38.orig/drivers/staging/usbip/vhci_rx.c +++ linux-2.6.38/drivers/staging/usbip/vhci_rx.c @@ -99,6 +99,9 @@ if (usbip_recv_iso(ud, urb) < 0) return; + /* restore the padding in iso packets */ + if (usbip_pad_iso(ud, urb) < 0) + return; if (usbip_dbg_flag_vhci_rx) usbip_dump_urb(urb); --- linux-2.6.38.orig/drivers/staging/usbip/vhci_hcd.c +++ linux-2.6.38/drivers/staging/usbip/vhci_hcd.c @@ -1135,7 +1135,7 @@ usbip_uerr("create hcd failed\n"); return -ENOMEM; } - + hcd->has_tt = 1; /* this is private data for vhci_hcd */ the_controller = hcd_to_vhci(hcd); --- linux-2.6.38.orig/drivers/staging/usbip/usbip_common.h +++ linux-2.6.38/drivers/staging/usbip/usbip_common.h @@ -393,6 +393,8 @@ int usbip_recv_xbuff(struct usbip_device *ud, struct urb *urb); /* some members of urb must be substituted before. */ int usbip_recv_iso(struct usbip_device *ud, struct urb *urb); +/* some members of urb must be substituted before. */ +int usbip_pad_iso(struct usbip_device *ud, struct urb *urb); void *usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen); --- linux-2.6.38.orig/drivers/staging/usbip/stub_tx.c +++ linux-2.6.38/drivers/staging/usbip/stub_tx.c @@ -169,7 +169,6 @@ struct stub_priv *priv, *tmp; struct msghdr msg; - struct kvec iov[3]; size_t txsize; size_t total_size = 0; @@ -179,28 +178,73 @@ struct urb *urb = priv->urb; struct usbip_header pdu_header; void *iso_buffer = NULL; + struct kvec *iov = NULL; + int iovnum = 0; txsize = 0; memset(&pdu_header, 0, sizeof(pdu_header)); memset(&msg, 0, sizeof(msg)); - memset(&iov, 0, sizeof(iov)); - usbip_dbg_stub_tx("setup txdata urb %p\n", urb); + if (usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS) + iovnum = 2 + urb->number_of_packets; + else + iovnum = 2; + + iov = kzalloc(iovnum * sizeof(struct kvec), GFP_KERNEL); + if (!iov) { + usbip_event_add(&sdev->ud, SDEV_EVENT_ERROR_MALLOC); + return -1; + } + + iovnum = 0; /* 1. setup usbip_header */ setup_ret_submit_pdu(&pdu_header, urb); + usbip_dbg_stub_tx("setup txdata seqnum: %d urb: %p\n", + pdu_header.base.seqnum, urb); + /*usbip_dump_header(pdu_header);*/ usbip_header_correct_endian(&pdu_header, 1); - iov[0].iov_base = &pdu_header; - iov[0].iov_len = sizeof(pdu_header); + iov[iovnum].iov_base = &pdu_header; + iov[iovnum].iov_len = sizeof(pdu_header); + iovnum++; txsize += sizeof(pdu_header); /* 2. setup transfer buffer */ - if (usb_pipein(urb->pipe) && urb->actual_length > 0) { - iov[1].iov_base = urb->transfer_buffer; - iov[1].iov_len = urb->actual_length; + if (usb_pipein(urb->pipe) && + usb_pipetype(urb->pipe) != PIPE_ISOCHRONOUS && + urb->actual_length > 0) { + iov[iovnum].iov_base = urb->transfer_buffer; + iov[iovnum].iov_len = urb->actual_length; + iovnum++; txsize += urb->actual_length; + } else if (usb_pipein(urb->pipe) && + usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS) { + /* + * For isochronous packets: actual length is the sum of + * the actual length of the individual, packets, but as + * the packet offsets are not changed there will be + * padding between the packets. To optimally use the + * bandwidth the padding is not transmitted. + */ + + int i; + for (i = 0; i < urb->number_of_packets; i++) { + iov[iovnum].iov_base = urb->transfer_buffer + urb->iso_frame_desc[i].offset; + iov[iovnum].iov_len = urb->iso_frame_desc[i].actual_length; + iovnum++; + txsize += urb->iso_frame_desc[i].actual_length; + } + + if (txsize != sizeof(pdu_header) + urb->actual_length) { + dev_err(&sdev->interface->dev, + "actual length of urb (%d) does not match iso packet sizes (%d)\n", + urb->actual_length, txsize-sizeof(pdu_header)); + kfree(iov); + usbip_event_add(&sdev->ud, SDEV_EVENT_ERROR_TCP); + return -1; + } } /* 3. setup iso_packet_descriptor */ @@ -211,32 +255,34 @@ if (!iso_buffer) { usbip_event_add(&sdev->ud, SDEV_EVENT_ERROR_MALLOC); + kfree(iov); return -1; } - iov[2].iov_base = iso_buffer; - iov[2].iov_len = len; + iov[iovnum].iov_base = iso_buffer; + iov[iovnum].iov_len = len; txsize += len; + iovnum++; } - ret = kernel_sendmsg(sdev->ud.tcp_socket, &msg, iov, - 3, txsize); + ret = kernel_sendmsg(sdev->ud.tcp_socket, &msg, + iov, iovnum, txsize); if (ret != txsize) { dev_err(&sdev->interface->dev, "sendmsg failed!, retval %d for %zd\n", ret, txsize); + kfree(iov); kfree(iso_buffer); usbip_event_add(&sdev->ud, SDEV_EVENT_ERROR_TCP); return -1; } + kfree(iov); kfree(iso_buffer); - usbip_dbg_stub_tx("send txdata\n"); total_size += txsize; } - spin_lock_irqsave(&sdev->priv_lock, flags); list_for_each_entry_safe(priv, tmp, &sdev->priv_free, list) { --- linux-2.6.38.orig/drivers/staging/usbip/stub_rx.c +++ linux-2.6.38/drivers/staging/usbip/stub_rx.c @@ -170,33 +170,23 @@ static int tweak_reset_device_cmd(struct urb *urb) { - struct usb_ctrlrequest *req; - __u16 value; - __u16 index; - int ret; - - req = (struct usb_ctrlrequest *) urb->setup_packet; - value = le16_to_cpu(req->wValue); - index = le16_to_cpu(req->wIndex); - - usbip_uinfo("reset_device (port %d) to %s\n", index, - dev_name(&urb->dev->dev)); - - /* all interfaces should be owned by usbip driver, so just reset it. */ - ret = usb_lock_device_for_reset(urb->dev, NULL); - if (ret < 0) { - dev_err(&urb->dev->dev, "lock for reset\n"); - return ret; - } + struct stub_priv *priv = (struct stub_priv *) urb->context; + struct stub_device *sdev = priv->sdev; - /* try to reset the device */ - ret = usb_reset_device(urb->dev); - if (ret < 0) - dev_err(&urb->dev->dev, "device reset\n"); + usbip_uinfo("reset_device %s\n", dev_name(&urb->dev->dev)); - usb_unlock_device(urb->dev); - - return ret; + /* + * usb_lock_device_for_reset caused a deadlock: it causes the driver + * to unbind. In the shutdown the rx thread is signalled to shut down + * but this thread is pending in the usb_lock_device_for_reset. + * + * Instead queue the reset. + * + * Unfortunatly an existing usbip connection will be dropped due to + * driver unbinding. + */ + usb_queue_reset_device(sdev->interface); + return 0; } /* --- linux-2.6.38.orig/drivers/staging/usbip/usbip_common.c +++ linux-2.6.38/drivers/staging/usbip/usbip_common.c @@ -334,10 +334,11 @@ usbip_udbg("CMD_UNLINK: seq %u\n", pdu->u.cmd_unlink.seqnum); break; case USBIP_RET_SUBMIT: - usbip_udbg("RET_SUBMIT: st %d al %u sf %d ec %d\n", + usbip_udbg("RET_SUBMIT: st %d al %u sf %d #p %d ec %d\n", pdu->u.ret_submit.status, pdu->u.ret_submit.actual_length, pdu->u.ret_submit.start_frame, + pdu->u.ret_submit.number_of_packets, pdu->u.ret_submit.error_count); case USBIP_RET_UNLINK: usbip_udbg("RET_UNLINK: status %d\n", pdu->u.ret_unlink.status); @@ -625,6 +626,7 @@ rpdu->status = urb->status; rpdu->actual_length = urb->actual_length; rpdu->start_frame = urb->start_frame; + rpdu->number_of_packets = urb->number_of_packets; rpdu->error_count = urb->error_count; } else { /* vhci_rx.c */ @@ -632,6 +634,7 @@ urb->status = rpdu->status; urb->actual_length = rpdu->actual_length; urb->start_frame = rpdu->start_frame; + urb->number_of_packets = rpdu->number_of_packets; urb->error_count = rpdu->error_count; } } @@ -700,11 +703,13 @@ cpu_to_be32s(&pdu->status); cpu_to_be32s(&pdu->actual_length); cpu_to_be32s(&pdu->start_frame); + cpu_to_be32s(&pdu->number_of_packets); cpu_to_be32s(&pdu->error_count); } else { be32_to_cpus(&pdu->status); be32_to_cpus(&pdu->actual_length); be32_to_cpus(&pdu->start_frame); + be32_to_cpus(&pdu->number_of_packets); be32_to_cpus(&pdu->error_count); } } @@ -830,6 +835,7 @@ int size = np * sizeof(*iso); int i; int ret; + int total_length = 0; if (!usb_pipeisoc(urb->pipe)) return 0; @@ -859,19 +865,75 @@ return -EPIPE; } + for (i = 0; i < np; i++) { iso = buff + (i * sizeof(*iso)); usbip_iso_pakcet_correct_endian(iso, 0); usbip_pack_iso(iso, &urb->iso_frame_desc[i], 0); + total_length += urb->iso_frame_desc[i].actual_length; } kfree(buff); + if (total_length != urb->actual_length) { + dev_err(&urb->dev->dev, + "total length of iso packets (%d) not equal to actual length of buffer (%d)\n", + total_length, urb->actual_length); + + if (ud->side == USBIP_STUB) + usbip_event_add(ud, SDEV_EVENT_ERROR_TCP); + else + usbip_event_add(ud, VDEV_EVENT_ERROR_TCP); + + return -EPIPE; + } + return ret; } EXPORT_SYMBOL_GPL(usbip_recv_iso); +/* + * This functions restores the padding which was removed for optimizing + * the bandwidth during transfer over tcp/ip + * + * buffer and iso packets need to be stored and be in propeper endian in urb + * before calling this function + */ +int usbip_pad_iso(struct usbip_device *ud, struct urb *urb) +{ + int np = urb->number_of_packets; + int i; + int ret; + int actualoffset = urb->actual_length; + + if (!usb_pipeisoc(urb->pipe)) + return 0; + + /* if no packets or length of data is 0, then nothing to unpack */ + if (np == 0 || urb->actual_length == 0) + return 0; + + /* + * if actual_length is transfer_buffer_length then no padding is + * present. + */ + if (urb->actual_length == urb->transfer_buffer_length) + return 0; + + /* + * loop over all packets from last to first (to prevent overwritting + * memory when padding) and move them into the proper place + */ + for (i = np-1; i > 0; i--) { + actualoffset -= urb->iso_frame_desc[i].actual_length; + memmove(urb->transfer_buffer + urb->iso_frame_desc[i].offset, + urb->transfer_buffer + actualoffset, + urb->iso_frame_desc[i].actual_length); + } + return ret; +} +EXPORT_SYMBOL_GPL(usbip_pad_iso); /* some members of urb must be substituted before. */ int usbip_recv_xbuff(struct usbip_device *ud, struct urb *urb) --- linux-2.6.38.orig/drivers/i2c/busses/i2c-parport.c +++ linux-2.6.38/drivers/i2c/busses/i2c-parport.c @@ -1,7 +1,7 @@ /* ------------------------------------------------------------------------ * * i2c-parport.c I2C bus over parallel port * * ------------------------------------------------------------------------ * - Copyright (C) 2003-2010 Jean Delvare + Copyright (C) 2003-2011 Jean Delvare Based on older i2c-philips-par.c driver Copyright (C) 1995-2000 Simon G. Vogl @@ -33,6 +33,8 @@ #include #include #include +#include +#include #include "i2c-parport.h" /* ----- Device list ------------------------------------------------------ */ @@ -43,10 +45,11 @@ struct i2c_algo_bit_data algo_data; struct i2c_smbus_alert_setup alert_data; struct i2c_client *ara; - struct i2c_par *next; + struct list_head node; }; -static struct i2c_par *adapter_list; +static LIST_HEAD(adapter_list); +static DEFINE_MUTEX(adapter_list_lock); /* ----- Low-level parallel port access ----------------------------------- */ @@ -228,8 +231,9 @@ } /* Add the new adapter to the list */ - adapter->next = adapter_list; - adapter_list = adapter; + mutex_lock(&adapter_list_lock); + list_add_tail(&adapter->node, &adapter_list); + mutex_unlock(&adapter_list_lock); return; ERROR1: @@ -241,11 +245,11 @@ static void i2c_parport_detach (struct parport *port) { - struct i2c_par *adapter, *prev; + struct i2c_par *adapter, *_n; /* Walk the list */ - for (prev = NULL, adapter = adapter_list; adapter; - prev = adapter, adapter = adapter->next) { + mutex_lock(&adapter_list_lock); + list_for_each_entry_safe(adapter, _n, &adapter_list, node) { if (adapter->pdev->port == port) { if (adapter->ara) { parport_disable_irq(port); @@ -259,14 +263,11 @@ parport_release(adapter->pdev); parport_unregister_device(adapter->pdev); - if (prev) - prev->next = adapter->next; - else - adapter_list = adapter->next; + list_del(&adapter->node); kfree(adapter); - return; } } + mutex_unlock(&adapter_list_lock); } static struct parport_driver i2c_parport_driver = { --- linux-2.6.38.orig/drivers/i2c/algos/i2c-algo-bit.c +++ linux-2.6.38/drivers/i2c/algos/i2c-algo-bit.c @@ -232,9 +232,17 @@ * Sanity check for the adapter hardware - check the reaction of * the bus lines only if it seems to be idle. */ -static int test_bus(struct i2c_algo_bit_data *adap, char *name) +static int test_bus(struct i2c_adapter *i2c_adap) { - int scl, sda; + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + const char *name = i2c_adap->name; + int scl, sda, ret; + + if (adap->pre_xfer) { + ret = adap->pre_xfer(i2c_adap); + if (ret < 0) + return -ENODEV; + } if (adap->getscl == NULL) pr_info("%s: Testing SDA only, SCL is not readable\n", name); @@ -297,11 +305,19 @@ "while pulling SCL high!\n", name); goto bailout; } + + if (adap->post_xfer) + adap->post_xfer(i2c_adap); + pr_info("%s: Test OK\n", name); return 0; bailout: sdahi(adap); sclhi(adap); + + if (adap->post_xfer) + adap->post_xfer(i2c_adap); + return -ENODEV; } @@ -607,7 +623,7 @@ int ret; if (bit_test) { - ret = test_bus(bit_adap, adap->name); + ret = test_bus(adap); if (ret < 0) return -ENODEV; } --- linux-2.6.38.orig/drivers/hwmon/sht15.c +++ linux-2.6.38/drivers/hwmon/sht15.c @@ -333,11 +333,11 @@ const int c1 = -4; const int c2 = 40500; /* x 10 ^ -6 */ - const int c3 = -2800; /* x10 ^ -9 */ + const int c3 = -28; /* x 10 ^ -7 */ RHlinear = c1*1000 + c2 * data->val_humid/1000 - + (data->val_humid * data->val_humid * c3)/1000000; + + (data->val_humid * data->val_humid * c3) / 10000; return (temp - 25000) * (10000 + 80 * data->val_humid) / 1000000 + RHlinear; } --- linux-2.6.38.orig/drivers/rapidio/switches/tsi57x.c +++ linux-2.6.38/drivers/rapidio/switches/tsi57x.c @@ -303,6 +303,12 @@ rdev->rswitch->em_init = tsi57x_em_init; rdev->rswitch->em_handle = tsi57x_em_handler; + if (do_enum) { + /* Ensure that default routing is disabled on startup */ + rio_write_config_32(rdev, RIO_STD_RTE_DEFAULT_PORT, + RIO_INVALID_ROUTE); + } + return 0; } --- linux-2.6.38.orig/drivers/rapidio/switches/idt_gen2.c +++ linux-2.6.38/drivers/rapidio/switches/idt_gen2.c @@ -95,6 +95,9 @@ else table++; + if (route_port == RIO_INVALID_ROUTE) + route_port = IDT_DEFAULT_ROUTE; + rio_mport_write_config_32(mport, destid, hopcount, LOCAL_RTE_CONF_DESTID_SEL, table); @@ -411,6 +414,12 @@ rdev->rswitch->em_handle = idtg2_em_handler; rdev->rswitch->sw_sysfs = idtg2_sysfs; + if (do_enum) { + /* Ensure that default routing is disabled on startup */ + rio_write_config_32(rdev, + RIO_STD_RTE_DEFAULT_PORT, IDT_NO_ROUTE); + } + return 0; } --- linux-2.6.38.orig/drivers/rapidio/switches/idtcps.c +++ linux-2.6.38/drivers/rapidio/switches/idtcps.c @@ -26,6 +26,9 @@ { u32 result; + if (route_port == RIO_INVALID_ROUTE) + route_port = CPS_DEFAULT_ROUTE; + if (table == RIO_GLOBAL_TABLE) { rio_mport_write_config_32(mport, destid, hopcount, RIO_STD_RTE_CONF_DESTID_SEL_CSR, route_destid); @@ -130,6 +133,9 @@ /* set TVAL = ~50us */ rio_write_config_32(rdev, rdev->phys_efptr + RIO_PORT_LINKTO_CTL_CSR, 0x8e << 8); + /* Ensure that default routing is disabled on startup */ + rio_write_config_32(rdev, + RIO_STD_RTE_DEFAULT_PORT, CPS_NO_ROUTE); } return 0; --- linux-2.6.38.orig/drivers/hid/hid-input.c +++ linux-2.6.38/drivers/hid/hid-input.c @@ -290,14 +290,6 @@ goto ignore; } - if (field->report_type == HID_FEATURE_REPORT) { - if (device->driver->feature_mapping) { - device->driver->feature_mapping(device, hidinput, field, - usage); - } - goto ignore; - } - if (device->driver->input_mapping) { int ret = device->driver->input_mapping(device, hidinput, field, usage, &bit, &max); @@ -835,6 +827,24 @@ hid_hw_close(hid); } +static void report_features(struct hid_device *hid) +{ + struct hid_driver *drv = hid->driver; + struct hid_report_enum *rep_enum; + struct hid_report *rep; + int i, j; + + if (!drv->feature_mapping) + return; + + rep_enum = &hid->report_enum[HID_FEATURE_REPORT]; + list_for_each_entry(rep, &rep_enum->report_list, list) + for (i = 0; i < rep->maxfield; i++) + for (j = 0; j < rep->field[i]->maxusage; j++) + drv->feature_mapping(hid, rep->field[i], + rep->field[i]->usage + j); +} + /* * Register the input device; print a message. * Configure the input layer interface @@ -863,7 +873,9 @@ return -1; } - for (k = HID_INPUT_REPORT; k <= HID_FEATURE_REPORT; k++) { + report_features(hid); + + for (k = HID_INPUT_REPORT; k <= HID_OUTPUT_REPORT; k++) { if (k == HID_OUTPUT_REPORT && hid->quirks & HID_QUIRK_SKIP_OUTPUT_REPORTS) continue; --- linux-2.6.38.orig/drivers/hid/hid-ntrig.c +++ linux-2.6.38/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,69 +25,33 @@ #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; - - /* Frames to ignore before acknowledging the start of activity */ - __s8 activate_slack; - - /* Minimum size contact to accept */ - __u16 min_width; - __u16 min_height; +#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 - /* Threshold to override activation slack */ - __u16 activation_width; - __u16 activation_height; +struct ntrig_contact { + int x, y, w, h; +}; - __u16 sensor_logical_width; - __u16 sensor_logical_height; - __u16 sensor_physical_width; - __u16 sensor_physical_height; +struct ntrig_data { + struct ntrig_contact row[MAX_SLOTS], col[MAX_SLOTS]; + int dmin, dmed, dmax; + int nrow, ncol; + int index, nindex; + int nhold; + bool touch; + bool hasmt; }; @@ -110,6 +75,57 @@ return sprintf(buf, "%u.%u.%u.%u.%u", a, b, c, d, e); } +static inline int ntrig_get_mode(struct hid_device *hdev) +{ + struct hid_report *report = hdev->report_enum[HID_FEATURE_REPORT]. + report_id_hash[0x0d]; + + if (!report) + return -EINVAL; + + usbhid_submit_report(hdev, report, USB_DIR_IN); + usbhid_wait_io(hdev); + return (int)report->field[0]->value[0]; +} + +static inline void ntrig_set_mode(struct hid_device *hdev, const int mode) +{ + struct hid_report *report; + __u8 mode_commands[4] = { 0xe, 0xf, 0x1b, 0x10 }; + + if (mode < 0 || mode > 3) + return; + + report = hdev->report_enum[HID_FEATURE_REPORT]. + report_id_hash[mode_commands[mode]]; + + if (!report) + return; + + usbhid_submit_report(hdev, report, USB_DIR_IN); +} + +static void ntrig_set_report(struct hid_device *hdev) +{ + struct hid_report *report; + + /* This is needed for devices with more recent firmware versions */ + report = hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0x0a]; + if (report) { + /* Let the device settle to ensure the wakeup message gets + * through */ + usbhid_wait_io(hdev); + usbhid_submit_report(hdev, report, USB_DIR_IN); + + /* + * Sanity check: if the current mode is invalid reset it to + * something reasonable. + */ + if (ntrig_get_mode(hdev) >= 4) + ntrig_set_mode(hdev, 3); + } +} + static void ntrig_report_version(struct hid_device *hdev) { int ret; @@ -138,286 +154,6 @@ kfree(data); } -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) -{ - 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; -} - -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); - - return sprintf(buf, "%d\n", -nd->deactivate_slack); -} - -static ssize_t set_deactivate_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; - - /* - * 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; - - nd->deactivate_slack = -val; - - return count; -} - -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 @@ -426,9 +162,13 @@ static int ntrig_input_mapping(struct hid_device *hdev, struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, - unsigned long **bit, int *max) + 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) @@ -438,48 +178,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; @@ -491,23 +204,42 @@ 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); + 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, + EV_ABS, ABS_MT_TOUCH_MINOR); + 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; case 0xff000000: + switch (usage->hid) { + case 0xff000001: + /* multi-touch firmware */ + nd->hasmt = true; + break; + } /* we do not want to map these: no input-oriented meaning */ return -1; } @@ -523,11 +255,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); + } } /* @@ -539,8 +383,19 @@ static int ntrig_event (struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value) { - struct input_dev *input = field->hidinput->input; struct ntrig_data *nd = hid_get_drvdata(hid); + struct input_dev *input; + + /* Skip processing if not a claimed input */ + if (!(hid->claimed & HID_CLAIMED_INPUT)) + goto not_claimed_input; + + /* This function is being called before the structures are fully + * initialized */ + if(!(field->hidinput && field->hidinput->input)) + return -EINVAL; + + input = field->hidinput->input; /* No special handling needed for the pen */ if (field->application == HID_DG_PEN) @@ -548,268 +403,44 @@ 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->touch = value; + if (nd->nindex < MAX_SLOTS) + 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); + nd->col[nd->index].h = value; + if (!nd->hasmt) { + nd->nindex = 0; + nd->ncol = nd->touch; + report_frame(input, nd); } 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); - break; - case HID_DG_CONTACTCOUNT: /* End of a multitouch group */ - if (!nd->reading_mt) /* Just to be sure */ + if (!nd->hasmt) 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. - */ + nd->nindex = 0; + nd->ncol = value; + /* skip pen switch events */ + if (nd->ncol == 1 && + nd->col[0].w == 10 && nd->col[0].h == 10) 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); - } + report_frame(input, nd); break; - - default: - /* fall-back to the generic hidinput handling */ - return 0; } } +not_claimed_input: + /* we have handled the hidinput part, now remains hiddev */ if ((hid->claimed & HID_CLAIMED_HIDDEV) && hid->hiddev_hid_event) hid->hiddev_hid_event(hid, field, usage, value); @@ -823,28 +454,18 @@ struct ntrig_data *nd; struct hid_input *hidinput; 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; + if (id->driver_data) + hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS; - nd = kmalloc(sizeof(struct ntrig_data), GFP_KERNEL); + nd = kzalloc(sizeof(struct ntrig_data), GFP_KERNEL); if (!nd) { hid_err(hdev, "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); @@ -870,18 +491,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) ? @@ -891,69 +500,36 @@ } } - /* This is needed for devices with more recent firmware versions */ - report = hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0x0a]; - if (report) - usbhid_submit_report(hdev, report, USB_DIR_OUT); + ntrig_set_report(hdev); ntrig_report_version(hdev); - ret = sysfs_create_group(&hdev->dev.kobj, - &ntrig_attribute_group); - return 0; err_free: kfree(nd); return ret; } +#ifdef CONFIG_PM +static int ntrig_reset_resume(struct hid_device *hdev) +{ + ntrig_set_report(hdev); + return 0; +} +#endif + 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), + NTRIG_DEVICE(0x0006), { } }; MODULE_DEVICE_TABLE(hid, ntrig_devices); @@ -972,6 +548,9 @@ .input_mapped = ntrig_input_mapped, .usage_table = ntrig_grabbed_usages, .event = ntrig_event, +#ifdef CONFIG_PM + .reset_resume = ntrig_reset_resume, +#endif }; static int __init ntrig_init(void) --- linux-2.6.38.orig/drivers/hid/Kconfig +++ linux-2.6.38/drivers/hid/Kconfig @@ -68,9 +68,15 @@ ---help--- Support for A4 tech X5 and WOP-35 / Trust 450L mice. -config HID_ACRUX_FF - tristate "ACRUX force feedback" +config HID_ACRUX + tristate "ACRUX game controller support" depends on USB_HID + ---help--- + Say Y here if you want to enable support for ACRUX game controllers. + +config HID_ACRUX_FF + tristate "ACRUX force feedback support" + depends on HID_ACRUX select INPUT_FF_MEMLESS ---help--- Say Y here if you want to enable force feedback support for ACRUX @@ -319,10 +325,10 @@ Support for N-Trig touch screen. config HID_ORTEK - tristate "Ortek WKB-2000 wireless keyboard and mouse trackpad" + tristate "Ortek PKB-1700/WKB-2000 wireless keyboard and mouse trackpad" depends on USB_HID ---help--- - Support for Ortek WKB-2000 wireless keyboard + mouse trackpad. + Support for Ortek PKB-1700/WKB-2000 wireless keyboard + mouse trackpad. config HID_PANTHERLORD tristate "Pantherlord/GreenAsia game controller" --- linux-2.6.38.orig/drivers/hid/hid-multitouch.c +++ linux-2.6.38/drivers/hid/hid-multitouch.c @@ -122,7 +122,7 @@ { } }; -static void mt_feature_mapping(struct hid_device *hdev, struct hid_input *hi, +static void mt_feature_mapping(struct hid_device *hdev, struct hid_field *field, struct hid_usage *usage) { if (usage->hid == HID_DG_INPUTMODE) { --- linux-2.6.38.orig/drivers/hid/hid-ids.h +++ linux-2.6.38/drivers/hid/hid-ids.h @@ -103,6 +103,9 @@ #define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI 0x0242 #define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO 0x0243 #define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS 0x0244 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI 0x0245 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ISO 0x0246 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_JIS 0x0247 #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI 0x0239 #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO 0x023a #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b @@ -466,6 +469,7 @@ #define USB_DEVICE_ID_ONTRAK_ADU100 0x0064 #define USB_VENDOR_ID_ORTEK 0x05a4 +#define USB_DEVICE_ID_ORTEK_PKB1700 0x1700 #define USB_DEVICE_ID_ORTEK_WKB2000 0x2000 #define USB_VENDOR_ID_PANJIT 0x134c --- linux-2.6.38.orig/drivers/hid/hid-ortek.c +++ linux-2.6.38/drivers/hid/hid-ortek.c @@ -1,5 +1,5 @@ /* - * HID driver for Ortek WKB-2000 (wireless keyboard + mouse trackpad). + * HID driver for Ortek PKB-1700/WKB-2000 (wireless keyboard + mouse trackpad). * Fixes LogicalMaximum error in USB report description, see * http://bugzilla.kernel.org/show_bug.cgi?id=14787 * @@ -30,6 +30,7 @@ } static const struct hid_device_id ortek_devices[] = { + { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) }, { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) }, { } }; --- linux-2.6.38.orig/drivers/hid/hid-magicmouse.c +++ linux-2.6.38/drivers/hid/hid-magicmouse.c @@ -258,7 +258,7 @@ input_report_abs(input, ABS_MT_TRACKING_ID, id); 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_ORIENTATION, -orientation); input_report_abs(input, ABS_MT_POSITION_X, x); input_report_abs(input, ABS_MT_POSITION_Y, y); @@ -397,7 +397,7 @@ input_set_abs_params(input, ABS_MT_TRACKING_ID, 0, 15, 0, 0); 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_ORIENTATION, -31, 32, 1, 0); /* Note: Touch Y position from the device is inverted relative * to how pointer motion is reported (and relative to how USB @@ -418,6 +418,8 @@ input_set_abs_params(input, ABS_MT_POSITION_Y, -2456, 2565, 4, 0); } + + input_set_events_per_packet(input, 60); } if (report_undeciphered) { --- linux-2.6.38.orig/drivers/hid/Makefile +++ linux-2.6.38/drivers/hid/Makefile @@ -27,7 +27,7 @@ obj-$(CONFIG_HID_3M_PCT) += hid-3m-pct.o obj-$(CONFIG_HID_A4TECH) += hid-a4tech.o -obj-$(CONFIG_HID_ACRUX_FF) += hid-axff.o +obj-$(CONFIG_HID_ACRUX) += hid-axff.o obj-$(CONFIG_HID_APPLE) += hid-apple.o obj-$(CONFIG_HID_BELKIN) += hid-belkin.o obj-$(CONFIG_HID_CANDO) += hid-cando.o --- linux-2.6.38.orig/drivers/hid/hid-axff.c +++ linux-2.6.38/drivers/hid/hid-axff.c @@ -33,6 +33,8 @@ #include #include "hid-ids.h" + +#ifdef CONFIG_HID_ACRUX_FF #include "usbhid/usbhid.h" struct axff_device { @@ -109,6 +111,12 @@ kfree(axff); return error; } +#else +static inline int axff_init(struct hid_device *hid) +{ + return 0; +} +#endif static int ax_probe(struct hid_device *hdev, const struct hid_device_id *id) { @@ -139,9 +147,25 @@ error); } + /* + * We need to start polling device right away, otherwise + * it will go into a coma. + */ + error = hid_hw_open(hdev); + if (error) { + dev_err(&hdev->dev, "hw open failed\n"); + return error; + } + return 0; } +static void ax_remove(struct hid_device *hdev) +{ + hid_hw_close(hdev); + hid_hw_stop(hdev); +} + static const struct hid_device_id ax_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802), }, { } @@ -149,9 +173,10 @@ MODULE_DEVICE_TABLE(hid, ax_devices); static struct hid_driver ax_driver = { - .name = "acrux", - .id_table = ax_devices, - .probe = ax_probe, + .name = "acrux", + .id_table = ax_devices, + .probe = ax_probe, + .remove = ax_remove, }; static int __init ax_init(void) --- linux-2.6.38.orig/drivers/hid/hid-apple.c +++ linux-2.6.38/drivers/hid/hid-apple.c @@ -481,6 +481,12 @@ .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS), .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI), + .driver_data = APPLE_HAS_FN }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO), + .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS), + .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI), .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO), --- linux-2.6.38.orig/drivers/hid/hid-core.c +++ linux-2.6.38/drivers/hid/hid-core.c @@ -1256,9 +1256,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_WCP32PU) }, { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_X5_005D) }, { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_RP_649) }, -#if defined(CONFIG_HID_ACRUX_FF) || defined(CONFIG_HID_ACRUX_FF_MODULE) { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802) }, -#endif { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE) }, @@ -1302,6 +1300,9 @@ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) }, @@ -1400,6 +1401,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_16) }, { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17) }, { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18) }, + { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) }, { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) }, { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) }, { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) }, @@ -1801,6 +1803,9 @@ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, { } --- linux-2.6.38.orig/drivers/pci/intel-iommu.c +++ linux-2.6.38/drivers/pci/intel-iommu.c @@ -1835,7 +1835,7 @@ ret = iommu_attach_domain(domain, iommu); if (ret) { - domain_exit(domain); + free_domain_mem(domain); goto error; } @@ -3260,9 +3260,15 @@ if (!domain) return 0; - if (action == BUS_NOTIFY_UNBOUND_DRIVER && !iommu_pass_through) + if (action == BUS_NOTIFY_UNBOUND_DRIVER && !iommu_pass_through) { domain_remove_one_dev_info(domain, pdev); + if (!(domain->flags & DOMAIN_FLAG_VIRTUAL_MACHINE) && + !(domain->flags & DOMAIN_FLAG_STATIC_IDENTITY) && + list_empty(&domain->devices)) + domain_exit(domain); + } + return 0; } @@ -3411,6 +3417,11 @@ domain->iommu_count--; domain_update_iommu_cap(domain); spin_unlock_irqrestore(&domain->iommu_lock, tmp_flags); + + spin_lock_irqsave(&iommu->lock, tmp_flags); + clear_bit(domain->id, iommu->domain_ids); + iommu->domains[domain->id] = NULL; + spin_unlock_irqrestore(&iommu->lock, tmp_flags); } spin_unlock_irqrestore(&device_domain_lock, flags); @@ -3627,9 +3638,9 @@ pte = dmar_domain->pgd; if (dma_pte_present(pte)) { - free_pgtable_page(dmar_domain->pgd); dmar_domain->pgd = (struct dma_pte *) phys_to_virt(dma_pte_addr(pte)); + free_pgtable_page(pte); } dmar_domain->agaw--; } --- linux-2.6.38.orig/drivers/pci/pci-sysfs.c +++ linux-2.6.38/drivers/pci/pci-sysfs.c @@ -1088,7 +1088,7 @@ attr->write = write_vpd_attr; retval = sysfs_create_bin_file(&dev->dev.kobj, attr); if (retval) { - kfree(dev->vpd->attr); + kfree(attr); return retval; } dev->vpd->attr = attr; --- linux-2.6.38.orig/drivers/pci/quirks.c +++ linux-2.6.38/drivers/pci/quirks.c @@ -533,6 +533,17 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, quirk_piix4_acpi); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443MX_3, quirk_piix4_acpi); +#define ICH_PMBASE 0x40 +#define ICH_ACPI_CNTL 0x44 +#define ICH4_ACPI_EN 0x10 +#define ICH6_ACPI_EN 0x80 +#define ICH4_GPIOBASE 0x58 +#define ICH4_GPIO_CNTL 0x5c +#define ICH4_GPIO_EN 0x10 +#define ICH6_GPIOBASE 0x48 +#define ICH6_GPIO_CNTL 0x4c +#define ICH6_GPIO_EN 0x10 + /* * ICH4, ICH4-M, ICH5, ICH5-M ACPI: Three IO regions pointed to by longwords at * 0x40 (128 bytes of ACPI, GPIO & TCO registers) @@ -541,12 +552,33 @@ static void __devinit quirk_ich4_lpc_acpi(struct pci_dev *dev) { u32 region; + u8 enable; - pci_read_config_dword(dev, 0x40, ®ion); - quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES, "ICH4 ACPI/GPIO/TCO"); + /* + * The check for PCIBIOS_MIN_IO is to ensure we won't create a conflict + * with low legacy (and fixed) ports. We don't know the decoding + * priority and can't tell whether the legacy device or the one created + * here is really at that address. This happens on boards with broken + * BIOSes. + */ + + pci_read_config_byte(dev, ICH_ACPI_CNTL, &enable); + if (enable & ICH4_ACPI_EN) { + pci_read_config_dword(dev, ICH_PMBASE, ®ion); + region &= PCI_BASE_ADDRESS_IO_MASK; + if (region >= PCIBIOS_MIN_IO) + quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES, + "ICH4 ACPI/GPIO/TCO"); + } - pci_read_config_dword(dev, 0x58, ®ion); - quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES+1, "ICH4 GPIO"); + pci_read_config_byte(dev, ICH4_GPIO_CNTL, &enable); + if (enable & ICH4_GPIO_EN) { + pci_read_config_dword(dev, ICH4_GPIOBASE, ®ion); + region &= PCI_BASE_ADDRESS_IO_MASK; + if (region >= PCIBIOS_MIN_IO) + quirk_io_region(dev, region, 64, + PCI_BRIDGE_RESOURCES + 1, "ICH4 GPIO"); + } } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_0, quirk_ich4_lpc_acpi); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_0, quirk_ich4_lpc_acpi); @@ -562,12 +594,25 @@ static void __devinit ich6_lpc_acpi_gpio(struct pci_dev *dev) { u32 region; + u8 enable; - pci_read_config_dword(dev, 0x40, ®ion); - quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES, "ICH6 ACPI/GPIO/TCO"); + pci_read_config_byte(dev, ICH_ACPI_CNTL, &enable); + if (enable & ICH6_ACPI_EN) { + pci_read_config_dword(dev, ICH_PMBASE, ®ion); + region &= PCI_BASE_ADDRESS_IO_MASK; + if (region >= PCIBIOS_MIN_IO) + quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES, + "ICH6 ACPI/GPIO/TCO"); + } - pci_read_config_dword(dev, 0x48, ®ion); - quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES+1, "ICH6 GPIO"); + pci_read_config_byte(dev, ICH6_GPIO_CNTL, &enable); + if (enable & ICH4_GPIO_EN) { + pci_read_config_dword(dev, ICH6_GPIOBASE, ®ion); + region &= PCI_BASE_ADDRESS_IO_MASK; + if (region >= PCIBIOS_MIN_IO) + quirk_io_region(dev, region, 64, + PCI_BRIDGE_RESOURCES + 1, "ICH6 GPIO"); + } } static void __devinit ich6_lpc_generic_decode(struct pci_dev *dev, unsigned reg, const char *name, int dynsize) @@ -2618,58 +2663,6 @@ #endif /* CONFIG_PCI_MSI */ -#ifdef CONFIG_PCI_IOV - -/* - * For Intel 82576 SR-IOV NIC, if BIOS doesn't allocate resources for the - * SR-IOV BARs, zero the Flash BAR and program the SR-IOV BARs to use the - * old Flash Memory Space. - */ -static void __devinit quirk_i82576_sriov(struct pci_dev *dev) -{ - int pos, flags; - u32 bar, start, size; - - if (PAGE_SIZE > 0x10000) - return; - - flags = pci_resource_flags(dev, 0); - if ((flags & PCI_BASE_ADDRESS_SPACE) != - PCI_BASE_ADDRESS_SPACE_MEMORY || - (flags & PCI_BASE_ADDRESS_MEM_TYPE_MASK) != - PCI_BASE_ADDRESS_MEM_TYPE_32) - return; - - pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_SRIOV); - if (!pos) - return; - - pci_read_config_dword(dev, pos + PCI_SRIOV_BAR, &bar); - if (bar & PCI_BASE_ADDRESS_MEM_MASK) - return; - - start = pci_resource_start(dev, 1); - size = pci_resource_len(dev, 1); - if (!start || size != 0x400000 || start & (size - 1)) - return; - - pci_resource_flags(dev, 1) = 0; - pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, 0); - pci_write_config_dword(dev, pos + PCI_SRIOV_BAR, start); - pci_write_config_dword(dev, pos + PCI_SRIOV_BAR + 12, start + size / 2); - - dev_info(&dev->dev, "use Flash Memory Space for SR-IOV BARs\n"); -} -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10c9, quirk_i82576_sriov); -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10e6, quirk_i82576_sriov); -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10e7, quirk_i82576_sriov); -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10e8, quirk_i82576_sriov); -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x150a, quirk_i82576_sriov); -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x150d, quirk_i82576_sriov); -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1518, quirk_i82576_sriov); - -#endif /* CONFIG_PCI_IOV */ - /* Allow manual resource allocation for PCI hotplug bridges * via pci=hpmemsize=nnM and pci=hpiosize=nnM parameters. For * some PCI-PCI hotplug bridges, like PLX 6254 (former HINT HB6), @@ -2762,9 +2755,34 @@ dev_notice(&dev->dev, "proprietary Ricoh MMC controller disabled (via firewire function)\n"); dev_notice(&dev->dev, "MMC cards are now supported by standard SDHCI controller\n"); + + /* + * RICOH 0xe823 SD/MMC card reader fails to recognize + * certain types of SD/MMC cards. Lowering the SD base + * clock frequency from 200Mhz to 50Mhz fixes this issue. + * + * 0x150 - SD2.0 mode enable for changing base clock + * frequency to 50Mhz + * 0xe1 - Base clock frequency + * 0x32 - 50Mhz new clock frequency + * 0xf9 - Key register for 0x150 + * 0xfc - key register for 0xe1 + */ + if (dev->device == PCI_DEVICE_ID_RICOH_R5CE823) { + pci_write_config_byte(dev, 0xf9, 0xfc); + pci_write_config_byte(dev, 0x150, 0x10); + pci_write_config_byte(dev, 0xf9, 0x00); + pci_write_config_byte(dev, 0xfc, 0x01); + pci_write_config_byte(dev, 0xe1, 0x32); + pci_write_config_byte(dev, 0xfc, 0x00); + + dev_notice(&dev->dev, "MMC controller base frequency changed to 50Mhz.\n"); + } } DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5CE823, ricoh_mmc_fixup_r5c832); +DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5CE823, ricoh_mmc_fixup_r5c832); #endif /*CONFIG_MMC_RICOH_MMC*/ #if defined(CONFIG_DMAR) || defined(CONFIG_INTR_REMAP) @@ -2791,6 +2809,16 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x3c28, vtd_mask_spec_errors); #endif +static void __devinit fixup_ti816x_class(struct pci_dev* dev) +{ + /* TI 816x devices do not have class code set when in PCIe boot mode */ + if (dev->class == PCI_CLASS_NOT_DEFINED) { + dev_info(&dev->dev, "Setting PCI class for 816x PCIe device\n"); + dev->class = PCI_CLASS_MULTIMEDIA_VIDEO; + } +} +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_TI, 0xb800, fixup_ti816x_class); + static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) { --- linux-2.6.38.orig/drivers/pci/hotplug/acpiphp_glue.c +++ linux-2.6.38/drivers/pci/hotplug/acpiphp_glue.c @@ -212,6 +212,7 @@ pdev = pci_get_slot(pbus, PCI_DEVFN(device, function)); if (pdev) { + pdev->current_state = PCI_D0; slot->flags |= (SLOT_ENABLED | SLOT_POWEREDON); pci_dev_put(pdev); } --- linux-2.6.38.orig/drivers/pci/pcie/aspm.c +++ linux-2.6.38/drivers/pci/pcie/aspm.c @@ -69,6 +69,7 @@ }; static int aspm_disabled, aspm_force, aspm_clear_state; +static bool aspm_support_enabled = true; static DEFINE_MUTEX(aspm_lock); static LIST_HEAD(link_list); @@ -896,6 +897,7 @@ { if (!strcmp(str, "off")) { aspm_disabled = 1; + aspm_support_enabled = false; printk(KERN_INFO "PCIe ASPM is disabled\n"); } else if (!strcmp(str, "force")) { aspm_force = 1; @@ -930,3 +932,8 @@ } EXPORT_SYMBOL(pcie_aspm_enabled); +bool pcie_aspm_support_enabled(void) +{ + return aspm_support_enabled; +} +EXPORT_SYMBOL(pcie_aspm_support_enabled); --- linux-2.6.38.orig/drivers/firmware/dcdbas.c +++ linux-2.6.38/drivers/firmware/dcdbas.c @@ -268,8 +268,10 @@ } /* generate SMI */ + /* inb to force posted write through and make SMI happen now */ asm volatile ( - "outb %b0,%w1" + "outb %b0,%w1\n" + "inb %w1" : /* no output args */ : "a" (smi_cmd->command_code), "d" (smi_cmd->command_address), --- linux-2.6.38.orig/drivers/firewire/ohci.c +++ linux-2.6.38/drivers/firewire/ohci.c @@ -299,6 +299,8 @@ {PCI_VENDOR_ID_VIA, PCI_ANY_ID, PCI_ANY_ID, QUIRK_CYCLE_TIMER | QUIRK_NO_MSI}, + {PCI_VENDOR_ID_O2, PCI_ANY_ID, PCI_ANY_ID, + QUIRK_NO_MSI}, }; /* This overrides anything that was found in ohci_quirks[]. */ @@ -2163,7 +2165,6 @@ { struct fw_ohci *ohci; unsigned long flags; - int ret = -EBUSY; __be32 *next_config_rom; dma_addr_t uninitialized_var(next_config_rom_bus); @@ -2204,22 +2205,37 @@ spin_lock_irqsave(&ohci->lock, flags); + /* + * If there is not an already pending config_rom update, + * push our new allocation into the ohci->next_config_rom + * and then mark the local variable as null so that we + * won't deallocate the new buffer. + * + * OTOH, if there is a pending config_rom update, just + * use that buffer with the new config_rom data, and + * let this routine free the unused DMA allocation. + */ + if (ohci->next_config_rom == NULL) { ohci->next_config_rom = next_config_rom; ohci->next_config_rom_bus = next_config_rom_bus; + next_config_rom = NULL; + } - copy_config_rom(ohci->next_config_rom, config_rom, length); + copy_config_rom(ohci->next_config_rom, config_rom, length); - ohci->next_header = config_rom[0]; - ohci->next_config_rom[0] = 0; + ohci->next_header = config_rom[0]; + ohci->next_config_rom[0] = 0; - reg_write(ohci, OHCI1394_ConfigROMmap, - ohci->next_config_rom_bus); - ret = 0; - } + reg_write(ohci, OHCI1394_ConfigROMmap, ohci->next_config_rom_bus); spin_unlock_irqrestore(&ohci->lock, flags); + /* If we didn't use the DMA allocation, delete it. */ + if (next_config_rom != NULL) + dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, + next_config_rom, next_config_rom_bus); + /* * Now initiate a bus reset to have the changes take * effect. We clean up the old config rom memory and DMA @@ -2227,13 +2243,10 @@ * controller could need to access it before the bus reset * takes effect. */ - if (ret == 0) - fw_schedule_bus_reset(&ohci->card, true, true); - else - dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, - next_config_rom, next_config_rom_bus); - return ret; + fw_schedule_bus_reset(&ohci->card, true, true); + + return 0; } static void ohci_send_request(struct fw_card *card, struct fw_packet *packet) --- linux-2.6.38.orig/drivers/rtc/rtc-s3c.c +++ linux-2.6.38/drivers/rtc/rtc-s3c.c @@ -46,6 +46,7 @@ static void __iomem *s3c_rtc_base; static int s3c_rtc_alarmno = NO_IRQ; static int s3c_rtc_tickno = NO_IRQ; +static bool wake_en; static enum s3c_cpu_type s3c_rtc_cpu_type; static DEFINE_SPINLOCK(s3c_rtc_pie_lock); @@ -597,8 +598,12 @@ } s3c_rtc_enable(pdev, 0); - if (device_may_wakeup(&pdev->dev)) - enable_irq_wake(s3c_rtc_alarmno); + if (device_may_wakeup(&pdev->dev) && !wake_en) { + if (enable_irq_wake(s3c_rtc_alarmno) == 0) + wake_en = true; + else + dev_err(&pdev->dev, "enable_irq_wake failed\n"); + } return 0; } @@ -614,8 +619,10 @@ writew(tmp | ticnt_en_save, s3c_rtc_base + S3C2410_RTCCON); } - if (device_may_wakeup(&pdev->dev)) + if (device_may_wakeup(&pdev->dev) && wake_en) { disable_irq_wake(s3c_rtc_alarmno); + wake_en = false; + } return 0; } --- linux-2.6.38.orig/drivers/rtc/rtc-bfin.c +++ linux-2.6.38/drivers/rtc/rtc-bfin.c @@ -276,6 +276,8 @@ bfin_rtc_int_set_alarm(rtc); else bfin_rtc_int_clear(~(RTC_ISTAT_ALARM | RTC_ISTAT_ALARM_DAY)); + + return 0; } static int bfin_rtc_read_time(struct device *dev, struct rtc_time *tm) --- linux-2.6.38.orig/drivers/rtc/rtc-ds1511.c +++ linux-2.6.38/drivers/rtc/rtc-ds1511.c @@ -485,7 +485,7 @@ static struct bin_attribute ds1511_nvram_attr = { .attr = { .name = "nvram", - .mode = S_IRUGO | S_IWUGO, + .mode = S_IRUGO | S_IWUSR, }, .size = DS1511_RAM_MAX, .read = ds1511_nvram_read, --- linux-2.6.38.orig/drivers/net/ne-h8300.c +++ linux-2.6.38/drivers/net/ne-h8300.c @@ -167,7 +167,7 @@ #ifndef MODULE struct net_device * __init ne_probe(int unit) { - struct net_device *dev = alloc_ei_netdev(); + struct net_device *dev = ____alloc_ei_netdev(0); int err; if (!dev) @@ -197,15 +197,15 @@ .ndo_open = ne_open, .ndo_stop = ne_close, - .ndo_start_xmit = ei_start_xmit, - .ndo_tx_timeout = ei_tx_timeout, - .ndo_get_stats = ei_get_stats, - .ndo_set_multicast_list = ei_set_multicast_list, + .ndo_start_xmit = __ei_start_xmit, + .ndo_tx_timeout = __ei_tx_timeout, + .ndo_get_stats = __ei_get_stats, + .ndo_set_multicast_list = __ei_set_multicast_list, .ndo_validate_addr = eth_validate_addr, - .ndo_set_mac_address = eth_mac_addr, + .ndo_set_mac_address = eth_mac_addr, .ndo_change_mtu = eth_change_mtu, #ifdef CONFIG_NET_POLL_CONTROLLER - .ndo_poll_controller = ei_poll, + .ndo_poll_controller = __ei_poll, #endif }; @@ -637,7 +637,7 @@ int err; for (this_dev = 0; this_dev < MAX_NE_CARDS; this_dev++) { - struct net_device *dev = alloc_ei_netdev(); + struct net_device *dev = ____alloc_ei_netdev(0); if (!dev) break; if (io[this_dev]) { --- linux-2.6.38.orig/drivers/net/Kconfig +++ linux-2.6.38/drivers/net/Kconfig @@ -2533,7 +2533,7 @@ source "drivers/net/stmmac/Kconfig" config PCH_GBE - tristate "PCH Gigabit Ethernet" + tristate "Intel EG20T PCH / OKI SEMICONDUCTOR ML7223 IOH GbE" depends on PCI select MII ---help--- @@ -2545,6 +2545,12 @@ to Gigabit Ethernet. This driver enables Gigabit Ethernet function. + This driver also can be used for OKI SEMICONDUCTOR IOH(Input/ + Output Hub), ML7223. + ML7223 IOH is for MP(Media Phone) use. + ML7223 is companion chip for Intel Atom E6xx series. + ML7223 is completely compatible for Intel EG20T PCH. + endif # NETDEV_1000 # --- linux-2.6.38.orig/drivers/net/Makefile +++ linux-2.6.38/drivers/net/Makefile @@ -144,7 +144,7 @@ obj-$(CONFIG_SB1250_MAC) += sb1250-mac.o obj-$(CONFIG_B44) += b44.o obj-$(CONFIG_FORCEDETH) += forcedeth.o -obj-$(CONFIG_NE_H8300) += ne-h8300.o 8390.o +obj-$(CONFIG_NE_H8300) += ne-h8300.o obj-$(CONFIG_AX88796) += ax88796.o obj-$(CONFIG_BCM63XX_ENET) += bcm63xx_enet.o @@ -217,7 +217,7 @@ obj-$(CONFIG_LP486E) += lp486e.o obj-$(CONFIG_ETH16I) += eth16i.o -obj-$(CONFIG_ZORRO8390) += zorro8390.o 8390.o +obj-$(CONFIG_ZORRO8390) += zorro8390.o obj-$(CONFIG_HPLANCE) += hplance.o 7990.o obj-$(CONFIG_MVME147_NET) += mvme147.o 7990.o obj-$(CONFIG_EQUALIZER) += eql.o @@ -229,7 +229,7 @@ obj-$(CONFIG_DECLANCE) += declance.o obj-$(CONFIG_ATARILANCE) += atarilance.o obj-$(CONFIG_A2065) += a2065.o -obj-$(CONFIG_HYDRA) += hydra.o 8390.o +obj-$(CONFIG_HYDRA) += hydra.o obj-$(CONFIG_ARIADNE) += ariadne.o obj-$(CONFIG_CS89x0) += cs89x0.o obj-$(CONFIG_MACSONIC) += macsonic.o --- linux-2.6.38.orig/drivers/net/zorro8390.c +++ linux-2.6.38/drivers/net/zorro8390.c @@ -126,7 +126,7 @@ board = z->resource.start; ioaddr = board+cards[i].offset; - dev = alloc_ei_netdev(); + dev = ____alloc_ei_netdev(0); if (!dev) return -ENOMEM; if (!request_mem_region(ioaddr, NE_IO_EXTENT*2, DRV_NAME)) { @@ -146,15 +146,15 @@ static const struct net_device_ops zorro8390_netdev_ops = { .ndo_open = zorro8390_open, .ndo_stop = zorro8390_close, - .ndo_start_xmit = ei_start_xmit, - .ndo_tx_timeout = ei_tx_timeout, - .ndo_get_stats = ei_get_stats, - .ndo_set_multicast_list = ei_set_multicast_list, + .ndo_start_xmit = __ei_start_xmit, + .ndo_tx_timeout = __ei_tx_timeout, + .ndo_get_stats = __ei_get_stats, + .ndo_set_multicast_list = __ei_set_multicast_list, .ndo_validate_addr = eth_validate_addr, .ndo_set_mac_address = eth_mac_addr, .ndo_change_mtu = eth_change_mtu, #ifdef CONFIG_NET_POLL_CONTROLLER - .ndo_poll_controller = ei_poll, + .ndo_poll_controller = __ei_poll, #endif }; --- linux-2.6.38.orig/drivers/net/hydra.c +++ linux-2.6.38/drivers/net/hydra.c @@ -98,15 +98,15 @@ .ndo_open = hydra_open, .ndo_stop = hydra_close, - .ndo_start_xmit = ei_start_xmit, - .ndo_tx_timeout = ei_tx_timeout, - .ndo_get_stats = ei_get_stats, - .ndo_set_multicast_list = ei_set_multicast_list, + .ndo_start_xmit = __ei_start_xmit, + .ndo_tx_timeout = __ei_tx_timeout, + .ndo_get_stats = __ei_get_stats, + .ndo_set_multicast_list = __ei_set_multicast_list, .ndo_validate_addr = eth_validate_addr, - .ndo_set_mac_address = eth_mac_addr, + .ndo_set_mac_address = eth_mac_addr, .ndo_change_mtu = eth_change_mtu, #ifdef CONFIG_NET_POLL_CONTROLLER - .ndo_poll_controller = ei_poll, + .ndo_poll_controller = __ei_poll, #endif }; @@ -125,7 +125,7 @@ 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, }; - dev = alloc_ei_netdev(); + dev = ____alloc_ei_netdev(0); if (!dev) return -ENOMEM; --- linux-2.6.38.orig/drivers/net/s2io.c +++ linux-2.6.38/drivers/net/s2io.c @@ -6726,7 +6726,7 @@ int rc = 0; int changed = 0; - if (data & ~ETH_FLAG_LRO) + if (ethtool_invalid_flags(dev, data, ETH_FLAG_LRO)) return -EINVAL; if (data & ETH_FLAG_LRO) { --- linux-2.6.38.orig/drivers/net/gianfar.c +++ linux-2.6.38/drivers/net/gianfar.c @@ -950,6 +950,11 @@ (pvr == 0x80861010 && (mod & 0xfff9) == 0x80c0)) priv->errata |= GFAR_ERRATA_A002; + /* MPC8313 Rev < 2.0, MPC8548 rev 2.0 */ + if ((pvr == 0x80850010 && mod == 0x80b0 && rev < 0x0020) || + (pvr == 0x80210020 && mod == 0x8030 && rev == 0x0020)) + priv->errata |= GFAR_ERRATA_12; + if (priv->errata) dev_info(dev, "enabled errata workarounds, flags: 0x%x\n", priv->errata); @@ -2156,8 +2161,15 @@ /* Set up checksumming */ if (CHECKSUM_PARTIAL == skb->ip_summed) { fcb = gfar_add_fcb(skb); - lstatus |= BD_LFLAG(TXBD_TOE); - gfar_tx_checksum(skb, fcb); + /* as specified by errata */ + if (unlikely(gfar_has_errata(priv, GFAR_ERRATA_12) + && ((unsigned long)fcb % 0x20) > 0x18)) { + __skb_pull(skb, GMAC_FCB_LEN); + skb_checksum_help(skb); + } else { + lstatus |= BD_LFLAG(TXBD_TOE); + gfar_tx_checksum(skb, fcb); + } } if (vlan_tx_tag_present(skb)) { --- linux-2.6.38.orig/drivers/net/pppoe.c +++ linux-2.6.38/drivers/net/pppoe.c @@ -317,7 +317,7 @@ lock_sock(sk); if (po->pppoe_dev == dev && - sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND)) { + sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND | PPPOX_ZOMBIE)) { pppox_unbind_sock(sk); sk->sk_state = PPPOX_ZOMBIE; sk->sk_state_change(sk); --- linux-2.6.38.orig/drivers/net/slip.c +++ linux-2.6.38/drivers/net/slip.c @@ -853,7 +853,9 @@ /* Done. We have linked the TTY line to a channel. */ rtnl_unlock(); tty->receive_room = 65536; /* We don't flow control */ - return sl->dev->base_addr; + + /* TTY layer expects 0 on success */ + return 0; err_free_bufs: sl_free_bufs(sl); --- linux-2.6.38.orig/drivers/net/macvlan.c +++ linux-2.6.38/drivers/net/macvlan.c @@ -586,8 +586,8 @@ err = netdev_rx_handler_register(dev, macvlan_handle_frame, port); if (err) kfree(port); - - dev->priv_flags |= IFF_MACVLAN_PORT; + else + dev->priv_flags |= IFF_MACVLAN_PORT; return err; } --- linux-2.6.38.orig/drivers/net/gianfar.h +++ linux-2.6.38/drivers/net/gianfar.h @@ -1039,6 +1039,7 @@ GFAR_ERRATA_74 = 0x01, GFAR_ERRATA_76 = 0x02, GFAR_ERRATA_A002 = 0x04, + GFAR_ERRATA_12 = 0x08, /* a.k.a errata eTSEC49 */ }; /* Struct stolen almost completely (and shamelessly) from the FCC enet source --- linux-2.6.38.orig/drivers/net/pch_gbe/pch_gbe_main.c +++ linux-2.6.38/drivers/net/pch_gbe/pch_gbe_main.c @@ -34,6 +34,10 @@ #define PCH_GBE_COPYBREAK_DEFAULT 256 #define PCH_GBE_PCI_BAR 1 +/* Macros for ML7223 */ +#define PCI_VENDOR_ID_ROHM 0x10db +#define PCI_DEVICE_ID_ROHM_ML7223_GBE 0x8013 + #define PCH_GBE_TX_WEIGHT 64 #define PCH_GBE_RX_WEIGHT 64 #define PCH_GBE_RX_BUFFER_WRITE 16 @@ -43,8 +47,7 @@ #define PCH_GBE_MAC_RGMII_CTRL_SETTING ( \ PCH_GBE_CHIP_TYPE_INTERNAL | \ - PCH_GBE_RGMII_MODE_RGMII | \ - PCH_GBE_CRS_SEL \ + PCH_GBE_RGMII_MODE_RGMII \ ) /* Ethertype field values */ @@ -1494,12 +1497,11 @@ /* Write meta date of skb */ skb_put(skb, length); skb->protocol = eth_type_trans(skb, netdev); - if ((tcp_ip_status & PCH_GBE_RXD_ACC_STAT_TCPIPOK) == - PCH_GBE_RXD_ACC_STAT_TCPIPOK) { - skb->ip_summed = CHECKSUM_UNNECESSARY; - } else { + if (tcp_ip_status & PCH_GBE_RXD_ACC_STAT_TCPIPOK) skb->ip_summed = CHECKSUM_NONE; - } + else + skb->ip_summed = CHECKSUM_UNNECESSARY; + napi_gro_receive(&adapter->napi, skb); (*work_done)++; pr_debug("Receive skb->ip_summed: %d length: %d\n", @@ -2420,6 +2422,13 @@ .class = (PCI_CLASS_NETWORK_ETHERNET << 8), .class_mask = (0xFFFF00) }, + {.vendor = PCI_VENDOR_ID_ROHM, + .device = PCI_DEVICE_ID_ROHM_ML7223_GBE, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .class = (PCI_CLASS_NETWORK_ETHERNET << 8), + .class_mask = (0xFFFF00) + }, /* required last entry */ {0} }; --- linux-2.6.38.orig/drivers/net/bonding/bond_sysfs.c +++ linux-2.6.38/drivers/net/bonding/bond_sysfs.c @@ -224,12 +224,6 @@ struct net_device *dev; struct bonding *bond = to_bond(d); - /* Quick sanity check -- is the bond interface up? */ - if (!(bond->dev->flags & IFF_UP)) { - pr_warning("%s: doing slave updates when interface is down.\n", - bond->dev->name); - } - if (!rtnl_trylock()) return restart_syscall(); --- linux-2.6.38.orig/drivers/net/bonding/bond_main.c +++ linux-2.6.38/drivers/net/bonding/bond_main.c @@ -1441,12 +1441,6 @@ bond_dev->name, slave_dev->name); } - /* bond must be initialized by bond_open() before enslaving */ - if (!(bond_dev->flags & IFF_UP)) { - pr_warning("%s: master_dev is not up in bond_enslave\n", - bond_dev->name); - } - /* already enslaved */ if (slave_dev->flags & IFF_SLAVE) { pr_debug("Error, Device was already enslaved\n"); @@ -4537,11 +4531,18 @@ { /* * This helper function exists to help dev_pick_tx get the correct - * destination queue. Using a helper function skips the a call to + * destination queue. Using a helper function skips a call to * skb_tx_hash and will put the skbs in the queue we expect on their * way down to the bonding driver. */ - return skb->queue_mapping; + u16 txq = skb_rx_queue_recorded(skb) ? skb_get_rx_queue(skb) : 0; + + if (unlikely(txq >= dev->real_num_tx_queues)) { + do + txq -= dev->real_num_tx_queues; + while (txq >= dev->real_num_tx_queues); + } + return txq; } static netdev_tx_t bond_start_xmit(struct sk_buff *skb, struct net_device *dev) @@ -5157,9 +5158,19 @@ { struct bonding *bond = netdev_priv(bond_dev); struct bond_net *bn = net_generic(dev_net(bond_dev), bond_net_id); + struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); pr_debug("Begin bond_init for %s\n", bond_dev->name); + /* + * Initialize locks that may be required during + * en/deslave operations. All of the bond_open work + * (of which this is part) should really be moved to + * a phase prior to dev_open + */ + spin_lock_init(&(bond_info->tx_hashtbl_lock)); + spin_lock_init(&(bond_info->rx_hashtbl_lock)); + bond->wq = create_singlethread_workqueue(bond_dev->name); if (!bond->wq) return -ENOMEM; --- linux-2.6.38.orig/drivers/net/bonding/bond_alb.c +++ linux-2.6.38/drivers/net/bonding/bond_alb.c @@ -163,8 +163,6 @@ struct tlb_client_info *new_hashtbl; int i; - spin_lock_init(&(bond_info->tx_hashtbl_lock)); - new_hashtbl = kzalloc(size, GFP_KERNEL); if (!new_hashtbl) { pr_err("%s: Error: Failed to allocate TLB hash table\n", @@ -764,8 +762,6 @@ int size = RLB_HASH_TABLE_SIZE * sizeof(struct rlb_client_info); int i; - spin_lock_init(&(bond_info->rx_hashtbl_lock)); - new_hashtbl = kmalloc(size, GFP_KERNEL); if (!new_hashtbl) { pr_err("%s: Error: Failed to allocate RLB hash table\n", --- linux-2.6.38.orig/drivers/net/bonding/bond_3ad.c +++ linux-2.6.38/drivers/net/bonding/bond_3ad.c @@ -1482,8 +1482,11 @@ static int agg_device_up(const struct aggregator *agg) { - return (netif_running(agg->slave->dev) && - netif_carrier_ok(agg->slave->dev)); + struct port *port = agg->lag_ports; + if (!port) + return 0; + return (netif_running(port->slave->dev) && + netif_carrier_ok(port->slave->dev)); } /** --- linux-2.6.38.orig/drivers/net/vxge/vxge-ethtool.c +++ linux-2.6.38/drivers/net/vxge/vxge-ethtool.c @@ -1117,8 +1117,8 @@ struct vxgedev *vdev = netdev_priv(dev); enum vxge_hw_status status; - if (data & ~ETH_FLAG_RXHASH) - return -EOPNOTSUPP; + if (ethtool_invalid_flags(dev, data, ETH_FLAG_RXHASH)) + return -EINVAL; if (!!(data & ETH_FLAG_RXHASH) == vdev->devh->config.rth_en) return 0; --- linux-2.6.38.orig/drivers/net/atl1c/atl1c_main.c +++ linux-2.6.38/drivers/net/atl1c/atl1c_main.c @@ -325,7 +325,7 @@ } } - adapter->work_event |= ATL1C_WORK_EVENT_LINK_CHANGE; + set_bit(ATL1C_WORK_EVENT_LINK_CHANGE, &adapter->work_event); schedule_work(&adapter->common_task); } @@ -337,20 +337,16 @@ adapter = container_of(work, struct atl1c_adapter, common_task); netdev = adapter->netdev; - if (adapter->work_event & ATL1C_WORK_EVENT_RESET) { - adapter->work_event &= ~ATL1C_WORK_EVENT_RESET; + if (test_and_clear_bit(ATL1C_WORK_EVENT_RESET, &adapter->work_event)) { netif_device_detach(netdev); atl1c_down(adapter); atl1c_up(adapter); netif_device_attach(netdev); - return; } - if (adapter->work_event & ATL1C_WORK_EVENT_LINK_CHANGE) { - adapter->work_event &= ~ATL1C_WORK_EVENT_LINK_CHANGE; + if (test_and_clear_bit(ATL1C_WORK_EVENT_LINK_CHANGE, + &adapter->work_event)) atl1c_check_link_status(adapter); - } - return; } @@ -369,7 +365,7 @@ struct atl1c_adapter *adapter = netdev_priv(netdev); /* Do the reset outside of interrupt context */ - adapter->work_event |= ATL1C_WORK_EVENT_RESET; + set_bit(ATL1C_WORK_EVENT_RESET, &adapter->work_event); schedule_work(&adapter->common_task); } --- linux-2.6.38.orig/drivers/net/atl1c/atl1c.h +++ linux-2.6.38/drivers/net/atl1c/atl1c.h @@ -566,9 +566,9 @@ #define __AT_TESTING 0x0001 #define __AT_RESETTING 0x0002 #define __AT_DOWN 0x0003 - u8 work_event; -#define ATL1C_WORK_EVENT_RESET 0x01 -#define ATL1C_WORK_EVENT_LINK_CHANGE 0x02 + unsigned long work_event; +#define ATL1C_WORK_EVENT_RESET 0 +#define ATL1C_WORK_EVENT_LINK_CHANGE 1 u32 msg_enable; bool have_msi; --- linux-2.6.38.orig/drivers/net/myri10ge/myri10ge.c +++ linux-2.6.38/drivers/net/myri10ge/myri10ge.c @@ -3645,6 +3645,7 @@ dma_free_coherent(&pdev->dev, bytes, ss->fw_stats, ss->fw_stats_bus); ss->fw_stats = NULL; + netif_napi_del(&ss->napi); } } kfree(mgp->ss); --- linux-2.6.38.orig/drivers/net/ehea/ehea_ethtool.c +++ linux-2.6.38/drivers/net/ehea/ehea_ethtool.c @@ -55,15 +55,20 @@ cmd->duplex = -1; } - cmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_1000baseT_Full - | SUPPORTED_100baseT_Full | SUPPORTED_100baseT_Half - | SUPPORTED_10baseT_Full | SUPPORTED_10baseT_Half - | SUPPORTED_Autoneg | SUPPORTED_FIBRE); - - cmd->advertising = (ADVERTISED_10000baseT_Full | ADVERTISED_Autoneg - | ADVERTISED_FIBRE); + if (cmd->speed == SPEED_10000) { + cmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE); + cmd->advertising = (ADVERTISED_10000baseT_Full | ADVERTISED_FIBRE); + cmd->port = PORT_FIBRE; + } else { + cmd->supported = (SUPPORTED_1000baseT_Full | SUPPORTED_100baseT_Full + | SUPPORTED_100baseT_Half | SUPPORTED_10baseT_Full + | SUPPORTED_10baseT_Half | SUPPORTED_Autoneg + | SUPPORTED_TP); + cmd->advertising = (ADVERTISED_1000baseT_Full | ADVERTISED_Autoneg + | ADVERTISED_TP); + cmd->port = PORT_TP; + } - cmd->port = PORT_FIBRE; cmd->autoneg = port->autoneg == 1 ? AUTONEG_ENABLE : AUTONEG_DISABLE; return 0; --- linux-2.6.38.orig/drivers/net/ehea/ehea_main.c +++ linux-2.6.38/drivers/net/ehea/ehea_main.c @@ -2688,9 +2688,6 @@ netif_start_queue(dev); } - init_waitqueue_head(&port->swqe_avail_wq); - init_waitqueue_head(&port->restart_wq); - mutex_unlock(&port->port_lock); return ret; @@ -3273,6 +3270,9 @@ INIT_WORK(&port->reset_task, ehea_reset_port); + init_waitqueue_head(&port->swqe_avail_wq); + init_waitqueue_head(&port->restart_wq); + ret = register_netdev(dev); if (ret) { pr_err("register_netdev failed. ret=%d\n", ret); --- linux-2.6.38.orig/drivers/net/netxen/netxen_nic_main.c +++ linux-2.6.38/drivers/net/netxen/netxen_nic_main.c @@ -1841,6 +1841,8 @@ struct cmd_desc_type0 *hwdesc, *first_desc; struct pci_dev *pdev; int i, k; + int delta = 0; + struct skb_frag_struct *frag; u32 producer; int frag_count, no_of_desc; @@ -1848,6 +1850,21 @@ frag_count = skb_shinfo(skb)->nr_frags + 1; + /* 14 frags supported for normal packet and + * 32 frags supported for TSO packet + */ + if (!skb_is_gso(skb) && frag_count > NETXEN_MAX_FRAGS_PER_TX) { + + for (i = 0; i < (frag_count - NETXEN_MAX_FRAGS_PER_TX); i++) { + frag = &skb_shinfo(skb)->frags[i]; + delta += frag->size; + } + + if (!__pskb_pull_tail(skb, delta)) + goto drop_packet; + + frag_count = 1 + skb_shinfo(skb)->nr_frags; + } /* 4 fragments per cmd des */ no_of_desc = (frag_count + 3) >> 2; --- linux-2.6.38.orig/drivers/net/netxen/netxen_nic_ethtool.c +++ linux-2.6.38/drivers/net/netxen/netxen_nic_ethtool.c @@ -901,7 +901,7 @@ struct netxen_adapter *adapter = netdev_priv(netdev); int hw_lro; - if (data & ~ETH_FLAG_LRO) + if (ethtool_invalid_flags(netdev, data, ETH_FLAG_LRO)) return -EINVAL; if (!(adapter->capabilities & NX_FW_CAPABILITY_HW_LRO)) --- linux-2.6.38.orig/drivers/net/netxen/netxen_nic.h +++ linux-2.6.38/drivers/net/netxen/netxen_nic.h @@ -174,7 +174,7 @@ #define MAX_NUM_CARDS 4 -#define MAX_BUFFERS_PER_CMD 32 +#define NETXEN_MAX_FRAGS_PER_TX 14 #define MAX_TSO_HEADER_DESC 2 #define MGMT_CMD_DESC_RESV 4 #define TX_STOP_THRESH ((MAX_SKB_FRAGS >> 2) + MAX_TSO_HEADER_DESC \ @@ -558,7 +558,7 @@ */ struct netxen_cmd_buffer { struct sk_buff *skb; - struct netxen_skb_frag frag_array[MAX_BUFFERS_PER_CMD + 1]; + struct netxen_skb_frag frag_array[MAX_SKB_FRAGS + 1]; u32 frag_count; }; --- linux-2.6.38.orig/drivers/net/wireless/rtl818x/rtl8187/dev.c +++ linux-2.6.38/drivers/net/wireless/rtl818x/rtl8187/dev.c @@ -871,23 +871,35 @@ /* The RTL8187 returns the retry count through register 0xFFFA. In * addition, it appears to be a cumulative retry count, not the * value for the current TX packet. When multiple TX entries are - * queued, the retry count will be valid for the last one in the queue. - * The "error" should not matter for purposes of rate setting. */ + * waiting in the queue, the retry count will be the total for all. + * The "error" may matter for purposes of rate setting, but there is + * no other choice with this hardware. + */ struct rtl8187_priv *priv = container_of(work, struct rtl8187_priv, work.work); struct ieee80211_tx_info *info; struct ieee80211_hw *dev = priv->dev; static u16 retry; u16 tmp; + u16 avg_retry; + int length; mutex_lock(&priv->conf_mutex); tmp = rtl818x_ioread16(priv, (__le16 *)0xFFFA); + length = skb_queue_len(&priv->b_tx_status.queue); + if (unlikely(!length)) + length = 1; + if (unlikely(tmp < retry)) + tmp = retry; + avg_retry = (tmp - retry) / length; while (skb_queue_len(&priv->b_tx_status.queue) > 0) { struct sk_buff *old_skb; old_skb = skb_dequeue(&priv->b_tx_status.queue); info = IEEE80211_SKB_CB(old_skb); - info->status.rates[0].count = tmp - retry + 1; + info->status.rates[0].count = avg_retry + 1; + if (info->status.rates[0].count > RETRY_COUNT) + info->flags &= ~IEEE80211_TX_STAT_ACK; ieee80211_tx_status_irqsafe(dev, old_skb); } retry = tmp; @@ -933,8 +945,8 @@ rtl818x_iowrite32(priv, &priv->map->TX_CONF, RTL818X_TX_CONF_HW_SEQNUM | RTL818X_TX_CONF_DISREQQSIZE | - (7 << 8 /* short retry limit */) | - (7 << 0 /* long retry limit */) | + (RETRY_COUNT << 8 /* short retry limit */) | + (RETRY_COUNT << 0 /* long retry limit */) | (7 << 21 /* MAX TX DMA */)); rtl8187_init_urbs(dev); rtl8187b_init_status_urb(dev); @@ -1378,6 +1390,9 @@ dev->flags = IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING | IEEE80211_HW_SIGNAL_DBM | IEEE80211_HW_RX_INCLUDES_FCS; + /* Initialize rate-control variables */ + dev->max_rates = 1; + dev->max_rate_tries = RETRY_COUNT; eeprom.data = dev; eeprom.register_read = rtl8187_eeprom_register_read; --- linux-2.6.38.orig/drivers/net/wireless/rtl818x/rtl8187/rtl8187.h +++ linux-2.6.38/drivers/net/wireless/rtl818x/rtl8187/rtl8187.h @@ -35,6 +35,8 @@ #define RFKILL_MASK_8187_89_97 0x2 #define RFKILL_MASK_8198 0x4 +#define RETRY_COUNT 7 + struct rtl8187_rx_info { struct urb *urb; struct ieee80211_hw *dev; --- linux-2.6.38.orig/drivers/net/wireless/hostap/hostap_hw.c +++ linux-2.6.38/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.38.orig/drivers/net/wireless/p54/txrx.c +++ linux-2.6.38/drivers/net/wireless/p54/txrx.c @@ -705,7 +705,7 @@ struct p54_tx_info *p54info; struct p54_hdr *hdr; struct p54_tx_data *txhdr; - unsigned int padding, len, extra_len; + unsigned int padding, len, extra_len = 0; int i, j, ridx; u16 hdr_flags = 0, aid = 0; u8 rate, queue = 0, crypt_offset = 0; --- linux-2.6.38.orig/drivers/net/wireless/p54/p54usb.c +++ linux-2.6.38/drivers/net/wireless/p54/p54usb.c @@ -56,6 +56,7 @@ {USB_DEVICE(0x0846, 0x4210)}, /* Netgear WG121 the second ? */ {USB_DEVICE(0x0846, 0x4220)}, /* Netgear WG111 */ {USB_DEVICE(0x09aa, 0x1000)}, /* Spinnaker Proto board */ + {USB_DEVICE(0x0bf8, 0x1007)}, /* Fujitsu E-5400 USB */ {USB_DEVICE(0x0cde, 0x0006)}, /* Medion 40900, Roper Europe */ {USB_DEVICE(0x0db0, 0x6826)}, /* MSI UB54G (MS-6826) */ {USB_DEVICE(0x107b, 0x55f2)}, /* Gateway WGU-210 (Gemtek) */ @@ -68,6 +69,7 @@ {USB_DEVICE(0x1915, 0x2235)}, /* Linksys WUSB54G Portable OEM */ {USB_DEVICE(0x2001, 0x3701)}, /* DLink DWL-G120 Spinnaker */ {USB_DEVICE(0x2001, 0x3703)}, /* DLink DWL-G122 */ + {USB_DEVICE(0x2001, 0x3762)}, /* Conceptronic C54U */ {USB_DEVICE(0x5041, 0x2234)}, /* Linksys WUSB54G */ {USB_DEVICE(0x5041, 0x2235)}, /* Linksys WUSB54G Portable */ @@ -80,6 +82,7 @@ {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 */ + {USB_DEVICE(0x083a, 0xc501)}, /* Zoom Wireless-G 4410 */ {USB_DEVICE(0x083a, 0xf503)}, /* Accton FD7050E ver 1010ec */ {USB_DEVICE(0x0846, 0x4240)}, /* Netgear WG111 (v2) */ {USB_DEVICE(0x0915, 0x2000)}, /* Cohiba Proto board */ --- linux-2.6.38.orig/drivers/net/wireless/wl12xx/testmode.c +++ linux-2.6.38/drivers/net/wireless/wl12xx/testmode.c @@ -204,7 +204,10 @@ kfree(wl->nvs); - wl->nvs = kzalloc(sizeof(struct wl1271_nvs_file), GFP_KERNEL); + if (len != sizeof(struct wl1271_nvs_file)) + return -EINVAL; + + wl->nvs = kzalloc(len, GFP_KERNEL); if (!wl->nvs) { wl1271_error("could not allocate memory for the nvs file"); ret = -ENOMEM; --- linux-2.6.38.orig/drivers/net/wireless/b43/dma.c +++ linux-2.6.38/drivers/net/wireless/b43/dma.c @@ -1536,7 +1536,7 @@ dmaaddr = meta->dmaaddr; goto drop_recycle_buffer; } - if (unlikely(len > ring->rx_buffersize)) { + if (unlikely(len + ring->frameoffset > ring->rx_buffersize)) { /* The data did not fit into one descriptor buffer * and is split over multiple buffers. * This should never happen, as we try to allocate buffers --- linux-2.6.38.orig/drivers/net/wireless/b43/dma.h +++ linux-2.6.38/drivers/net/wireless/b43/dma.h @@ -163,7 +163,7 @@ /* DMA engine tuning knobs */ #define B43_TXRING_SLOTS 256 #define B43_RXRING_SLOTS 64 -#define B43_DMA0_RX_BUFFERSIZE IEEE80211_MAX_FRAME_LEN +#define B43_DMA0_RX_BUFFERSIZE (B43_DMA0_RX_FRAMEOFFSET + IEEE80211_MAX_FRAME_LEN) /* Pointer poison */ #define B43_DMA_PTR_POISON ((void *)ERR_PTR(-ENOMEM)) --- linux-2.6.38.orig/drivers/net/wireless/rt2x00/rt2800pci.c +++ linux-2.6.38/drivers/net/wireless/rt2x00/rt2800pci.c @@ -475,39 +475,23 @@ static void rt2800pci_disable_radio(struct rt2x00_dev *rt2x00dev) { - u32 reg; - - rt2800_disable_radio(rt2x00dev); - - rt2800_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00001280); - - rt2800_register_read(rt2x00dev, WPDMA_RST_IDX, ®); - rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX0, 1); - rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX1, 1); - rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX2, 1); - rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX3, 1); - rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX4, 1); - rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX5, 1); - rt2x00_set_field32(®, WPDMA_RST_IDX_DRX_IDX0, 1); - rt2800_register_write(rt2x00dev, WPDMA_RST_IDX, reg); - - rt2800_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00000e1f); - rt2800_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00000e00); + if (rt2x00_is_soc(rt2x00dev)) { + rt2800_disable_radio(rt2x00dev); + rt2800_register_write(rt2x00dev, PWR_PIN_CFG, 0); + rt2800_register_write(rt2x00dev, TX_PIN_CFG, 0); + } } static int rt2800pci_set_state(struct rt2x00_dev *rt2x00dev, enum dev_state state) { - /* - * Always put the device to sleep (even when we intend to wakeup!) - * if the device is booting and wasn't asleep it will return - * failure when attempting to wakeup. - */ - rt2800_mcu_request(rt2x00dev, MCU_SLEEP, 0xff, 0xff, 2); - if (state == STATE_AWAKE) { - rt2800_mcu_request(rt2x00dev, MCU_WAKEUP, TOKEN_WAKUP, 0, 0); + rt2800_mcu_request(rt2x00dev, MCU_WAKEUP, TOKEN_WAKUP, 0, 0x02); rt2800pci_mcu_status(rt2x00dev, TOKEN_WAKUP); + } else if (state == STATE_SLEEP) { + rt2800_register_write(rt2x00dev, H2M_MAILBOX_STATUS, 0xffffffff); + rt2800_register_write(rt2x00dev, H2M_MAILBOX_CID, 0xffffffff); + rt2800_mcu_request(rt2x00dev, MCU_SLEEP, 0x01, 0xff, 0x01); } return 0; --- linux-2.6.38.orig/drivers/net/wireless/rt2x00/rt2x00queue.h +++ linux-2.6.38/drivers/net/wireless/rt2x00/rt2x00queue.h @@ -422,6 +422,7 @@ * @flags: Entry flags, see &enum queue_entry_flags. * @status_lock: The mutex for protecting the start/stop/flush * handling on this queue. + * @tx_lock: Spinlock to serialize tx operations on this queue. * @index_lock: Spinlock to protect index handling. Whenever @index, @index_done or * @index_crypt needs to be changed this lock should be grabbed to prevent * index corruption due to concurrency. @@ -448,6 +449,7 @@ unsigned long flags; struct mutex status_lock; + spinlock_t tx_lock; spinlock_t index_lock; unsigned int count; --- linux-2.6.38.orig/drivers/net/wireless/rt2x00/rt2x00queue.c +++ linux-2.6.38/drivers/net/wireless/rt2x00/rt2x00queue.c @@ -478,13 +478,22 @@ bool local) { struct ieee80211_tx_info *tx_info; - struct queue_entry *entry = rt2x00queue_get_entry(queue, Q_INDEX); + struct queue_entry *entry; struct txentry_desc txdesc; struct skb_frame_desc *skbdesc; u8 rate_idx, rate_flags; + int ret = 0; - if (unlikely(rt2x00queue_full(queue))) - return -ENOBUFS; + spin_lock(&queue->tx_lock); + + entry = rt2x00queue_get_entry(queue, Q_INDEX); + + if (unlikely(rt2x00queue_full(queue))) { + ERROR(queue->rt2x00dev, + "Dropping frame due to full tx queue %d.\n", queue->qid); + ret = -ENOBUFS; + goto out; + } if (unlikely(test_and_set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags))) { @@ -492,7 +501,8 @@ "Arrived at non-free entry in the non-full queue %d.\n" "Please file bug report to %s.\n", queue->qid, DRV_PROJECT); - return -EINVAL; + ret = -EINVAL; + goto out; } /* @@ -554,7 +564,8 @@ if (unlikely(rt2x00queue_write_tx_data(entry, &txdesc))) { clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags); entry->skb = NULL; - return -EIO; + ret = -EIO; + goto out; } set_bit(ENTRY_DATA_PENDING, &entry->flags); @@ -563,7 +574,9 @@ rt2x00queue_write_tx_descriptor(entry, &txdesc); rt2x00queue_kick_tx_queue(queue, &txdesc); - return 0; +out: + spin_unlock(&queue->tx_lock); + return ret; } int rt2x00queue_update_beacon(struct rt2x00_dev *rt2x00dev, @@ -1099,6 +1112,7 @@ struct data_queue *queue, enum data_queue_qid qid) { mutex_init(&queue->status_lock); + spin_lock_init(&queue->tx_lock); spin_lock_init(&queue->index_lock); queue->rt2x00dev = rt2x00dev; --- linux-2.6.38.orig/drivers/net/wireless/rt2x00/rt2x00dev.c +++ linux-2.6.38/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -1031,8 +1031,10 @@ * Stop all work. */ cancel_work_sync(&rt2x00dev->intf_work); - cancel_work_sync(&rt2x00dev->rxdone_work); - cancel_work_sync(&rt2x00dev->txdone_work); + if (rt2x00_is_usb(rt2x00dev)) { + cancel_work_sync(&rt2x00dev->rxdone_work); + cancel_work_sync(&rt2x00dev->txdone_work); + } /* * Free the tx status fifo. --- linux-2.6.38.orig/drivers/net/wireless/rt2x00/rt2800lib.c +++ linux-2.6.38/drivers/net/wireless/rt2x00/rt2800lib.c @@ -2810,10 +2810,7 @@ rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, ®); rt2x00_set_field32(®, WPDMA_GLO_CFG_ENABLE_TX_DMA, 0); - rt2x00_set_field32(®, WPDMA_GLO_CFG_TX_DMA_BUSY, 0); rt2x00_set_field32(®, WPDMA_GLO_CFG_ENABLE_RX_DMA, 0); - rt2x00_set_field32(®, WPDMA_GLO_CFG_RX_DMA_BUSY, 0); - rt2x00_set_field32(®, WPDMA_GLO_CFG_TX_WRITEBACK_DONE, 1); rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg); /* Wait for DMA, ignore error */ @@ -2823,9 +2820,6 @@ rt2x00_set_field32(®, MAC_SYS_CTRL_ENABLE_TX, 0); rt2x00_set_field32(®, MAC_SYS_CTRL_ENABLE_RX, 0); rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, reg); - - rt2800_register_write(rt2x00dev, PWR_PIN_CFG, 0); - rt2800_register_write(rt2x00dev, TX_PIN_CFG, 0); } EXPORT_SYMBOL_GPL(rt2800_disable_radio); --- linux-2.6.38.orig/drivers/net/wireless/libertas/cmd.c +++ linux-2.6.38/drivers/net/wireless/libertas/cmd.c @@ -1335,8 +1335,8 @@ cpu_to_le16(PS_MODE_ACTION_EXIT_PS)) { lbs_deb_host( "EXEC_NEXT_CMD: ignore ENTER_PS cmd\n"); - list_del(&cmdnode->list); spin_lock_irqsave(&priv->driver_lock, flags); + list_del(&cmdnode->list); lbs_complete_command(priv, cmdnode, 0); spin_unlock_irqrestore(&priv->driver_lock, flags); @@ -1348,8 +1348,8 @@ (priv->psstate == PS_STATE_PRE_SLEEP)) { lbs_deb_host( "EXEC_NEXT_CMD: ignore EXIT_PS cmd in sleep\n"); - list_del(&cmdnode->list); spin_lock_irqsave(&priv->driver_lock, flags); + list_del(&cmdnode->list); lbs_complete_command(priv, cmdnode, 0); spin_unlock_irqrestore(&priv->driver_lock, flags); priv->needtowakeup = 1; @@ -1362,7 +1362,9 @@ "EXEC_NEXT_CMD: sending EXIT_PS\n"); } } + spin_lock_irqsave(&priv->driver_lock, flags); list_del(&cmdnode->list); + spin_unlock_irqrestore(&priv->driver_lock, flags); lbs_deb_host("EXEC_NEXT_CMD: sending command 0x%04x\n", le16_to_cpu(cmd->command)); lbs_submit_command(priv, cmdnode); --- linux-2.6.38.orig/drivers/net/wireless/rtlwifi/base.c +++ linux-2.6.38/drivers/net/wireless/rtlwifi/base.c @@ -251,14 +251,16 @@ bool blocked; u8 valid = 0; - radio_state = rtlpriv->cfg->ops->radio_onoff_checking(hw, &valid); + /*set init state to on */ + rtlpriv->rfkill.rfkill_state = 1; + wiphy_rfkill_set_hw_state(hw->wiphy, 0); - /*set init state to that of switch */ - rtlpriv->rfkill.rfkill_state = radio_state; - printk(KERN_INFO "rtlwifi: wireless switch is %s\n", - rtlpriv->rfkill.rfkill_state ? "on" : "off"); + radio_state = rtlpriv->cfg->ops->radio_onoff_checking(hw, &valid); if (valid) { + printk(KERN_INFO "rtlwifi: wireless switch is %s\n", + rtlpriv->rfkill.rfkill_state ? "on" : "off"); + rtlpriv->rfkill.rfkill_state = radio_state; blocked = (rtlpriv->rfkill.rfkill_state == 1) ? 0 : 1; --- linux-2.6.38.orig/drivers/net/wireless/rtlwifi/pci.c +++ linux-2.6.38/drivers/net/wireless/rtlwifi/pci.c @@ -1878,7 +1878,8 @@ rtl_pci_deinit(hw); rtl_deinit_core(hw); - rtlpriv->cfg->ops->deinit_sw_leds(hw); + if (rtlpriv->cfg->ops->deinit_sw_leds) + rtlpriv->cfg->ops->deinit_sw_leds(hw); _rtl_pci_io_handler_release(hw); rtlpriv->cfg->ops->deinit_sw_vars(hw); --- linux-2.6.38.orig/drivers/net/wireless/rtlwifi/rtl8192ce/led.c +++ linux-2.6.38/drivers/net/wireless/rtlwifi/rtl8192ce/led.c @@ -32,6 +32,14 @@ #include "reg.h" #include "led.h" +static void _rtl92ce_init_led(struct ieee80211_hw *hw, + struct rtl_led *pled, enum rtl_led_pin ledpin) +{ + pled->hw = hw; + pled->ledpin = ledpin; + pled->b_ledon = false; +} + void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled) { u8 ledcfg; @@ -97,10 +105,10 @@ void rtl92ce_init_sw_leds(struct ieee80211_hw *hw) { -} + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); -void rtl92ce_deinit_sw_leds(struct ieee80211_hw *hw) -{ + _rtl92ce_init_led(hw, &(pcipriv->ledctl.sw_led0), LED_PIN_LED0); + _rtl92ce_init_led(hw, &(pcipriv->ledctl.sw_led1), LED_PIN_LED1); } void _rtl92ce_sw_led_control(struct ieee80211_hw *hw, --- linux-2.6.38.orig/drivers/net/wireless/rtlwifi/rtl8192ce/led.h +++ linux-2.6.38/drivers/net/wireless/rtlwifi/rtl8192ce/led.h @@ -31,7 +31,6 @@ #define __RTL92CE_LED_H__ void rtl92ce_init_sw_leds(struct ieee80211_hw *hw); -void rtl92ce_deinit_sw_leds(struct ieee80211_hw *hw); void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled); void rtl92ce_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled); void rtl92ce_led_control(struct ieee80211_hw *hw, enum led_ctl_mode ledaction); --- linux-2.6.38.orig/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c +++ linux-2.6.38/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c @@ -130,7 +130,6 @@ .enable_hw_sec = rtl92ce_enable_hw_security_config, .set_key = rtl92ce_set_key, .init_sw_leds = rtl92ce_init_sw_leds, - .deinit_sw_leds = rtl92ce_deinit_sw_leds, .get_bbreg = rtl92c_phy_query_bb_reg, .set_bbreg = rtl92c_phy_set_bb_reg, .get_rfreg = rtl92c_phy_query_rf_reg, --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-agn-tx.c @@ -561,12 +561,17 @@ hdr_len = ieee80211_hdrlen(fc); - /* Find index into station table for destination station */ - sta_id = iwl_sta_id_or_broadcast(priv, ctx, info->control.sta); - if (sta_id == IWL_INVALID_STATION) { - IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n", - hdr->addr1); - goto drop_unlock; + /* For management frames use broadcast id to do not break aggregation */ + if (!ieee80211_is_data(fc)) + sta_id = ctx->bcast_sta_id; + else { + /* Find index into station table for destination station */ + sta_id = iwl_sta_id_or_broadcast(priv, ctx, info->control.sta); + if (sta_id == IWL_INVALID_STATION) { + IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n", + hdr->addr1); + goto drop_unlock; + } } IWL_DEBUG_TX(priv, "station Id %d\n", sta_id); @@ -1207,12 +1212,16 @@ q->read_ptr = iwl_queue_inc_wrap(q->read_ptr, q->n_bd)) { tx_info = &txq->txb[txq->q.read_ptr]; - iwlagn_tx_status(priv, tx_info, - txq_id >= IWLAGN_FIRST_AMPDU_QUEUE); + + if (WARN_ON_ONCE(tx_info->skb == NULL)) + continue; hdr = (struct ieee80211_hdr *)tx_info->skb->data; - if (hdr && ieee80211_is_data_qos(hdr->frame_control)) + if (ieee80211_is_data_qos(hdr->frame_control)) nfreed++; + + iwlagn_tx_status(priv, tx_info, + txq_id >= IWLAGN_FIRST_AMPDU_QUEUE); tx_info->skb = NULL; if (priv->cfg->ops->lib->txq_inval_byte_cnt_tbl) --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-rx.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-rx.c @@ -234,10 +234,13 @@ void iwl_recover_from_statistics(struct iwl_priv *priv, struct iwl_rx_packet *pkt) { + const struct iwl_mod_params *mod_params = priv->cfg->mod_params; + if (test_bit(STATUS_EXIT_PENDING, &priv->status)) return; if (iwl_is_any_associated(priv)) { - if (priv->cfg->ops->lib->check_ack_health) { + if (mod_params->ack_check && + priv->cfg->ops->lib->check_ack_health) { if (!priv->cfg->ops->lib->check_ack_health( priv, pkt)) { /* @@ -250,7 +253,8 @@ return; } } - if (priv->cfg->ops->lib->check_plcp_health) { + if (mod_params->plcp_check && + priv->cfg->ops->lib->check_plcp_health) { if (!priv->cfg->ops->lib->check_plcp_health( priv, pkt)) { /* --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-agn-lib.c @@ -604,6 +604,7 @@ struct iwl_mod_params iwlagn_mod_params = { .amsdu_size_8K = 1, .restart_fw = 1, + .plcp_check = true, /* the rest are 0 by default */ }; --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-eeprom.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-eeprom.c @@ -724,13 +724,6 @@ flags & EEPROM_CHANNEL_RADAR)) ? "" : "not "); - /* Set the tx_power_user_lmt to the highest power - * supported by any channel */ - if (eeprom_ch_info[ch].max_power_avg > - priv->tx_power_user_lmt) - priv->tx_power_user_lmt = - eeprom_ch_info[ch].max_power_avg; - ch_info++; } } --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-dev.h +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-dev.h @@ -1604,21 +1604,24 @@ ctx < &priv->contexts[NUM_IWL_RXON_CTX]; ctx++) \ if (priv->valid_contexts & BIT(ctx->ctxid)) -static inline int iwl_is_associated(struct iwl_priv *priv, - enum iwl_rxon_context_id ctxid) +static inline int iwl_is_associated_ctx(struct iwl_rxon_context *ctx) { - return (priv->contexts[ctxid].active.filter_flags & - RXON_FILTER_ASSOC_MSK) ? 1 : 0; + return (ctx->active.filter_flags & RXON_FILTER_ASSOC_MSK) ? 1 : 0; } -static inline int iwl_is_any_associated(struct iwl_priv *priv) +static inline int iwl_is_associated(struct iwl_priv *priv, + enum iwl_rxon_context_id ctxid) { - return iwl_is_associated(priv, IWL_RXON_CTX_BSS); + return iwl_is_associated_ctx(&priv->contexts[ctxid]); } -static inline int iwl_is_associated_ctx(struct iwl_rxon_context *ctx) +static inline int iwl_is_any_associated(struct iwl_priv *priv) { - return (ctx->active.filter_flags & RXON_FILTER_ASSOC_MSK) ? 1 : 0; + struct iwl_rxon_context *ctx; + for_each_context(priv, ctx) + if (iwl_is_associated_ctx(ctx)) + return true; + return false; } static inline int is_channel_valid(const struct iwl_channel_info *ch_info) --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-4965.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-4965.c @@ -1571,7 +1571,7 @@ /* If we issue a new RXON command which required a tune then we must * send a new TXPOWER command or we won't be able to Tx any frames */ - ret = iwl_set_tx_power(priv, priv->tx_power_user_lmt, true); + ret = iwl_set_tx_power(priv, priv->tx_power_next, true); if (ret) { IWL_ERR(priv, "Error sending TX power (%d)\n", ret); return ret; --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-eeprom.h +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-eeprom.h @@ -241,7 +241,7 @@ /* 6x00 Specific */ #define EEPROM_6000_TX_POWER_VERSION (4) -#define EEPROM_6000_EEPROM_VERSION (0x434) +#define EEPROM_6000_EEPROM_VERSION (0x423) /* 6x50 Specific */ #define EEPROM_6050_TX_POWER_VERSION (4) --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-core.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-core.c @@ -168,6 +168,7 @@ struct ieee80211_channel *geo_ch; struct ieee80211_rate *rates; int i = 0; + s8 max_tx_power = 0; if (priv->bands[IEEE80211_BAND_2GHZ].n_bitrates || priv->bands[IEEE80211_BAND_5GHZ].n_bitrates) { @@ -244,8 +245,8 @@ geo_ch->flags |= ch->ht40_extension_channel; - if (ch->max_power_avg > priv->tx_power_device_lmt) - priv->tx_power_device_lmt = ch->max_power_avg; + if (ch->max_power_avg > max_tx_power) + max_tx_power = ch->max_power_avg; } else { geo_ch->flags |= IEEE80211_CHAN_DISABLED; } @@ -258,6 +259,10 @@ geo_ch->flags); } + priv->tx_power_device_lmt = max_tx_power; + priv->tx_power_user_lmt = max_tx_power; + priv->tx_power_next = max_tx_power; + if ((priv->bands[IEEE80211_BAND_5GHZ].n_channels == 0) && priv->cfg->sku & IWL_SKU_A) { IWL_INFO(priv, "Incorrectly detected BG card as ABG. " @@ -1161,6 +1166,8 @@ { int ret; s8 prev_tx_power; + bool defer; + struct iwl_rxon_context *ctx = &priv->contexts[IWL_RXON_CTX_BSS]; lockdep_assert_held(&priv->mutex); @@ -1188,10 +1195,15 @@ if (!iwl_is_ready_rf(priv)) return -EIO; - /* scan complete use tx_power_next, need to be updated */ + /* scan complete and commit_rxon use tx_power_next value, + * it always need to be updated for newest request */ priv->tx_power_next = tx_power; - if (test_bit(STATUS_SCANNING, &priv->status) && !force) { - IWL_DEBUG_INFO(priv, "Deferring tx power set while scanning\n"); + + /* do not set tx power when scanning or channel changing */ + defer = test_bit(STATUS_SCANNING, &priv->status) || + memcmp(&ctx->active, &ctx->staging, sizeof(ctx->staging)); + if (defer && !force) { + IWL_DEBUG_INFO(priv, "Deferring tx power set\n"); return 0; } @@ -1867,6 +1879,15 @@ mutex_lock(&priv->mutex); + if (!ctx->vif || !iwl_is_ready_rf(priv)) { + /* + * Huh? But wait ... this can maybe happen when + * we're in the middle of a firmware restart! + */ + err = -EBUSY; + goto out; + } + interface_modes = ctx->interface_modes | ctx->exclusive_interface_modes; if (!(interface_modes & BIT(newtype))) { @@ -1894,6 +1915,7 @@ /* success */ iwl_teardown_interface(priv, vif, true); vif->type = newtype; + vif->p2p = newp2p; err = iwl_setup_interface(priv, ctx); WARN_ON(err); /* --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c @@ -288,10 +288,9 @@ * If we issue a new RXON command which required a tune then we must * send a new TXPOWER command or we won't be able to Tx any frames. * - * FIXME: which RXON requires a tune? Can we optimise this out in - * some cases? + * It's expected we set power here if channel is changing. */ - ret = iwl_set_tx_power(priv, priv->tx_power_user_lmt, true); + ret = iwl_set_tx_power(priv, priv->tx_power_next, true); if (ret) { IWL_ERR(priv, "Error sending TX power (%d)\n", ret); return ret; --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl3945-base.c @@ -94,6 +94,7 @@ struct iwl_mod_params iwl3945_mod_params = { .sw_crypto = 1, .restart_fw = 1, + .disable_hw_scan = 1, /* the rest are 0 by default */ }; @@ -3858,10 +3859,6 @@ priv->force_reset[IWL_FW_RESET].reset_duration = IWL_DELAY_NEXT_FORCE_FW_RELOAD; - - priv->tx_power_user_lmt = IWL_DEFAULT_TX_POWER; - priv->tx_power_next = IWL_DEFAULT_TX_POWER; - if (eeprom->version < EEPROM_3945_EEPROM_VERSION) { IWL_WARN(priv, "Unsupported EEPROM version: 0x%04X\n", eeprom->version); @@ -3995,8 +3992,7 @@ * "the hard way", rather than using device's scan. */ if (iwl3945_mod_params.disable_hw_scan) { - dev_printk(KERN_DEBUG, &(pdev->dev), - "sw scan support is deprecated\n"); + IWL_DEBUG_INFO(priv, "Disabling hw_scan\n"); iwl3945_hw_ops.hw_scan = NULL; } @@ -4318,8 +4314,7 @@ #endif module_param_named(disable_hw_scan, iwl3945_mod_params.disable_hw_scan, int, S_IRUGO); -MODULE_PARM_DESC(disable_hw_scan, - "disable hardware scanning (default 0) (deprecated)"); +MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 1)"); module_param_named(fw_restart3945, iwl3945_mod_params.restart_fw, int, S_IRUGO); MODULE_PARM_DESC(fw_restart3945, "restart firmware in case of error"); --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-3945-hw.h +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-3945-hw.h @@ -74,8 +74,6 @@ /* RSSI to dBm */ #define IWL39_RSSI_OFFSET 95 -#define IWL_DEFAULT_TX_POWER 0x0F - /* * EEPROM related constants, enums, and structures. */ --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-core.h +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-core.h @@ -263,6 +263,8 @@ int amsdu_size_8K; /* def: 1 = enable 8K amsdu size */ int antenna; /* def: 0 = both antennas (use diversity) */ int restart_fw; /* def: 1 = restart firmware */ + bool plcp_check; /* def: true = enable plcp health check */ + bool ack_check; /* def: false = disable ack health check */ }; /* --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-legacy.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-legacy.c @@ -123,6 +123,13 @@ goto set_ch_out; } + if (priv->iw_mode == NL80211_IFTYPE_ADHOC && + !is_channel_ibss(ch_info)) { + IWL_DEBUG_MAC80211(priv, "leave - not IBSS channel\n"); + ret = -EINVAL; + goto set_ch_out; + } + spin_lock_irqsave(&priv->lock, flags); for_each_context(priv, ctx) { --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-agn.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-agn.c @@ -3841,12 +3841,6 @@ priv->dynamic_frag_thresh = BT_FRAG_THRESHOLD_DEF; } - /* Set the tx_power_user_lmt to the lowest power level - * this value will get overwritten by channel max power avg - * from eeprom */ - priv->tx_power_user_lmt = IWLAGN_TX_POWER_TARGET_POWER_MIN; - priv->tx_power_next = IWLAGN_TX_POWER_TARGET_POWER_MIN; - ret = iwl_init_channel_map(priv); if (ret) { IWL_ERR(priv, "initializing regulatory failed: %d\n", ret); @@ -4592,3 +4586,9 @@ module_param_named(bt_ch_inhibition, iwlagn_bt_ch_announce, bool, S_IRUGO); MODULE_PARM_DESC(bt_ch_inhibition, "Disable BT channel inhibition (default: enable)"); + +module_param_named(plcp_check, iwlagn_mod_params.plcp_check, bool, S_IRUGO); +MODULE_PARM_DESC(plcp_check, "Check plcp health (default: 1 [enabled])"); + +module_param_named(ack_check, iwlagn_mod_params.ack_check, bool, S_IRUGO); +MODULE_PARM_DESC(ack_check, "Check ack health (default: 0 [disabled])"); --- linux-2.6.38.orig/drivers/net/wireless/iwlwifi/iwl-3945.c +++ linux-2.6.38/drivers/net/wireless/iwlwifi/iwl-3945.c @@ -1823,7 +1823,7 @@ /* If we issue a new RXON command which required a tune then we must * send a new TXPOWER command or we won't be able to Tx any frames */ - rc = priv->cfg->ops->lib->send_tx_power(priv); + rc = iwl_set_tx_power(priv, priv->tx_power_next, true); if (rc) { IWL_ERR(priv, "Error setting Tx power (%d).\n", rc); return rc; --- linux-2.6.38.orig/drivers/net/wireless/ath/regd_common.h +++ linux-2.6.38/drivers/net/wireless/ath/regd_common.h @@ -195,6 +195,7 @@ {APL9_WORLD, CTL_ETSI, CTL_ETSI}, {APL3_FCCA, CTL_FCC, CTL_FCC}, + {APL7_FCCA, CTL_FCC, CTL_FCC}, {APL1_ETSIC, CTL_FCC, CTL_ETSI}, {APL2_ETSIC, CTL_FCC, CTL_ETSI}, {APL2_APLD, CTL_FCC, NO_CTL}, --- linux-2.6.38.orig/drivers/net/wireless/ath/ath9k/hw.c +++ linux-2.6.38/drivers/net/wireless/ath/ath9k/hw.c @@ -495,6 +495,17 @@ if (ah->hw_version.devid == AR5416_AR9100_DEVID) ah->hw_version.macVersion = AR_SREV_VERSION_9100; + /* + * Read back AR_WA into a permanent copy and set bits 14 and 17. + * We need to do this to avoid RMW of this register. We cannot + * read the reg when chip is asleep. + */ + ah->WARegVal = REG_READ(ah, AR_WA); + ah->WARegVal |= (AR_WA_D3_L1_DISABLE | + AR_WA_ASPM_TIMER_BASED_DISABLE); + + ath9k_hw_read_revisions(ah); + if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_POWER_ON)) { ath_err(common, "Couldn't reset chip\n"); return -EIO; @@ -563,14 +574,6 @@ ath9k_hw_init_mode_regs(ah); - /* - * Read back AR_WA into a permanent copy and set bits 14 and 17. - * We need to do this to avoid RMW of this register. We cannot - * read the reg when chip is asleep. - */ - ah->WARegVal = REG_READ(ah, AR_WA); - ah->WARegVal |= (AR_WA_D3_L1_DISABLE | - AR_WA_ASPM_TIMER_BASED_DISABLE); if (ah->is_pciexpress) ath9k_hw_configpcipowersave(ah, 0, 0); @@ -1082,8 +1085,6 @@ return false; } - ath9k_hw_read_revisions(ah); - return ath9k_hw_set_reset(ah, ATH9K_RESET_WARM); } @@ -1217,15 +1218,6 @@ ah->txchainmask = common->tx_chainmask; ah->rxchainmask = common->rx_chainmask; - if ((common->bus_ops->ath_bus_type != ATH_USB) && !ah->chip_fullsleep) { - ath9k_hw_abortpcurecv(ah); - if (!ath9k_hw_stopdmarecv(ah)) { - ath_dbg(common, ATH_DBG_XMIT, - "Failed to stop receive dma\n"); - bChannelChange = false; - } - } - if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) return -EIO; --- linux-2.6.38.orig/drivers/net/wireless/ath/ath9k/mac.c +++ linux-2.6.38/drivers/net/wireless/ath/ath9k/mac.c @@ -690,17 +690,23 @@ rs->rs_flags |= ATH9K_RX_DECRYPT_BUSY; if ((ads.ds_rxstatus8 & AR_RxFrameOK) == 0) { + /* + * Treat these errors as mutually exclusive to avoid spurious + * extra error reports from the hardware. If a CRC error is + * reported, then decryption and MIC errors are irrelevant, + * the frame is going to be dropped either way + */ if (ads.ds_rxstatus8 & AR_CRCErr) rs->rs_status |= ATH9K_RXERR_CRC; - if (ads.ds_rxstatus8 & AR_PHYErr) { + else if (ads.ds_rxstatus8 & AR_PHYErr) { rs->rs_status |= ATH9K_RXERR_PHY; phyerr = MS(ads.ds_rxstatus8, AR_PHYErrCode); rs->rs_phyerr = phyerr; - } - if (ads.ds_rxstatus8 & AR_DecryptCRCErr) + } else if (ads.ds_rxstatus8 & AR_DecryptCRCErr) rs->rs_status |= ATH9K_RXERR_DECRYPT; - if (ads.ds_rxstatus8 & AR_MichaelErr) + else if (ads.ds_rxstatus8 & AR_MichaelErr) rs->rs_status |= ATH9K_RXERR_MIC; + if (ads.ds_rxstatus8 & AR_KeyMiss) rs->rs_status |= ATH9K_RXERR_DECRYPT; } @@ -770,28 +776,47 @@ } EXPORT_SYMBOL(ath9k_hw_abortpcurecv); -bool ath9k_hw_stopdmarecv(struct ath_hw *ah) +bool ath9k_hw_stopdmarecv(struct ath_hw *ah, bool *reset) { #define AH_RX_STOP_DMA_TIMEOUT 10000 /* usec */ #define AH_RX_TIME_QUANTUM 100 /* usec */ struct ath_common *common = ath9k_hw_common(ah); + u32 mac_status, last_mac_status = 0; int i; + /* Enable access to the DMA observation bus */ + REG_WRITE(ah, AR_MACMISC, + ((AR_MACMISC_DMA_OBS_LINE_8 << AR_MACMISC_DMA_OBS_S) | + (AR_MACMISC_MISC_OBS_BUS_1 << + AR_MACMISC_MISC_OBS_BUS_MSB_S))); + REG_WRITE(ah, AR_CR, AR_CR_RXD); /* Wait for rx enable bit to go low */ for (i = AH_RX_STOP_DMA_TIMEOUT / AH_TIME_QUANTUM; i != 0; i--) { if ((REG_READ(ah, AR_CR) & AR_CR_RXE) == 0) break; + + if (!AR_SREV_9300_20_OR_LATER(ah)) { + mac_status = REG_READ(ah, AR_DMADBG_7) & 0x7f0; + if (mac_status == 0x1c0 && mac_status == last_mac_status) { + *reset = true; + break; + } + + last_mac_status = mac_status; + } + udelay(AH_TIME_QUANTUM); } if (i == 0) { ath_err(common, - "DMA failed to stop in %d ms AR_CR=0x%08x AR_DIAG_SW=0x%08x\n", + "DMA failed to stop in %d ms AR_CR=0x%08x AR_DIAG_SW=0x%08x DMADBG_7=0x%08x\n", AH_RX_STOP_DMA_TIMEOUT / 1000, REG_READ(ah, AR_CR), - REG_READ(ah, AR_DIAG_SW)); + REG_READ(ah, AR_DIAG_SW), + REG_READ(ah, AR_DMADBG_7)); return false; } else { return true; --- linux-2.6.38.orig/drivers/net/wireless/ath/ath9k/recv.c +++ linux-2.6.38/drivers/net/wireless/ath/ath9k/recv.c @@ -439,9 +439,7 @@ * mode interface or when in monitor mode. AP mode does not need this * since it receives all in-BSS frames anyway. */ - if (((sc->sc_ah->opmode != NL80211_IFTYPE_AP) && - (sc->rx.rxfilter & FIF_PROMISC_IN_BSS)) || - (sc->sc_ah->is_monitoring)) + if (sc->sc_ah->is_monitoring) rfilt |= ATH9K_RX_FILTER_PROM; if (sc->rx.rxfilter & FIF_CONTROL) @@ -515,12 +513,12 @@ bool ath_stoprecv(struct ath_softc *sc) { struct ath_hw *ah = sc->sc_ah; - bool stopped; + bool stopped, reset = false; spin_lock_bh(&sc->rx.rxbuflock); ath9k_hw_abortpcurecv(ah); ath9k_hw_setrxfilter(ah, 0); - stopped = ath9k_hw_stopdmarecv(ah); + stopped = ath9k_hw_stopdmarecv(ah, &reset); if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) ath_edma_stop_recv(sc); @@ -535,7 +533,7 @@ "confusing the DMA engine when we start RX up\n"); ATH_DBG_WARN_ON_ONCE(!stopped); } - return stopped; + return stopped && !reset; } void ath_flushrecv(struct ath_softc *sc) --- linux-2.6.38.orig/drivers/net/wireless/ath/ath9k/mac.h +++ linux-2.6.38/drivers/net/wireless/ath/ath9k/mac.h @@ -692,7 +692,7 @@ void ath9k_hw_putrxbuf(struct ath_hw *ah, u32 rxdp); void ath9k_hw_startpcureceive(struct ath_hw *ah, bool is_scanning); void ath9k_hw_abortpcurecv(struct ath_hw *ah); -bool ath9k_hw_stopdmarecv(struct ath_hw *ah); +bool ath9k_hw_stopdmarecv(struct ath_hw *ah, bool *reset); int ath9k_hw_beaconq_setup(struct ath_hw *ah); /* Interrupt Handling */ --- linux-2.6.38.orig/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +++ linux-2.6.38/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c @@ -652,7 +652,7 @@ .regDmn = { LE16(0), LE16(0x1f) }, .txrxMask = 0x77, /* 4 bits tx and 4 bits rx */ .opCapFlags = { - .opFlags = AR5416_OPFLAGS_11G | AR5416_OPFLAGS_11A, + .opFlags = AR5416_OPFLAGS_11A, .eepMisc = 0, }, .rfSilent = 0, @@ -922,7 +922,7 @@ .db_stage2 = {3, 3, 3}, /* 3 chain */ .db_stage3 = {3, 3, 3}, /* doesn't exist for 2G */ .db_stage4 = {3, 3, 3}, /* don't exist for 2G */ - .xpaBiasLvl = 0, + .xpaBiasLvl = 0xf, .txFrameToDataStart = 0x0e, .txFrameToPaOn = 0x0e, .txClip = 3, /* 4 bits tx_clip, 4 bits dac_scale_cck */ @@ -3994,6 +3994,16 @@ POW_SM(pPwrArray[ALL_TARGET_LEGACY_1L_5L], 0) ); + /* Write the power for duplicated frames - HT40 */ + + /* dup40_cck (LSB), dup40_ofdm, ext20_cck, ext20_ofdm (MSB) */ + REG_WRITE(ah, 0xa3e0, + POW_SM(pPwrArray[ALL_TARGET_LEGACY_6_24], 24) | + POW_SM(pPwrArray[ALL_TARGET_LEGACY_1L_5L], 16) | + POW_SM(pPwrArray[ALL_TARGET_LEGACY_6_24], 8) | + POW_SM(pPwrArray[ALL_TARGET_LEGACY_1L_5L], 0) + ); + /* Write the HT20 power per rate set */ /* 0/8/16 (LSB), 1-3/9-11/17-19, 4, 5 (MSB) */ --- linux-2.6.38.orig/drivers/net/wireless/ath/ath9k/main.c +++ linux-2.6.38/drivers/net/wireless/ath/ath9k/main.c @@ -1063,6 +1063,8 @@ "Starting driver with initial channel: %d MHz\n", curchan->center_freq); + ath9k_ps_wakeup(sc); + mutex_lock(&sc->mutex); if (ath9k_wiphy_started(sc)) { @@ -1179,6 +1181,8 @@ mutex_unlock: mutex_unlock(&sc->mutex); + ath9k_ps_restore(sc); + return r; } --- linux-2.6.38.orig/drivers/net/wireless/ath/ath9k/xmit.c +++ linux-2.6.38/drivers/net/wireless/ath/ath9k/xmit.c @@ -1699,8 +1699,8 @@ u8 tidno; spin_lock_bh(&txctl->txq->axq_lock); - - if (ieee80211_is_data_qos(hdr->frame_control) && txctl->an) { + if ((sc->sc_flags & SC_OP_TXAGGR) && txctl->an && + ieee80211_is_data_qos(hdr->frame_control)) { tidno = ieee80211_get_qos_ctl(hdr)[0] & IEEE80211_QOS_CTL_TID_MASK; tid = ATH_AN_2_TID(txctl->an, tidno); --- linux-2.6.38.orig/drivers/net/wireless/ath/ath9k/calib.c +++ linux-2.6.38/drivers/net/wireless/ath/ath9k/calib.c @@ -69,15 +69,21 @@ int16_t *nfarray) { struct ath_common *common = ath9k_hw_common(ah); + struct ieee80211_conf *conf = &common->hw->conf; struct ath_nf_limits *limit; struct ath9k_nfcal_hist *h; bool high_nf_mid = false; + u8 chainmask = (ah->rxchainmask << 3) | ah->rxchainmask; int i; h = cal->nfCalHist; limit = ath9k_hw_get_nf_limits(ah, ah->curchan); for (i = 0; i < NUM_NF_READINGS; i++) { + if (!(chainmask & (1 << i)) || + ((i >= AR5416_MAX_CHAINS) && !conf_is_ht40(conf))) + continue; + h[i].nfCalBuffer[h[i].currIndex] = nfarray[i]; if (++h[i].currIndex >= ATH9K_NF_CAL_HIST_MAX) @@ -225,6 +231,7 @@ int32_t val; u8 chainmask = (ah->rxchainmask << 3) | ah->rxchainmask; struct ath_common *common = ath9k_hw_common(ah); + struct ieee80211_conf *conf = &common->hw->conf; s16 default_nf = ath9k_hw_get_default_nf(ah, chan); if (ah->caldata) @@ -234,6 +241,9 @@ if (chainmask & (1 << i)) { s16 nfval; + if ((i >= AR5416_MAX_CHAINS) && !conf_is_ht40(conf)) + continue; + if (h) nfval = h[i].privNF; else @@ -293,6 +303,9 @@ ENABLE_REGWRITE_BUFFER(ah); for (i = 0; i < NUM_NF_READINGS; i++) { if (chainmask & (1 << i)) { + if ((i >= AR5416_MAX_CHAINS) && !conf_is_ht40(conf)) + continue; + val = REG_READ(ah, ah->nf_regs[i]); val &= 0xFFFFFE00; val |= (((u32) (-50) << 1) & 0x1ff); --- linux-2.6.38.orig/drivers/net/wireless/ath/ath9k/ar9003_mac.c +++ linux-2.6.38/drivers/net/wireless/ath/ath9k/ar9003_mac.c @@ -615,7 +615,7 @@ */ if (rxsp->status11 & AR_CRCErr) rxs->rs_status |= ATH9K_RXERR_CRC; - if (rxsp->status11 & AR_PHYErr) { + else if (rxsp->status11 & AR_PHYErr) { phyerr = MS(rxsp->status11, AR_PHYErrCode); /* * If we reach a point here where AR_PostDelimCRCErr is @@ -638,11 +638,11 @@ rxs->rs_phyerr = phyerr; } - } - if (rxsp->status11 & AR_DecryptCRCErr) + } else if (rxsp->status11 & AR_DecryptCRCErr) rxs->rs_status |= ATH9K_RXERR_DECRYPT; - if (rxsp->status11 & AR_MichaelErr) + else if (rxsp->status11 & AR_MichaelErr) rxs->rs_status |= ATH9K_RXERR_MIC; + if (rxsp->status11 & AR_KeyMiss) rxs->rs_status |= ATH9K_RXERR_DECRYPT; } --- linux-2.6.38.orig/drivers/net/wireless/ath/ath5k/reset.c +++ linux-2.6.38/drivers/net/wireless/ath/ath5k/reset.c @@ -1119,8 +1119,11 @@ /* Non fatal, can happen eg. * on mode change */ ret = 0; - } else + } else { + ATH5K_DBG(ah->ah_sc, ATH5K_DEBUG_RESET, + "fast chan change successful\n"); return 0; + } } /* --- linux-2.6.38.orig/drivers/net/wireless/ath/ath5k/base.c +++ linux-2.6.38/drivers/net/wireless/ath/ath5k/base.c @@ -69,6 +69,11 @@ module_param_named(all_channels, modparam_all_channels, bool, S_IRUGO); MODULE_PARM_DESC(all_channels, "Expose all channels the device can use."); +static int modparam_fastchanswitch; +module_param_named(fastchanswitch, modparam_fastchanswitch, bool, S_IRUGO); +MODULE_PARM_DESC(fastchanswitch, "Enable fast channel switching for AR2413/AR5413 radios."); + + /* Module info */ MODULE_AUTHOR("Jiri Slaby"); MODULE_AUTHOR("Nick Kossifidis"); @@ -2664,6 +2669,7 @@ struct ath5k_hw *ah = sc->ah; struct ath_common *common = ath5k_hw_common(ah); int ret, ani_mode; + bool fast; ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "resetting\n"); @@ -2685,7 +2691,10 @@ sc->curchan = chan; sc->curband = &sc->sbands[chan->band]; } - ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, chan != NULL, + + fast = ((chan != NULL) && modparam_fastchanswitch) ? 1 : 0; + + ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, fast, skip_pcu); if (ret) { ATH5K_ERR(sc, "can't reset hardware (%d)\n", ret); --- linux-2.6.38.orig/drivers/net/can/slcan.c +++ linux-2.6.38/drivers/net/can/slcan.c @@ -583,7 +583,9 @@ /* Done. We have linked the TTY line to a channel. */ rtnl_unlock(); tty->receive_room = 65536; /* We don't flow control */ - return sl->dev->base_addr; + + /* TTY layer expects 0 on success */ + return 0; err_free_chan: sl->tty = NULL; --- linux-2.6.38.orig/drivers/net/can/sja1000/sja1000.c +++ linux-2.6.38/drivers/net/can/sja1000/sja1000.c @@ -346,10 +346,10 @@ | (priv->read_reg(priv, REG_ID2) >> 5); } + cf->can_dlc = get_can_dlc(fi & 0x0F); if (fi & FI_RTR) { id |= CAN_RTR_FLAG; } else { - cf->can_dlc = get_can_dlc(fi & 0x0F); for (i = 0; i < cf->can_dlc; i++) cf->data[i] = priv->read_reg(priv, dreg++); } --- linux-2.6.38.orig/drivers/net/vmxnet3/vmxnet3_drv.c +++ linux-2.6.38/drivers/net/vmxnet3/vmxnet3_drv.c @@ -178,6 +178,7 @@ vmxnet3_process_events(struct vmxnet3_adapter *adapter) { int i; + unsigned long flags; u32 events = le32_to_cpu(adapter->shared->ecr); if (!events) return; @@ -190,10 +191,10 @@ /* Check if there is an error on xmit/recv queues */ if (events & (VMXNET3_ECR_TQERR | VMXNET3_ECR_RQERR)) { - spin_lock(&adapter->cmd_lock); + spin_lock_irqsave(&adapter->cmd_lock, flags); VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_QUEUE_STATUS); - spin_unlock(&adapter->cmd_lock); + spin_unlock_irqrestore(&adapter->cmd_lock, flags); for (i = 0; i < adapter->num_tx_queues; i++) if (adapter->tqd_start[i].status.stopped) @@ -2733,13 +2734,14 @@ vmxnet3_alloc_intr_resources(struct vmxnet3_adapter *adapter) { u32 cfg; + unsigned long flags; /* intr settings */ - spin_lock(&adapter->cmd_lock); + spin_lock_irqsave(&adapter->cmd_lock, flags); VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_CONF_INTR); cfg = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_CMD); - spin_unlock(&adapter->cmd_lock); + spin_unlock_irqrestore(&adapter->cmd_lock, flags); adapter->intr.type = cfg & 0x3; adapter->intr.mask_mode = (cfg >> 2) & 0x3; --- linux-2.6.38.orig/drivers/net/vmxnet3/vmxnet3_ethtool.c +++ linux-2.6.38/drivers/net/vmxnet3/vmxnet3_ethtool.c @@ -304,13 +304,16 @@ u8 lro_present = (netdev->features & NETIF_F_LRO) == 0 ? 0 : 1; unsigned long flags; - if (data & ~ETH_FLAG_LRO) - return -EOPNOTSUPP; + if (ethtool_invalid_flags(netdev, data, ETH_FLAG_LRO)) + return -EINVAL; if (lro_requested ^ lro_present) { /* toggle the LRO feature*/ netdev->features ^= NETIF_F_LRO; + /* Update private LRO flag */ + adapter->lro = lro_requested; + /* update harware LRO capability accordingly */ if (lro_requested) adapter->shared->devRead.misc.uptFeatures |= --- linux-2.6.38.orig/drivers/net/qlcnic/qlcnic_ethtool.c +++ linux-2.6.38/drivers/net/qlcnic/qlcnic_ethtool.c @@ -1003,7 +1003,7 @@ struct qlcnic_adapter *adapter = netdev_priv(netdev); int hw_lro; - if (data & ~ETH_FLAG_LRO) + if (ethtool_invalid_flags(netdev, data, ETH_FLAG_LRO)) return -EINVAL; if (!(adapter->capabilities & QLCNIC_FW_CAPABILITY_HW_LRO)) --- linux-2.6.38.orig/drivers/net/qlcnic/qlcnic.h +++ linux-2.6.38/drivers/net/qlcnic/qlcnic.h @@ -99,6 +99,7 @@ #define TX_UDPV6_PKT 0x0c /* Tx defines */ +#define QLCNIC_MAX_FRAGS_PER_TX 14 #define MAX_TSO_HEADER_DESC 2 #define MGMT_CMD_DESC_RESV 4 #define TX_STOP_THRESH ((MAX_SKB_FRAGS >> 2) + MAX_TSO_HEADER_DESC \ --- linux-2.6.38.orig/drivers/net/qlcnic/qlcnic_main.c +++ linux-2.6.38/drivers/net/qlcnic/qlcnic_main.c @@ -2099,6 +2099,7 @@ struct cmd_desc_type0 *hwdesc, *first_desc; struct pci_dev *pdev; struct ethhdr *phdr; + int delta = 0; int i, k; u32 producer; @@ -2118,6 +2119,19 @@ } frag_count = skb_shinfo(skb)->nr_frags + 1; + /* 14 frags supported for normal packet and + * 32 frags supported for TSO packet + */ + if (!skb_is_gso(skb) && frag_count > QLCNIC_MAX_FRAGS_PER_TX) { + + for (i = 0; i < (frag_count - QLCNIC_MAX_FRAGS_PER_TX); i++) + delta += skb_shinfo(skb)->frags[i].size; + + if (!__pskb_pull_tail(skb, delta)) + goto drop_packet; + + frag_count = 1 + skb_shinfo(skb)->nr_frags; + } /* 4 fragments per cmd des */ no_of_desc = (frag_count + 3) >> 2; --- linux-2.6.38.orig/drivers/net/usb/ipheth.c +++ linux-2.6.38/drivers/net/usb/ipheth.c @@ -65,6 +65,7 @@ #define IPHETH_USBINTF_PROTO 1 #define IPHETH_BUF_SIZE 1516 +#define IPHETH_IP_ALIGN 2 /* padding at front of URB */ #define IPHETH_TX_TIMEOUT (5 * HZ) #define IPHETH_INTFNUM 2 @@ -202,18 +203,21 @@ return; } - len = urb->actual_length; - buf = urb->transfer_buffer; + if (urb->actual_length <= IPHETH_IP_ALIGN) { + dev->net->stats.rx_length_errors++; + return; + } + len = urb->actual_length - IPHETH_IP_ALIGN; + buf = urb->transfer_buffer + IPHETH_IP_ALIGN; - skb = dev_alloc_skb(NET_IP_ALIGN + len); + skb = dev_alloc_skb(len); if (!skb) { err("%s: dev_alloc_skb: -ENOMEM", __func__); dev->net->stats.rx_dropped++; return; } - skb_reserve(skb, NET_IP_ALIGN); - memcpy(skb_put(skb, len), buf + NET_IP_ALIGN, len - NET_IP_ALIGN); + memcpy(skb_put(skb, len), buf, len); skb->dev = dev->net; skb->protocol = eth_type_trans(skb, dev->net); --- linux-2.6.38.orig/drivers/net/usb/cdc_ncm.c +++ linux-2.6.38/drivers/net/usb/cdc_ncm.c @@ -54,7 +54,7 @@ #include #include -#define DRIVER_VERSION "7-Feb-2011" +#define DRIVER_VERSION "01-June-2011" /* CDC NCM subclass 3.2.1 */ #define USB_CDC_NCM_NDP16_LENGTH_MIN 0x10 @@ -1254,6 +1254,7 @@ .disconnect = cdc_ncm_disconnect, .suspend = usbnet_suspend, .resume = usbnet_resume, + .reset_resume = usbnet_resume, .supports_autosuspend = 1, }; --- linux-2.6.38.orig/drivers/net/usb/cdc-phonet.c +++ linux-2.6.38/drivers/net/usb/cdc-phonet.c @@ -328,13 +328,13 @@ { static const char ifname[] = "usbpn%d"; const struct usb_cdc_union_desc *union_header = NULL; - const struct usb_cdc_header_desc *phonet_header = NULL; const struct usb_host_interface *data_desc; struct usb_interface *data_intf; struct usb_device *usbdev = interface_to_usbdev(intf); struct net_device *dev; struct usbpn_dev *pnd; u8 *data; + int phonet = 0; int len, err; data = intf->altsetting->extra; @@ -355,10 +355,7 @@ (struct usb_cdc_union_desc *)data; break; case 0xAB: - if (phonet_header || dlen < 5) - break; - phonet_header = - (struct usb_cdc_header_desc *)data; + phonet = 1; break; } } @@ -366,7 +363,7 @@ len -= dlen; } - if (!union_header || !phonet_header) + if (!union_header || !phonet) return -EINVAL; data_intf = usb_ifnum_to_if(usbdev, union_header->bSlaveInterface0); --- linux-2.6.38.orig/drivers/net/usb/cdc_ether.c +++ linux-2.6.38/drivers/net/usb/cdc_ether.c @@ -458,7 +458,7 @@ .manage_power = cdc_manage_power, }; -static const struct driver_info mbm_info = { +static const struct driver_info wwan_info = { .description = "Mobile Broadband Network Device", .flags = FLAG_WWAN, .bind = cdc_bind, @@ -469,6 +469,7 @@ /*-------------------------------------------------------------------------*/ +#define HUAWEI_VENDOR_ID 0x12D1 static const struct usb_device_id products [] = { /* @@ -578,8 +579,17 @@ }, { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE), - .driver_info = (unsigned long)&mbm_info, + .driver_info = (unsigned long)&wwan_info, +}, { + /* Various Huawei modems with a network port like the UMG1831 */ + .match_flags = USB_DEVICE_ID_MATCH_VENDOR + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = HUAWEI_VENDOR_ID, + .bInterfaceClass = USB_CLASS_COMM, + .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, + .bInterfaceProtocol = 255, + .driver_info = (unsigned long)&wwan_info, }, { }, // END }; --- linux-2.6.38.orig/drivers/gpio/ml_ioh_gpio.c +++ linux-2.6.38/drivers/gpio/ml_ioh_gpio.c @@ -17,6 +17,7 @@ #include #include #include +#include #define PCI_VENDOR_ID_ROHM 0x10DB --- linux-2.6.38.orig/drivers/scsi/ses.c +++ linux-2.6.38/drivers/scsi/ses.c @@ -390,9 +390,9 @@ len = (desc_ptr[2] << 8) + desc_ptr[3]; /* skip past overall descriptor */ desc_ptr += len + 4; - if (ses_dev->page10) - addl_desc_ptr = ses_dev->page10 + 8; } + if (ses_dev->page10) + addl_desc_ptr = ses_dev->page10 + 8; type_ptr = ses_dev->page1 + 12 + ses_dev->page1[11]; components = 0; for (i = 0; i < types; i++, type_ptr += 4) { --- linux-2.6.38.orig/drivers/scsi/scsi_transport_iscsi.c +++ linux-2.6.38/drivers/scsi/scsi_transport_iscsi.c @@ -1847,7 +1847,7 @@ #define iscsi_priv_session_rw_attr(field, format) \ iscsi_priv_session_attr_show(field, format) \ iscsi_priv_session_attr_store(field) \ -static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUGO, \ +static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUSR, \ show_priv_session_##field, \ store_priv_session_##field) iscsi_priv_session_rw_attr(recovery_tmo, "%d"); --- linux-2.6.38.orig/drivers/scsi/pmcraid.c +++ linux-2.6.38/drivers/scsi/pmcraid.c @@ -3814,6 +3814,9 @@ rc = -EFAULT; goto out_free_buffer; } + } else if (request_size < 0) { + rc = -EINVAL; + goto out_free_buffer; } /* check if we have any additional command parameters */ --- linux-2.6.38.orig/drivers/scsi/ultrastor.c +++ linux-2.6.38/drivers/scsi/ultrastor.c @@ -306,7 +306,7 @@ "0: bsfw %1,%w0\n\t" "btr %0,%1\n\t" "jnc 0b" - : "=&r" (rv), "=m" (*field) :); + : "=&r" (rv), "+m" (*field) :); return rv; } --- linux-2.6.38.orig/drivers/scsi/sr.c +++ linux-2.6.38/drivers/scsi/sr.c @@ -636,7 +636,7 @@ disk->first_minor = minor; sprintf(disk->disk_name, "sr%d", minor); disk->fops = &sr_bdops; - disk->flags = GENHD_FL_CD; + disk->flags = GENHD_FL_CD | GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE; disk->events = DISK_EVENT_MEDIA_CHANGE | DISK_EVENT_EJECT_REQUEST; blk_queue_rq_timeout(sdev->request_queue, SR_TIMEOUT); --- linux-2.6.38.orig/drivers/scsi/sd.c +++ linux-2.6.38/drivers/scsi/sd.c @@ -1910,14 +1910,10 @@ int old_rcd = sdkp->RCD; int old_dpofua = sdkp->DPOFUA; - if (sdp->skip_ms_page_8) { - if (sdp->type == TYPE_RBC) - goto defaults; - else { - modepage = 0x3F; - dbd = 0; - } - } else if (sdp->type == TYPE_RBC) { + if (sdp->skip_ms_page_8) + goto defaults; + + if (sdp->type == TYPE_RBC) { modepage = 6; dbd = 8; } else { @@ -1945,11 +1941,13 @@ */ if (len < 3) goto bad_sense; - else if (len > SD_BUF_SIZE) { - sd_printk(KERN_NOTICE, sdkp, "Truncating mode parameter " - "data from %d to %d bytes\n", len, SD_BUF_SIZE); - len = SD_BUF_SIZE; - } + if (len > 20) + len = 20; + + /* Take headers and block descriptors into account */ + len += data.header_length + data.block_descriptor_length; + if (len > SD_BUF_SIZE) + goto bad_sense; /* Get the data */ res = sd_do_mode_sense(sdp, dbd, modepage, buffer, len, &data, &sshdr); @@ -1957,45 +1955,16 @@ if (scsi_status_is_good(res)) { int offset = data.header_length + data.block_descriptor_length; - while (offset < len) { - u8 page_code = buffer[offset] & 0x3F; - u8 spf = buffer[offset] & 0x40; - - if (page_code == 8 || page_code == 6) { - /* We're interested only in the first 3 bytes. - */ - if (len - offset <= 2) { - sd_printk(KERN_ERR, sdkp, "Incomplete " - "mode parameter data\n"); - goto defaults; - } else { - modepage = page_code; - goto Page_found; - } - } else { - /* Go to the next page */ - if (spf && len - offset > 3) - offset += 4 + (buffer[offset+2] << 8) + - buffer[offset+3]; - else if (!spf && len - offset > 1) - offset += 2 + buffer[offset+1]; - else { - sd_printk(KERN_ERR, sdkp, "Incomplete " - "mode parameter data\n"); - goto defaults; - } - } + if (offset >= SD_BUF_SIZE - 2) { + sd_printk(KERN_ERR, sdkp, "Malformed MODE SENSE response\n"); + goto defaults; } - if (modepage == 0x3F) { - sd_printk(KERN_ERR, sdkp, "No Caching mode page " - "present\n"); - goto defaults; - } else if ((buffer[offset] & 0x3f) != modepage) { + if ((buffer[offset] & 0x3f) != modepage) { sd_printk(KERN_ERR, sdkp, "Got wrong page\n"); goto defaults; } - Page_found: + if (modepage == 8) { sdkp->WCE = ((buffer[offset + 2] & 0x04) != 0); sdkp->RCD = ((buffer[offset + 2] & 0x01) != 0); --- linux-2.6.38.orig/drivers/scsi/mpt2sas/mpt2sas_ctl.c +++ linux-2.6.38/drivers/scsi/mpt2sas/mpt2sas_ctl.c @@ -688,6 +688,13 @@ goto out; } + /* Check for overflow and wraparound */ + if (karg.data_sge_offset * 4 > ioc->request_sz || + karg.data_sge_offset > (UINT_MAX / 4)) { + ret = -EINVAL; + goto out; + } + /* copy in request message frame from user */ if (copy_from_user(mpi_request, mf, karg.data_sge_offset*4)) { printk(KERN_ERR "failure at %s:%d/%s()!\n", __FILE__, __LINE__, @@ -1963,7 +1970,7 @@ Mpi2DiagBufferPostReply_t *mpi_reply; int rc, i; u8 buffer_type; - unsigned long timeleft; + unsigned long timeleft, request_size, copy_size; u16 smid; u16 ioc_status; u8 issue_reset = 0; @@ -1999,6 +2006,8 @@ return -ENOMEM; } + request_size = ioc->diag_buffer_sz[buffer_type]; + if ((karg.starting_offset % 4) || (karg.bytes_to_read % 4)) { printk(MPT2SAS_ERR_FMT "%s: either the starting_offset " "or bytes_to_read are not 4 byte aligned\n", ioc->name, @@ -2006,13 +2015,23 @@ return -EINVAL; } + if (karg.starting_offset > request_size) + return -EINVAL; + diag_data = (void *)(request_data + karg.starting_offset); dctlprintk(ioc, printk(MPT2SAS_INFO_FMT "%s: diag_buffer(%p), " "offset(%d), sz(%d)\n", ioc->name, __func__, diag_data, karg.starting_offset, karg.bytes_to_read)); + /* Truncate data on requests that are too large */ + if ((diag_data + karg.bytes_to_read < diag_data) || + (diag_data + karg.bytes_to_read > request_data + request_size)) + copy_size = request_size - karg.starting_offset; + else + copy_size = karg.bytes_to_read; + if (copy_to_user((void __user *)uarg->diagnostic_data, - diag_data, karg.bytes_to_read)) { + diag_data, copy_size)) { printk(MPT2SAS_ERR_FMT "%s: Unable to write " "mpt_diag_read_buffer_t data @ %p\n", ioc->name, __func__, diag_data); --- linux-2.6.38.orig/drivers/scsi/mpt2sas/mpt2sas_scsih.c +++ linux-2.6.38/drivers/scsi/mpt2sas/mpt2sas_scsih.c @@ -113,6 +113,7 @@ }; +#define MPT2SAS_TURN_ON_FAULT_LED (0xFFFC) #define MPT2SAS_RESCAN_AFTER_HOST_RESET (0xFFFF) /** @@ -121,6 +122,7 @@ * @work: work object (ioc->fault_reset_work_q) * @cancel_pending_work: flag set during reset handling * @ioc: per adapter object + * @device_handle: device handle * @VF_ID: virtual function id * @VP_ID: virtual port id * @ignore: flag meaning this event has been marked to ignore @@ -134,6 +136,7 @@ u8 cancel_pending_work; struct delayed_work delayed_work; struct MPT2SAS_ADAPTER *ioc; + u16 device_handle; u8 VF_ID; u8 VP_ID; u8 ignore; @@ -3708,17 +3711,75 @@ #endif /** - * _scsih_smart_predicted_fault - illuminate Fault LED + * _scsih_turn_on_fault_led - illuminate Fault LED * @ioc: per adapter object * @handle: device handle + * Context: process * * Return nothing. */ static void -_scsih_smart_predicted_fault(struct MPT2SAS_ADAPTER *ioc, u16 handle) +_scsih_turn_on_fault_led(struct MPT2SAS_ADAPTER *ioc, u16 handle) { Mpi2SepReply_t mpi_reply; Mpi2SepRequest_t mpi_request; + + memset(&mpi_request, 0, sizeof(Mpi2SepRequest_t)); + mpi_request.Function = MPI2_FUNCTION_SCSI_ENCLOSURE_PROCESSOR; + mpi_request.Action = MPI2_SEP_REQ_ACTION_WRITE_STATUS; + mpi_request.SlotStatus = + cpu_to_le32(MPI2_SEP_REQ_SLOTSTATUS_PREDICTED_FAULT); + mpi_request.DevHandle = cpu_to_le16(handle); + mpi_request.Flags = MPI2_SEP_REQ_FLAGS_DEVHANDLE_ADDRESS; + if ((mpt2sas_base_scsi_enclosure_processor(ioc, &mpi_reply, + &mpi_request)) != 0) { + printk(MPT2SAS_ERR_FMT "failure at %s:%d/%s()!\n", ioc->name, + __FILE__, __LINE__, __func__); + return; + } + + if (mpi_reply.IOCStatus || mpi_reply.IOCLogInfo) { + dewtprintk(ioc, printk(MPT2SAS_INFO_FMT "enclosure_processor: " + "ioc_status (0x%04x), loginfo(0x%08x)\n", ioc->name, + le16_to_cpu(mpi_reply.IOCStatus), + le32_to_cpu(mpi_reply.IOCLogInfo))); + return; + } +} + +/** + * _scsih_send_event_to_turn_on_fault_led - fire delayed event + * @ioc: per adapter object + * @handle: device handle + * Context: interrupt. + * + * Return nothing. + */ +static void +_scsih_send_event_to_turn_on_fault_led(struct MPT2SAS_ADAPTER *ioc, u16 handle) +{ + struct fw_event_work *fw_event; + + fw_event = kzalloc(sizeof(struct fw_event_work), GFP_ATOMIC); + if (!fw_event) + return; + fw_event->event = MPT2SAS_TURN_ON_FAULT_LED; + fw_event->device_handle = handle; + fw_event->ioc = ioc; + _scsih_fw_event_add(ioc, fw_event); +} + +/** + * _scsih_smart_predicted_fault - process smart errors + * @ioc: per adapter object + * @handle: device handle + * Context: interrupt. + * + * Return nothing. + */ +static void +_scsih_smart_predicted_fault(struct MPT2SAS_ADAPTER *ioc, u16 handle) +{ struct scsi_target *starget; struct MPT2SAS_TARGET *sas_target_priv_data; Mpi2EventNotificationReply_t *event_reply; @@ -3745,30 +3806,8 @@ starget_printk(KERN_WARNING, starget, "predicted fault\n"); spin_unlock_irqrestore(&ioc->sas_device_lock, flags); - if (ioc->pdev->subsystem_vendor == PCI_VENDOR_ID_IBM) { - memset(&mpi_request, 0, sizeof(Mpi2SepRequest_t)); - mpi_request.Function = MPI2_FUNCTION_SCSI_ENCLOSURE_PROCESSOR; - mpi_request.Action = MPI2_SEP_REQ_ACTION_WRITE_STATUS; - mpi_request.SlotStatus = - cpu_to_le32(MPI2_SEP_REQ_SLOTSTATUS_PREDICTED_FAULT); - mpi_request.DevHandle = cpu_to_le16(handle); - mpi_request.Flags = MPI2_SEP_REQ_FLAGS_DEVHANDLE_ADDRESS; - if ((mpt2sas_base_scsi_enclosure_processor(ioc, &mpi_reply, - &mpi_request)) != 0) { - printk(MPT2SAS_ERR_FMT "failure at %s:%d/%s()!\n", - ioc->name, __FILE__, __LINE__, __func__); - return; - } - - if (mpi_reply.IOCStatus || mpi_reply.IOCLogInfo) { - dewtprintk(ioc, printk(MPT2SAS_INFO_FMT - "enclosure_processor: ioc_status (0x%04x), " - "loginfo(0x%08x)\n", ioc->name, - le16_to_cpu(mpi_reply.IOCStatus), - le32_to_cpu(mpi_reply.IOCLogInfo))); - return; - } - } + if (ioc->pdev->subsystem_vendor == PCI_VENDOR_ID_IBM) + _scsih_send_event_to_turn_on_fault_led(ioc, handle); /* insert into event log */ sz = offsetof(Mpi2EventNotificationReply_t, EventData) + @@ -6330,6 +6369,9 @@ } switch (fw_event->event) { + case MPT2SAS_TURN_ON_FAULT_LED: + _scsih_turn_on_fault_led(ioc, fw_event->device_handle); + break; case MPI2_EVENT_SAS_TOPOLOGY_CHANGE_LIST: _scsih_sas_topology_change_event(ioc, fw_event); break; --- linux-2.6.38.orig/drivers/scsi/qla2xxx/qla_attr.c +++ linux-2.6.38/drivers/scsi/qla2xxx/qla_attr.c @@ -1877,14 +1877,15 @@ scsi_remove_host(vha->host); + /* Allow timer to run to drain queued items, when removing vp */ + qla24xx_deallocate_vp_id(vha); + if (vha->timer_active) { qla2x00_vp_stop_timer(vha); DEBUG15(printk(KERN_INFO "scsi(%ld): timer for the vport[%d]" " = %p has stopped\n", vha->host_no, vha->vp_idx, vha)); } - qla24xx_deallocate_vp_id(vha); - /* No pending activities shall be there on the vha now */ DEBUG(msleep(random32()%10)); /* Just to see if something falls on * the net we have placed below */ --- linux-2.6.38.orig/drivers/scsi/qla2xxx/qla_os.c +++ linux-2.6.38/drivers/scsi/qla2xxx/qla_os.c @@ -2359,21 +2359,26 @@ base_vha = pci_get_drvdata(pdev); ha = base_vha->hw; - spin_lock_irqsave(&ha->vport_slock, flags); - list_for_each_entry(vha, &ha->vp_list, list) { - atomic_inc(&vha->vref_count); + mutex_lock(&ha->vport_lock); + while (ha->cur_vport_count) { + struct Scsi_Host *scsi_host; - if (vha->fc_vport) { - spin_unlock_irqrestore(&ha->vport_slock, flags); + spin_lock_irqsave(&ha->vport_slock, flags); - fc_vport_terminate(vha->fc_vport); + BUG_ON(base_vha->list.next == &ha->vp_list); + /* This assumes first entry in ha->vp_list is always base vha */ + vha = list_first_entry(&base_vha->list, scsi_qla_host_t, list); + scsi_host = scsi_host_get(vha->host); - spin_lock_irqsave(&ha->vport_slock, flags); - } + spin_unlock_irqrestore(&ha->vport_slock, flags); + mutex_unlock(&ha->vport_lock); + + fc_vport_terminate(vha->fc_vport); + scsi_host_put(vha->host); - atomic_dec(&vha->vref_count); + mutex_lock(&ha->vport_lock); } - spin_unlock_irqrestore(&ha->vport_slock, flags); + mutex_unlock(&ha->vport_lock); set_bit(UNLOADING, &base_vha->dpc_flags); @@ -3603,7 +3608,8 @@ if (!pci_channel_offline(ha->pdev)) pci_read_config_word(ha->pdev, PCI_VENDOR_ID, &w); - if (IS_QLA82XX(ha)) { + /* Make sure qla82xx_watchdog is run only for physical port */ + if (!vha->vp_idx && IS_QLA82XX(ha)) { if (test_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags)) start_dpc++; qla82xx_watchdog(vha); @@ -3674,8 +3680,8 @@ atomic_read(&vha->loop_down_timer))); } - /* Check if beacon LED needs to be blinked */ - if (ha->beacon_blink_led == 1) { + /* Check if beacon LED needs to be blinked for physical host only */ + if (!vha->vp_idx && (ha->beacon_blink_led == 1)) { set_bit(BEACON_BLINK_NEEDED, &vha->dpc_flags); start_dpc++; } --- linux-2.6.38.orig/drivers/scsi/bnx2i/bnx2i_hwi.c +++ linux-2.6.38/drivers/scsi/bnx2i/bnx2i_hwi.c @@ -1221,6 +1221,7 @@ iscsi_init.dummy_buffer_addr_hi = (u32) ((u64) hba->dummy_buf_dma >> 32); + hba->num_ccell = hba->max_sqes >> 1; hba->ctx_ccell_tasks = ((hba->num_ccell & 0xFFFF) | (hba->max_sqes << 16)); iscsi_init.num_ccells_per_conn = hba->num_ccell; --- linux-2.6.38.orig/drivers/scsi/bnx2i/bnx2i_iscsi.c +++ linux-2.6.38/drivers/scsi/bnx2i/bnx2i_iscsi.c @@ -858,7 +858,7 @@ mutex_init(&hba->net_dev_lock); init_waitqueue_head(&hba->eh_wait); if (test_bit(BNX2I_NX2_DEV_57710, &hba->cnic_dev_type)) { - hba->hba_shutdown_tmo = 20 * HZ; + hba->hba_shutdown_tmo = 30 * HZ; hba->conn_teardown_tmo = 20 * HZ; hba->conn_ctx_destroy_tmo = 6 * HZ; } else { /* 5706/5708/5709 */ @@ -1205,6 +1205,9 @@ struct bnx2i_cmd *cmd = task->dd_data; struct iscsi_cmd *hdr = (struct iscsi_cmd *) task->hdr; + if (bnx2i_conn->ep->num_active_cmds + 1 > hba->max_sqes) + return -ENOMEM; + /* * If there is no scsi_cmnd this must be a mgmt task */ --- linux-2.6.38.orig/drivers/scsi/bnx2i/bnx2i_init.c +++ linux-2.6.38/drivers/scsi/bnx2i/bnx2i_init.c @@ -227,7 +227,7 @@ wait_event_interruptible_timeout(hba->eh_wait, (list_empty(&hba->ep_ofld_list) && list_empty(&hba->ep_destroy_list)), - 10 * HZ); + 2 * HZ); /* Wait for all endpoints to be torn down, Chip will be reset once * control returns to network driver. So it is required to cleanup and * release all connection resources before returning from this routine. --- linux-2.6.38.orig/drivers/scsi/device_handler/scsi_dh_alua.c +++ linux-2.6.38/drivers/scsi/device_handler/scsi_dh_alua.c @@ -285,7 +285,8 @@ print_alua_state(h->state)); } done: - blk_put_request(req); + req->end_io_data = NULL; + __blk_put_request(req->q, req); if (h->callback_fn) { h->callback_fn(h->callback_data, err); h->callback_fn = h->callback_data = NULL; --- linux-2.6.38.orig/drivers/scsi/device_handler/scsi_dh.c +++ linux-2.6.38/drivers/scsi/device_handler/scsi_dh.c @@ -437,12 +437,14 @@ unsigned long flags; struct scsi_device *sdev; struct scsi_device_handler *scsi_dh = NULL; + struct device *dev = NULL; spin_lock_irqsave(q->queue_lock, flags); sdev = q->queuedata; if (sdev && sdev->scsi_dh_data) scsi_dh = sdev->scsi_dh_data->scsi_dh; - if (!scsi_dh || !get_device(&sdev->sdev_gendev) || + dev = get_device(&sdev->sdev_gendev); + if (!scsi_dh || !dev || sdev->sdev_state == SDEV_CANCEL || sdev->sdev_state == SDEV_DEL) err = SCSI_DH_NOSYS; @@ -453,12 +455,13 @@ if (err) { if (fn) fn(data, err); - return err; + goto out; } if (scsi_dh->activate) err = scsi_dh->activate(sdev, fn, data); - put_device(&sdev->sdev_gendev); +out: + put_device(dev); return err; } EXPORT_SYMBOL_GPL(scsi_dh_activate); --- linux-2.6.38.orig/drivers/scsi/megaraid/megaraid_sas_base.c +++ linux-2.6.38/drivers/scsi/megaraid/megaraid_sas_base.c @@ -4611,6 +4611,9 @@ * For each user buffer, create a mirror buffer and copy in */ for (i = 0; i < ioc->sge_count; i++) { + if (!ioc->sgl[i].iov_len) + continue; + kbuff_arr[i] = dma_alloc_coherent(&instance->pdev->dev, ioc->sgl[i].iov_len, &buf_handle, GFP_KERNEL); --- linux-2.6.38.orig/drivers/usb/misc/uss720.c +++ linux-2.6.38/drivers/usb/misc/uss720.c @@ -177,12 +177,11 @@ spin_lock_irqsave(&priv->asynclock, flags); list_add_tail(&rq->asynclist, &priv->asynclist); spin_unlock_irqrestore(&priv->asynclock, flags); + kref_get(&rq->ref_count); ret = usb_submit_urb(rq->urb, mem_flags); - if (!ret) { - kref_get(&rq->ref_count); + if (!ret) return rq; - } - kref_put(&rq->ref_count, destroy_async); + destroy_async(&rq->ref_count); err("submit_async_request submit_urb failed with %d", ret); return NULL; } --- linux-2.6.38.orig/drivers/usb/serial/cp210x.c +++ linux-2.6.38/drivers/usb/serial/cp210x.c @@ -113,6 +113,10 @@ { USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */ { USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */ { USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */ + { USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */ + { USB_DEVICE(0x10C4, 0x85EB) }, /* AC-Services CIS-IBUS */ + { USB_DEVICE(0x10C4, 0x8664) }, /* AC-Services CAN-IF */ + { USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */ { 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 */ --- linux-2.6.38.orig/drivers/usb/serial/ch341.c +++ linux-2.6.38/drivers/usb/serial/ch341.c @@ -75,6 +75,7 @@ static const struct usb_device_id id_table[] = { { USB_DEVICE(0x4348, 0x5523) }, { USB_DEVICE(0x1a86, 0x7523) }, + { USB_DEVICE(0x1a86, 0x5523) }, { }, }; MODULE_DEVICE_TABLE(usb, id_table); --- linux-2.6.38.orig/drivers/usb/serial/ftdi_sio.c +++ linux-2.6.38/drivers/usb/serial/ftdi_sio.c @@ -151,6 +151,8 @@ * /sys/bus/usb/ftdi_sio/new_id, then send patch/report! */ static struct usb_device_id id_table_combined [] = { + { USB_DEVICE(FTDI_VID, FTDI_CTI_MINI_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_CTI_NANO_PID) }, { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) }, { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) }, { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) }, @@ -525,6 +527,7 @@ { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_8_PID) }, { USB_DEVICE(IDTECH_VID, IDTECH_IDT1221U_PID) }, { USB_DEVICE(OCT_VID, OCT_US101_PID) }, + { USB_DEVICE(OCT_VID, OCT_DK201_PID) }, { USB_DEVICE(FTDI_VID, FTDI_HE_TIRA1_PID), .driver_info = (kernel_ulong_t)&ftdi_HE_TIRA1_quirk }, { USB_DEVICE(FTDI_VID, FTDI_USB_UIRT_PID), @@ -563,6 +566,7 @@ { USB_DEVICE(FTDI_VID, FTDI_IBS_APP70_PID) }, { USB_DEVICE(FTDI_VID, FTDI_IBS_PEDO_PID) }, { USB_DEVICE(FTDI_VID, FTDI_IBS_PROD_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_TAVIR_STK500_PID) }, /* * ELV devices: */ @@ -785,6 +789,8 @@ { USB_DEVICE(FTDI_VID, MARVELL_OPENRD_PID), .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, { USB_DEVICE(FTDI_VID, HAMEG_HO820_PID) }, + { USB_DEVICE(FTDI_VID, HAMEG_HO720_PID) }, + { USB_DEVICE(FTDI_VID, HAMEG_HO730_PID) }, { USB_DEVICE(FTDI_VID, HAMEG_HO870_PID) }, { USB_DEVICE(FTDI_VID, MJSG_GENERIC_PID) }, { USB_DEVICE(FTDI_VID, MJSG_SR_RADIO_PID) }, --- linux-2.6.38.orig/drivers/usb/serial/ftdi_sio_ids.h +++ linux-2.6.38/drivers/usb/serial/ftdi_sio_ids.h @@ -300,6 +300,8 @@ * Hameg HO820 and HO870 interface (using VID 0x0403) */ #define HAMEG_HO820_PID 0xed74 +#define HAMEG_HO730_PID 0xed73 +#define HAMEG_HO720_PID 0xed72 #define HAMEG_HO870_PID 0xed71 /* @@ -489,6 +491,11 @@ /* www.canusb.com Lawicel CANUSB device (FTDI_VID) */ #define FTDI_CANUSB_PID 0xFFA8 /* Product Id */ +/* + * TavIR AVR product ids (FTDI_VID) + */ +#define FTDI_TAVIR_STK500_PID 0xFA33 /* STK500 AVR programmer */ + /********************************/ @@ -572,6 +579,7 @@ /* Note: OCT US101 is also rebadged as Dick Smith Electronics (NZ) XH6381 */ /* Also rebadged as Dick Smith Electronics (Aus) XH6451 */ /* Also rebadged as SIIG Inc. model US2308 hardware version 1 */ +#define OCT_DK201_PID 0x0103 /* OCT DK201 USB docking station */ #define OCT_US101_PID 0x0421 /* OCT US101 USB to RS-232 */ /* @@ -1140,3 +1148,12 @@ #define QIHARDWARE_VID 0x20B7 #define MILKYMISTONE_JTAGSERIAL_PID 0x0713 +/* + * CTI GmbH RS485 Converter http://www.cti-lean.com/ + */ +/* USB-485-Mini*/ +#define FTDI_CTI_MINI_PID 0xF608 +/* USB-Nano-485*/ +#define FTDI_CTI_NANO_PID 0xF60B + + --- linux-2.6.38.orig/drivers/usb/serial/usb-serial.c +++ linux-2.6.38/drivers/usb/serial/usb-serial.c @@ -911,9 +911,8 @@ dev_err(&interface->dev, "No free urbs available\n"); goto probe_error; } - buffer_size = serial->type->bulk_in_size; - if (!buffer_size) - buffer_size = le16_to_cpu(endpoint->wMaxPacketSize); + buffer_size = max_t(int, serial->type->bulk_in_size, + le16_to_cpu(endpoint->wMaxPacketSize)); port->bulk_in_size = buffer_size; port->bulk_in_endpointAddress = endpoint->bEndpointAddress; port->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL); --- linux-2.6.38.orig/drivers/usb/serial/moto_modem.c +++ linux-2.6.38/drivers/usb/serial/moto_modem.c @@ -25,6 +25,7 @@ { USB_DEVICE(0x05c6, 0x3197) }, /* unknown Motorola phone */ { USB_DEVICE(0x0c44, 0x0022) }, /* unknown Mororola phone */ { USB_DEVICE(0x22b8, 0x2a64) }, /* Motorola KRZR K1m */ + { USB_DEVICE(0x22b8, 0x2c84) }, /* Motorola VE240 phone */ { USB_DEVICE(0x22b8, 0x2c64) }, /* Motorola V950 phone */ { }, }; --- linux-2.6.38.orig/drivers/usb/serial/qcserial.c +++ linux-2.6.38/drivers/usb/serial/qcserial.c @@ -111,7 +111,7 @@ ifnum = intf->desc.bInterfaceNumber; dbg("This Interface = %d", ifnum); - data = serial->private = kzalloc(sizeof(struct usb_wwan_intf_private), + data = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL); if (!data) return -ENOMEM; @@ -134,8 +134,10 @@ usb_endpoint_is_bulk_out(&intf->endpoint[1].desc)) { dbg("QDL port found"); - if (serial->interface->num_altsetting == 1) - return 0; + if (serial->interface->num_altsetting == 1) { + retval = 0; /* Success */ + break; + } retval = usb_set_interface(serial->dev, ifnum, 1); if (retval < 0) { @@ -145,7 +147,6 @@ retval = -ENODEV; kfree(data); } - return retval; } break; @@ -166,6 +167,7 @@ "Could not set interface, error %d\n", retval); retval = -ENODEV; + kfree(data); } } else if (ifnum == 2) { dbg("Modem port found"); @@ -177,7 +179,6 @@ retval = -ENODEV; kfree(data); } - return retval; } else if (ifnum==3) { /* * NMEA (serial line 9600 8N1) @@ -191,6 +192,7 @@ "Could not set interface, error %d\n", retval); retval = -ENODEV; + kfree(data); } } break; @@ -199,12 +201,27 @@ dev_err(&serial->dev->dev, "unknown number of interfaces: %d\n", nintf); kfree(data); - return -ENODEV; + retval = -ENODEV; } + /* Set serial->private if not returning -ENODEV */ + if (retval != -ENODEV) + usb_set_serial_data(serial, data); return retval; } +static void qc_release(struct usb_serial *serial) +{ + struct usb_wwan_intf_private *priv = usb_get_serial_data(serial); + + dbg("%s", __func__); + + /* Call usb_wwan release & free the private data allocated in qcprobe */ + usb_wwan_release(serial); + usb_set_serial_data(serial, NULL); + kfree(priv); +} + static struct usb_serial_driver qcdevice = { .driver = { .owner = THIS_MODULE, @@ -222,7 +239,7 @@ .chars_in_buffer = usb_wwan_chars_in_buffer, .attach = usb_wwan_startup, .disconnect = usb_wwan_disconnect, - .release = usb_wwan_release, + .release = qc_release, #ifdef CONFIG_PM .suspend = usb_wwan_suspend, .resume = usb_wwan_resume, --- linux-2.6.38.orig/drivers/usb/serial/option.c +++ linux-2.6.38/drivers/usb/serial/option.c @@ -149,6 +149,7 @@ #define HUAWEI_PRODUCT_K3765 0x1465 #define HUAWEI_PRODUCT_E14AC 0x14AC #define HUAWEI_PRODUCT_ETS1220 0x1803 +#define HUAWEI_PRODUCT_E353 0x1506 #define QUANTA_VENDOR_ID 0x0408 #define QUANTA_PRODUCT_Q101 0xEA02 @@ -407,6 +408,10 @@ /* ONDA MT825UP HSDPA 14.2 modem */ #define ONDA_MT825UP 0x000b +/* Samsung products */ +#define SAMSUNG_VENDOR_ID 0x04e8 +#define SAMSUNG_PRODUCT_GT_B3730 0x6889 + /* some devices interfaces need special handling due to a number of reasons */ enum option_blacklist_reason { OPTION_BLACKLIST_NONE = 0, @@ -528,6 +533,7 @@ { 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_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x01) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V740) }, @@ -652,7 +658,8 @@ { 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, ZTE_PRODUCT_MF626, 0xff, + 0xff, 0xff), .driver_info = (kernel_ulong_t)&four_g_w14_blacklist }, { 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) }, @@ -967,6 +974,7 @@ { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100) }, { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO modem */ { USB_DEVICE(ONDA_VENDOR_ID, ONDA_MT825UP) }, /* ONDA MT825UP modem */ + { USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_GT_B3730, USB_CLASS_CDC_DATA, 0x00, 0x00) }, /* Samsung GT-B3730 LTE USB modem.*/ { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, option_ids); @@ -1103,6 +1111,12 @@ serial->interface->cur_altsetting->desc.bInterfaceNumber == 1) return -ENODEV; + /* Don't bind network interface on Samsung GT-B3730, it is handled by a separate module */ + if (serial->dev->descriptor.idVendor == SAMSUNG_VENDOR_ID && + serial->dev->descriptor.idProduct == SAMSUNG_PRODUCT_GT_B3730 && + serial->interface->cur_altsetting->desc.bInterfaceClass != USB_CLASS_CDC_DATA) + return -ENODEV; + data = serial->private = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL); if (!data) --- linux-2.6.38.orig/drivers/usb/serial/kobil_sct.c +++ linux-2.6.38/drivers/usb/serial/kobil_sct.c @@ -372,7 +372,7 @@ } tty = tty_port_tty_get(&port->port); - if (urb->actual_length) { + if (tty && urb->actual_length) { /* BEGIN DEBUG */ /* --- linux-2.6.38.orig/drivers/usb/serial/garmin_gps.c +++ linux-2.6.38/drivers/usb/serial/garmin_gps.c @@ -1,7 +1,7 @@ /* * Garmin GPS driver * - * Copyright (C) 2006-2009 Hermann Kneissel herkne@users.sourceforge.net + * Copyright (C) 2006-2011 Hermann Kneissel herkne@gmx.de * * The latest version of the driver can be found at * http://sourceforge.net/projects/garmin-gps/ @@ -51,7 +51,7 @@ */ #define VERSION_MAJOR 0 -#define VERSION_MINOR 33 +#define VERSION_MINOR 36 #define _STR(s) #s #define _DRIVER_VERSION(a, b) "v" _STR(a) "." _STR(b) @@ -410,6 +410,7 @@ */ static int gsp_rec_packet(struct garmin_data *garmin_data_p, int count) { + unsigned long flags; const __u8 *recpkt = garmin_data_p->inbuffer+GSP_INITIAL_OFFSET; __le32 *usbdata = (__le32 *) garmin_data_p->inbuffer; @@ -458,7 +459,9 @@ /* if this was an abort-transfer command, flush all queued data. */ if (isAbortTrfCmnd(garmin_data_p->inbuffer)) { + spin_lock_irqsave(&garmin_data_p->lock, flags); garmin_data_p->flags |= FLAGS_DROP_DATA; + spin_unlock_irqrestore(&garmin_data_p->lock, flags); pkt_clear(garmin_data_p); } @@ -943,7 +946,7 @@ spin_lock_irqsave(&garmin_data_p->lock, flags); garmin_data_p->mode = initial_mode; garmin_data_p->count = 0; - garmin_data_p->flags = 0; + garmin_data_p->flags &= FLAGS_SESSION_REPLY1_SEEN; spin_unlock_irqrestore(&garmin_data_p->lock, flags); /* shutdown any bulk reads that might be going on */ @@ -1178,7 +1181,8 @@ static void garmin_read_process(struct garmin_data *garmin_data_p, - unsigned char *data, unsigned data_length) + unsigned char *data, unsigned data_length, + int bulk_data) { unsigned long flags; @@ -1193,7 +1197,8 @@ send it directly to the tty port */ if (garmin_data_p->flags & FLAGS_QUEUING) { pkt_add(garmin_data_p, data, data_length); - } else if (getLayerId(data) == GARMIN_LAYERID_APPL) { + } else if (bulk_data || + getLayerId(data) == GARMIN_LAYERID_APPL) { spin_lock_irqsave(&garmin_data_p->lock, flags); garmin_data_p->flags |= APP_RESP_SEEN; @@ -1237,7 +1242,7 @@ usb_serial_debug_data(debug, &port->dev, __func__, urb->actual_length, data); - garmin_read_process(garmin_data_p, data, urb->actual_length); + garmin_read_process(garmin_data_p, data, urb->actual_length, 1); if (urb->actual_length == 0 && 0 != (garmin_data_p->flags & FLAGS_BULK_IN_RESTART)) { @@ -1346,7 +1351,7 @@ __func__, garmin_data_p->serial_num); } - garmin_read_process(garmin_data_p, data, urb->actual_length); + garmin_read_process(garmin_data_p, data, urb->actual_length, 0); port->interrupt_in_urb->dev = port->serial->dev; retval = usb_submit_urb(urb, GFP_ATOMIC); @@ -1461,6 +1466,7 @@ garmin_data_p->timer.function = timeout_handler; garmin_data_p->port = port; garmin_data_p->state = 0; + garmin_data_p->flags = 0; garmin_data_p->count = 0; usb_set_serial_port_data(port, garmin_data_p); --- linux-2.6.38.orig/drivers/usb/storage/unusual_devs.h +++ linux-2.6.38/drivers/usb/storage/unusual_devs.h @@ -1153,6 +1153,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init, 0), +/* Reported by Timo Aaltonen */ +UNUSUAL_DEV( 0x0af0, 0x7011, 0x0000, 0x9999, + "Option", + "Mass Storage", + USB_SC_DEVICE, USB_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.38.orig/drivers/usb/class/cdc-acm.h +++ linux-2.6.38/drivers/usb/class/cdc-acm.h @@ -137,3 +137,4 @@ #define SINGLE_RX_URB 2 #define NO_CAP_LINE 4 #define NOT_A_MODEM 8 +#define NO_DATA_INTERFACE 16 --- linux-2.6.38.orig/drivers/usb/class/cdc-acm.c +++ linux-2.6.38/drivers/usb/class/cdc-acm.c @@ -297,6 +297,8 @@ if (!ACM_READY(acm)) goto exit; + usb_mark_last_busy(acm->dev); + data = (unsigned char *)(dr + 1); switch (dr->bNotificationType) { case USB_CDC_NOTIFY_NETWORK_CONNECTION: @@ -336,7 +338,6 @@ break; } exit: - usb_mark_last_busy(acm->dev); retval = usb_submit_urb(urb, GFP_ATOMIC); if (retval) dev_err(&urb->dev->dev, "%s - usb_submit_urb failed with " @@ -533,6 +534,8 @@ if (!ACM_READY(acm)) return; tty = tty_port_tty_get(&acm->port); + if (!tty) + return; tty_wakeup(tty); tty_kref_put(tty); } @@ -646,8 +649,10 @@ usb_kill_urb(acm->ctrlurb); for (i = 0; i < ACM_NW; i++) usb_kill_urb(acm->wb[i].urb); + tasklet_disable(&acm->urb_task); for (i = 0; i < nr; i++) usb_kill_urb(acm->ru[i].urb); + tasklet_enable(&acm->urb_task); acm->control->needs_remote_wakeup = 0; usb_autopm_put_interface(acm->control); } @@ -941,7 +946,7 @@ u8 ac_management_function = 0; u8 call_management_function = 0; int call_interface_num = -1; - int data_interface_num; + int data_interface_num = -1; unsigned long quirks; int num_rx_buf; int i; @@ -1025,7 +1030,11 @@ if (!union_header) { if (call_interface_num > 0) { dev_dbg(&intf->dev, "No union descriptor, using call management descriptor\n"); - data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = call_interface_num)); + /* quirks for Droids MuIn LCD */ + if (quirks & NO_DATA_INTERFACE) + data_interface = usb_ifnum_to_if(usb_dev, 0); + else + data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = call_interface_num)); control_interface = intf; } else { if (intf->cur_altsetting->desc.bNumEndpoints != 3) { @@ -1617,6 +1626,11 @@ .driver_info = NOT_A_MODEM, }, + /* Support for Droids MuIn LCD */ + { USB_DEVICE(0x04d8, 0x000b), + .driver_info = NO_DATA_INTERFACE, + }, + /* control interfaces without any protocol set */ { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, USB_CDC_PROTO_NONE) }, --- linux-2.6.38.orig/drivers/usb/class/cdc-wdm.c +++ linux-2.6.38/drivers/usb/class/cdc-wdm.c @@ -281,7 +281,7 @@ desc->sbuf, desc->validity->transfer_dma); usb_free_coherent(interface_to_usbdev(desc->intf), - desc->wMaxCommand, + desc->bMaxPacketSize0, desc->inbuf, desc->response->transfer_dma); kfree(desc->orq); --- linux-2.6.38.orig/drivers/usb/gadget/f_rndis.c +++ linux-2.6.38/drivers/usb/gadget/f_rndis.c @@ -420,8 +420,7 @@ */ case ((USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE) << 8) | USB_CDC_SEND_ENCAPSULATED_COMMAND: - if (w_length > req->length || w_value - || w_index != rndis->ctrl_id) + if (w_value || w_index != rndis->ctrl_id) goto invalid; /* read the request; process it later */ value = w_length; --- linux-2.6.38.orig/drivers/usb/gadget/at91_udc.c +++ linux-2.6.38/drivers/usb/gadget/at91_udc.c @@ -1767,7 +1767,7 @@ } /* newer chips have more FIFO memory than rm9200 */ - if (cpu_is_at91sam9260()) { + if (cpu_is_at91sam9260() || cpu_is_at91sam9g20()) { udc->ep[0].maxpacket = 64; udc->ep[3].maxpacket = 64; udc->ep[4].maxpacket = 512; --- linux-2.6.38.orig/drivers/usb/host/xhci-ring.c +++ linux-2.6.38/drivers/usb/host/xhci-ring.c @@ -500,15 +500,26 @@ state->new_cycle_state = ~(state->new_cycle_state) & 0x1; next_trb(xhci, ep_ring, &state->new_deq_seg, &state->new_deq_ptr); + /* + * If there is only one segment in a ring, find_trb_seg()'s while loop + * will not run, and it will return before it has a chance to see if it + * needs to toggle the cycle bit. It can't tell if the stalled transfer + * ended just before the link TRB on a one-segment ring, or if the TD + * wrapped around the top of the ring, because it doesn't have the TD in + * question. Look for the one-segment case where stalled TRB's address + * is greater than the new dequeue pointer address. + */ + if (ep_ring->first_seg == ep_ring->first_seg->next && + state->new_deq_ptr < dev->eps[ep_index].stopped_trb) + state->new_cycle_state ^= 0x1; + xhci_dbg(xhci, "Cycle state = 0x%x\n", state->new_cycle_state); + /* Don't update the ring cycle state for the producer (us). */ xhci_dbg(xhci, "New dequeue segment = %p (virtual)\n", state->new_deq_seg); addr = xhci_trb_virt_to_dma(state->new_deq_seg, state->new_deq_ptr); xhci_dbg(xhci, "New dequeue pointer = 0x%llx (DMA)\n", (unsigned long long) addr); - xhci_dbg(xhci, "Setting dequeue pointer in internal ring state.\n"); - ep_ring->dequeue = state->new_deq_ptr; - ep_ring->deq_seg = state->new_deq_seg; } static void td_to_noop(struct xhci_hcd *xhci, struct xhci_ring *ep_ring, @@ -951,9 +962,26 @@ } else { xhci_dbg(xhci, "Successful Set TR Deq Ptr cmd, deq = @%08llx\n", ep_ctx->deq); + if (xhci_trb_virt_to_dma(dev->eps[ep_index].queued_deq_seg, + dev->eps[ep_index].queued_deq_ptr) == + (ep_ctx->deq & ~(EP_CTX_CYCLE_MASK))) { + /* Update the ring's dequeue segment and dequeue pointer + * to reflect the new position. + */ + ep_ring->deq_seg = dev->eps[ep_index].queued_deq_seg; + ep_ring->dequeue = dev->eps[ep_index].queued_deq_ptr; + } else { + xhci_warn(xhci, "Mismatch between completed Set TR Deq " + "Ptr command & xHCI internal state.\n"); + xhci_warn(xhci, "ep deq seg = %p, deq ptr = %p\n", + dev->eps[ep_index].queued_deq_seg, + dev->eps[ep_index].queued_deq_ptr); + } } dev->eps[ep_index].ep_state &= ~SET_DEQ_PENDING; + dev->eps[ep_index].queued_deq_seg = NULL; + dev->eps[ep_index].queued_deq_ptr = NULL; /* Restart any rings with pending URBs */ ring_doorbell_for_active_rings(xhci, slot_id, ep_index); } @@ -1504,6 +1532,9 @@ else *status = 0; break; + case COMP_STOP_INVAL: + case COMP_STOP: + return finish_td(xhci, td, event_trb, event, ep, status, false); default: if (!xhci_requires_manual_halt_cleanup(xhci, ep_ctx, trb_comp_code)) @@ -1548,15 +1579,12 @@ } } else { /* Maybe the event was for the data stage? */ - if (trb_comp_code != COMP_STOP_INVAL) { - /* We didn't stop on a link TRB in the middle */ - td->urb->actual_length = - td->urb->transfer_buffer_length - - TRB_LEN(event->transfer_len); - xhci_dbg(xhci, "Waiting for status " - "stage event\n"); - return 0; - } + td->urb->actual_length = + td->urb->transfer_buffer_length - + TRB_LEN(le32_to_cpu(event->transfer_len)); + xhci_dbg(xhci, "Waiting for status " + "stage event\n"); + return 0; } } @@ -3229,6 +3257,7 @@ u32 trb_ep_index = EP_ID_FOR_TRB(ep_index); u32 trb_stream_id = STREAM_ID_FOR_TRB(stream_id); u32 type = TRB_TYPE(TRB_SET_DEQ); + struct xhci_virt_ep *ep; addr = xhci_trb_virt_to_dma(deq_seg, deq_ptr); if (addr == 0) { @@ -3237,6 +3266,14 @@ deq_seg, deq_ptr); return 0; } + ep = &xhci->devs[slot_id]->eps[ep_index]; + if ((ep->ep_state & SET_DEQ_PENDING)) { + xhci_warn(xhci, "WARN Cannot submit Set TR Deq Ptr\n"); + xhci_warn(xhci, "A Set TR Deq Ptr command is pending.\n"); + return 0; + } + ep->queued_deq_seg = deq_seg; + ep->queued_deq_ptr = deq_ptr; return queue_command(xhci, lower_32_bits(addr) | cycle_state, upper_32_bits(addr), trb_stream_id, trb_slot_id | trb_ep_index | type, false); --- linux-2.6.38.orig/drivers/usb/host/xhci-mem.c +++ linux-2.6.38/drivers/usb/host/xhci-mem.c @@ -207,14 +207,13 @@ rings_cached = virt_dev->num_rings_cached; if (rings_cached < XHCI_MAX_RINGS_CACHED) { - virt_dev->num_rings_cached++; - rings_cached = virt_dev->num_rings_cached; virt_dev->ring_cache[rings_cached] = virt_dev->eps[ep_index].ring; + virt_dev->num_rings_cached++; xhci_dbg(xhci, "Cached old ring, " "%d ring%s cached\n", - rings_cached, - (rings_cached > 1) ? "s" : ""); + virt_dev->num_rings_cached, + (virt_dev->num_rings_cached > 1) ? "s" : ""); } else { xhci_ring_free(xhci, virt_dev->eps[ep_index].ring); xhci_dbg(xhci, "Ring cache full (%d rings), " --- linux-2.6.38.orig/drivers/usb/host/ohci-pci.c +++ linux-2.6.38/drivers/usb/host/ohci-pci.c @@ -207,10 +207,18 @@ */ static int ohci_quirk_nvidia_shutdown(struct usb_hcd *hcd) { + struct pci_dev *pdev = to_pci_dev(hcd->self.controller); struct ohci_hcd *ohci = hcd_to_ohci(hcd); - ohci->flags |= OHCI_QUIRK_SHUTDOWN; - ohci_dbg(ohci, "enabled nVidia shutdown quirk\n"); + /* Evidently nVidia fixed their later hardware; this is a guess at + * the changeover point. + */ +#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_USB 0x026d + + if (pdev->device < PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_USB) { + ohci->flags |= OHCI_QUIRK_SHUTDOWN; + ohci_dbg(ohci, "enabled nVidia shutdown quirk\n"); + } return 0; } --- linux-2.6.38.orig/drivers/usb/host/xhci.c +++ linux-2.6.38/drivers/usb/host/xhci.c @@ -1636,8 +1636,17 @@ xhci_dbg_ctx(xhci, virt_dev->out_ctx, LAST_CTX_TO_EP_NUM(slot_ctx->dev_info)); + /* Free any rings that were dropped, but not changed. */ + for (i = 1; i < 31; ++i) { + if ((ctrl_ctx->drop_flags & (1 << (i + 1))) && + !(ctrl_ctx->add_flags & (1 << (i + 1)))) + xhci_free_or_cache_endpoint_ring(xhci, virt_dev, i); + } xhci_zero_in_ctx(xhci, virt_dev); - /* Install new rings and free or cache any old rings */ + /* + * Install any rings for completely new endpoints or changed endpoints, + * and free or cache any old rings from changed endpoints. + */ for (i = 1; i < 31; ++i) { if (!virt_dev->eps[i].new_ring) continue; @@ -2219,6 +2228,7 @@ struct xhci_command *reset_device_cmd; int timeleft; int last_freed_endpoint; + struct xhci_slot_ctx *slot_ctx; ret = xhci_check_args(hcd, udev, NULL, 0, false, __func__); if (ret <= 0) @@ -2251,6 +2261,12 @@ return -EINVAL; } + /* If device is not setup, there is no point in resetting it */ + slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); + if (GET_SLOT_STATE(le32_to_cpu(slot_ctx->dev_state)) == + SLOT_STATE_DISABLED) + return 0; + xhci_dbg(xhci, "Resetting device with slot ID %u\n", slot_id); /* Allocate the command structure that holds the struct completion. * Assume we're in process context, since the normal device reset --- linux-2.6.38.orig/drivers/usb/host/isp1760-hcd.c +++ linux-2.6.38/drivers/usb/host/isp1760-hcd.c @@ -33,6 +33,7 @@ struct inter_packet_info atl_ints[32]; struct inter_packet_info int_ints[32]; struct memory_chunk memory_pool[BLOCKS]; + u32 atl_queued; /* periodic schedule support */ #define DEFAULT_I_TDPS 1024 @@ -850,6 +851,11 @@ skip_map &= ~queue_entry; isp1760_writel(skip_map, hcd->regs + HC_ATL_PTD_SKIPMAP_REG); + priv->atl_queued++; + if (priv->atl_queued == 2) + isp1760_writel(INTERRUPT_ENABLE_SOT_MASK, + hcd->regs + HC_INTERRUPT_ENABLE); + buffstatus = isp1760_readl(hcd->regs + HC_BUFFER_STATUS_REG); buffstatus |= ATL_BUFFER; isp1760_writel(buffstatus, hcd->regs + HC_BUFFER_STATUS_REG); @@ -992,6 +998,7 @@ u32 dw3; status = 0; + priv->atl_queued--; queue_entry = __ffs(done_map); done_map &= ~(1 << queue_entry); @@ -1054,11 +1061,6 @@ * device is not able to send data fast enough. * This happens mostly on slower hardware. */ - printk(KERN_NOTICE "Reloading ptd %p/%p... qh %p read: " - "%d of %zu done: %08x cur: %08x\n", qtd, - urb, qh, PTD_XFERRED_LENGTH(dw3), - qtd->length, done_map, - (1 << queue_entry)); /* RL counter = ERR counter */ dw3 &= ~(0xf << 19); @@ -1086,6 +1088,11 @@ priv_write_copy(priv, (u32 *)&ptd, usb_hcd->regs + atl_regs, sizeof(ptd)); + priv->atl_queued++; + if (priv->atl_queued == 2) + isp1760_writel(INTERRUPT_ENABLE_SOT_MASK, + usb_hcd->regs + HC_INTERRUPT_ENABLE); + buffstatus = isp1760_readl(usb_hcd->regs + HC_BUFFER_STATUS_REG); buffstatus |= ATL_BUFFER; @@ -1191,6 +1198,9 @@ skip_map = isp1760_readl(usb_hcd->regs + HC_ATL_PTD_SKIPMAP_REG); } + if (priv->atl_queued <= 1) + isp1760_writel(INTERRUPT_ENABLE_MASK, + usb_hcd->regs + HC_INTERRUPT_ENABLE); } static void do_intl_int(struct usb_hcd *usb_hcd) @@ -1770,7 +1780,7 @@ goto leave; isp1760_writel(imask, usb_hcd->regs + HC_INTERRUPT_REG); - if (imask & HC_ATL_INT) + if (imask & (HC_ATL_INT | HC_SOT_INT)) do_atl_int(usb_hcd); if (imask & HC_INTL_INT) --- linux-2.6.38.orig/drivers/usb/host/xhci-dbg.c +++ linux-2.6.38/drivers/usb/host/xhci-dbg.c @@ -436,14 +436,14 @@ { struct xhci_slot_ctx *slot_ctx = xhci_get_slot_ctx(xhci, ctx); - switch (GET_SLOT_STATE(slot_ctx->dev_state)) { - case 0: + switch (GET_SLOT_STATE(le32_to_cpu(slot_ctx->dev_state))) { + case SLOT_STATE_ENABLED: return "enabled/disabled"; - case 1: + case SLOT_STATE_DEFAULT: return "default"; - case 2: + case SLOT_STATE_ADDRESSED: return "addressed"; - case 3: + case SLOT_STATE_CONFIGURED: return "configured"; default: return "reserved"; --- linux-2.6.38.orig/drivers/usb/host/xhci.h +++ linux-2.6.38/drivers/usb/host/xhci.h @@ -556,6 +556,11 @@ #define SLOT_STATE (0x1f << 27) #define GET_SLOT_STATE(p) (((p) & (0x1f << 27)) >> 27) +#define SLOT_STATE_DISABLED 0 +#define SLOT_STATE_ENABLED SLOT_STATE_DISABLED +#define SLOT_STATE_DEFAULT 1 +#define SLOT_STATE_ADDRESSED 2 +#define SLOT_STATE_CONFIGURED 3 /** * struct xhci_ep_ctx @@ -644,6 +649,9 @@ #define AVG_TRB_LENGTH_FOR_EP(p) ((p) & 0xffff) #define MAX_ESIT_PAYLOAD_FOR_EP(p) (((p) & 0xffff) << 16) +/* deq bitmasks */ +#define EP_CTX_CYCLE_MASK (1 << 0) + /** * struct xhci_input_control_context @@ -746,6 +754,12 @@ struct timer_list stop_cmd_timer; int stop_cmds_pending; struct xhci_hcd *xhci; + /* Dequeue pointer and dequeue segment for a submitted Set TR Dequeue + * command. We'll need to update the ring's dequeue segment and dequeue + * pointer after the command completes. + */ + struct xhci_segment *queued_deq_seg; + union xhci_trb *queued_deq_ptr; /* * Sometimes the xHC can not process isochronous endpoint ring quickly * enough, and it will miss some isoc tds on the ring and generate --- linux-2.6.38.orig/drivers/usb/host/isp116x-hcd.c +++ linux-2.6.38/drivers/usb/host/isp116x-hcd.c @@ -612,6 +612,7 @@ /* IRQ's are off, we do no DMA, perfectly ready to die ... */ hcd->state = HC_STATE_HALT; + usb_hc_died(hcd); ret = IRQ_HANDLED; goto done; } --- linux-2.6.38.orig/drivers/usb/host/isp1760-hcd.h +++ linux-2.6.38/drivers/usb/host/isp1760-hcd.h @@ -69,6 +69,7 @@ #define HC_INTERRUPT_ENABLE 0x314 #define INTERRUPT_ENABLE_MASK (HC_INTL_INT | HC_ATL_INT | HC_EOT_INT) +#define INTERRUPT_ENABLE_SOT_MASK (HC_INTL_INT | HC_SOT_INT | HC_EOT_INT) #define HC_ISO_INT (1 << 9) #define HC_ATL_INT (1 << 8) --- linux-2.6.38.orig/drivers/usb/host/ehci-hub.c +++ linux-2.6.38/drivers/usb/host/ehci-hub.c @@ -106,6 +106,27 @@ ehci->owned_ports = 0; } +static int ehci_port_change(struct ehci_hcd *ehci) +{ + int i = HCS_N_PORTS(ehci->hcs_params); + + /* First check if the controller indicates a change event */ + + if (ehci_readl(ehci, &ehci->regs->status) & STS_PCD) + return 1; + + /* + * Not all controllers appear to update this while going from D3 to D0, + * so check the individual port status registers as well + */ + + while (i--) + if (ehci_readl(ehci, &ehci->regs->port_status[i]) & PORT_CSC) + return 1; + + return 0; +} + static void ehci_adjust_port_wakeup_flags(struct ehci_hcd *ehci, bool suspending, bool do_wakeup) { @@ -173,7 +194,7 @@ } /* Does the root hub have a port wakeup pending? */ - if (!suspending && (ehci_readl(ehci, &ehci->regs->status) & STS_PCD)) + if (!suspending && ehci_port_change(ehci)) usb_hcd_resume_root_hub(ehci_to_hcd(ehci)); spin_unlock_irqrestore(&ehci->lock, flags); --- linux-2.6.38.orig/drivers/usb/host/ehci-sched.c +++ linux-2.6.38/drivers/usb/host/ehci-sched.c @@ -471,8 +471,10 @@ */ status = handshake_on_error_set_halt(ehci, &ehci->regs->status, STS_PSS, 0, 9 * 125); - if (status) + if (status) { + usb_hc_died(ehci_to_hcd(ehci)); return status; + } cmd = ehci_readl(ehci, &ehci->regs->command) | CMD_PSE; ehci_writel(ehci, cmd, &ehci->regs->command); @@ -510,8 +512,10 @@ */ status = handshake_on_error_set_halt(ehci, &ehci->regs->status, STS_PSS, STS_PSS, 9 * 125); - if (status) + if (status) { + usb_hc_died(ehci_to_hcd(ehci)); return status; + } cmd = ehci_readl(ehci, &ehci->regs->command) & ~CMD_PSE; ehci_writel(ehci, cmd, &ehci->regs->command); --- linux-2.6.38.orig/drivers/usb/host/ehci-hcd.c +++ linux-2.6.38/drivers/usb/host/ehci-hcd.c @@ -776,8 +776,9 @@ goto dead; } + /* Shared IRQ? */ masked_status = status & INTR_MASK; - if (!masked_status) { /* irq sharing? */ + if (!masked_status || unlikely(hcd->state == HC_STATE_HALT)) { spin_unlock(&ehci->lock); return IRQ_NONE; } @@ -872,6 +873,7 @@ dead: ehci_reset(ehci); ehci_writel(ehci, 0, &ehci->regs->configured_flag); + usb_hc_died(hcd); /* generic layer kills/unlinks all urbs, then * uses ehci_stop to clean up the rest */ --- linux-2.6.38.orig/drivers/usb/host/oxu210hp-hcd.c +++ linux-2.6.38/drivers/usb/host/oxu210hp-hcd.c @@ -1884,6 +1884,7 @@ status = handshake(oxu, &oxu->regs->status, STS_PSS, 0, 9 * 125); if (status != 0) { oxu_to_hcd(oxu)->state = HC_STATE_HALT; + usb_hc_died(oxu_to_hcd(oxu)); return status; } @@ -1909,6 +1910,7 @@ status = handshake(oxu, &oxu->regs->status, STS_PSS, STS_PSS, 9 * 125); if (status != 0) { oxu_to_hcd(oxu)->state = HC_STATE_HALT; + usb_hc_died(oxu_to_hcd(oxu)); return status; } @@ -2449,8 +2451,9 @@ goto dead; } + /* Shared IRQ? */ status &= INTR_MASK; - if (!status) { /* irq sharing? */ + if (!status || unlikely(hcd->state == HC_STATE_HALT)) { spin_unlock(&oxu->lock); return IRQ_NONE; } @@ -2516,6 +2519,7 @@ dead: ehci_reset(oxu); writel(0, &oxu->regs->configured_flag); + usb_hc_died(hcd); /* generic layer kills/unlinks all urbs, then * uses oxu_stop to clean up the rest */ --- linux-2.6.38.orig/drivers/usb/host/ohci-hcd.c +++ linux-2.6.38/drivers/usb/host/ohci-hcd.c @@ -773,6 +773,7 @@ if (ints == ~(u32)0) { disable (ohci); ohci_dbg (ohci, "device removed!\n"); + usb_hc_died(hcd); return IRQ_HANDLED; } @@ -780,7 +781,7 @@ ints &= ohci_readl(ohci, ®s->intrenable); /* interrupt for some other device? */ - if (ints == 0) + if (ints == 0 || unlikely(hcd->state == HC_STATE_HALT)) return IRQ_NOTMINE; if (ints & OHCI_INTR_UE) { @@ -797,6 +798,7 @@ } else { disable (ohci); ohci_err (ohci, "OHCI Unrecoverable Error, disabled\n"); + usb_hc_died(hcd); } ohci_dump (ohci, 1); --- linux-2.6.38.orig/drivers/usb/host/ehci-q.c +++ linux-2.6.38/drivers/usb/host/ehci-q.c @@ -315,7 +315,6 @@ int stopped; unsigned count = 0; u8 state; - const __le32 halt = HALT_BIT(ehci); struct ehci_qh_hw *hw = qh->hw; if (unlikely (list_empty (&qh->qtd_list))) @@ -422,7 +421,6 @@ && !(qtd->hw_alt_next & EHCI_LIST_END(ehci))) { stopped = 1; - goto halt; } /* stop scanning when we reach qtds the hc is using */ @@ -456,16 +454,6 @@ */ ehci_clear_tt_buffer(ehci, qh, urb, token); } - - /* force halt for unlinked or blocked qh, so we'll - * patch the qh later and so that completions can't - * activate it while we "know" it's stopped. - */ - if ((halt & hw->hw_token) == 0) { -halt: - hw->hw_token |= halt; - wmb (); - } } /* unless we already know the urb's status, collect qtd status @@ -1257,24 +1245,27 @@ static void scan_async (struct ehci_hcd *ehci) { + bool stopped; struct ehci_qh *qh; enum ehci_timer_action action = TIMER_IO_WATCHDOG; ehci->stamp = ehci_readl(ehci, &ehci->regs->frame_index); timer_action_done (ehci, TIMER_ASYNC_SHRINK); rescan: + stopped = !HC_IS_RUNNING(ehci_to_hcd(ehci)->state); qh = ehci->async->qh_next.qh; if (likely (qh != NULL)) { do { /* clean any finished work for this qh */ - if (!list_empty (&qh->qtd_list) - && qh->stamp != ehci->stamp) { + if (!list_empty(&qh->qtd_list) && (stopped || + qh->stamp != ehci->stamp)) { int temp; /* unlinks could happen here; completion * reporting drops the lock. rescan using * the latest schedule, but don't rescan - * qhs we already finished (no looping). + * qhs we already finished (no looping) + * unless the controller is stopped. */ qh = qh_get (qh); qh->stamp = ehci->stamp; @@ -1295,9 +1286,9 @@ */ if (list_empty(&qh->qtd_list) && qh->qh_state == QH_STATE_LINKED) { - if (!ehci->reclaim - && ((ehci->stamp - qh->stamp) & 0x1fff) - >= (EHCI_SHRINK_FRAMES * 8)) + if (!ehci->reclaim && (stopped || + ((ehci->stamp - qh->stamp) & 0x1fff) + >= EHCI_SHRINK_FRAMES * 8)) start_unlink_async(ehci, qh); else action = TIMER_ASYNC_SHRINK; --- linux-2.6.38.orig/drivers/usb/core/devices.c +++ linux-2.6.38/drivers/usb/core/devices.c @@ -221,7 +221,7 @@ break; case USB_ENDPOINT_XFER_INT: type = "Int."; - if (speed == USB_SPEED_HIGH) + if (speed == USB_SPEED_HIGH || speed == USB_SPEED_SUPER) interval = 1 << (desc->bInterval - 1); else interval = desc->bInterval; @@ -229,7 +229,8 @@ default: /* "can't happen" */ return start; } - interval *= (speed == USB_SPEED_HIGH) ? 125 : 1000; + interval *= (speed == USB_SPEED_HIGH || + speed == USB_SPEED_SUPER) ? 125 : 1000; if (interval % 1000) unit = 'u'; else { @@ -542,8 +543,9 @@ if (level == 0) { int max; - /* high speed reserves 80%, full/low reserves 90% */ - if (usbdev->speed == USB_SPEED_HIGH) + /* super/high speed reserves 80%, full/low reserves 90% */ + if (usbdev->speed == USB_SPEED_HIGH || + usbdev->speed == USB_SPEED_SUPER) max = 800; else max = FRAME_TIME_MAX_USECS_ALLOC; --- linux-2.6.38.orig/drivers/usb/core/sysfs.c +++ linux-2.6.38/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.38.orig/drivers/usb/core/hcd.c +++ linux-2.6.38/drivers/usb/core/hcd.c @@ -983,7 +983,7 @@ spin_unlock_irq (&hcd_root_hub_lock); /* Did the HC die before the root hub was registered? */ - if (hcd->state == HC_STATE_HALT) + if (HCD_DEAD(hcd)) usb_hc_died (hcd); /* This time clean up */ } @@ -1089,13 +1089,10 @@ * Check the host controller's state and add the URB to the * endpoint's queue. */ - switch (hcd->state) { - case HC_STATE_RUNNING: - case HC_STATE_RESUMING: + if (HCD_RH_RUNNING(hcd)) { urb->unlinked = 0; list_add_tail(&urb->urb_list, &urb->ep->urb_list); - break; - default: + } else { rc = -ESHUTDOWN; goto done; } @@ -1888,7 +1885,7 @@ /* Streams only apply to bulk endpoints. */ for (i = 0; i < num_eps; i++) - if (!usb_endpoint_xfer_bulk(&eps[i]->desc)) + if (!eps[i] || !usb_endpoint_xfer_bulk(&eps[i]->desc)) return; hcd->driver->free_streams(hcd, dev, eps, num_eps, mem_flags); @@ -1913,7 +1910,7 @@ { struct usb_hcd *hcd = bus_to_hcd(udev->bus); - if (!HC_IS_RUNNING (hcd->state)) + if (!HCD_RH_RUNNING(hcd)) return -ESHUTDOWN; return hcd->driver->get_frame_number (hcd); } @@ -1930,9 +1927,15 @@ dev_dbg(&rhdev->dev, "bus %s%s\n", (msg.event & PM_EVENT_AUTO ? "auto-" : ""), "suspend"); + if (HCD_DEAD(hcd)) { + dev_dbg(&rhdev->dev, "skipped %s of dead bus\n", "suspend"); + return 0; + } + if (!hcd->driver->bus_suspend) { status = -ENOENT; } else { + clear_bit(HCD_FLAG_RH_RUNNING, &hcd->flags); hcd->state = HC_STATE_QUIESCING; status = hcd->driver->bus_suspend(hcd); } @@ -1940,7 +1943,12 @@ usb_set_device_state(rhdev, USB_STATE_SUSPENDED); hcd->state = HC_STATE_SUSPENDED; } else { - hcd->state = old_state; + spin_lock_irq(&hcd_root_hub_lock); + if (!HCD_DEAD(hcd)) { + set_bit(HCD_FLAG_RH_RUNNING, &hcd->flags); + hcd->state = old_state; + } + spin_unlock_irq(&hcd_root_hub_lock); dev_dbg(&rhdev->dev, "bus %s fail, err %d\n", "suspend", status); } @@ -1955,9 +1963,13 @@ dev_dbg(&rhdev->dev, "usb %s%s\n", (msg.event & PM_EVENT_AUTO ? "auto-" : ""), "resume"); + if (HCD_DEAD(hcd)) { + dev_dbg(&rhdev->dev, "skipped %s of dead bus\n", "resume"); + return 0; + } if (!hcd->driver->bus_resume) return -ENOENT; - if (hcd->state == HC_STATE_RUNNING) + if (HCD_RH_RUNNING(hcd)) return 0; hcd->state = HC_STATE_RESUMING; @@ -1966,10 +1978,15 @@ if (status == 0) { /* TRSMRCY = 10 msec */ msleep(10); - usb_set_device_state(rhdev, rhdev->actconfig - ? USB_STATE_CONFIGURED - : USB_STATE_ADDRESS); - hcd->state = HC_STATE_RUNNING; + spin_lock_irq(&hcd_root_hub_lock); + if (!HCD_DEAD(hcd)) { + usb_set_device_state(rhdev, rhdev->actconfig + ? USB_STATE_CONFIGURED + : USB_STATE_ADDRESS); + set_bit(HCD_FLAG_RH_RUNNING, &hcd->flags); + hcd->state = HC_STATE_RUNNING; + } + spin_unlock_irq(&hcd_root_hub_lock); } else { hcd->state = old_state; dev_dbg(&rhdev->dev, "bus %s fail, err %d\n", @@ -2080,15 +2097,12 @@ */ local_irq_save(flags); - if (unlikely(hcd->state == HC_STATE_HALT || !HCD_HW_ACCESSIBLE(hcd))) { + if (unlikely(HCD_DEAD(hcd) || !HCD_HW_ACCESSIBLE(hcd))) { rc = IRQ_NONE; } else if (hcd->driver->irq(hcd) == IRQ_NONE) { rc = IRQ_NONE; } else { set_bit(HCD_FLAG_SAW_IRQ, &hcd->flags); - - if (unlikely(hcd->state == HC_STATE_HALT)) - usb_hc_died(hcd); rc = IRQ_HANDLED; } @@ -2114,6 +2128,8 @@ dev_err (hcd->self.controller, "HC died; cleaning up\n"); spin_lock_irqsave (&hcd_root_hub_lock, flags); + clear_bit(HCD_FLAG_RH_RUNNING, &hcd->flags); + set_bit(HCD_FLAG_DEAD, &hcd->flags); if (hcd->rh_registered) { clear_bit(HCD_FLAG_POLL_RH, &hcd->flags); @@ -2256,6 +2272,12 @@ */ device_init_wakeup(&rhdev->dev, 1); + /* HCD_FLAG_RH_RUNNING doesn't matter until the root hub is + * registered. But since the controller can die at any time, + * let's initialize the flag before touching the hardware. + */ + set_bit(HCD_FLAG_RH_RUNNING, &hcd->flags); + /* "reset" is misnamed; its role is now one-time init. the controller * should already have been reset (and boot firmware kicked off etc). */ @@ -2323,6 +2345,7 @@ return retval; error_create_attr_group: + clear_bit(HCD_FLAG_RH_RUNNING, &hcd->flags); if (HC_IS_RUNNING(hcd->state)) hcd->state = HC_STATE_QUIESCING; spin_lock_irq(&hcd_root_hub_lock); @@ -2375,6 +2398,7 @@ usb_get_dev(rhdev); sysfs_remove_group(&rhdev->dev.kobj, &usb_bus_attr_group); + clear_bit(HCD_FLAG_RH_RUNNING, &hcd->flags); if (HC_IS_RUNNING (hcd->state)) hcd->state = HC_STATE_QUIESCING; --- linux-2.6.38.orig/drivers/usb/core/hub.c +++ linux-2.6.38/drivers/usb/core/hub.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -1882,6 +1883,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; @@ -1889,11 +1894,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); @@ -1901,6 +1907,12 @@ out_unauthorized: usb_unlock_device(usb_dev); + if (product || manufacturer || serial) { + synchronize_rcu(); + kfree(product); + kfree(manufacturer); + kfree(serial); + } return 0; } @@ -1908,6 +1920,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) @@ -1926,11 +1941,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; @@ -1958,6 +1974,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; } --- linux-2.6.38.orig/drivers/usb/core/devio.c +++ linux-2.6.38/drivers/usb/core/devio.c @@ -802,7 +802,7 @@ tbuf, ctrl.wLength, tmo); usb_lock_device(dev); snoop_urb(dev, NULL, pipe, max(i, 0), min(i, 0), COMPLETE, - tbuf, i); + tbuf, max(i, 0)); if ((i > 0) && ctrl.wLength) { if (copy_to_user(ctrl.data, tbuf, i)) { free_page((unsigned long)tbuf); --- linux-2.6.38.orig/drivers/usb/core/hcd-pci.c +++ linux-2.6.38/drivers/usb/core/hcd-pci.c @@ -363,8 +363,7 @@ struct pci_dev *pci_dev = to_pci_dev(dev); struct usb_hcd *hcd = pci_get_drvdata(pci_dev); - if (!(hcd->state == HC_STATE_SUSPENDED || - hcd->state == HC_STATE_HALT)) { + if (HCD_RH_RUNNING(hcd)) { dev_warn(dev, "Root hub is not suspended\n"); return -EBUSY; } @@ -386,7 +385,7 @@ if (retval) return retval; - if (hcd->driver->pci_suspend) { + if (hcd->driver->pci_suspend && !HCD_DEAD(hcd)) { /* Optimization: Don't suspend if a root-hub wakeup is * pending and it would cause the HCD to wake up anyway. */ @@ -427,7 +426,7 @@ struct usb_hcd *hcd = pci_get_drvdata(pci_dev); int retval; - if (hcd->state != HC_STATE_SUSPENDED) { + if (HCD_RH_RUNNING(hcd)) { dev_dbg(dev, "can't resume, not suspended!\n"); return 0; } @@ -442,7 +441,7 @@ clear_bit(HCD_FLAG_SAW_IRQ, &hcd->flags); - if (hcd->driver->pci_resume) { + if (hcd->driver->pci_resume && !HCD_DEAD(hcd)) { if (event != PM_EVENT_AUTO_RESUME) wait_for_companions(pci_dev, hcd); @@ -475,10 +474,10 @@ pci_save_state(pci_dev); - /* If the root hub is HALTed rather than SUSPENDed, + /* If the root hub is dead rather than suspended, * disallow remote wakeup. */ - if (hcd->state == HC_STATE_HALT) + if (HCD_DEAD(hcd)) device_set_wakeup_enable(dev, 0); dev_dbg(dev, "wakeup: %d\n", device_may_wakeup(dev)); --- linux-2.6.38.orig/drivers/usb/core/urb.c +++ linux-2.6.38/drivers/usb/core/urb.c @@ -366,7 +366,16 @@ if (xfertype == USB_ENDPOINT_XFER_ISOC) { int n, len; - /* FIXME SuperSpeed isoc endpoints have up to 16 bursts */ + /* SuperSpeed isoc endpoints have up to 16 bursts of up to + * 3 packets each + */ + if (dev->speed == USB_SPEED_SUPER) { + int burst = 1 + ep->ss_ep_comp.bMaxBurst; + int mult = USB_SS_MULT(ep->ss_ep_comp.bmAttributes); + max *= burst; + max *= mult; + } + /* "high bandwidth" mode, 1-3 packets/uframe? */ if (dev->speed == USB_SPEED_HIGH) { int mult = 1 + ((max >> 11) & 0x03); --- linux-2.6.38.orig/drivers/usb/musb/Kconfig +++ linux-2.6.38/drivers/usb/musb/Kconfig @@ -14,7 +14,7 @@ select TWL4030_USB if MACH_OMAP_3430SDP select TWL6030_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA select USB_OTG_UTILS - tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)' + bool 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)' help Say Y here if your system has a dual role high speed USB controller based on the Mentor Graphics silicon IP. Then @@ -30,8 +30,8 @@ If you do not know what this is, please say N. - To compile this driver as a module, choose M here; the - module will be called "musb-hdrc". +# To compile this driver as a module, choose M here; the +# module will be called "musb-hdrc". choice prompt "Platform Glue Layer" --- linux-2.6.38.orig/drivers/usb/musb/blackfin.c +++ linux-2.6.38/drivers/usb/musb/blackfin.c @@ -322,7 +322,7 @@ mod_timer(&musb_conn_timer, jiffies + TIMER_DELAY); } -static int bfin_musb_get_vbus_status(struct musb *musb) +static int bfin_musb_vbus_status(struct musb *musb) { return 0; } @@ -540,7 +540,7 @@ .resume = bfin_resume, }; -#define DEV_PM_OPS &bfin_pm_op, +#define DEV_PM_OPS &bfin_pm_ops #else #define DEV_PM_OPS NULL #endif @@ -548,7 +548,7 @@ static struct platform_driver bfin_driver = { .remove = __exit_p(bfin_remove), .driver = { - .name = "musb-bfin", + .name = "musb-blackfin", .pm = DEV_PM_OPS, }, }; --- linux-2.6.38.orig/drivers/tty/n_gsm.c +++ linux-2.6.38/drivers/tty/n_gsm.c @@ -1659,8 +1659,12 @@ if ((gsm->control & ~PF) == UI) gsm->fcs = gsm_fcs_add_block(gsm->fcs, gsm->buf, gsm->len); - /* generate final CRC with received FCS */ - gsm->fcs = gsm_fcs_add(gsm->fcs, gsm->received_fcs); + if (gsm->encoding == 0){ + /* WARNING: gsm->received_fcs is used for gsm->encoding = 0 only. + In this case it contain the last piece of data + required to generate final CRC */ + gsm->fcs = gsm_fcs_add(gsm->fcs, gsm->received_fcs); + } if (gsm->fcs != GOOD_FCS) { gsm->bad_fcs++; if (debug & 4) --- linux-2.6.38.orig/drivers/tty/serial/imx.c +++ linux-2.6.38/drivers/tty/serial/imx.c @@ -382,12 +382,13 @@ static irqreturn_t imx_rtsint(int irq, void *dev_id) { struct imx_port *sport = dev_id; - unsigned int val = readl(sport->port.membase + USR1) & USR1_RTSS; + unsigned int val; unsigned long flags; spin_lock_irqsave(&sport->port.lock, flags); writel(USR1_RTSD, sport->port.membase + USR1); + val = readl(sport->port.membase + USR1) & USR1_RTSS; uart_handle_cts_change(&sport->port, !!val); wake_up_interruptible(&sport->port.state->port.delta_msr_wait); --- linux-2.6.38.orig/drivers/tty/serial/pch_uart.c +++ linux-2.6.38/drivers/tty/serial/pch_uart.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include --- linux-2.6.38.orig/drivers/tty/serial/mrst_max3110.c +++ linux-2.6.38/drivers/tty/serial/mrst_max3110.c @@ -51,7 +51,7 @@ struct uart_max3110 { struct uart_port port; struct spi_device *spi; - char name[24]; + char name[SPI_NAME_SIZE]; wait_queue_head_t wq; struct task_struct *main_thread; --- linux-2.6.38.orig/drivers/tty/serial/8250.c +++ linux-2.6.38/drivers/tty/serial/8250.c @@ -954,6 +954,23 @@ return 0; } +static inline int ns16550a_goto_highspeed(struct uart_8250_port *up) +{ + unsigned char status; + + status = serial_in(up, 0x04); /* EXCR2 */ +#define PRESL(x) ((x) & 0x30) + if (PRESL(status) == 0x10) { + /* already in high speed mode */ + return 0; + } else { + status &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */ + status |= 0x10; /* 1.625 divisor for baud_base --> 921600 */ + serial_outp(up, 0x04, status); + } + return 1; +} + /* * We know that the chip has FIFOs. Does it have an EFR? The * EFR is located in the same register position as the IIR and @@ -1025,12 +1042,8 @@ quot = serial_dl_read(up); quot <<= 3; - status1 = serial_in(up, 0x04); /* EXCR2 */ - status1 &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */ - status1 |= 0x10; /* 1.625 divisor for baud_base --> 921600 */ - serial_outp(up, 0x04, status1); - - serial_dl_write(up, quot); + if (ns16550a_goto_highspeed(up)) + serial_dl_write(up, quot); serial_outp(up, UART_LCR, 0); @@ -3025,17 +3038,13 @@ struct uart_8250_port *up = &serial8250_ports[line]; if (up->capabilities & UART_NATSEMI) { - unsigned char tmp; - /* Ensure it's still in high speed mode */ serial_outp(up, UART_LCR, 0xE0); - tmp = serial_in(up, 0x04); /* EXCR2 */ - tmp &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */ - tmp |= 0x10; /* 1.625 divisor for baud_base --> 921600 */ - serial_outp(up, 0x04, tmp); + ns16550a_goto_highspeed(up); serial_outp(up, UART_LCR, 0); + up->port.uartclk = 921600*16; } uart_resume_port(&serial8250_reg, &up->port); } --- linux-2.6.38.orig/drivers/tty/vt/vt.c +++ linux-2.6.38/drivers/tty/vt/vt.c @@ -106,6 +106,7 @@ #include #include #include +#include #define MAX_NR_CON_DRIVER 16 @@ -148,7 +149,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); @@ -169,6 +170,9 @@ static int cur_default = CUR_DEFAULT; module_param(cur_default, int, S_IRUGO | S_IWUSR); +int vt_handoff = 0; +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. @@ -698,6 +702,13 @@ } if (tty0dev) sysfs_notify(&tty0dev->kobj, NULL, "active"); + /* + * 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; @@ -811,7 +822,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); } @@ -2856,7 +2867,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 ; @@ -2867,7 +2878,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] ; @@ -2893,6 +2904,13 @@ struct vc_data *vc; unsigned int currcons = 0, i; + if (screen_info.flags & VIDEO_FLAGS_HANDOFF) { + if (vt_handoff == 0) + vt_handoff = 8; + printk(KERN_INFO "vt handoff: grub requested handoff (vt#%d)\n", + vt_handoff); + } + console_lock(); if (conswitchp) @@ -2924,16 +2942,31 @@ mod_timer(&console_timer, jiffies + (blankinterval * HZ)); } + if (vt_handoff > 0 && vt_handoff <= MAX_NR_CONSOLES) { + currcons = vt_handoff - 1; + 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 - 1) + continue; vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT); INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK); tty_port_init(&vc->port); 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 vt#%d\n", + vt_handoff); + currcons = fg_console = vt_handoff - 1; + } master_display_fg = vc = vc_cons[currcons].d; set_origin(vc); save_screen(vc); --- linux-2.6.38.orig/drivers/tty/vt/vt_ioctl.c +++ linux-2.6.38/drivers/tty/vt/vt_ioctl.c @@ -38,6 +38,8 @@ #include #include +#define max_font_size 65536 + char vt_dont_switch; extern struct tty_driver *console_driver; @@ -1344,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; @@ -1377,7 +1379,7 @@ */ if (tty) __do_SAK(tty); - reset_vc(vc); + reset_vc(vc, KD_TEXT); } console_unlock(); } @@ -1592,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; @@ -1600,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 @@ -1641,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) @@ -1713,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.38.orig/debian/control.stub +++ linux-2.6.38/debian/control.stub @@ -0,0 +1,586 @@ +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, dpkg (>= 1.16.0~ubuntu4) +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-natty.git + +Package: linux-source-2.6.38 +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.38 with Ubuntu patches + This package provides the source code for the Linux kernel version + 2.6.38. + . + 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.38 + This package provides the various documents in the 2.6.38 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.38 + This package provides the architecture independent parts for kernel + version locked tools in the 2.6.38 kernel source. + +Package: linux-headers-2.6.38-12 +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.38 + This package provides kernel header files for version 2.6.38, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc ppc64 armel armhf +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 +Multi-Arch: same +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.38-12 +Architecture: i386 amd64 powerpc ppc64 armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel tools for version 2.6.38-12 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.38-12 on + DESC. + + +Package: linux-image-2.6.38-12-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-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86/x86_64 + This package provides kernel header files for version 2.6.38 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86/x86_64 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86 + This package contains the Linux kernel image for version 2.6.38 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.38-12-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86 + This package provides kernel header files for version 2.6.38 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on TI OMAP3-based systems + This package contains the Linux kernel image for version 2.6.38 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.38-12-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on TI OMAP3-based systems + This package provides kernel header files for version 2.6.38 on + TI OMAP3-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-omap-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on TI OMAP3-based systems + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 32-bit PowerPC + This package provides kernel header files for version 2.6.38 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.38 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.38-12-powerpc64-smp +Architecture: powerpc ppc64 +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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc64-smp +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.38 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc64-smp-dbgsym +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.38 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.38 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.38-12-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-efi-amd64 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86_64 + This package provides kernel header files for version 2.6.38 on + x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-server-dbgsym +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86_64 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on Versatile-based systems + This package contains the Linux kernel image for version 2.6.38 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.38-12-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on Versatile-based systems + This package provides kernel header files for version 2.6.38 on + Versatile-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-versatile-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on Versatile-based systems + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86/x86_64 + This package provides kernel header files for version 2.6.38 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86/x86_64 + This package provides a kernel debug image for version 2.6.38 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.38.orig/debian/copyright +++ linux-2.6.38/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.38.orig/debian/changelog +++ linux-2.6.38/debian/changelog @@ -0,0 +1,6952 @@ +linux (2.6.38-12.51) natty-proposed; urgency=low + + [Herton R. Krzesinski] + + * Release Tracking Bug + - LP: #860832 + + [ Alex Bligh ] + + * SAUCE: net/netfilter/nf_conntrack_netlink.c: fix Oops on container + destroy + - LP: #843892 + + [ Jesse Sung ] + + * SAUCE: Unregister input device only if it is registered + - LP: #839238 + + [ Leann Ogasawara ] + + * SAUCE: x86: reboot: Make Dell Latitude E6220 use reboot=pci + - LP: #838402 + * SAUCE: x86: reboot: Make Dell Latitude E6520 use reboot=pci + - LP: #833705 + + [ Ming Lei ] + + * SAUCE: fireware: add NO_MSI quirks for o2micro controller + - LP: #801719 + + [ Stefan Bader ] + + * [Config] Include all filesystem modules for virtual + - LP: #761809 + + [ Tim Gardner ] + + * [Config] kernel preparation cannot be parallelized + * [Config] Linearize module/abi checks + * [Config] Linearize and simplify tree preparation rules + * [Config] Build kernel image in parallel with modules + * [Config] Set concurrency for kmake invocations + * [Config] Improve install-arch-headers speed + * [Config] Fix binary-perarch dependencies + * [Config] Removed stamp-flavours target + * [Config] Serialize binary indep targets + * [Config] Use build stamp directly + * [Config] Restore prepare-% target + * [Config] Fix binary-% build target + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: disable PCH ports if needed when disabling a CRTC" + - LP: #814325, #838181 + * drm/i915: restore only the mode of this driver on lastclose (v2) + - LP: #848687 + * cifs: fix possible memory corruption in CIFSFindNext, CVE-2011-3191 + - LP: #834135 + - CVE-2011-3191 + * befs: Validate length of long symbolic links, CVE-2011-2928 + - LP: #834124 + - CVE-2011-2928 + * gro: Only reset frag0 when skb can be pulled, CVE-2011-2723 + - LP: #844371 + - CVE-2011-2723 + * inet_diag: fix inet_diag_bc_audit(), CVE-2011-2213 + - LP: #838421 + - CVE-2011-2213 + * si4713-i2c: avoid potential buffer overflow on si4713, CVE-2011-2700 + - LP: #844370 + - CVE-2011-2700 + * Bluetooth: Prevent buffer overflow in l2cap config request, + CVE-2011-2497 + - LP: #838423 + - CVE-2011-2497 + * crypto: Move md5_transform to lib/md5.c, CVE-2011-3188 + - LP: #834129 + - CVE-2011-3188 + * net: Compute protocol sequence numbers and fragment IDs using MD5, + CVE-2011-3188 + - LP: #834129 + - CVE-2011-3188 + * x86, intel, power: Initialize MSR_IA32_ENERGY_PERF_BIAS + - LP: #760131 + * x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message + - LP: #760131 + * rt2x00: Serialize TX operations on a queue. + - LP: #855239 + * ext4: Fix max file size and logical block counting of extent format + file, CVE-2011-2695 + - LP: #819574 + - CVE-2011-2695 + + -- Herton Ronaldo Krzesinski Tue, 27 Sep 2011 16:19:57 -0300 + +linux (2.6.38-11.50) natty-proposed; urgency=low + + [Herton R. Krzesinski] + + * Release Tracking Bug + - LP: #848246 + + [ Upstream Kernel Changes ] + + * Revert "eCryptfs: Handle failed metadata read in lookup" + * Revert "KVM: fix kvmclock regression due to missing clock update" + * Revert "ath9k: use split rx buffers to get rid of order-1 skb + allocations" + + -- Herton Ronaldo Krzesinski Mon, 12 Sep 2011 17:23:38 -0300 + +linux (2.6.38-11.49) natty-proposed; urgency=low + + [Herton R. Krzesinski] + + * Release Tracking Bug + - LP: #836903 + + [ Adam Jackson ] + + * SAUCE: drm/i915/pch: Fix integer math bugs in panel fitting + - LP: #753994 + + [ Keng-Yu Lin ] + + * SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo Zhaoyang E47 + - LP: #632884, #803005 + + [ Stefan Bader ] + + * [Config] Force perf to use libiberty for demangling + - LP: #783660 + + [ Tim Gardner ] + + * [Config] Add enic/fnic to udebs + - LP: #801610 + + [ Upstream Kernel Changes ] + + * eeepc-wmi: add keys found on EeePC 1215T + - LP: #812644 + * eCryptfs: Handle failed metadata read in lookup + - LP: #509180 + * pagemap: close races with suid execve, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * report errors in /proc/*/*map* sanely, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * close race in /proc/*/environ, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * auxv: require the target to be tracable (or yourself), CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * deal with races in /proc/*/{syscall, stack, personality}, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * vmscan: fix a livelock in kswapd + - LP: #813797 + * mmc: Add PCI fixup quirks for Ricoh 1180:e823 reader + - LP: #773524 + * mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency + - LP: #773524 + * rose: Add length checks to CALL_REQUEST parsing, CVE-2011-1493 + - LP: #816550 + - CVE-2011-1493 + * pata_marvell: Add support for 88SE91A0, 88SE91A4 + - LP: #777325 + * GFS2: make sure fallocate bytes is a multiple of blksize, CVE-2011-2689 + - LP: #819572 + - CVE-2011-2689 + * Bluetooth: l2cap and rfcomm: fix 1 byte infoleak to userspace. + - LP: #819569 + - CVE-2011-2492 + * drm/nv50-nvc0: work around an evo channel hang that some people see + - LP: #583760 + * KVM: fix kvmclock regression due to missing clock update + - LP: #795717 + * Add mount option to check uid of device being mounted = expect uid, + CVE-2011-1833 + - LP: #732628 + - CVE-2011-1833 + * proc: fix oops on invalid /proc//maps access, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * ipv6: make fragment identifications less predictable, CVE-2011-2699 + - LP: #827685 + - CVE-2011-2699 + * ath9k: use split rx buffers to get rid of order-1 skb allocations + - LP: #728835 + * perf: Fix software event overflow, CVE-2011-2918 + - LP: #834121 + - CVE-2011-2918 + + -- Herton Ronaldo Krzesinski Mon, 29 Aug 2011 16:24:25 -0300 + +linux (2.6.38-11.48) natty-proposed; urgency=low + + [Herton R. Krzesinski] + + * Release Tracking Bug + - LP: #818175 + + [ Upstream Kernel Changes ] + + * Revert "HID: magicmouse: ignore 'ivalid report id' while switching + modes" + - LP: #814250 + + -- Herton Ronaldo Krzesinski Fri, 29 Jul 2011 14:50:19 -0300 + +linux (2.6.38-11.47) natty-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #811180 + + [ Keng-Yu Lin ] + + * SAUCE: Revert: "dell-laptop: Toggle the unsupported hardware + killswitch" + - LP: #775281 + + [ Ming Lei ] + + * SAUCE: fix yama_ptracer_del lockdep warning + - LP: #791019 + + [ Stefan Bader ] + + * SAUCE: Re-enable RODATA for i386 virtual + - LP: #809838 + + [ Tim Gardner ] + + * [Config] Add grub-efi as a recommended bootloader for server and + generic + - LP: #800910 + * SAUCE: rtl8192se: Force a build for a 2.6/3.0 kernel + - LP: #805494 + + [ Upstream Kernel Changes ] + + * Revert "bridge: Forward reserved group addresses if !STP" + - LP: #793702 + * Fix up ABI directory + * bonding: Incorrect TX queue offset, CVE-2011-1581 + - LP: #792312 + - CVE-2011-1581 + * fs/partitions/efi.c: corrupted GUID partition tables can cause kernel + oops + - LP: #795418 + - CVE-2011-1577 + * usbnet/cdc_ncm: add missing .reset_resume hook + - LP: #793892 + * ath5k: Disable fast channel switching by default + - LP: #767192 + * mm: vmscan: correctly check if reclaimer should schedule during + shrink_slab + - LP: #755066 + * mm: vmscan: correct use of pgdat_balanced in sleeping_prematurely + - LP: #755066 + * ALSA: hda - Use LPIB for ATI/AMD chipsets as default + - LP: #741825 + * ALSA: hda - Enable snoop bit for AMD controllers + - LP: #741825 + * ALSA: hda - Enable sync_write workaround for AMD generically + - LP: #741825 + * cpuidle: menu: fixed wrapping timers at 4.294 seconds + - LP: #774947 + * drm/i915: Fix gen6 (SNB) missed BLT ring interrupts. + - LP: #761065 + * USB: ehci: remove structure packing from ehci_def + - LP: #791552 + * drm/i915: disable PCH ports if needed when disabling a CRTC + - LP: #791752 + * kmemleak: Do not return a pointer to an object that kmemleak did not + get + - LP: #793702 + * kmemleak: Initialise kmemleak after debug_objects_mem_init() + - LP: #793702 + * Fix _OSC UUID in pcc-cpufreq + - LP: #793702 + * CPU hotplug, re-create sysfs directory and symlinks + - LP: #793702 + * Fix memory leak in cpufreq_stat + - LP: #793702 + * net: recvmmsg: Strip MSG_WAITFORONE when calling recvmsg + - LP: #793702 + * ftrace: Only update the function code on write to filter files + - LP: #793702 + * qla2xxx: Fix hang during driver unload when vport is active. + - LP: #793702 + * qla2xxx: Fix virtual port failing to login after chip reset. + - LP: #793702 + * qla2xxx: Fix vport delete hang when logins are outstanding. + - LP: #793702 + * powerpc/kdump64: Don't reference freed memory as pacas + - LP: #793702 + * powerpc/kexec: Fix memory corruption from unallocated slaves + - LP: #793702 + * x86, cpufeature: Fix cpuid leaf 7 feature detection + - LP: #793702 + * ath9k_hw: do noise floor calibration only on required chains + - LP: #793702 + * ath9k_hw: fix power for the HT40 duplicate frames + - LP: #793702 + * ath9k_hw: fix dual band assumption for XB113 + - LP: #793702 + * ath9k_hw: Fix STA connection issues with AR9380 (XB113). + - LP: #793702 + * powerpc: Set nr_cpu_ids early and use it to free PACAs + - LP: #793702 + * powerpc/oprofile: Handle events that raise an exception without + overflowing + - LP: #793702 + * iwlagn: fix iwl_is_any_associated + - LP: #793702 + * block: rescan partitions on invalidated devices on -ENOMEDIA too + - LP: #793702 + * block: move bd_set_size() above rescan_partitions() in __blkdev_get() + - LP: #793702 + * paride: Convert to bdops->check_events() + - LP: #793702 + * gdrom,viocd: Convert to bdops->check_events() + - LP: #793702 + * ide: Convert to bdops->check_events() + - LP: #793702 + * block: don't block events on excl write for non-optical devices + - LP: #793702 + * block: Fix discard topology stacking and reporting + - LP: #793702 + * block: add proper state guards to __elv_next_request + - LP: #793702 + * block: always allocate genhd->ev if check_events is implemented + - LP: #793702 + * mtd: mtdconcat: fix NAND OOB write + - LP: #793702 + * mtd: return badblockbits back + - LP: #793702 + * x86, 64-bit: Fix copy_[to/from]_user() checks for the userspace address + limit + - LP: #793702 + * ext4: fix possible use-after-free in ext4_remove_li_request() + - LP: #793702 + * iwlwifi: fix bugs in change_interface + - LP: #793702 + * nl80211: Fix set_key regression with some drivers + - LP: #793702 + * mac80211: fix a few RCU issues + - LP: #793702 + * wire up fanotify syscalls + - LP: #793702 + * wire up clock_adjtime syscall + - LP: #793702 + * drm: Send pending vblank events before disabling vblank. + - LP: #793702 + * pata_cm64x: fix boot crash on parisc + - LP: #793702 + * ext3: Fix fs corruption when make_indexed_dir() fails + - LP: #793702 + * jbd: Fix forever sleeping process in do_get_write_access() + - LP: #793702 + * jbd: fix fsync() tid wraparound bug + - LP: #793702 + * ext4: release page cache in ext4_mb_load_buddy error path + - LP: #793702 + * bonding: 802.3ad - fix agg_device_up + - LP: #793702 + * bridge: fix forwarding of IPv6 + - LP: #793702 + * ieee802154: Remove hacked CFLAGS in net/ieee802154/Makefile + - LP: #793702 + * irda: fix locking unbalance in irda_sendmsg + - LP: #793702 + * inetpeer: reduce stack usage + - LP: #793702 + * ipv6: Remove hoplimit initialization to -1 + - LP: #793702 + * ipv6: udp: fix the wrong headroom check + - LP: #793702 + * macvlan: fix panic if lowerdev in a bond + - LP: #793702 + * net: Do not wrap sysctl igmp_max_memberships in IP_MULTICAST + - LP: #793702 + * net: use hlist_del_rcu() in dev_change_name() + - LP: #793702 + * SCTP: fix race between sctp_bind_addr_free() and + sctp_bind_addr_conflict() + - LP: #793702 + * tcp: len check is unnecessarily devastating, change to WARN_ON + - LP: #793702 + * vlan: fix GVRP at dismantle time MIME-Version: 1.0 + - LP: #793702 + * igmp: call ip_mc_clear_src() only when we have no users of ip_mc_list + - LP: #793702 + * net: add skb_dst_force() in sock_queue_err_skb() + - LP: #793702 + * sch_sfq: avoid giving spurious NET_XMIT_CN signals + - LP: #793702 + * sctp: fix memory leak of the ASCONF queue when free asoc + - LP: #793702 + * sch_sfq: fix peek() implementation + - LP: #793702 + * bonding: prevent deadlock on slave store with alb mode (v3) + - LP: #793702 + * mpt2sas: move even handling of MPT2SAS_TURN_ON_FAULT_LED into process + context + - LP: #793702 + * bnx2i: Fixed packet error created when the sq_size is set to 16 + - LP: #793702 + * bnx2i: Updated the connection shutdown/cleanup timeout + - LP: #793702 + * Fix Ultrastor asm snippet + - LP: #793702 + * target: Fix multi task->task_sg[] chaining logic bug + - LP: #793702 + * target: Fix interrupt context bug with stats_lock and + core_tmr_alloc_req + - LP: #793702 + * target: Fix bug with task_sg chained transport_free_dev_tasks release + - LP: #793702 + * target: Fix task->task_execute_queue=1 clear bug + LUN_RESET OOPs + - LP: #793702 + * x86, ioapic: Fix potential resume deadlock + - LP: #793702 + * x86, amd: Do not enable ARAT feature on AMD processors below family + 0x12 + - LP: #793702 + * x86, amd: Use _safe() msr access for GartTlbWlk disable code + - LP: #793702 + * x86, cpufeature: Update CPU feature RDRND to RDRAND + - LP: #793702 + * oprofile, x86: Enable preemption during pci device setup in IBS init + - LP: #793702 + * rcu: Fix unpaired rcu_irq_enter() from locking selftests + - LP: #793702 + * When mandatory encryption on share, fail mount + - LP: #793702 + * staging: usbip: fix wrong endian conversion + - LP: #793702 + * staging: r8712u: Fix driver to support ad-hoc mode + - LP: #793702 + * Fix for buffer overflow in ldm_frag_add not sufficient + - LP: #793702 + * seqlock: Don't smp_rmb in seqlock reader spin loop + - LP: #793702 + * md: Fix race when creating a new md device. + - LP: #793702 + * md/bitmap: fix saving of events_cleared and other state. + - LP: #793702 + * ALSA: HDA: Use one dmic only for Dell Studio 1558 + - LP: #731706, #793702 + * ALSA: HDA: Add quirk for Lenovo U350 + - LP: #751681, #793702 + * ALSA: hda - Fix input-src parse in patch_analog.c + - LP: #793702 + * ASoC: Ensure output PGA is enabled for line outputs in wm_hubs + - LP: #793702 + * ASoC: Add some missing volume update bit sets for wm_hubs devices + - LP: #793702 + * HID: magicmouse: ignore 'ivalid report id' while switching modes + - LP: #793702 + * mm/page_alloc.c: prevent unending loop in __alloc_pages_slowpath() + - LP: #793702 + * loop: limit 'max_part' module param to DISK_MAX_PARTS + - LP: #793702 + * loop: handle on-demand devices correctly + - LP: #793702 + * i2c/writing-clients: Fix foo_driver.id_table + - LP: #793702 + * USB: CP210x Add 4 Device IDs for AC-Services Devices + - LP: #793702 + * USB: moto_modem: Add USB identifier for the Motorola VE240. + - LP: #793702 + * USB: serial: ftdi_sio: adding support for TavIR STK500 + - LP: #793702 + * USB: gadget: g_multi: fixed vendor and product ID in inf files + - LP: #793702 + * USB: gamin_gps: Fix for data transfer problems in native mode + - LP: #793702 + * Bind only modem AT command endpoint to option module. + - LP: #793702 + * USB: cdc_acm: Fix oops when Droids MuIn LCD is connected + - LP: #793702 + * xhci: Fix bug in control transfer cancellation. + - LP: #793702 + * usb/gadget: at91sam9g20 fix end point max packet size + - LP: #793702 + * usb: gadget: rndis: don't test against req->length + - LP: #793702 + * xhci: Fix memory leak in ring cache deallocation. + - LP: #793702 + * xhci: Fix memory leak bug when dropping endpoints + - LP: #793702 + * USB: option: add support for Huawei E353 device + - LP: #793702 + * OHCI: fix regression caused by nVidia shutdown workaround + - LP: #793702 + * USB: remove remaining usages of hcd->state from usbcore and fix + regression + - LP: #793702 + * cx88: protect per-device driver list with device lock + - LP: #793702 + * cx88: fix locking of sub-driver operations + - LP: #793702 + * cx88: hold device lock during sub-driver initialization + - LP: #793702 + * sh: clkfwk: fixup clk_rate_table_build parameter in div6 clock + - LP: #793702 + * sh: fixup fpu.o compile order + - LP: #793702 + * p54usb: add zoom 4410 usbid + - LP: #793702 + * eCryptfs: Allow 2 scatterlist entries for encrypted filenames + - LP: #793702 + * UBIFS: fix a rare memory leak in ro to rw remounting path + - LP: #793702 + * kbuild: Fix GNU make v3.80 compatibility + - LP: #793702 + * i8k: Avoid lahf in 64-bit code + - LP: #793702 + * idle governor: Avoid lock acquisition to read pm_qos before entering + idle + - LP: #793702 + * dm table: reject devices without request fns + - LP: #793702 + * ARM: 6941/1: cache: ensure MVA is cacheline aligned in + flush_kern_dcache_area + - LP: #793702 + * tmpfs: fix race between truncate and writepage + - LP: #793702 + * atm: expose ATM device index in sysfs + - LP: #793702 + * brd: limit 'max_part' module param to DISK_MAX_PARTS + - LP: #793702 + * brd: handle on-demand devices correctly + - LP: #793702 + * drm/i915: fix user irq miss in BSD ring on g4x + - LP: #793702 + * drm/radeon/evergreen/btc/fusion: setup hdp to invalidate and flush when + asked + - LP: #793702 + * drm/radeon/kms: add wait idle ioctl for eg->cayman + - LP: #793702 + * SUNRPC: Deal with the lack of a SYN_SENT sk->sk_state_change + callback... + - LP: #793702 + * NFSv4: Handle expired stateids when the lease is still valid + - LP: #793702 + * NFSv4.1: Fix the handling of NFS4ERR_SEQ_MISORDERED errors + - LP: #793702 + * PCI: Add quirk for setting valid class for TI816X Endpoint + - LP: #793702 + * xen mmu: fix a race window causing leave_mm BUG() + - LP: #793702 + * ext4: Use schedule_timeout_interruptible() for waiting in lazyinit + thread + - LP: #793702 + * AppArmor: fix oops in apparmor_setprocattr + - LP: #793702 + * Linux 2.6.38.8 + - LP: #793702 + * xhci: Add defines for hardcoded slot states + - LP: #802541 + * xhci: Do not issue device reset when device is not setup + - LP: #802541 + * taskstats: don't allow duplicate entries in listener mode, + CVE-2011-2484 + - LP: #806390 + - CVE-2011-2484 + * ext4: init timer earlier to avoid a kernel panic in __save_error_info, + CVE-2011-2493 + - LP: #806929 + - CVE-2011-2493 + * acer-wmi: does not poll device status when WMI event is available + - LP: #771758 + * acer-wmi: Only update rfkill status for associated hotkey events + - LP: #771758 + * (drop after 2.6.38) acer-wmi: Add support for Aspire 1830 wlan hotkey + - LP: #771758 + * mm: vmscan: correct check for kswapd sleeping in sleeping_prematurely + - LP: #808509 + * mm: vmscan: kswapd should not free an excessive number of pages when + balancing small zones + - LP: #808509 + * mm: vmscan: do not apply pressure to slab if we are not applying + pressure to zone + - LP: #808509 + * mm: vmscan: evaluate the watermarks against the correct classzone + - LP: #808509 + * mm: vmscan: only read new_classzone_idx from pgdat when reclaiming + successfully + - LP: #808509 + + -- Steve Conklin Fri, 15 Jul 2011 14:57:14 -0500 + +linux (2.6.38-10.46) natty-proposed; urgency=low + + [ Steve Conklin ] + + * Release Tracking Bug + - LP: #802464 + + [ Upstream Kernel Changes ] + + * Revert "put stricter guards on queue dead checks" + * Revert "fix oops in scsi_run_queue()" + + -- Steve Conklin Tue, 28 Jun 2011 12:36:29 +0100 + +linux (2.6.38-10.45) natty-proposed; urgency=low + + [ Upstream Kernel Changes ] + + * Revert "af_unix: Only allow recv on connected seqpacket sockets." + + -- Steve Conklin Mon, 27 Jun 2011 12:41:27 +0100 + +linux (2.6.38-10.44) natty-proposed; urgency=low + + [ Steve Conklin ] + + * Release Tracking Bug + - LP: #792013 + + [ Robert Nelson ] + + * SAUCE: omap3: beagle: detect new xM revision B + - LP: #770679 + * SAUCE: omap3: beagle: detect new xM revision C + - LP: #770679 + * SAUCE: omap3: beagle: if rev unknown, assume xM revision C + - LP: #770679 + + [ Stefan Bader ] + + * Include nls_iso8859-1 for virtual images + - LP: #732046 + + [ Thomas Schlichter ] + + * SAUCE: vesafb: mtrr module parameter is uint, not bool + - LP: #778043 + + [ Tim Gardner ] + + * Revert "SAUCE: acpi battery -- move first lookup asynchronous" + - LP: #775809 + * updateconfigs after update to v2.6.38.6 + + [ Upstream Kernel Changes ] + + * Revert "ALSA: hda - Fix pin-config of Gigabyte mobo" + - LP: #780546 + * Revert "[SCSI] Retrieve the Caching mode page" + - LP: #788691 + * Revert "USB: xhci - fix unsafe macro definitions" + * Revert "USB: xhci - fix math in xhci_get_endpoint_interval()" + * Revert "USB: xhci - also free streams when resetting devices" + * ath9k_hw: fix stopping rx DMA during resets + - LP: #775809 + * netxen: limit skb frags for non tso packet + - LP: #775809 + * ath: add missing regdomain pair 0x5c mapping + - LP: #775809 + * block, blk-sysfs: Fix an err return path in blk_register_queue() + - LP: #775809 + * p54: Initialize extra_len in p54_tx_80211 + - LP: #775809 + * qlcnic: limit skb frags for non tso packet + - LP: #775809 + * nfsd4: fix struct file leak on delegation + - LP: #775809 + * nfsd4: Fix filp leak + - LP: #775809 + * virtio: Decrement avail idx on buffer detach + - LP: #775809 + * x86, gart: Set DISTLBWALKPRB bit always + - LP: #775809 + * x86, gart: Make sure GART does not map physmem above 1TB + - LP: #775809 + * intel-iommu: Fix use after release during device attach + - LP: #775809 + * intel-iommu: Unlink domain from iommu + - LP: #775809 + * intel-iommu: Fix get_domain_for_dev() error path + - LP: #775809 + * drm/radeon/kms: pll tweaks for r7xx + - LP: #775809 + * drm/nouveau: fix notifier memory corruption bug + - LP: #775809 + * drm/radeon/kms: fix bad shift in atom iio table parser + - LP: #775809 + * drm/i915/tv: Remember the detected TV type + - LP: #775809 + * tty/n_gsm: fix bug in CRC calculation for gsm1 mode + - LP: #775809 + * serial/imx: read cts state only after acking cts change irq + - LP: #775809 + * ASoC: Fix output PGA enabling in wm_hubs CODECs + - LP: #775809 + * ASoC: codecs: JZ4740: Fix OOPS + - LP: #775809 + * ALSA: hda - Add a fix-up for Acer dmic with ALC271x codec + - LP: #775809 + * ahci: don't enable port irq before handler is registered + - LP: #775809 + * libata: Implement ATA_FLAG_NO_DIPM and apply it to mcp65 + - LP: #775809 + * kconfig: Avoid buffer underrun in choice input + - LP: #775809 + * UBIFS: fix master node recovery + - LP: #775809 + * ideapad: read brightness setting on brightness key notify + - LP: #775809 + * ACPI battery: fribble sysfs files from a resume notifier + - LP: #775809 + * UBIFS: fix false space checking failure + - LP: #775809 + * kvm-390: Let kernel exit SIE instruction on work + - LP: #775809 + * pfault: fix token handling + - LP: #775809 + * ACPI / PM: Avoid infinite recurrence while registering power resources + - LP: #775809 + * slub: fix panic with DISCONTIGMEM + - LP: #775809 + * set memory ranges in N_NORMAL_MEMORY when onlined + - LP: #775809 + * FLEXCOP-PCI: fix __xlate_proc_name-warning for flexcop-pci + - LP: #775809 + * virtio: console: Enable call to hvc_remove() on console port remove + - LP: #775809 + * oom: use pte pages in OOM score + - LP: #775809 + * mm: check if PTE is already allocated during page fault + - LP: #775809 + * mm: thp: fix /dev/zero MAP_PRIVATE and vm_flags cleanups + - LP: #775809 + * m68k/mm: Set all online nodes in N_NORMAL_MEMORY + - LP: #775809 + * vfs: avoid large kmalloc()s for the fdtable + - LP: #775809 + * nfs: don't lose MS_SYNCHRONOUS on remount of noac mount + - LP: #775809 + * NFSv4.1: Ensure state manager thread dies on last umount + - LP: #775809 + * um: mdd support for 64 bit atomic operations + - LP: #775809 + * drm: select FRAMEBUFFER_CONSOLE_PRIMARY if we have FRAMEBUFFER_CONSOLE + - LP: #775809 + * agp: fix arbitrary kernel memory writes + - LP: #775809 + * agp: fix OOM and buffer overflow + - LP: #775809 + * iwlwifi: do not set tx power when channel is changing + - LP: #775809 + * iwl3945: do not deprecate software scan + - LP: #775809 + * iwl3945: disable hw scan by default + - LP: #775809 + * iwlegacy: fix tx_power initialization + - LP: #775809 + * Input: xen-kbdfront - fix mouse getting stuck after save/restore + - LP: #775809 + * Linux 2.6.38.5 + - LP: #775809 + * pmcraid: reject negative request size + - LP: #780546 + * mpt2sas: prevent heap overflows and unchecked reads + - LP: #780546 + * scsi_dh: fix reference counting in scsi_dh_activate error path + - LP: #780546 + * put stricter guards on queue dead checks + - LP: #780546 + * ALSA: HDA: Fix automute for Gateway NV79 + - LP: #761861, #780546 + * ALSA: hda - Fix Realtek's chained fixup checks + - LP: #780546 + * i2c-parport: Fix adapter list handling + - LP: #780546 + * workqueue: fix deadlock in worker_maybe_bind_and_lock() + - LP: #780546 + * iwlwifi: fix skb usage after free + - LP: #780546 + * iwlagn: fix "Received BA when not expected" + - LP: #780546 + * atl1c: Fix work event interrupt/task races + - LP: #780546 + * UBIFS: do not free write-buffers when in R/O mode + - LP: #780546 + * UBIFS: seek journal heads to the latest bud in replay + - LP: #780546 + * mmc: sdhci-pci: Fix error case in sdhci_pci_probe_slot() + - LP: #780546 + * mmc: sdhci: Check mrq->cmd in sdhci_tasklet_finish + - LP: #780546 + * mmc: sdhci: Check mrq != NULL in sdhci_tasklet_finish + - LP: #780546 + * drm/radeon: fix regression on atom cards with hardcoded EDID record. + - LP: #780546 + * USB: fix regression in usbip by setting has_tt flag + - LP: #780546 + * firewire: Fix for broken configrom updates in quick succession + - LP: #780546 + * usbnet: add support for some Huawei modems with cdc-ether ports + - LP: #780546 + * imon: add conditional locking in change_protocol + - LP: #780546 + * flex_array: flex_array_prealloc takes a number of elements, not an end + - LP: #780546 + * flex_arrays: allow zero length flex arrays + - LP: #780546 + * ath9k: fix the return value of ath_stoprecv + - LP: #780546 + * mac80211: fix SMPS debugfs locking + - LP: #780546 + * af_unix: Only allow recv on connected seqpacket sockets. + - LP: #780546 + * ARM: 6891/1: prevent heap corruption in OABI semtimedop + - LP: #780546 + * XZ decompressor: Fix decoding of empty LZMA2 streams + - LP: #780546 + * Open with O_CREAT flag set fails to open existing files on non writable + directories + - LP: #780546 + * can: Add missing socket check in can/bcm release. + - LP: #780546 + * cx88: Fix HVR4000 IR keymap + - LP: #780546 + * KVM: SVM: check for progress after IRET interception + - LP: #780546 + * drm/radeon/kms: add some new pci ids + - LP: #780546 + * can: add missing socket check in can/raw release + - LP: #780546 + * fix oops in scsi_run_queue() + - LP: #780546 + * VM: skip the stack guard page lookup in get_user_pages only for mlock + - LP: #780546 + * Linux 2.6.38.6 + - LP: #780546 + * ips: use interruptible waits in ips-monitor + - LP: #765082 + * cifs: change bleft in decode_unicode_ssetup back to signed type + - LP: #788691 + * cifs: check for bytes_remaining going to zero in CIFS_SessSetup + - LP: #788691 + * cifs: sanitize length checking in coalesce_t2 (try #3) + - LP: #788691 + * cifs: refactor mid finding loop in cifs_demultiplex_thread + - LP: #788691 + * cifs: handle errors from coalesce_t2 + - LP: #788691 + * Validate size of EFI GUID partition entries. + - LP: #788691 + * drm/radeon/kms: add pci id to acer travelmate quirk for 5730 + - LP: #788691 + * x86, hw_breakpoints: Fix racy access to ptrace breakpoints + - LP: #788691 + * ptrace: Prepare to fix racy accesses on task breakpoints + - LP: #788691 + * hw_breakpoints, powerpc: Fix CONFIG_HAVE_HW_BREAKPOINT off-case in + ptrace_set_debugreg() + - LP: #788691 + * iwlwifi: add {ack, plpc}_check module parameters + - LP: #788691 + * drm/radeon/kms: fix gart setup on fusion parts (v2) backport + - LP: #788691 + * vm: fix vm_pgoff wrap in upward expansion + - LP: #788691 + * Don't lock guardpage if the stack is growing up + - LP: #788691 + * drm/i915/dp: Be paranoid in case we disable a DP before it is attached + - LP: #788691 + * drm/i915/lvds: Only act on lid notify when the device is on + - LP: #788691 + * drm/i915: Release object along create user fb error path + - LP: #788691 + * dccp: handle invalid feature options length + - LP: #788691 + * CIFS: Fix memory over bound bug in cifs_parse_mount_options + - LP: #788691 + * drivers/rtc/rtc-s3c.c: fixup wake support for rtc + - LP: #788691 + * mm: use alloc_bootmem_node_nopanic() on really needed path + - LP: #788691 + * tmpfs: fix race between umount and swapoff + - LP: #788691 + * ARM: zImage: make sure the stack is 64-bit aligned + - LP: #788691 + * PM: Fix warning in pm_restrict_gfp_mask() during SNAPSHOT_S2RAM ioctl + - LP: #788691 + * PM / Hibernate: Make snapshot_release() restore GFP mask + - LP: #788691 + * PM / Hibernate: Fix ioctl SNAPSHOT_S2RAM + - LP: #788691 + * net: ip_expire() must revalidate route + - LP: #788691 + * can: fix SJA1000 dlc for RTR packets + - LP: #788691 + * ipheth: Properly distinguish length and alignment in URBs and skbs + - LP: #788691 + * vmxnet3: Consistently disable irqs when taking adapter->cmd_lock + - LP: #788691 + * ehea: fix wrongly reported speed and port + - LP: #788691 + * NET: slip, fix ldisc->open retval + - LP: #788691 + * PCH_GbE : Fixed the issue of collision detection + - LP: #788691 + * PCH_GbE : Fixed the issue of checksum judgment + - LP: #788691 + * pch_gbe: support ML7223 IOH + - LP: #788691 + * net: dev_close() should check IFF_UP + - LP: #788691 + * slcan: fix ldisc->open retval + - LP: #788691 + * ASoC: UDA134x: Remove POWER_OFF_ON_STANDBY define. + - LP: #788691 + * ASoC: SSM2602: Fix 'Mic Boost2' control + - LP: #788691 + * ne-h8300: Fix regression caused during net_device_ops conversion + - LP: #788691 + * hydra: Fix regression caused during net_device_ops conversion + - LP: #788691 + * ehea: Fix memory hotplug oops + - LP: #788691 + * libertas: fix cmdpendingq locking + - LP: #788691 + * zorro8390: Fix regression caused during net_device_ops conversion + - LP: #788691 + * tmpfs: fix race between umount and writepage + - LP: #788691 + * tmpfs: fix race between swapoff and writepage + - LP: #788691 + * tmpfs: fix off-by-one in max_blocks checks + - LP: #788691 + * tmpfs: fix spurious ENOSPC when racing with unswap + - LP: #788691 + * libata: fix oops when LPM is used with PMP + - LP: #788691 + * drm/radeon/kms: fix extended lvds info parsing + - LP: #788691 + * cifs: add fallback in is_path_accessible for old servers + - LP: #788691 + * rapidio: fix default routing initialization + - LP: #788691 + * x86, AMD: Fix ARAT feature setting again + - LP: #788691 + * clocksource: Install completely before selecting + - LP: #788691 + * tick: Clear broadcast active bit when switching to oneshot + - LP: #788691 + * x86, apic: Fix spurious error interrupts triggering on all non-boot APs + - LP: #788691 + * Fix cx88 remote control input + - LP: #788691 + * v4l: Release module if subdev registration fails + - LP: #788691 + * x86: Fix UV BAU for non-consecutive nasids + - LP: #788691 + * x86, mce, AMD: Fix leaving freed data in a list + - LP: #788691 + * megaraid_sas: Sanity check user supplied length before passing it to + dma_alloc_coherent() + - LP: #788691 + * cdrom: always check_disk_change() on open + - LP: #788691 + * vmxnet3: Fix inconsistent LRO state after initialization + - LP: #788691 + * cifs: clean up various nits in unicode routines (try #2) + - LP: #788691 + * cifs: fix cifsConvertToUCS() for the mapchars case + - LP: #788691 + * iwlegacy: fix IBSS mode crashes + - LP: #788691 + * tmpfs: fix highmem swapoff crash regression + - LP: #788691 + * Linux 2.6.38.7 + - LP: #788691 + * rtlwifi: rtl8192ce: Fix LED initialization + - LP: #785975 + + -- Steve Conklin Thu, 02 Jun 2011 14:12:59 -0500 + +linux (2.6.38-9.43) natty-proposed; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #772096 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Revert "x86, hibernate: Initialize mmu_cr4_features during boot" + - LP: #764758 + + [ Leann Ogasawara ] + + * [Config] updateconfigs for 2.6.38.4 + + [ Paolo Pisati ] + + * [Config] s/USB_MUSB_TUSB6010/USB_MUSB_OMAP2PLUS/ on omap3 to get musb + - LP: #759913 + + [ Serge E. Hallyn ] + + * SAUCE: kvm: fix push of wrong eip when doing softint + - LP: #747090 + + [ Tim Gardner ] + + * [Config] Add cachefiles.ko to virtual flavour + - LP: #770430 + + [ Upstream Kernel Changes ] + + * Revert "net/sunrpc: Use static const char arrays" + - LP: #761134 + * Revert "x86: Cleanup highmap after brk is concluded" + - LP: #761134 + * ALSA: hda - Fix SPDIF out regression on ALC889 + - LP: #761134 + * ALSA: Fix yet another race in disconnection + - LP: #761134 + * ALSA: vmalloc buffers should use normal mmap + - LP: #761134 + * perf: Better fit max unprivileged mlock pages for tools needs + - LP: #761134 + * myri10ge: fix rmmod crash + - LP: #761134 + * cciss: fix lost command issue + - LP: #761134 + * ath9k: Fix kernel panic in AR2427 + - LP: #761134 + * sound/oss/opl3: validate voice and channel indexes + - LP: #761134 + * mac80211: initialize sta->last_rx in sta_info_alloc + - LP: #761134 + * ses: show devices for enclosures with no page 7 + - LP: #761134 + * ses: Avoid kernel panic when lun 0 is not mapped + - LP: #761134 + * PCI/ACPI: Report ASPM support to BIOS if not disabled from command line + - LP: #761134 + * eCryptfs: Unlock page in write_begin error path + - LP: #761134 + * eCryptfs: ecryptfs_keyring_auth_tok_for_sig() bug fix + - LP: #761134 + * crypto: aesni-intel - fixed problem with packets that are not multiple + of 64bytes + - LP: #761134 + * staging: usbip: bugfixes related to kthread conversion + - LP: #761134 + * staging: usbip: bugfix add number of packets for isochronous frames + - LP: #761134 + * staging: usbip: bugfix for isochronous packets and optimization + - LP: #761134 + * staging: hv: use sync_bitops when interacting with the hypervisor + - LP: #761134 + * staging: hv: Fix GARP not sent after Quick Migration + - LP: #761134 + * xfs: register the inode cache shrinker before quotachecks + - LP: #761134 + * amd64_edac: Fix potential memleak + - LP: #761134 + * watchdog: s3c2410_wdt.c: Convert release_resource to + release_region/release_mem_region + - LP: #761134 + * watchdog: Convert release_resource to release_region/release_mem_region + - LP: #761134 + * irda: validate peer name and attribute lengths + - LP: #761134 + * irda: prevent heap corruption on invalid nickname + - LP: #761134 + * powerpc: Fix accounting of softirq time when idle + - LP: #761134 + * nilfs2: fix data loss in mmap page write for hole blocks + - LP: #761134 + * ASoC: Explicitly say registerless widgets have no register + - LP: #761134 + * ASoC: imx: set watermarks for mx2-dma + - LP: #761134 + * ASoC: imx: fix burstsize for DMA + - LP: #761134 + * ASoC: Fix CODEC device name for Corgi + - LP: #761134 + * ALSA: ens1371: fix Creative Ectiva support + - LP: #761134 + * ALSA: hda - HDMI: Fix MCP7x audio infoframe checksums + - LP: #761134 + * ALSA: HDA: Fix single internal mic on ALC275 (Sony Vaio VPCSB1C5E) + - LP: #752792, #761134 + * net: fix ethtool->set_flags not intended -EINVAL return value + - LP: #761134 + * drm/radeon/kms: add some new ontario pci ids + - LP: #761134 + * drm/radeon/kms: add some sanity checks to obj info record parsingi (v2) + - LP: #761134 + * inotify: fix double free/corruption of stuct user + - LP: #761134 + * HID: hid-magicmouse: Increase evdev buffer size + - LP: #761134 + * perf: Fix task_struct reference leak + - LP: #761134 + * perf: Rebase max unprivileged mlock threshold on top of page size + - LP: #761134 + * ROSE: prevent heap corruption with bad facilities + - LP: #761134 + * Btrfs: Fix uninitialized root flags for subvolumes + - LP: #761134 + * x86, mtrr, pat: Fix one cpu getting out of sync during resume + - LP: #761134 + * Input: synaptics - fix crash in synaptics_module_init() + - LP: #761134 + * ath9k: fix a chip wakeup related crash in ath9k_start + - LP: #761134 + * mac80211: fix a crash in minstrel_ht in HT mode with no supported MCS + rates + - LP: #761134 + * staging: IIO: IMU: ADIS16400: Fix up SPI messages cs_change behavior + - LP: #761134 + * staging: IIO: IMU: ADIS16400: Add delay after self test + - LP: #761134 + * staging: IIO: IMU: ADIS16400: Fix addresses of GYRO and ACCEL + calibration offset + - LP: #761134 + * staging: IIO: IMU: ADIS16400: Make sure only enabled scan_elements are + pushed into the ring + - LP: #761134 + * UBIFS: do not read flash unnecessarily + - LP: #761134 + * UBIFS: fix oops on error path in read_pnode + - LP: #761134 + * UBIFS: fix debugging failure in dbg_check_space_info + - LP: #761134 + * quota: Don't write quota info in dquot_commit() + - LP: #761134 + * mm: avoid wrapping vm_pgoff in mremap() + - LP: #761134 + * iwlwifi: accept EEPROM version 0x423 for iwl6000 + - LP: #761134 + * p54usb: IDs for two new devices + - LP: #761134 + * rt2x00: Fix radio off hang issue for PCIE interface + - LP: #662288, #761134 + * rt2x00: fix cancelling uninitialized work + - LP: #761134 + * wl12xx: fix potential buffer overflow in testmode nvs push + - LP: #761134 + * media/radio/wl1273: fix build errors + - LP: #761134 + * b43: allocate receive buffers big enough for max frame len + offset + - LP: #761134 + * Bluetooth: sco: fix information leak to userspace + - LP: #761134 + * bridge: netfilter: fix information leak + - LP: #761134 + * Bluetooth: bnep: fix buffer overflow + - LP: #761134 + * Bluetooth: add support for Apple MacBook Pro 8,2 + - LP: #761134 + * Treat writes as new when holes span across page boundaries + - LP: #761134 + * char/tpm: Fix unitialized usage of data buffer + - LP: #761134 + * netfilter: ip_tables: fix infoleak to userspace + - LP: #761134 + * netfilter: xtables: fix reentrancy + - LP: #761134 + * netfilter: arp_tables: fix infoleak to userspace + - LP: #761134 + * netfilter: ipt_CLUSTERIP: fix buffer overflow + - LP: #761134 + * ipv6: netfilter: ip6_tables: fix infoleak to userspace + - LP: #761134 + * scsi_transport_iscsi: make priv_sess file writeable only by root + - LP: #761134 + * mfd: ab8500: world-writable debugfs register-* files + - LP: #761134 + * mfd: ab3500: world-writable debugfs register-* files + - LP: #761134 + * mfd: ab3100: world-writable debugfs *_priv files + - LP: #761134 + * drivers/rtc/rtc-ds1511.c: world-writable sysfs nvram file + - LP: #761134 + * drivers/misc/ep93xx_pwm.c: world-writable sysfs files + - LP: #761134 + * drivers/leds/leds-lp5523.c: world-writable engine* sysfs files + - LP: #761134 + * drivers/leds/leds-lp5521.c: world-writable sysfs engine* files + - LP: #761134 + * econet: 4 byte infoleak to the network + - LP: #761134 + * netfilter: h323: bug in parsing of ASN1 SEQOF field + - LP: #761134 + * sound/oss: remove offset from load_patch callbacks + - LP: #761134 + * drivers/media/video/tlg2300/pd-video.c: Remove second mutex_unlock in + pd_vidioc_s_fmt + - LP: #761134 + * acer-wmi: does not set persistence state by rfkill_init_sw_state + - LP: #761134 + * Squashfs: Use vmalloc rather than kmalloc for zlib workspace + - LP: #761134 + * Squashfs: handle corruption of directory structure + - LP: #761134 + * atm/solos-pci: Don't include frame pseudo-header on transmit hex-dump + - LP: #761134 + * atm/solos-pci: Don't flap VCs when carrier state changes + - LP: #761134 + * ext4: fix a double free in ext4_register_li_request + - LP: #761134 + * ext4: fix credits computing for indirect mapped files + - LP: #761134 + * nfsd: fix auth_domain reference leak on nlm operations + - LP: #761134 + * nfsd4: fix oops on lock failure + - LP: #761134 + * Linux 2.6.38.3 + - LP: #761134 + * vm: fix vm_pgoff wrap in stack expansion + - LP: #769042 + * drm/radeon/kms: pll tweaks for rv6xx + - LP: #769042 + * drm/radeon/kms: fix suspend on rv530 asics + - LP: #769042 + * cifs: always do is_path_accessible check in cifs_mount + - LP: #769042 + * cifs: check for private_data before trying to put it + - LP: #769042 + * cifs: set ra_pages in backing_dev_info + - LP: #769042 + * cifs: wrap received signature check in srv_mutex + - LP: #769042 + * video: sn9c102: world-wirtable sysfs files + - LP: #769042 + * UBIFS: restrict world-writable debugfs files + - LP: #769042 + * ALSA: hda - Fix pin-config of Gigabyte mobo + - LP: #769042 + * NET: cdc-phonet, handle empty phonet header + - LP: #769042 + * x86: Fix a bogus unwind annotation in lib/semaphore_32.S + - LP: #769042 + * tioca: Fix assignment from incompatible pointer warnings + - LP: #769042 + * mca.c: Fix cast from integer to pointer warning + - LP: #769042 + * vm: fix mlock() on stack guard page + - LP: #769042 + * UBIFS: fix assertion warnings + - LP: #769042 + * perf: Fix task context scheduling + - LP: #769042 + * bridge: Fix possibly wrong MLD queries' ethernet source address + - LP: #769042 + * fib: add rtnl locking in ip_fib_net_exit + - LP: #769042 + * gianfar: Fall back to software tcp/udp checksum on older controllers + - LP: #769042 + * l2tp: fix possible oops on l2tp_eth module unload + - LP: #769042 + * net ipv6: Fix duplicate /proc/sys/net/ipv6/neigh directory entries. + - LP: #769042 + * net_sched: fix ip_tos2prio + - LP: #769042 + * pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev + - LP: #769042 + * sctp: Pass __GFP_NOWARN to hash table allocation attempts. + - LP: #769042 + * tcp: avoid cwnd moderation in undo + - LP: #769042 + * xfrm: Refcount destination entry on xfrm_lookup + - LP: #769042 + * vlan: should take into account needed_headroom + - LP: #769042 + * bridge: Reset IPCB when entering IP stack on NF_FORWARD + - LP: #769042 + * sparc: Fix .size directive for do_int_load + - LP: #769042 + * sparc32: Fix might-be-used-uninitialized warning in do_sparc_fault(). + - LP: #769042 + * sparc32: Pass task_struct to schedule_tail() in ret_from_fork + - LP: #769042 + * sparc64: Fix build errors with gcc-4.6.0 + - LP: #769042 + * futex: Set FLAGS_HAS_TIMEOUT during futex_wait restart setup + - LP: #769042 + * kstrto*: converting strings to integers done (hopefully) right + - LP: #769042 + * mm/thp: use conventional format for boolean attributes + - LP: #769042 + * ramfs: fix memleak on no-mmu arch + - LP: #769042 + * oom-kill: remove boost_dying_task_prio() + - LP: #769042 + * MAINTAINERS: update STABLE BRANCH info + - LP: #769042 + * UBIFS: fix oops when R/O file-system is fsync'ed + - LP: #769042 + * x86, AMD: Set ARAT feature on AMD processors + - LP: #769042 + * x86, amd: Disable GartTlbWlkErr when BIOS forgets it + - LP: #769042 + * vfs: Fix absolute RCU path walk failures due to uninitialized seq + number + - LP: #769042 + * ARM: 6864/1: hw_breakpoint: clear DBGVCR out of reset + - LP: #769042 + * i2c-algo-bit: Call pre/post_xfer for bit_test + - LP: #769042 + * RTC: add missing "return 0" in new alarm func for rtc-bfin.c + - LP: #769042 + * sched: Fix erroneous all_pinned logic + - LP: #769042 + * vmscan: all_unreclaimable() use zone->all_unreclaimable as a name + - LP: #769042 + * brk: COMPAT_BRK: fix detection of randomized brk + - LP: #769042 + * usb: musb: temporarily make it bool + - LP: #769042 + * USB: ftdi_sio: Added IDs for CTI USB Serial Devices + - LP: #769042 + * USB: ftdi_sio: add PID for OCT DK201 docking station + - LP: #769042 + * USB: ftdi_sio: add ids for Hameg HO720 and HO730 + - LP: #769042 + * USB: option: Added support for Samsung GT-B3730/GT-B3710 LTE USB modem. + - LP: #769042 + * next_pidmap: fix overflow condition + - LP: #769042 + * proc: do proper range check on readdir offset + - LP: #769042 + * powerpc: Fix oops if scan_dispatch_log is called too early + - LP: #769042 + * powerpc/perf_event: Skip updating kernel counters if register value + shrinks + - LP: #769042 + * usb: Fix qcserial memory leak on rmmod + - LP: #769042 + * usb: qcserial avoid pointing to freed memory + - LP: #769042 + * usb: qcserial add missing errorpath kfrees + - LP: #769042 + * USB: EHCI: unlink unused QHs when the controller is stopped + - LP: #769042 + * USB: fix formatting of SuperSpeed endpoints in /proc/bus/usb/devices + - LP: #769042 + * USB: xhci - fix unsafe macro definitions + - LP: #769042 + * USB: xhci - fix math in xhci_get_endpoint_interval() + - LP: #769042 + * USB: xhci - also free streams when resetting devices + - LP: #769042 + * USB: Fix unplug of device with active streams + - LP: #769042 + * radeon: Fix KMS CP writeback on big endian machines. + - LP: #769042 + * Bluetooth: Fix HCI_RESET command synchronization + - LP: #700292, #769042 + * perf tool: Fix gcc 4.6.0 issues + - LP: #769042 + * bridge: reset IPCB in br_parse_ip_options + - LP: #769042 + * ip: ip_options_compile() resilient to NULL skb route + - LP: #769042 + * Linux 2.6.38.4 + - LP: #769042 + * (pre stable) ath9k_hw: partially revert "fix dma descriptor rx error + bit parsing" + - LP: #735171 + * fs/partitions/ldm.c: fix oops caused by corrupted partition table, + CVE-2011-1017 + - LP: #771382 + - CVE-2011-1017 + * (pre-stable) drm/i915: Sanitize the output registers after resume + - LP: #745304 + + -- Brad Figg Wed, 27 Apr 2011 11:02:03 -0700 + +linux (2.6.38-8.42) natty; urgency=low + + [ David Henningsson ] + + * SAUCE: (drop after 2.6.38) ALSA: HDA: Fix dock mic for Lenovo + X220-tablet + - LP: #751033 + + [ Gustavo F. Padovan ] + + * SAUCE: Revert "Bluetooth: Add new PID for Atheros 3011" + - LP: #720949 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 2.6.39) v4l: make sure drivers supply a zeroed + struct v4l2_subdev + - LP: #745213 + + [ John Johansen ] + + * AppArmor: Fix masking of capabilities in complain mode + - LP: #748656 + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_RTS_PSTOR for armel, powerpc + + [ Manoj Iyer ] + + * SAUCE: (drop after 2.6.38) add support for Lenovo tablet ID (0xE6) + - LP: #746652 + + [ Steve Langasek ] + + * [Config] Make linux-libc-dev coinstallable under multiarch + - LP: #750585 + + [ Tim Gardner ] + + * [Config] CONFIG_RTS_PSTOR=m + - LP: #698006 + + [ Upstream Kernel Changes ] + + * Revert "tcp: disallow bind() to reuse addr/port" + - LP: #731878 + * ALSA: HDA: Add dock mic quirk for Lenovo Thinkpad X220 + - LP: #746259 + * ALSA: HDA: New AD1984A model for Dell Precision R5500 + - LP: #741516 + * Input: sparse-keymap - report scancodes with key events + * Input: sparse-keymap - report KEY_UNKNOWN for unknown scan codes + * KVM: SVM: Load %gs earlier if CONFIG_X86_32_LAZY_GS=n + - LP: #729085 + * watchdog: sp5100_tco.c: Check if firmware has set correct value in + tcobase. + - LP: #740011 + * staging: add rts_pstor for Realtek PCIE cardreader + - LP: #698006 + * staging: fix rts_pstor build errors + - LP: #698006 + * Staging: rts_pstor: fixed some brace code styling issues + - LP: #698006 + * staging: rts_pstor: potential NULL dereference + - LP: #698006 + * Staging: rts_pstor: fix read past end of buffer + - LP: #698006 + * staging: rts_pstor: delete a function + - LP: #698006 + * staging: rts_pstor: fix sparse warning + - LP: #698006 + * staging: rts_pstor: fix a bug that a greenhouse sd card can't be + recognized + - LP: #698006 + * staging: rts_pstor: optimize kmalloc to kzalloc + - LP: #698006 + * staging: rts_pstor: MSXC card power class + - LP: #698006 + * staging: rts_pstor: modify initial card clock + - LP: #698006 + * staging: rts_pstor: set lun_mode in a different place + - LP: #698006 + * x86, hibernate: Initialize mmu_cr4_features during boot + - LP: #752870 + + -- Leann Ogasawara Fri, 08 Apr 2011 09:24:59 -0700 + +linux (2.6.38-8.41) natty; urgency=low + + [ Luke Yelavich ] + + * [Config] Disable CONFIG_CRASH_DUMP on 32-bit powerpc kernels + - LP: #745358 + * [Config] Disable CONFIG_DRM_RADEON_KMS on powerpc kernels + * [Config] Build some framebuffer drivers as modules for powerpc kernels. + + [ Seth Forshee ] + + * SAUCE: (drop after 2.6.38) eeepc-wmi: Add support for T101MT + Home/Express Gate key + + [ Tim Gardner ] + + * SAUCE: Increase the default hard limit for open FDs to 4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + * Relax si_code check in rt_sigqueueinfo and rt_tgsigqueueinfo + + -- Leann Ogasawara Tue, 05 Apr 2011 09:25:22 -0700 + +linux (2.6.38-8.40) natty; urgency=low + + [ Brad Figg ] + + * [Config] Set CONFIG_NR_CPUS=256 for amd64 generic + - LP: #737124 + + [ Henrik Rydberg ] + + * SAUCE: HID: hid-ntrig: add support for 1b96:0006 model + * SAUCE: HID: ntrig: fix suspend/resume on recent models + + [ Kees Cook ] + + * [Config] packaging: adjust perms on vmlinuz as well + * SAUCE: nx-emu: further clarify dmesg reporting + - LP: #745181 + + [ Leann Ogasawara ] + + * rebase to v2.6.38.1 + * [Config] update configs after v2.6.38.1 rebase + * rebase to v2.6.38.2 + + [ Manoj Iyer ] + + * SAUCE: thinkpad-acpi: module autoloading for newer Lenovo ThinkPads. + - LP: #745217 + + [ Tim Gardner ] + + * SAUCE: INR_OPEN=4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * (drop after v2.6.38) HID: ntrig don't dereference unclaimed hidinput + * (drop after v2.6.38) HID: ntrig: apply NO_INIT_REPORTS quirk + * (drop after v2.6.38) HID: hid-ntrig: init settle and mode check + * eeepc-wmi: add hotplug code for Eeepc 1000H + * eeepc-wmi: serialize access to wmi method + * eeepc-wmi: return proper error code in eeepc_rfkill_set() + * eeepc-wmi: add an helper using simple return codes + * eeepc-wmi: add hibernate/resume callbacks + * eeepc-wmi: switch to platform_create_bundle() + * eeepc-wmi: reorder defines + * eeepc-wmi: use the presence bit correctly + * eeepc-wmi: add camera and card reader support + * eeepc-wmi: add wimax support + * eeepc-wmi: set the right key code for 0xe9 + * eeepc-wmi: support backlight power (bl_power) attribute + * eeepc-wmi: respect wireless_hotplug setting + * eeepc-wmi: real touchpad led device id is 0x001000012 + * eeepc-wmi: comments keymap to clarify the meaning of some keys + * eeepc-wmi: add touchpad sysfs file + * eeepc-wmi: reorder device ids + + [ Major Kernel Changes ] + + * rebase from v2.6.38 to v2.6.38.1 + - LP: #735640, #735450 + * rebase from v2.6.38.1 to v2.6.38.2 + - LP: #733780 + + -- Leann Ogasawara Mon, 28 Mar 2011 06:20:13 -0700 + +linux (2.6.38-7.39) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-7ubuntu1. + + -- Leann Ogasawara Thu, 24 Mar 2011 09:27:45 -0700 + +linux (2.6.38-7.38) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload take 2. 2.6.38-7.37 was accidentally uploaded before + gcc-4.5.2-6ubuntu5 finished building on all arches. + + -- Leann Ogasawara Tue, 22 Mar 2011 06:12:47 -0700 + +linux (2.6.38-7.37) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-6ubuntu5. + + -- Leann Ogasawara Sun, 20 Mar 2011 16:02:48 -0700 + +linux (2.6.38-7.36) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler + optimisation" + * purge last vestiges of maverick + * [Config] switch CONFIG_FB_VESA back to module + + [ Chris Wilson ] + + * SAUCE: drm/i915: Fix pipelined fencing + - LP: #717114 + + [ Loïc Minier ] + + * Include nls_cp437 module in virtual for fat + - LP: #732046 + * Support arch= cross-compilation for any arch + * Fix couple of typos in 0-common-vars.mk + * Enforce DEFAULT_MMAP_MIN_ADDR on armhf + * Add armhf to Debian -> Linux arch map + * Add initial armhf.mk + * Enable common packages for armhf + + [ Upstream Kernel Changes ] + + * Yama: fix default relationship to check thread group + - LP: #737676 + + -- Andy Whitcroft Fri, 18 Mar 2011 18:18:02 +0000 + +linux (2.6.38-7.35) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 2fbfac4e053861925fa3fffcdc327649b09af54c + * rebase fixes bug #715330 + * [Config] disable CONFIG_SCSI_QLA_ISCSI for powerpc 32bit to fix FTBS + * rebase to v2.6.38 final + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Apply OPTION_BLACKLIST_SENDSETUP also for ZTE MF626 + - LP: #636091 + + [ Tim Gardner ] + + * [Confg] CONFIG_BOOT_PRINTK_DELAY=y + + [ Upstream Kernel Changes ] + + * Yama: use thread group leader when creating match + - LP: #729839 + * (drop after 2.6.38) ahci: AHCI mode SATA patch for Intel Patsburg SATA + RAID controller + - LP: #735240 + * (drop after v2.6.38) x86, quirk: Fix SB600 revision check + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc8 to v2.6.38 final + - LP: #715330 + + -- Andy Whitcroft Tue, 15 Mar 2011 19:04:19 +0000 + +linux (2.6.38-6.34) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] normalise CONFIG_INTEL_TXT + * SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler optimisation + - LP: #730860 + * rebase to mainline v2.6.38-rc8 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc7 + fb62c00a6d8942775abc23d1621db1252e2d93d1 + to v2.6.38-rc8 + + -- Andy Whitcroft Tue, 08 Mar 2011 11:54:48 +0000 + +linux (2.6.38-6.33) natty; urgency=low + + [ Andy Whitcroft ] + + * d-i -- enable speakup-modules udeb + - LP: #672699 + * rebase to 493f3358cb289ccf716c5a14fa5bb52ab75943e5 + * [Config] debian PPC64 configuration + * [Config] cleanup powerpc config fixing unexpected inconsistancies + * [Config] resync ppc64 configuration + * SAUCE: match up ENTRY/END naming for 32/64 bit + * rebase to fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] update configs after rebase to + fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] pps_gen_parport no longer built + + [ 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 + + [ John Johansen ] + + * SAUCE: Fix aufs calling of security_path_mknod + - LP: #724456 + + [ Kees Cook ] + + * SAUCE: proc: hide kernel addresses via %pK in /proc//stack + + [ Tim Gardner ] + + * rebase to 2.6.38-rc7 + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: fix corruptions on i8xx due to relaxed fencing" + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc6 to v2.6.38-rc7 + + fb62c00a6d8942775abc23d1621db1252e2d93d1 + - LP: #721389 + - LP: #722925 + - LP: #723672 + - LP: #723676 + - LP: #715318 + + -- Andy Whitcroft Mon, 07 Mar 2011 15:33:17 +0000 + +linux (2.6.38-5.32) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to mainline 6f576d57f1fa0d6026b495d8746d56d949989161 + * [Config] updateconfigs following rebase to v2.6.38-rc6 + * [Config] enable CONFIG_DMAR + - LP: #552311 + + [ Upstream Kernel Changes ] + + * drm/i915: skip FDI & PCH enabling for DP_A + - LP: #561802, #600453, #681877 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc5 to v2.6.38-rc6 + - LP: #718402 + - LP: #719524 + - LP: #721126 + - LP: #719691 + - LP: #722689 + - LP: #722310 + + -- Andy Whitcroft Tue, 22 Feb 2011 13:28:39 +0000 + +linux (2.6.38-4.31) natty; urgency=low + + [ Andy Whitcroft ] + + * add in bugs closed by upstream patches pulled in by rebases + * rebase to 795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 + * [Config] enable CONFIG_VSX to allow use of vector instuctions + * resync with maverick 98defa1c5773a3d7e4c524967eb01d5bae035816 + * rebase to mainline v2.6.38-rc5 + * SAUCE: ecryptfs: read on a directory should return EISDIR if not + supported + - LP: #719691 + + [ Colin Ian King ] + + * SAUCE: Dell All-In-One: Remove need for Dell module alias + + [ Manoj Iyer ] + + * SAUCE: (drop after 2.6.38) add ricoh 0xe823 pci id. + - LP: #717435 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRC32C_INTEL=y + + [ Upstream Kernel Changes ] + + * Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15 + - LP: #702434 + * vfs: fix BUG_ON() in fs/namei.c:1461 + + [ Vladislav P ] + + * SAUCE: Release BTM while sleeping to avoid deadlock. + - LP: #713837 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc4 to v2.6.38-rc5 + - LP: #579276 + - LP: #715877 + - LP: #713769 + - LP: #716811 + * resync with Maverick Ubuntu-2.6.35-27.47 + + -- Andy Whitcroft Fri, 11 Feb 2011 17:24:09 +0000 + +linux (2.6.38-3.30) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.38-rc4 + * ppc64 -- add basic architecture + * ubuntu: AUFS -- update to 65835da20b77c98fb538c9114fc31f5de1328230 + + [ Colin Ian King ] + + * SAUCE: Add WMI hotkeys support for Dell All-In-One series + - LP: #676997 + * 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 + + [ Dan Rosenberg ] + + * SAUCE: (drop after 2.6.38) Convert net %p usage %pK + + [ Kees Cook ] + + * Revert "SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of + attacking" + * SAUCE: (drop after 2.6.38) use %pK for /proc/kallsyms and /proc/modules + + [ Tim Gardner ] + + * [Config] CONFIG_BLK_CGROUP=y + - LP: #706394 + * [Config] CONFIG_DELL_WMI_AIO=m + + [ Upstream Kernel Changes ] + + * drm/i915/lvds: Restore dithering on native modes for gen2/3 + - LP: #711568 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc3 to v2.6.38-rc4. + - LP: #701271 + - LP: #708521 + - LP: #710371 + + -- Andy Whitcroft Tue, 08 Feb 2011 02:07:18 +0000 + +linux (2.6.38-2.29) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 1f0324caefd39985e9fe052fac97da31694db31e + * [Config] updateconfigs following rebase to + 1f0324caefd39985e9fe052fac97da31694db31e + * rebase to 70d1f365568e0cdbc9f4ab92428e1830fdb09ab0 + * [Config] reenable HIBERNATE + - LP: #710877 + * rebase to v2.6.38-rc3 + * [Config] reenable CONFIG_CRASH_DUMP + + [ Kamal Mostafa ] + + * SAUCE: rtl8192se: fix source file perms + * SAUCE: rtl8192se: fix source file newline + * SAUCE: omnibook: fix source file newline + + [ Kees Cook ] + + * [Config] packaging: really make System.map mode 0600 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: OMAP3630: PM: don't warn the user with a trace in case of + PM34XX_ERRATUM + + [ Soren Hansen ] + + * SAUCE: nbd: Remove module-level ioctl mutex + + [ Tim Gardner ] + + * SAUCE: Disable building the ACPI debugfs source + + [ Upstream Kernel Changes ] + + * Set physical start and alignment 1M for virtual i386 + - LP: #710754 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + to v2.6.38-rc3 + - LP: #707902 + + -- Andy Whitcroft Fri, 28 Jan 2011 16:30:32 +0000 + +linux (2.6.38-1.28) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to b1cee06249dfa0ab30951e7f06490a75c155b620 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: omap3: beaglexm: fix DVI initialization + * [Config] omap: move CONFIG_PANEL_GENERIC_DPI to build in to make + display work at Beagle + + -- Andy Whitcroft Fri, 28 Jan 2011 10:51:57 +0000 + +linux (2.6.38-1.27) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- update to c5021514085a5d96364e096dbd34cadb2251abfd + * SAUCE: ensure root is ready before running usermodehelpers in it + * correct the Vcs linkage to point to natty + * rebase to linux tip e78bf5e6cbe837daa6ab628a5f679548742994d3 + * [Config] update configs following rebase + e78bf5e6cbe837daa6ab628a5f679548742994d3 + * SAUCE: Yama: follow changes to generic_permission + * ubuntu: compcache -- follow changes to bd_claim/bd_release + * ubuntu: iscsitarget -- follow changes to open_bdev_exclusive + * ubuntu: ndiswrapper -- fix interaction between __packed and packed + * ubuntu: AUFS -- update to 806051bcbeec27748aae2b7957726a4e63ff308e + * update package version to match payload version + * rebase to e6f597a1425b5af64917be3448b29e2d5a585ac8 + * rebase to v2.6.38-rc1 + * [Config] updateconfigs following rebase to v2.6.38-rc1 + * SAUCE: x86 fix up jiffies/jiffies_64 handling + * rebase to linus tip 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] updateconfigs following rebase to + 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] disable CONFIG_TRANSPARENT_HUGEPAGE to fix i386 boot crashes + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * [Config] CONFIG_NR_CPUS=256 for amd64 -server flavour + * rebase to v2.6.38-rc2 + * rebase to mainline d315777b32a4696feb86f2a0c9e9f39c94683649 + * rebase to c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] update configs following rebase to + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] disable CONFIG_AD7152 to fix FTBS on armel versatile + * [Config] disable CONFIG_AD7150 to fix FTBS on armel versatile + * [Config] disable CONFIG_RTL8192CE to fix FTBS on armel omap + * [Config] disable CONFIG_MANTIS_CORE to fix FTBS on armel versatile + + [ Kees Cook ] + + * SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of attacking + + [ Stefan Bader ] + + * Temporarily disable RODATA for virtual i386 + - LP: #699828 + + [ Tim Gardner ] + + * [Config] CONFIG_NLS_DEFAULT=utf8 + - LP: #683690 + * [Config] CONFIG_HIBERNATION=n + * update bnx2 firmware files in d-i/firmware/nic-modules + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/bo: add some fallback placements for VRAM only + objects." + * packaging: make System.map mode 0600 + * thinkpad_acpi: Always report scancodes for hotkeys + - LP: #702407 + * sched: tg->se->load should be initialised to tg->shares + * Input: sysrq -- ensure sysrq_enabled and __sysrq_enabled are consistent + * brcm80211: include linux/slab.h for kfree + * pch_dma: add include/slab.h for kfree + * i2c-eg20t: include linux/slab.h for kfree + * gpio/ml_ioh_gpio: include linux/slab.h for kfree + * tty: include linux/slab.h for kfree + * winbond: include linux/delay.h for mdelay et al + + [ Upstream Kernel Changes ] + + * mark the start of v2.6.38 versioning + * rebase v2.6.37 to v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + - LP: #689886 + - LP: #702125 + - LP: #608775 + - LP: #215802 + - LP: #686333 + - LP: #677830 + - LP: #677652 + - LP: #696493 + - LP: #697240 + - LP: #689036 + - LP: #705323 + - LP: #686692 + + -- Andy Whitcroft Sun, 09 Jan 2011 13:44:52 +0000 + +linux (2.6.37-12.26) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc8 + * [Config] armel -- reenable omap flavour + * [Config] disable CONFIG_MACH_OMAP3517EVM to fix FTBS on armel omap + * [Config] disable CONFIG_GPIO_VX855 to fix FTBS on omap armel + * [Config] disable CONFIG_WESTBRIDGE_ASTORIA to fix FTBS on omap armel + * [Config] disable CONFIG_TI_DAVINCI_EMAC to fix FTBS on omap armel + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * [Config] track missing modules + * rebase to v2.6.37 final + + [ Chase Douglas ] + + * SAUCE: (drop after 2.6.37) HID: magicmouse: Don't report REL_{X, Y} for + Magic Trackpad + + [ Stefan Bader ] + + * Revert "SAUCE: blkfront: default to sd devices" + - LP: #684875 + + [ Tim Gardner ] + + * Revert "SAUCE: (no-up) libata: Ignore HPA by default." + - LP: #380138 + * [Config] Added autofs4.ko to -virtual flavour + - LP: #692917 + + [ Upstream Kernel Changes ] + + * Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series + Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc8 + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * rebase to v2.6.37 final + + -- Andy Whitcroft Thu, 23 Dec 2010 18:34:13 +0000 + +linux (2.6.37-11.25) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- add hpsa to the list of block devices + - LP: #684304 + * [Config] add vmw-balloon driver to -virtual flavour + - LP: #592039 + * rebase to v2.6.37-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc7 + + -- Andy Whitcroft Tue, 21 Dec 2010 13:35:28 +0000 + +linux (2.6.37-10.24) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc6 + * updateconfigs following rebase to v2.6.37-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc6 + + -- Andy Whitcroft Thu, 16 Dec 2010 12:34:19 +0000 + +linux (2.6.37-9.23) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks + - LP: #689606 + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks (grub) + - LP: #689606 + + [ Kees Cook ] + + * SAUCE: RO/NX protection for loadable kernel, fix ftrace + - LP: #690190 + + -- Andy Whitcroft Wed, 15 Dec 2010 19:29:57 +0000 + +linux (2.6.37-9.22) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.35-rc5 + * [Config] updateconfigs following rebase to v2.6.37-rc5 + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: dm-raid4-5 -- follow changes to bio flags + * ubuntu: dm-raid4-5 -- re-enable + * ubuntu: omnibook -- update BOM + * ubuntu: ndiswrapper -- update BOM to match actual version + * ubuntu: ndiswrapper -- follow removal of the BKL and locked ioctl + * ubuntu: ndiswrapper -- re-enable + * ubuntu: iscsitarget -- re-instate copy_io_context + * ubuntu: iscsitarget -- follow changes to semaphore initialisation + * ubuntu: iscsitarget -- convert NIPQUAD to %pI4 + * ubuntu: iscsitarget -- re-enable + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 13 + - LP: #685015 + + [ Tim Gardner ] + + * [Config] CONFIG_9P_FSCACHE=y,CONFIG_9P_FS_POSIX_ACL=y + * [Config] CONFIG_CRYPTO_CRC32C=y + - LP: #681819 + * [Config] CONFIG_9P_FSCACHE=n + * [Config] Add nfsd modules to -virtual flavour + - LP: #688070 + + [ Upstream Kernel Changes ] + + * Revert "Staging: zram: work around oops due to startup ordering snafu" + * NFS: Fix panic after nfs_umount() + - LP: #683938 + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + * x86: Resume trampoline must be executable + * x86: RO/NX protection for loadable kernel, jump_table fix + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc5 + + -- Andy Whitcroft Thu, 09 Dec 2010 18:15:35 +0000 + +linux (2.6.37-8.21) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- include the aufs_types.h file in + linux-libc-headers" + * Revert "(no-up) add support for installed header files to ubuntu + directory" + + -- Andy Whitcroft Sun, 05 Dec 2010 17:33:28 +0000 + +linux (2.6.37-8.20) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] drivers/serial/mfd.c: Fix ARM compile error" + * Revert "SAUCE: Nouveau: Disable acceleration on MacBook Pros" + * Revert "SAUCE: Nouveau: Add quirk framework to disable acceleration" + * Revert "SAUCE: i915 -- disable powersave by default" + * SAUCE: enable Marvell 9128 PCIe SATA controller + - LP: #658521 + * [Config] evtchn has been renamed + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + + [ Tim Gardner ] + + * [Config] MISS: evtchn, NEW : xen-evtchn + * rebase to v2.6.37-rc4 + + [ Upstream Kernel Changes ] + + * drm/i915: Clean conflicting modesetting registers upon init + - LP: #683775 + * rebase to v2.6.37-rc4 + + -- Andy Whitcroft Fri, 03 Dec 2010 18:42:07 +0000 + +linux (2.6.37-7.19) natty; urgency=low + + [ Tim Gardner ] + + * [Config] Add bnx2 firmware to nic-modules udeb + - LP: #676245 + + -- Andy Whitcroft Fri, 26 Nov 2010 17:53:45 +0000 + +linux (2.6.37-7.18) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID" + * Revert "SAUCE: Add extra headers to linux-libc-dev" + * Revert "SAUCE: Enable speedstep for sonoma processors." + * [Config] enable CONFIG_BT_HCIUART_ATH3K + * [Config] enable CONFIG_IWLWIFI_DEBUGFS + * [Config] standardise CONFIG_MII + * [Config] standardise CONFIG_PRISM2_USB + * [Config] standardise CONFIG_SCSI_QLA_ISCSI + * [Config] build in CONFIG_AGP + * [Config] build in CONFIG_AGP_INTEL + * [Config] build in CONFIG_AGP_AMD + * [Config] build in CONFIG_AGP_AMD64 + * [Config] build in CONFIG_AGP_NVIDIA + * [Config] build in CONFIG_AGP_VIA + * [Config] disable CONFIG_SCSI_QLA_ISCSI for FTBS (arm) + * (no-up): document the new ## scheme + * [Config] harmonise CONFIG_SERIAL_8250_NR_UARTS + * [Config] update CONFIG_SERIAL_8250_RUNTIME_UARTS=32 + - LP: #675453 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * nx-emu: fix inverted report of disable_nx + + -- Andy Whitcroft Tue, 23 Nov 2010 21:00:39 +0000 + +linux (2.6.37-6.17) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch + aufs2.1-36-UNRELEASED-20101103" + * Revert "ubuntu: AUFS -- aufs2-base.patch + aufs2.1-36-UNRELEASED-20101103" + * [Config] standardise CONFIG_BT + * [Config] standardise CONFIG_IRDA + * [Config] standardise CONFIG_LAPB + * [Config] standardise CONFIG_RDS + * [Config] standardise CONFIG_RFKILL + * [Config] standardise CONFIG_TIPC + * [Config] standardise CONFIG_X25 + * [Config] standardise CONFIG_INPUT_EVDEV + * [Config] standardise CONFIG_INPUT_JOYDEV + * [Config] standardise CONFIG_INPUT_JOYSTICK + * [Config] standardise CONFIG_INPUT_TOUCHSCREEN + * [Config] CONFIG_INPUT_TOUCHSCREEN=n for FTBS (arm) + * [Config] CONFIG_IRDA=n for FTBS (arm) + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-37 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37 + * ubuntu: AUFS -- update to 097bf62d6f49619359d34bf17f242df38562489a + + [ Tim Gardner ] + + * SAUCE: Fix drivers/staging/easycap FTBS + * [Config] CONFIG_EASYCAP=m after fixing FTBS + + [ Upstream Kernel Changes ] + + * Revert "x86: Add NX protection for kernel data" + + -- Andy Whitcroft Mon, 22 Nov 2010 18:09:10 +0000 + +linux (2.6.37-6.16) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] update config for CONFIG_DEBUG_SET_MODULE_RONX" + * rebase to v2.6.37-rc3 + + [ Tim Gardner ] + + * [Config] CONFIG_SCHED_AUTOGROUP=y + + [ Upstream Kernel Changes ] + + * Revert "x86: Add RO/NX protection for loadable kernel modules" + * sched: automated per session task groups + * rebase to v2.6.37-rc3 + + -- Andy Whitcroft Mon, 22 Nov 2010 10:11:13 +0000 + +linux (2.6.37-6.15) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] standardise CONFIG_CEPH_FS + * [Config] standardise CONFIG_SCSI_LPFC_DEBUG_FS + * [Config] standardise CONFIG_SCSI_PROC_FS + * [Config] standardise CONFIG_UBIFS_FS + * [Config] standardise CONFIG_USB_GADGET_DEBUG_FS + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 11 + - LP: #677210 + * SAUCE: enable rfkill for rtl8192se driver + - LP: #640992 + + [ Tim Gardner ] + + * [Config] CONFIG_EASYCAP=n for FTBS + * Rebase to v2.6.32-rc2+git + + [ Upstream Kernel Changes ] + + * x86: Fix improper large page preservation + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + + [ Upstream Kernel Changes ] + + * Rebase to Linus 2.6.37-rc2+git + + -- Andy Whitcroft Sat, 20 Nov 2010 11:40:00 +0000 + +linux (2.6.37-5.14) natty; urgency=low + + [ Upstream Kernel Changes ] + + * PCI: fix offset check for sysfs mmapped files + - LP: #676963 + + -- Andy Whitcroft Thu, 18 Nov 2010 18:12:27 +0000 + +linux (2.6.37-5.13) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.37-rc2 + * updateconfigs following rebase to v2.6.37-rc2 + + [ Tim Gardner ] + + * [Config] Added NFS and related modules to virtual flavour + - LP: #659084 + + [ Upstream Kernel Changes ] + + * x86, cpu: Rename verify_cpu_64.S to verify_cpu.S + * x86, cpu: Clear XD_DISABLED flag on Intel to regain NX + * x86, cpu: Call verify_cpu during 32bit CPU startup + * x86, cpu: Only CPU features determine NX capabilities + + [ Upstream Changes ] + + * rebased to v2.67.37-rc2 + + -- Andy Whitcroft Tue, 16 Nov 2010 13:13:29 +0000 + +linux (2.6.37-4.12) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] HID: magicmouse: add param for scroll speed" + * Revert "[Upstream] HID: magicmouse: properly account for scroll + movement in state" + * Revert "[Upstream] HID: magicmouse: disable and add module param for + scroll acceleration" + * Revert "[Upstream] HID: magicmouse: scroll on entire surface, not just + middle of mouse" + + [ Henrik Rydberg ] + + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Upstream Kernel Changes ] + + * Revert "mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume" + * Revert "[ARM] implement arch_randomize_brk()" + * Revert "ARM: stack protector: change the canary value per task" + * Revert "ARM: initial stack protector (-fstack-protector) support" + * Revert "ALSA: hda - Handle pin NID 0x1a on ALC259/269" + * Revert "ALSA: hda - Handle missing NID 0x1b on ALC259 codec" + * Revert "perf probe: Add kernel source path option" + * hid: ntrig: Support single-touch devices + * hid: ntrig: Mask pen switch events + * net: rtnetlink.h -- only include linux/netdevice.h when used by the + kernel + - LP: #673073 + * Fix userspace build of linux/fs.h + + -- Andy Whitcroft Mon, 15 Nov 2010 19:31:44 +0000 + +linux (2.6.37-3.11) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- update to + b37c575759dc4535ccc03241c584ad5fe69e3b25" + * Revert "ubuntu: AUFS -- track changes to the arguements to fop fsync()" + * Revert "ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601" + * Revert "ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601" + * Revert "ubuntu: AUFS -- aufs2 base patch for linux-2.6.34" + * [Config] Disable intel_idle for -virtual kernels + - LP: #651370 + * [Config] enforcer -- ensure we never enable CONFIG_IMA + * debian -- pass the correct flavour name when checking configs + * [Config] enforcer -- ensure CONFIG_INTEL_IDLE is off for -virtual + * [Config] ensure CONFIG_IPV6=y for powerpc + * [Config] enforcer -- ensure CONFIG_IPV6=y + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- update to aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- re-enable + * ubuntu: AUFS -- track changes to work queue initialisation + * ubuntu: AUFS -- track changes to llseek in v2.6.37-rc1 + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + * SAUCE: drm -- stop early access to drm devices + + [ Jeremy Kerr ] + + * [Config] Build-in powermac ZILOG serial driver + - LP: #673346 + + [ Kees Cook ] + + * SAUCE: nx-emu: use upstream ASLR when possible + + [ Tim Gardner ] + + * [Config] Use correct be2iscsi module name in d-i/modules/scsi-modules + - LP: #628776 + + [ Upstream Kernel Changes ] + + * i386: NX emulation + * nx-emu: drop exec-shield sysctl, merge with disable_nx + * nx-emu: standardize boottime message prefix + * mmap randomization for executable mappings on 32-bit + * exec-randomization: brk away from exec rand area + + -- Andy Whitcroft Thu, 11 Nov 2010 23:46:37 +0000 + +linux (2.6.37-2.10) natty; urgency=low + + [ Andy Whitcroft ] + + * reinstate armel config changes: + * [Config] CONFIG_GPIO_PCH=n for armel FTBS + * [Config] CONFIG_GPIO_VX855=n for armel FTBS + + -- Andy Whitcroft Wed, 03 Nov 2010 22:20:35 +0000 + +linux (2.6.37-2.9) natty; urgency=low + + [ Andy Whitcroft ] + + * config -- fix genportsconfig + * [Config] move powerpc over from ports to distro + * bump master version number to match contained kernel + * SAUCE: fix documentation strings for struct input_keymap_entry + * usb: gadget: goku_udc: add registered flag bit + + -- Andy Whitcroft Tue, 02 Nov 2010 15:14:11 +0000 + +linux (2.6.36-2.8) natty; urgency=low + + [ Tim Gardner ] + + * [Config]: fix changed CONFIG_SYSFS_DEPRECATED_V2 enforcement rules + * [Config]: TWL4030_CORE=n for FTBS + * [Config]: CONFIG_ATH6K_LEGACY=n for FTBS + * [Config]: CONFIG_SOLO6X10=n for FTBS + * [Config]: CONFIG_GPIO_PCH=n for armel FTBS + * [Config]: CONFIG_GPIO_VX855=n for armel FTBS + * [Config]: CONFIG_DRM_NOUVEAU=n for armel FTBS + * [Config]: CONFIG_LINE6_USB=n for armel FTBS + * [Config]: CONFIG_SENSORS_AK8975=n for armel FTBS + * [Config]: CONFIG_I2C_I801=n for armel FTBS + * UBUNTU: SAUCE: AppArmor: Fix unpack of network tables. + * AppArmor: compatibility patch for v5 interface + * AppArmor: compatibility patch for v5 network controll + * Dropped (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: libata: Add ALPM power state accounting to the AHCI driver + * Dropped: UBUNTU: SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + * Dropped: hid: 3m: Convert to MT slots + * Dropped: HID: magicmouse: don't allow hidinput to initialize the device + * Dropped: HID: magicmouse: simplify touch data bit manipulation + * Dropped: HID: magicmouse: simplify touch down logic + * Dropped: HID: magicmouse: enable Magic Trackpad support + * Dropped: UBUNTU: SAUCE: hid: ntrig: remove sysfs nodes + * Dropped: UBUNTU: SAUCE: hid: ntrig: Setup input filtering manually + * Dropped: UBUNTU: SAUCE: hid: ntrig: New ghost-filtering event logic + * Dropped: UBUNTU: SAUCE: hid: ntrig: identify firmware version (wiggled) + * Dropped: UBUNTU: (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: KMS: cache the EDID information of the LVDS + * Dropped: UBUNTU: SAUCE: fbcon -- fix race between open and removal of framebuffers + * Dropped: UBUNTU: SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + * Dropped: UBUNTU: SAUCE: x86: implement cs-limit nx-emulation for ia32 + * Dropped: UBUNTU: SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * Dropped: UBUNTU: SAUCE: [um] Don't use nx_enabled under UML + * Dropped: UBUNTU: SAUCE: x86: brk away from exec rand area + + [ Upstream Kernel Changes ] + + * rebased against 2.6.27-rc1 + + -- Tim Gardner Fri, 22 Oct 2010 19:35:05 -0600 + +linux (2.6.36-1.7) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.36 final + * [Config] update configs following rebase to v2.6.36 final + * [Config] update ports configs following rebase to v2.6.36 final + + [ Upstream Kernel Changes ] + + * rebased to v2.6.36 final + + -- Andy Whitcroft Thu, 21 Oct 2010 14:28:57 +0100 + +linux (2.6.36-1.6) natty; urgency=low + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "Staging: Add initial release of brcm80211 - Broadcom 802.11n + wireless LAN driver." + + -- Andy Whitcroft Wed, 20 Oct 2010 10:41:25 +0100 + +linux (2.6.36-1.5) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.36-rc8 + * updateconfigs following rebase to v2.6.36-rc8 + * updateportsconfigs following rebase to v2.6.36-rc8 + * config -- simplify the kernelconfig interface + * config -- add new config mode 'dumpconfigs' + + [ Tim Gardner ] + + * Simplify the use of CROSS_COMPILER + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "staging: brcm80211: Make compiling of brcm80211.ko and + brcmfmac.ko mutually exclusive." + * Revert "staging: brcm80211: Fix compile issue when BRCM80211_PCI is not + set." + * Revert "Staging: brcm80211: remove driver specific -W options" + * Revert "Staging: brcm80211: clean up makefile cflag lines" + * Revert "staging: brcm80211: add fullmac driver" + * Revert "staging: brcm80211: use string native library" + * Revert "staging: brcm80211: use native ctype library" + * Revert "staging: brcm80211: fix remaining checkpatch errors." + * Revert "staging: brcm80211: fix "ERROR: trailing whitespace."" + * Revert "staging: brcm80211: fix "ERROR: spaces required around that + ..."" + * Revert "staging: brcm80211: fix "ERROR: spaces prohibited around that + ':' ..."" + * Revert "staging: brcm80211: fix "ERROR: space required before that + ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that close + brace"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited before + ...close square bracket"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited after that + ..."" + * Revert "staging: brcm80211: fix "ERROR: need consistent spacing around + '*'"" + * Revert "staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"'" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... + do - while loop"" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise statics to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise globals to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: while should follow close brace + '}'"" + * Revert "staging: brcm80211: fix "ERROR: that open brace { ... prev + line"" + * Revert "staging: brcm80211: fix "ERROR: trailing statements should be + on next line"" + * Revert "staging: brcm80211: fix "ERROR: do not use assignment in if + condition"" + * Revert "staging: brcm80211: fix "ERROR: return is not a function, + paren..."" + * Revert "staging: brcm80211: fix "ERROR: open brace '{' following + function dec..."" + * Revert "staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo + *bar"'" + * Revert "staging: brcm80211: Fix URLs for firmware files." + * Revert "staging: brcm80211: use '%pM' format to print MAC address" + * Revert "staging: brcm80211: Add contact info to TODO list." + * Revert "staging: brcm80211: Fix some initialisation failure paths" + * Export dump_{write,seek} to binary loader modules + * rebase to v2.6.36-rc8. + + -- Andy Whitcroft Tue, 19 Oct 2010 18:58:11 +0100 + +linux (2.6.36-0.4) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: perf: increase stack footprint to avoid stack-protector warning + (fixes FTBS on powerpc) + + -- Andy Whitcroft Thu, 14 Oct 2010 13:16:16 +0100 + +linux (2.6.36-0.3) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_SCSI_QLA_ISCSI to fix FTBS on powerpc + + -- Andy Whitcroft Thu, 14 Oct 2010 03:01:30 +0100 + +linux (2.6.36-0.2) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateportsconfigs following rebase to 2.6.36-rc7 + (fix FTBS on powerpc) + + -- Andy Whitcroft Wed, 13 Oct 2010 23:25:12 +0100 + +linux (2.6.36-0.1) natty; urgency=low + + [ Andy Whitcroft ] + + * reduce disk usage during buildd builds + - LP: #645653 + * [Config] enforcer -- ensure CONFIG_INIT_PASS_ALL_PARAMS is y + * [Config] armel -- drop omap flavour + + [ Tim Gardner ] + + * Added dropped patch list + * more dropped patches + * [Config] Disable aufs, dmraid-4.5, ndis-wrapper + * [Config] Add support for cross compiling armel + * [Config] CONFIG_SCSI_QLA_ISCSI=n for armel + * [Upstream] drivers/serial/mfd.c: Fix ARM compile error + * [Config]: updateconfigs after adding brcm80211 + * staging: brcm80211: Fix Makefile syntax error + * rebased to v2.6.36-rc7 + + [ Upstream Kernel Changes ] + + * (upstream) IPS driver: don't toggle CPU turbo on unsupported CPUs + * (upstream) IPS driver: verify BIOS provided limits + * intel_ips: Print MCP limit exceeded values. + * Staging: Add initial release of brcm80211 - Broadcom 802.11n wireless + LAN driver. + * staging: brcm80211: Fix some initialisation failure paths + * staging: brcm80211: Add contact info to TODO list. + * staging: brcm80211: use '%pM' format to print MAC address + * staging: brcm80211: Fix URLs for firmware files. + * staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo *bar"' + * staging: brcm80211: fix "ERROR: open brace '{' following function + dec..." + * staging: brcm80211: fix "ERROR: return is not a function, paren..." + * staging: brcm80211: fix "ERROR: do not use assignment in if condition" + * staging: brcm80211: fix "ERROR: trailing statements should be on next + line" + * staging: brcm80211: fix "ERROR: that open brace { ... prev line" + * staging: brcm80211: fix "ERROR: while should follow close brace '}'" + * staging: brcm80211: fix "ERROR: do not initialise globals to 0 or NULL" + * staging: brcm80211: fix "ERROR: do not initialise statics to 0 or NULL" + * staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis" + * staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... do - + while loop" + * staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"' + * staging: brcm80211: fix "ERROR: need consistent spacing around '*'" + * staging: brcm80211: fix "ERROR: space prohibited after that ..." + * staging: brcm80211: fix "ERROR: space prohibited before ...close square + bracket" + * staging: brcm80211: fix "ERROR: space required after that close brace" + * staging: brcm80211: fix "ERROR: space required after that ..." + * staging: brcm80211: fix "ERROR: space required before that ..." + * staging: brcm80211: fix "ERROR: spaces prohibited around that ':' ..." + * staging: brcm80211: fix "ERROR: spaces required around that ..." + * staging: brcm80211: fix "ERROR: trailing whitespace." + * staging: brcm80211: fix remaining checkpatch errors. + * staging: brcm80211: use native ctype library + * staging: brcm80211: use string native library + * staging: brcm80211: add fullmac driver + * Staging: brcm80211: clean up makefile cflag lines + * Staging: brcm80211: remove driver specific -W options + * staging: brcm80211: Fix compile issue when BRCM80211_PCI is not set. + * staging: brcm80211: Make compiling of brcm80211.ko and brcmfmac.ko + mutually exclusive. + + -- Andy Whitcroft Tue, 12 Oct 2010 16:00:27 +0100 + +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.38.orig/debian/debian.env +++ linux-2.6.38/debian/debian.env @@ -0,0 +1 @@ +DEBIAN=debian.master --- linux-2.6.38.orig/debian/rules +++ linux-2.6.38/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.38.orig/debian/control +++ linux-2.6.38/debian/control @@ -0,0 +1,1169 @@ +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, dpkg (>= 1.16.0~ubuntu4) +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-natty.git + +Package: linux-source-2.6.38 +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.38 with Ubuntu patches + This package provides the source code for the Linux kernel version + 2.6.38. + . + 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.38 + This package provides the various documents in the 2.6.38 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.38 + This package provides the architecture independent parts for kernel + version locked tools in the 2.6.38 kernel source. + +Package: linux-headers-2.6.38-12 +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.38 + This package provides kernel header files for version 2.6.38, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc ppc64 armel armhf +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 +Multi-Arch: same +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.38-12 +Architecture: i386 amd64 powerpc ppc64 armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel tools for version 2.6.38-12 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.38-12 on + DESC. + + +Package: linux-image-2.6.38-12-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-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86/x86_64 + This package provides kernel header files for version 2.6.38 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86/x86_64 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86 + This package contains the Linux kernel image for version 2.6.38 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.38-12-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86 + This package provides kernel header files for version 2.6.38 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on TI OMAP3-based systems + This package contains the Linux kernel image for version 2.6.38 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.38-12-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on TI OMAP3-based systems + This package provides kernel header files for version 2.6.38 on + TI OMAP3-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-omap-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on TI OMAP3-based systems + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 32-bit PowerPC + This package provides kernel header files for version 2.6.38 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.38 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.38-12-powerpc64-smp +Architecture: powerpc ppc64 +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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc64-smp +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.38 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc64-smp-dbgsym +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.38 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.38 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.38-12-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-efi-amd64 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86_64 + This package provides kernel header files for version 2.6.38 on + x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-server-dbgsym +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86_64 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on Versatile-based systems + This package contains the Linux kernel image for version 2.6.38 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.38-12-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on Versatile-based systems + This package provides kernel header files for version 2.6.38 on + Versatile-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-versatile-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on Versatile-based systems + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86/x86_64 + This package provides kernel header files for version 2.6.38 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86/x86_64 + This package provides a kernel debug image for version 2.6.38 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.38-12-generic-di +XC-Package-Type: udeb +Provides: kernel-image +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-generic-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-2.6.38-12-generic-di, nic-shared-modules-2.6.38-12-generic-di, virtio-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-2.6.38-12-generic-di, crypto-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: serial-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: serial-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Serial port support + +Package: ppp-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-2.6.38-12-generic-di, nic-shared-modules-2.6.38-12-generic-di, serial-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: firewire-core-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: firewire-core-modules +Depends: kernel-image-2.6.38-12-generic-di, storage-core-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: scsi-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-2.6.38-12-generic-di, storage-core-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: plip-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: plip-modules +Depends: kernel-image-2.6.38-12-generic-di, nic-shared-modules-2.6.38-12-generic-di, parport-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: PLIP (parallel port) networking support + +Package: floppy-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: nfs-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: nfs-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: md-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: md-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: usb-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: usb-modules +Depends: kernel-image-2.6.38-12-generic-di, storage-core-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Core USB support + +Package: pcmcia-storage-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: pcmcia-storage-modules +Depends: kernel-image-2.6.38-12-generic-di, scsi-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: PCMCIA storage support + +Package: fb-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: input-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: input-modules +Depends: kernel-image-2.6.38-12-generic-di, usb-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Support for various input methods + +Package: mouse-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-2.6.38-12-generic-di, input-modules-2.6.38-12-generic-di, usb-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-2.6.38-12-generic-di, nic-shared-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: nic-pcmcia-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: nic-pcmcia-modules +Depends: kernel-image-2.6.38-12-generic-di, nic-shared-modules-2.6.38-12-generic-di, nic-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: PCMCIA network interface support + +Package: pcmcia-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: pcmcia-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: PCMCIA Modules + +Package: nic-usb-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: nic-usb-modules +Depends: kernel-image-2.6.38-12-generic-di, nic-shared-modules-2.6.38-12-generic-di, usb-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: USB network interface support + +Package: sata-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-2.6.38-12-generic-di, storage-core-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: fs-core-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, ntfs-modules, hfs-modules +Depends: kernel-image-2.6.38-12-generic-di, fat-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-generic-di +XC-Package-Type: udeb +Provides: pata-modules +Depends: kernel-image-2.6.38-12-generic-di, storage-core-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: PATA support modules + +Package: storage-core-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-generic-di +XC-Package-Type: udeb +Provides: block-modules +Depends: kernel-image-2.6.38-12-generic-di, storage-core-modules-2.6.38-12-generic-di, parport-modules-2.6.38-12-generic-di, virtio-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-generic-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-2.6.38-12-generic-di, storage-core-modules-2.6.38-12-generic-di, scsi-modules-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-generic-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: squashfs-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: vlan-modules-2.6.38-12-generic-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-2.6.38-12-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-generic +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + +Package: kernel-image-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: kernel-image +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-virtual-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-2.6.38-12-virtual-di, nic-shared-modules-2.6.38-12-virtual-di, virtio-modules-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-2.6.38-12-virtual-di, crypto-modules-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: ppp-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-2.6.38-12-virtual-di, nic-shared-modules-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: scsi-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-2.6.38-12-virtual-di, storage-core-modules-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: floppy-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: md-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: md-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: fb-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: mouse-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-2.6.38-12-virtual-di, nic-shared-modules-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: sata-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-2.6.38-12-virtual-di, storage-core-modules-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: fs-core-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, ntfs-modules, hfs-modules +Depends: kernel-image-2.6.38-12-virtual-di, fat-modules-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-virtual-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-virtual-di +XC-Package-Type: udeb +Provides: block-modules +Depends: kernel-image-2.6.38-12-virtual-di, storage-core-modules-2.6.38-12-virtual-di, parport-modules-2.6.38-12-virtual-di, virtio-modules-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-virtual-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-2.6.38-12-virtual-di, storage-core-modules-2.6.38-12-virtual-di, scsi-modules-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-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.38-12-virtual-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: squashfs-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: vlan-modules-2.6.38-12-virtual-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-2.6.38-12-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.38-12-virtual +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. --- linux-2.6.38.orig/debian/compat +++ linux-2.6.38/debian/compat @@ -0,0 +1 @@ +5 --- linux-2.6.38.orig/debian/source/format +++ linux-2.6.38/debian/source/format @@ -0,0 +1 @@ +1.0 --- linux-2.6.38.orig/debian/commit-templates/external-driver +++ linux-2.6.38/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.38.orig/debian/commit-templates/bumpabi +++ linux-2.6.38/debian/commit-templates/bumpabi @@ -0,0 +1,3 @@ +UBUNTU: Bump ABI + +Ignore: yes --- linux-2.6.38.orig/debian/commit-templates/upstream-patch +++ linux-2.6.38/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.38.orig/debian/commit-templates/newrelease +++ linux-2.6.38/debian/commit-templates/newrelease @@ -0,0 +1,3 @@ +UBUNTU: Start new release + +Ignore: yes --- linux-2.6.38.orig/debian/commit-templates/sauce-patch +++ linux-2.6.38/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.38.orig/debian/commit-templates/config-updates +++ linux-2.6.38/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.38.orig/debian/commit-templates/missing-modules +++ linux-2.6.38/debian/commit-templates/missing-modules @@ -0,0 +1,3 @@ +UBUNTU: build/modules: Add modules that have intentionally gone missing + +Ignore: yes --- linux-2.6.38.orig/debian/rules.d/2-binary-arch.mk +++ linux-2.6.38/debian/rules.d/2-binary-arch.mk @@ -0,0 +1,406 @@ +# 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 + +$(stampdir)/stamp-prepare-%: config-prepare-check-% + @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) -j1 silentoldconfig prepare scripts + touch $@ + +# Used by developers as a shortcut to prepare a tree for compilation. +prepare-%: $(stampdir)/stamp-prepare-% + @echo Prepared $* for $(arch) + +# Do the actual build, including image and modules +$(stampdir)/stamp-build-%: target_flavour = $* +$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-% + @echo "Building $*..." + $(build_cd) $(kmake) $(build_O) $(conc_level) $(build_image) 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-%: 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 -m600 -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 600 $(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 -m600 $(builddir)/build-$*/System.map \ + $(pkgdir)/boot/System.map-$(abi_release)-$* +ifeq ($(no_dumpfile),) + makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \ + -x $(builddir)/build-$*/vmlinux + chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* +endif + + $(build_cd) $(kmake) $(build_O) $(conc_level) 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 + chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* +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) -j1 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) $(conc_level) headers_install + + ( cd $(headers_tmp)/install/include/ && \ + find . -name '.' -o -name '.*' -prune -o -print | \ + cpio -pvd --preserve-modification-time \ + $(headers_dir)/usr/include/ ) + mkdir $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH) + mv $(headers_dir)/usr/include/asm $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)/ + + 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) -X/boot/ + 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 -X/boot/; \ + 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 + +# +# per-architecture packages +# +$(stampdir)/stamp-prepare-perarch: + @echo "Preparing perarch ..." +ifeq ($(do_tools),true) + rm -rf $(builddir)/tools-$* + 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: $(stampdir)/stamp-prepare-perarch +ifeq ($(do_tools),true) + cd $(builddir)/tools-$*/tools/perf && \ + make HAVE_CPLUS_DEMANGLE=1 $(CROSS_COMPILE) $(conc_level) +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 $(addprefix binary-,$(flavours)) + +build-arch-deps-$(do_flavour_image_package) += $(addprefix $(stampdir)/stamp-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.38.orig/debian/rules.d/0-common-vars.mk +++ linux-2.6.38/debian/rules.d/0-common-vars.mk @@ -0,0 +1,226 @@ +# +# 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 := natty +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 }' /dev/null)- +endif + +# +# Detect invocations of the form 'dpkg-buildpackage -B -aarmel' within +# an x86'en schroot. This is the only way to build all of the packages +# (except for tools). +# +ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)- +endif + +abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(revision)/$(arch) +prev_abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(prev_revision)/$(arch) +commonconfdir := $(CURDIR)/$(DEBIAN)/config +archconfdir := $(CURDIR)/$(DEBIAN)/config/$(arch) +sharedconfdir := $(CURDIR)/debian.master/config +builddir := $(CURDIR)/debian/build +stampdir := $(CURDIR)/debian/stamps + +# +# The binary package name always starts with linux-image-$KVER-$ABI.$UPLOAD_NUM. There +# are places that you'll find linux-image hard coded, but I guess thats OK since the +# assumption that the binary package always starts with linux-image will never change. +# +bin_pkg_name=linux-image-$(abi_release) +hdrs_pkg_name=linux-headers-$(abi_release) +# +# The generation of content in the doc package depends on both 'AUTOBUILD=' and +# 'do_doc_package_content=true'. There are usually build errors during the development +# cycle, so its OK to leave 'do_doc_package_content=false' until those build +# failures get sorted out. Finally, the doc package doesn't really need to be built +# for developer testing (its kind of slow), so only do it if on a buildd. +do_doc_package=true +do_doc_package_content=true +ifeq ($(full_build),false) +do_doc_package_content=false +endif +doc_pkg_name=$(src_pkg_name)-doc + +# +# Similarly with the linux-source package, you need not build it as a developer. Its +# somewhat I/O intensive and utterly useless. +# +do_source_package=true +do_source_package_content=true +ifeq ($(full_build),false) +do_source_package_content=false +endif + +# linux-libc-dev may not be needed, default to building it. +do_libc_dev_package=true + +# common headers normally is built as an indep package, but may be arch +do_common_headers_indep=true + +# add a 'full source' mode +do_full_source=false + +# build tools +ifneq ($(wildcard $(CURDIR)/tools),) +do_tools?=true +else +do_tools?=false +endif +tools_pkg_name=$(src_pkg_name)-tools-$(abi_release) +tools_common_pkg_name=$(src_pkg_name)-tools-common + +# The general flavour specific image package. +do_flavour_image_package=true + +# The general flavour specific header package. +do_flavour_header_package=true + +# Support parallel= 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.38.orig/debian/rules.d/1-maintainer.mk +++ linux-2.6.38/debian/rules.d/1-maintainer.mk @@ -0,0 +1,122 @@ +# 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 defaultconfigs editconfigs genconfigs dumpconfigs: + dh_testdir; + $(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ + rm -rf build + +updateportsconfigs defaultportsconfigs editportsconfigs genportsconfigs askconfigs: + dh_testdir; + $(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ 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.38.orig/debian/rules.d/5-udebs.mk +++ linux-2.6.38/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.38.orig/debian/rules.d/3-binary-indep.mk +++ linux-2.6.38/debian/rules.d/3-binary-indep.mk @@ -0,0 +1,134 @@ +build-indep: + +docpkg = $(doc_pkg_name) +docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg) +install-doc: install-headers +ifeq ($(do_doc_package),true) + 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 +endif + +indep_hdrpkg = $(hdrs_pkg_name) +indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg) +install-headers: +ifeq ($(do_flavour_header_package),true) + 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) +endif + +srcpkg = $(src_pkg_name)-source-$(release) +srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg) +balldir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)/$(srcpkg) +install-source: install-doc +ifeq ($(do_source_package),true) + 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 +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: install-source +ifeq ($(do_tools),true) + dh_testdir + dh_testroot + dh_clean -k -p$(toolspkg) + + install -d $(toolsbin) + install -d $(toolsman)/man1 + + install -m755 debian/tools/perf $(toolsbin)/perf + + rm -rf $(builddir)/tools + 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 +endif + +install-indep: install-tools + +# 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.38.orig/debian/rules.d/4-checks.mk +++ linux-2.6.38/debian/rules.d/4-checks.mk @@ -0,0 +1,24 @@ +# Check ABI for package against last release (if not same abinum) +abi-check-%: $(stampdir)/stamp-build-% + install -d $(abidir) + sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' \ + $(builddir)/build-$*/Module.symvers | sort > $(abidir)/$* + @perl -f $(DROOT)/scripts/abi-check "$*" "$(prev_abinum)" "$(abinum)" \ + "$(prev_abidir)" "$(abidir)" "$(skipabi)" + +# Check the module list against the last release (always) +module-check-%: $(stampdir)/stamp-build-% + install -d $(abidir) + find $(builddir)/build-$*/ -name \*.ko | \ + sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $(abidir)/$*.modules + @perl -f $(DROOT)/scripts/module-check "$*" \ + "$(prev_abidir)" "$(abidir)" $(skipmodule) + +checks-%: module-check-% abi-check-% + @echo checks-$* + +# 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)" + --- linux-2.6.38.orig/debian/control-scripts/postrm +++ linux-2.6.38/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.38.orig/debian/control-scripts/postinst +++ linux-2.6.38/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.38.orig/debian/control-scripts/prerm +++ linux-2.6.38/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.38.orig/debian/control-scripts/headers-postinst +++ linux-2.6.38/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.38.orig/debian/control-scripts/preinst +++ linux-2.6.38/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.38.orig/debian/tests/check-aliases +++ linux-2.6.38/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.38.orig/debian/tests/README +++ linux-2.6.38/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.38.orig/debian/docs/README.inclusion-list +++ linux-2.6.38/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.38.orig/debian/scripts/module-inclusion +++ linux-2.6.38/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.38.orig/debian/scripts/control-create +++ linux-2.6.38/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.38.orig/debian/scripts/config-check +++ linux-2.6.38/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.38.orig/debian/scripts/abi-check +++ linux-2.6.38/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.38.orig/debian/scripts/module-check +++ linux-2.6.38/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.38.orig/debian/scripts/sub-flavour +++ linux-2.6.38/debian/scripts/sub-flavour @@ -0,0 +1,69 @@ +#!/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/config-$ABI_RELEASE-$FROM \ + debian/$to_pkg/boot/ +install -m600 debian/$from_pkg/boot/{vmlinuz,System.map}-$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.38.orig/debian/scripts/link-headers +++ linux-2.6.38/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.38.orig/debian/scripts/misc/getabis +++ linux-2.6.38/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.38.orig/debian/scripts/misc/insert-ubuntu-changes +++ linux-2.6.38/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.38.orig/debian/scripts/misc/insert-changes.pl +++ linux-2.6.38/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.38.orig/debian/scripts/misc/kernelconfig +++ linux-2.6.38/debian/scripts/misc/kernelconfig @@ -0,0 +1,172 @@ +#!/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]"} +yes=0 +case "$mode" in + update*configs) mode='silentoldconfig' ;; + default*configs) mode='oldconfig'; yes=1 ;; + edit*configs) ;; # All is good + gen*configs) mode='genconfigs' ;; # All is good + dump*configs) mode='config'; yes=1 ;; + *) 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" = "genconfigs" ]; 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 + ppc64) kernarch="powerpc" ;; + amd64) kernarch="x86_64" ;; + lpia) kernarch="x86" ;; + sparc) kernarch="sparc64" ;; + armel|armhf) 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 + editconfigs) + # 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 + ;; + *) + echo "* Run $mode (yes=$yes) on $arch/$config ..." + if [ "$yes" -eq 1 ]; then + yes "" | make O=`pwd`/build ARCH=$kernarch "$mode" + else + make O=`pwd`/build ARCH=$kernarch "$mode" + fi ;; + 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 + flavour="${config##*.}" + if [ -f $archconfdir/$config ]; then + fullconf="$tmpdir/CONFIGS/$arch-$config" + "$bindir/../config-check" "$fullconf" "$arch" "$flavour" "$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.38.orig/debian/scripts/misc/splitconfig.pl +++ linux-2.6.38/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.38.orig/debian/scripts/misc/git-ubuntu-log +++ linux-2.6.38/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.38.orig/debian/scripts/misc/retag +++ linux-2.6.38/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.38.orig/debian/stamps/keep-dir +++ linux-2.6.38/debian/stamps/keep-dir @@ -0,0 +1 @@ +Place holder --- linux-2.6.38.orig/debian/tools/perf +++ linux-2.6.38/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.38.orig/Documentation/flexible-arrays.txt +++ linux-2.6.38/Documentation/flexible-arrays.txt @@ -66,10 +66,10 @@ entering atomic context, using: int flex_array_prealloc(struct flex_array *array, unsigned int start, - unsigned int end, gfp_t flags); + unsigned int nr_elements, gfp_t flags); This function will ensure that memory for the elements indexed in the range -defined by start and end has been allocated. Thereafter, a +defined by start and nr_elements has been allocated. Thereafter, a flex_array_put() call on an element in that range is guaranteed not to block. --- linux-2.6.38.orig/Documentation/Yama.txt +++ linux-2.6.38/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.38.orig/Documentation/ABI/testing/sysfs-platform-eeepc-wmi +++ linux-2.6.38/Documentation/ABI/testing/sysfs-platform-eeepc-wmi @@ -8,3 +8,24 @@ * 0 -> Super Performance Mode * 1 -> High Performance Mode * 2 -> Power Saving Mode + +What: /sys/devices/platform/eeepc-wmi/camera +Date: Jan 2010 +KernelVersion: 2.6.39 +Contact: "Corentin Chary" +Description: + Control the camera. 1 means on, 0 means off. + +What: /sys/devices/platform/eeepc-wmi/cardr +Date: Jan 2010 +KernelVersion: 2.6.39 +Contact: "Corentin Chary" +Description: + Control the card reader. 1 means on, 0 means off. + +What: /sys/devices/platform/eeepc-wmi/touchpad +Date: Jan 2010 +KernelVersion: 2.6.39 +Contact: "Corentin Chary" +Description: + Control the card touchpad. 1 means on, 0 means off. --- linux-2.6.38.orig/Documentation/i2c/writing-clients +++ linux-2.6.38/Documentation/i2c/writing-clients @@ -38,7 +38,7 @@ .name = "foo", }, - .id_table = foo_ids, + .id_table = foo_idtable, .probe = foo_probe, .remove = foo_remove, /* if device autodetection is needed: */ --- linux-2.6.38.orig/Documentation/i2c/instantiating-devices +++ linux-2.6.38/Documentation/i2c/instantiating-devices @@ -100,7 +100,7 @@ (...) i2c_adap = i2c_get_adapter(2); memset(&i2c_info, 0, sizeof(struct i2c_board_info)); - strlcpy(i2c_info.name, "isp1301_pnx", I2C_NAME_SIZE); + strlcpy(i2c_info.type, "isp1301_pnx", I2C_NAME_SIZE); isp1301_i2c_client = i2c_new_probed_device(i2c_adap, &i2c_info, normal_i2c, NULL); i2c_put_adapter(i2c_adap); --- linux-2.6.38.orig/Documentation/usb/linux.inf +++ linux-2.6.38/Documentation/usb/linux.inf @@ -18,15 +18,15 @@ ; Decoration for x86 architecture [LinuxDevices.NTx86] -%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 +%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ; Decoration for x64 architecture [LinuxDevices.NTamd64] -%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 +%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ; Decoration for ia64 architecture [LinuxDevices.NTia64] -%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 +%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ;@@@ This is the common setting for setup [ControlFlags] --- linux-2.6.38.orig/Documentation/usb/linux-cdc-acm.inf +++ linux-2.6.38/Documentation/usb/linux-cdc-acm.inf @@ -90,10 +90,10 @@ [SourceDisksFiles] [SourceDisksNames] [DeviceList] -%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02 +%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02 [DeviceList.NTamd64] -%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02 +%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02 ;------------------------------------------------------------------------------ --- linux-2.6.38.orig/lib/vsprintf.c +++ linux-2.6.38/lib/vsprintf.c @@ -120,147 +120,6 @@ } EXPORT_SYMBOL(simple_strtoll); -/** - * strict_strtoul - convert a string to an unsigned long strictly - * @cp: The string to be converted - * @base: The number base to use - * @res: The converted result value - * - * strict_strtoul converts a string to an unsigned long only if the - * string is really an unsigned long string, any string containing - * any invalid char at the tail will be rejected and -EINVAL is returned, - * only a newline char at the tail is acceptible because people generally - * change a module parameter in the following way: - * - * echo 1024 > /sys/module/e1000/parameters/copybreak - * - * echo will append a newline to the tail. - * - * It returns 0 if conversion is successful and *res is set to the converted - * value, otherwise it returns -EINVAL and *res is set to 0. - * - * simple_strtoul just ignores the successive invalid characters and - * return the converted value of prefix part of the string. - */ -int strict_strtoul(const char *cp, unsigned int base, unsigned long *res) -{ - char *tail; - unsigned long val; - - *res = 0; - if (!*cp) - return -EINVAL; - - val = simple_strtoul(cp, &tail, base); - if (tail == cp) - return -EINVAL; - - if ((tail[0] == '\0') || (tail[0] == '\n' && tail[1] == '\0')) { - *res = val; - return 0; - } - - return -EINVAL; -} -EXPORT_SYMBOL(strict_strtoul); - -/** - * strict_strtol - convert a string to a long strictly - * @cp: The string to be converted - * @base: The number base to use - * @res: The converted result value - * - * strict_strtol is similiar to strict_strtoul, but it allows the first - * character of a string is '-'. - * - * It returns 0 if conversion is successful and *res is set to the converted - * value, otherwise it returns -EINVAL and *res is set to 0. - */ -int strict_strtol(const char *cp, unsigned int base, long *res) -{ - int ret; - if (*cp == '-') { - ret = strict_strtoul(cp + 1, base, (unsigned long *)res); - if (!ret) - *res = -(*res); - } else { - ret = strict_strtoul(cp, base, (unsigned long *)res); - } - - return ret; -} -EXPORT_SYMBOL(strict_strtol); - -/** - * strict_strtoull - convert a string to an unsigned long long strictly - * @cp: The string to be converted - * @base: The number base to use - * @res: The converted result value - * - * strict_strtoull converts a string to an unsigned long long only if the - * string is really an unsigned long long string, any string containing - * any invalid char at the tail will be rejected and -EINVAL is returned, - * only a newline char at the tail is acceptible because people generally - * change a module parameter in the following way: - * - * echo 1024 > /sys/module/e1000/parameters/copybreak - * - * echo will append a newline to the tail of the string. - * - * It returns 0 if conversion is successful and *res is set to the converted - * value, otherwise it returns -EINVAL and *res is set to 0. - * - * simple_strtoull just ignores the successive invalid characters and - * return the converted value of prefix part of the string. - */ -int strict_strtoull(const char *cp, unsigned int base, unsigned long long *res) -{ - char *tail; - unsigned long long val; - - *res = 0; - if (!*cp) - return -EINVAL; - - val = simple_strtoull(cp, &tail, base); - if (tail == cp) - return -EINVAL; - if ((tail[0] == '\0') || (tail[0] == '\n' && tail[1] == '\0')) { - *res = val; - return 0; - } - - return -EINVAL; -} -EXPORT_SYMBOL(strict_strtoull); - -/** - * strict_strtoll - convert a string to a long long strictly - * @cp: The string to be converted - * @base: The number base to use - * @res: The converted result value - * - * strict_strtoll is similiar to strict_strtoull, but it allows the first - * character of a string is '-'. - * - * It returns 0 if conversion is successful and *res is set to the converted - * value, otherwise it returns -EINVAL and *res is set to 0. - */ -int strict_strtoll(const char *cp, unsigned int base, long long *res) -{ - int ret; - if (*cp == '-') { - ret = strict_strtoull(cp + 1, base, (unsigned long long *)res); - if (!ret) - *res = -(*res); - } else { - ret = strict_strtoull(cp, base, (unsigned long long *)res); - } - - return ret; -} -EXPORT_SYMBOL(strict_strtoll); - static noinline_for_stack int skip_atoi(const char **s) { @@ -991,7 +850,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, struct printf_spec spec) { - if (!ptr) { + if (!ptr && *fmt != 'K') { /* * Print (null) with the same width as a pointer so it makes * tabular output look nice. --- linux-2.6.38.orig/lib/kstrtox.c +++ linux-2.6.38/lib/kstrtox.c @@ -0,0 +1,227 @@ +/* + * Convert integer string representation to an integer. + * If an integer doesn't fit into specified type, -E is returned. + * + * Integer starts with optional sign. + * kstrtou*() functions do not accept sign "-". + * + * Radix 0 means autodetection: leading "0x" implies radix 16, + * leading "0" implies radix 8, otherwise radix is 10. + * Autodetection hints work after optional sign, but not before. + * + * If -E is returned, result is not touched. + */ +#include +#include +#include +#include +#include +#include + +static inline char _tolower(const char c) +{ + return c | 0x20; +} + +static int _kstrtoull(const char *s, unsigned int base, unsigned long long *res) +{ + unsigned long long acc; + int ok; + + if (base == 0) { + if (s[0] == '0') { + if (_tolower(s[1]) == 'x' && isxdigit(s[2])) + base = 16; + else + base = 8; + } else + base = 10; + } + if (base == 16 && s[0] == '0' && _tolower(s[1]) == 'x') + s += 2; + + acc = 0; + ok = 0; + while (*s) { + unsigned int val; + + if ('0' <= *s && *s <= '9') + val = *s - '0'; + else if ('a' <= _tolower(*s) && _tolower(*s) <= 'f') + val = _tolower(*s) - 'a' + 10; + else if (*s == '\n') { + if (*(s + 1) == '\0') + break; + else + return -EINVAL; + } else + return -EINVAL; + + if (val >= base) + return -EINVAL; + if (acc > div_u64(ULLONG_MAX - val, base)) + return -ERANGE; + acc = acc * base + val; + ok = 1; + + s++; + } + if (!ok) + return -EINVAL; + *res = acc; + return 0; +} + +int kstrtoull(const char *s, unsigned int base, unsigned long long *res) +{ + if (s[0] == '+') + s++; + return _kstrtoull(s, base, res); +} +EXPORT_SYMBOL(kstrtoull); + +int kstrtoll(const char *s, unsigned int base, long long *res) +{ + unsigned long long tmp; + int rv; + + if (s[0] == '-') { + rv = _kstrtoull(s + 1, base, &tmp); + if (rv < 0) + return rv; + if ((long long)(-tmp) >= 0) + return -ERANGE; + *res = -tmp; + } else { + rv = kstrtoull(s, base, &tmp); + if (rv < 0) + return rv; + if ((long long)tmp < 0) + return -ERANGE; + *res = tmp; + } + return 0; +} +EXPORT_SYMBOL(kstrtoll); + +/* Internal, do not use. */ +int _kstrtoul(const char *s, unsigned int base, unsigned long *res) +{ + unsigned long long tmp; + int rv; + + rv = kstrtoull(s, base, &tmp); + if (rv < 0) + return rv; + if (tmp != (unsigned long long)(unsigned long)tmp) + return -ERANGE; + *res = tmp; + return 0; +} +EXPORT_SYMBOL(_kstrtoul); + +/* Internal, do not use. */ +int _kstrtol(const char *s, unsigned int base, long *res) +{ + long long tmp; + int rv; + + rv = kstrtoll(s, base, &tmp); + if (rv < 0) + return rv; + if (tmp != (long long)(long)tmp) + return -ERANGE; + *res = tmp; + return 0; +} +EXPORT_SYMBOL(_kstrtol); + +int kstrtouint(const char *s, unsigned int base, unsigned int *res) +{ + unsigned long long tmp; + int rv; + + rv = kstrtoull(s, base, &tmp); + if (rv < 0) + return rv; + if (tmp != (unsigned long long)(unsigned int)tmp) + return -ERANGE; + *res = tmp; + return 0; +} +EXPORT_SYMBOL(kstrtouint); + +int kstrtoint(const char *s, unsigned int base, int *res) +{ + long long tmp; + int rv; + + rv = kstrtoll(s, base, &tmp); + if (rv < 0) + return rv; + if (tmp != (long long)(int)tmp) + return -ERANGE; + *res = tmp; + return 0; +} +EXPORT_SYMBOL(kstrtoint); + +int kstrtou16(const char *s, unsigned int base, u16 *res) +{ + unsigned long long tmp; + int rv; + + rv = kstrtoull(s, base, &tmp); + if (rv < 0) + return rv; + if (tmp != (unsigned long long)(u16)tmp) + return -ERANGE; + *res = tmp; + return 0; +} +EXPORT_SYMBOL(kstrtou16); + +int kstrtos16(const char *s, unsigned int base, s16 *res) +{ + long long tmp; + int rv; + + rv = kstrtoll(s, base, &tmp); + if (rv < 0) + return rv; + if (tmp != (long long)(s16)tmp) + return -ERANGE; + *res = tmp; + return 0; +} +EXPORT_SYMBOL(kstrtos16); + +int kstrtou8(const char *s, unsigned int base, u8 *res) +{ + unsigned long long tmp; + int rv; + + rv = kstrtoull(s, base, &tmp); + if (rv < 0) + return rv; + if (tmp != (unsigned long long)(u8)tmp) + return -ERANGE; + *res = tmp; + return 0; +} +EXPORT_SYMBOL(kstrtou8); + +int kstrtos8(const char *s, unsigned int base, s8 *res) +{ + long long tmp; + int rv; + + rv = kstrtoll(s, base, &tmp); + if (rv < 0) + return rv; + if (tmp != (long long)(s8)tmp) + return -ERANGE; + *res = tmp; + return 0; +} +EXPORT_SYMBOL(kstrtos8); --- linux-2.6.38.orig/lib/flex_array.c +++ linux-2.6.38/lib/flex_array.c @@ -232,10 +232,10 @@ /** * flex_array_prealloc - guarantee that array space exists - * @fa: the flex array for which to preallocate parts - * @start: index of first array element for which space is allocated - * @end: index of last (inclusive) element for which space is allocated - * @flags: page allocation flags + * @fa: the flex array for which to preallocate parts + * @start: index of first array element for which space is allocated + * @nr_elements: number of elements for which space is allocated + * @flags: page allocation flags * * This will guarantee that no future calls to flex_array_put() * will allocate memory. It can be used if you are expecting to @@ -245,14 +245,24 @@ * Locking must be provided by the caller. */ int flex_array_prealloc(struct flex_array *fa, unsigned int start, - unsigned int end, gfp_t flags) + unsigned int nr_elements, gfp_t flags) { int start_part; int end_part; int part_nr; + unsigned int end; struct flex_array_part *part; - if (start >= fa->total_nr_elements || end >= fa->total_nr_elements) + if (!start && !nr_elements) + return 0; + if (start >= fa->total_nr_elements) + return -ENOSPC; + if (!nr_elements) + return 0; + + end = start + nr_elements - 1; + + if (end >= fa->total_nr_elements) return -ENOSPC; if (elements_fit_in_base(fa)) return 0; @@ -343,6 +353,8 @@ int part_nr; int ret = 0; + if (!fa->total_nr_elements) + return 0; if (elements_fit_in_base(fa)) return ret; for (part_nr = 0; part_nr < FLEX_ARRAY_NR_BASE_PTRS; part_nr++) { --- linux-2.6.38.orig/lib/md5.c +++ linux-2.6.38/lib/md5.c @@ -0,0 +1,95 @@ +#include +#include +#include + +#define F1(x, y, z) (z ^ (x & (y ^ z))) +#define F2(x, y, z) F1(z, x, y) +#define F3(x, y, z) (x ^ y ^ z) +#define F4(x, y, z) (y ^ (x | ~z)) + +#define MD5STEP(f, w, x, y, z, in, s) \ + (w += f(x, y, z) + in, w = (w<>(32-s)) + x) + +void md5_transform(__u32 *hash, __u32 const *in) +{ + u32 a, b, c, d; + + a = hash[0]; + b = hash[1]; + c = hash[2]; + d = hash[3]; + + MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); + MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); + MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); + MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); + MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); + MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); + MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); + MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); + MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); + MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); + MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); + MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); + MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); + MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); + MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); + MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); + + MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); + MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); + MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); + MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); + MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); + MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); + MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); + MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); + MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); + MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); + MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); + MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); + MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); + MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); + MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); + MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); + + MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); + MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); + MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); + MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); + MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); + MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); + MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); + MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); + MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); + MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); + MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); + MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); + MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); + MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); + MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); + MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); + + MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); + MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); + MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); + MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); + MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); + MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); + MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); + MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); + MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); + MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); + MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); + MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); + MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); + MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); + MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); + MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); + + hash[0] += a; + hash[1] += b; + hash[2] += c; + hash[3] += d; +} +EXPORT_SYMBOL(md5_transform); --- linux-2.6.38.orig/lib/Makefile +++ linux-2.6.38/lib/Makefile @@ -10,7 +10,7 @@ lib-y := ctype.o string.o vsprintf.o cmdline.o \ rbtree.o radix-tree.o dump_stack.o timerqueue.o\ idr.o int_sqrt.o extable.o prio_tree.o \ - sha1.o irq_regs.o reciprocal_div.o argv_split.o \ + sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ proportions.o prio_heap.o ratelimit.o show_mem.o \ is_single_threaded.o plist.o decompress.o @@ -22,6 +22,8 @@ obj-y += bcd.o div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \ bust_spinlocks.o hexdump.o kasprintf.o bitmap.o scatterlist.o \ string_helpers.o gcd.o lcm.o list_sort.o uuid.o flex_array.o +obj-y += kstrtox.o +obj-$(CONFIG_TEST_KSTRTOX) += test-kstrtox.o ifeq ($(CONFIG_DEBUG_KOBJECT),y) CFLAGS_kobject.o += -DDEBUG --- linux-2.6.38.orig/lib/locking-selftest.c +++ linux-2.6.38/lib/locking-selftest.c @@ -144,7 +144,7 @@ #define HARDIRQ_ENTER() \ local_irq_disable(); \ - irq_enter(); \ + __irq_enter(); \ WARN_ON(!in_irq()); #define HARDIRQ_EXIT() \ --- linux-2.6.38.orig/lib/test-kstrtox.c +++ linux-2.6.38/lib/test-kstrtox.c @@ -0,0 +1,739 @@ +#include +#include +#include + +#define for_each_test(i, test) \ + for (i = 0; i < sizeof(test) / sizeof(test[0]); i++) + +struct test_fail { + const char *str; + unsigned int base; +}; + +#define DEFINE_TEST_FAIL(test) \ + const struct test_fail test[] __initdata + +#define DECLARE_TEST_OK(type, test_type) \ + test_type { \ + const char *str; \ + unsigned int base; \ + type expected_res; \ + } + +#define DEFINE_TEST_OK(type, test) \ + const type test[] __initdata + +#define TEST_FAIL(fn, type, fmt, test) \ +{ \ + unsigned int i; \ + \ + for_each_test(i, test) { \ + const struct test_fail *t = &test[i]; \ + type tmp; \ + int rv; \ + \ + tmp = 0; \ + rv = fn(t->str, t->base, &tmp); \ + if (rv >= 0) { \ + WARN(1, "str '%s', base %u, expected -E, got %d/" fmt "\n", \ + t->str, t->base, rv, tmp); \ + continue; \ + } \ + } \ +} + +#define TEST_OK(fn, type, fmt, test) \ +{ \ + unsigned int i; \ + \ + for_each_test(i, test) { \ + const typeof(test[0]) *t = &test[i]; \ + type res; \ + int rv; \ + \ + rv = fn(t->str, t->base, &res); \ + if (rv != 0) { \ + WARN(1, "str '%s', base %u, expected 0/" fmt ", got %d\n", \ + t->str, t->base, t->expected_res, rv); \ + continue; \ + } \ + if (res != t->expected_res) { \ + WARN(1, "str '%s', base %u, expected " fmt ", got " fmt "\n", \ + t->str, t->base, t->expected_res, res); \ + continue; \ + } \ + } \ +} + +static void __init test_kstrtoull_ok(void) +{ + DECLARE_TEST_OK(unsigned long long, struct test_ull); + static DEFINE_TEST_OK(struct test_ull, test_ull_ok) = { + {"0", 10, 0ULL}, + {"1", 10, 1ULL}, + {"127", 10, 127ULL}, + {"128", 10, 128ULL}, + {"129", 10, 129ULL}, + {"255", 10, 255ULL}, + {"256", 10, 256ULL}, + {"257", 10, 257ULL}, + {"32767", 10, 32767ULL}, + {"32768", 10, 32768ULL}, + {"32769", 10, 32769ULL}, + {"65535", 10, 65535ULL}, + {"65536", 10, 65536ULL}, + {"65537", 10, 65537ULL}, + {"2147483647", 10, 2147483647ULL}, + {"2147483648", 10, 2147483648ULL}, + {"2147483649", 10, 2147483649ULL}, + {"4294967295", 10, 4294967295ULL}, + {"4294967296", 10, 4294967296ULL}, + {"4294967297", 10, 4294967297ULL}, + {"9223372036854775807", 10, 9223372036854775807ULL}, + {"9223372036854775808", 10, 9223372036854775808ULL}, + {"9223372036854775809", 10, 9223372036854775809ULL}, + {"18446744073709551614", 10, 18446744073709551614ULL}, + {"18446744073709551615", 10, 18446744073709551615ULL}, + + {"00", 8, 00ULL}, + {"01", 8, 01ULL}, + {"0177", 8, 0177ULL}, + {"0200", 8, 0200ULL}, + {"0201", 8, 0201ULL}, + {"0377", 8, 0377ULL}, + {"0400", 8, 0400ULL}, + {"0401", 8, 0401ULL}, + {"077777", 8, 077777ULL}, + {"0100000", 8, 0100000ULL}, + {"0100001", 8, 0100001ULL}, + {"0177777", 8, 0177777ULL}, + {"0200000", 8, 0200000ULL}, + {"0200001", 8, 0200001ULL}, + {"017777777777", 8, 017777777777ULL}, + {"020000000000", 8, 020000000000ULL}, + {"020000000001", 8, 020000000001ULL}, + {"037777777777", 8, 037777777777ULL}, + {"040000000000", 8, 040000000000ULL}, + {"040000000001", 8, 040000000001ULL}, + {"0777777777777777777777", 8, 0777777777777777777777ULL}, + {"01000000000000000000000", 8, 01000000000000000000000ULL}, + {"01000000000000000000001", 8, 01000000000000000000001ULL}, + {"01777777777777777777776", 8, 01777777777777777777776ULL}, + {"01777777777777777777777", 8, 01777777777777777777777ULL}, + + {"0x0", 16, 0x0ULL}, + {"0x1", 16, 0x1ULL}, + {"0x7f", 16, 0x7fULL}, + {"0x80", 16, 0x80ULL}, + {"0x81", 16, 0x81ULL}, + {"0xff", 16, 0xffULL}, + {"0x100", 16, 0x100ULL}, + {"0x101", 16, 0x101ULL}, + {"0x7fff", 16, 0x7fffULL}, + {"0x8000", 16, 0x8000ULL}, + {"0x8001", 16, 0x8001ULL}, + {"0xffff", 16, 0xffffULL}, + {"0x10000", 16, 0x10000ULL}, + {"0x10001", 16, 0x10001ULL}, + {"0x7fffffff", 16, 0x7fffffffULL}, + {"0x80000000", 16, 0x80000000ULL}, + {"0x80000001", 16, 0x80000001ULL}, + {"0xffffffff", 16, 0xffffffffULL}, + {"0x100000000", 16, 0x100000000ULL}, + {"0x100000001", 16, 0x100000001ULL}, + {"0x7fffffffffffffff", 16, 0x7fffffffffffffffULL}, + {"0x8000000000000000", 16, 0x8000000000000000ULL}, + {"0x8000000000000001", 16, 0x8000000000000001ULL}, + {"0xfffffffffffffffe", 16, 0xfffffffffffffffeULL}, + {"0xffffffffffffffff", 16, 0xffffffffffffffffULL}, + + {"0\n", 0, 0ULL}, + }; + TEST_OK(kstrtoull, unsigned long long, "%llu", test_ull_ok); +} + +static void __init test_kstrtoull_fail(void) +{ + static DEFINE_TEST_FAIL(test_ull_fail) = { + {"", 0}, + {"", 8}, + {"", 10}, + {"", 16}, + {"\n", 0}, + {"\n", 8}, + {"\n", 10}, + {"\n", 16}, + {"\n0", 0}, + {"\n0", 8}, + {"\n0", 10}, + {"\n0", 16}, + {"+", 0}, + {"+", 8}, + {"+", 10}, + {"+", 16}, + {"-", 0}, + {"-", 8}, + {"-", 10}, + {"-", 16}, + {"0x", 0}, + {"0x", 16}, + {"0X", 0}, + {"0X", 16}, + {"0 ", 0}, + {"1+", 0}, + {"1-", 0}, + {" 2", 0}, + /* base autodetection */ + {"0x0z", 0}, + {"0z", 0}, + {"a", 0}, + /* digit >= base */ + {"2", 2}, + {"8", 8}, + {"a", 10}, + {"A", 10}, + {"g", 16}, + {"G", 16}, + /* overflow */ + {"10000000000000000000000000000000000000000000000000000000000000000", 2}, + {"2000000000000000000000", 8}, + {"18446744073709551616", 10}, + {"10000000000000000", 16}, + /* negative */ + {"-0", 0}, + {"-0", 8}, + {"-0", 10}, + {"-0", 16}, + {"-1", 0}, + {"-1", 8}, + {"-1", 10}, + {"-1", 16}, + /* sign is first character if any */ + {"-+1", 0}, + {"-+1", 8}, + {"-+1", 10}, + {"-+1", 16}, + /* nothing after \n */ + {"0\n0", 0}, + {"0\n0", 8}, + {"0\n0", 10}, + {"0\n0", 16}, + {"0\n+", 0}, + {"0\n+", 8}, + {"0\n+", 10}, + {"0\n+", 16}, + {"0\n-", 0}, + {"0\n-", 8}, + {"0\n-", 10}, + {"0\n-", 16}, + {"0\n ", 0}, + {"0\n ", 8}, + {"0\n ", 10}, + {"0\n ", 16}, + }; + TEST_FAIL(kstrtoull, unsigned long long, "%llu", test_ull_fail); +} + +static void __init test_kstrtoll_ok(void) +{ + DECLARE_TEST_OK(long long, struct test_ll); + static DEFINE_TEST_OK(struct test_ll, test_ll_ok) = { + {"0", 10, 0LL}, + {"1", 10, 1LL}, + {"127", 10, 127LL}, + {"128", 10, 128LL}, + {"129", 10, 129LL}, + {"255", 10, 255LL}, + {"256", 10, 256LL}, + {"257", 10, 257LL}, + {"32767", 10, 32767LL}, + {"32768", 10, 32768LL}, + {"32769", 10, 32769LL}, + {"65535", 10, 65535LL}, + {"65536", 10, 65536LL}, + {"65537", 10, 65537LL}, + {"2147483647", 10, 2147483647LL}, + {"2147483648", 10, 2147483648LL}, + {"2147483649", 10, 2147483649LL}, + {"4294967295", 10, 4294967295LL}, + {"4294967296", 10, 4294967296LL}, + {"4294967297", 10, 4294967297LL}, + {"9223372036854775807", 10, 9223372036854775807LL}, + + {"-1", 10, -1LL}, + {"-2", 10, -2LL}, + {"-9223372036854775808", 10, LLONG_MIN}, + }; + TEST_OK(kstrtoll, long long, "%lld", test_ll_ok); +} + +static void __init test_kstrtoll_fail(void) +{ + static DEFINE_TEST_FAIL(test_ll_fail) = { + {"9223372036854775808", 10}, + {"9223372036854775809", 10}, + {"18446744073709551614", 10}, + {"18446744073709551615", 10}, + {"-9223372036854775809", 10}, + {"-18446744073709551614", 10}, + {"-18446744073709551615", 10}, + /* negative zero isn't an integer in Linux */ + {"-0", 0}, + {"-0", 8}, + {"-0", 10}, + {"-0", 16}, + /* sign is first character if any */ + {"-+1", 0}, + {"-+1", 8}, + {"-+1", 10}, + {"-+1", 16}, + }; + TEST_FAIL(kstrtoll, long long, "%lld", test_ll_fail); +} + +static void __init test_kstrtou64_ok(void) +{ + DECLARE_TEST_OK(u64, struct test_u64); + static DEFINE_TEST_OK(struct test_u64, test_u64_ok) = { + {"0", 10, 0}, + {"1", 10, 1}, + {"126", 10, 126}, + {"127", 10, 127}, + {"128", 10, 128}, + {"129", 10, 129}, + {"254", 10, 254}, + {"255", 10, 255}, + {"256", 10, 256}, + {"257", 10, 257}, + {"32766", 10, 32766}, + {"32767", 10, 32767}, + {"32768", 10, 32768}, + {"32769", 10, 32769}, + {"65534", 10, 65534}, + {"65535", 10, 65535}, + {"65536", 10, 65536}, + {"65537", 10, 65537}, + {"2147483646", 10, 2147483646}, + {"2147483647", 10, 2147483647}, + {"2147483648", 10, 2147483648}, + {"2147483649", 10, 2147483649}, + {"4294967294", 10, 4294967294}, + {"4294967295", 10, 4294967295}, + {"4294967296", 10, 4294967296}, + {"4294967297", 10, 4294967297}, + {"9223372036854775806", 10, 9223372036854775806ULL}, + {"9223372036854775807", 10, 9223372036854775807ULL}, + {"9223372036854775808", 10, 9223372036854775808ULL}, + {"9223372036854775809", 10, 9223372036854775809ULL}, + {"18446744073709551614", 10, 18446744073709551614ULL}, + {"18446744073709551615", 10, 18446744073709551615ULL}, + }; + TEST_OK(kstrtou64, u64, "%llu", test_u64_ok); +} + +static void __init test_kstrtou64_fail(void) +{ + static DEFINE_TEST_FAIL(test_u64_fail) = { + {"-2", 10}, + {"-1", 10}, + {"18446744073709551616", 10}, + {"18446744073709551617", 10}, + }; + TEST_FAIL(kstrtou64, u64, "%llu", test_u64_fail); +} + +static void __init test_kstrtos64_ok(void) +{ + DECLARE_TEST_OK(s64, struct test_s64); + static DEFINE_TEST_OK(struct test_s64, test_s64_ok) = { + {"-128", 10, -128}, + {"-127", 10, -127}, + {"-1", 10, -1}, + {"0", 10, 0}, + {"1", 10, 1}, + {"126", 10, 126}, + {"127", 10, 127}, + {"128", 10, 128}, + {"129", 10, 129}, + {"254", 10, 254}, + {"255", 10, 255}, + {"256", 10, 256}, + {"257", 10, 257}, + {"32766", 10, 32766}, + {"32767", 10, 32767}, + {"32768", 10, 32768}, + {"32769", 10, 32769}, + {"65534", 10, 65534}, + {"65535", 10, 65535}, + {"65536", 10, 65536}, + {"65537", 10, 65537}, + {"2147483646", 10, 2147483646}, + {"2147483647", 10, 2147483647}, + {"2147483648", 10, 2147483648}, + {"2147483649", 10, 2147483649}, + {"4294967294", 10, 4294967294}, + {"4294967295", 10, 4294967295}, + {"4294967296", 10, 4294967296}, + {"4294967297", 10, 4294967297}, + {"9223372036854775806", 10, 9223372036854775806LL}, + {"9223372036854775807", 10, 9223372036854775807LL}, + }; + TEST_OK(kstrtos64, s64, "%lld", test_s64_ok); +} + +static void __init test_kstrtos64_fail(void) +{ + static DEFINE_TEST_FAIL(test_s64_fail) = { + {"9223372036854775808", 10}, + {"9223372036854775809", 10}, + {"18446744073709551614", 10}, + {"18446744073709551615", 10}, + {"18446744073709551616", 10}, + {"18446744073709551617", 10}, + }; + TEST_FAIL(kstrtos64, s64, "%lld", test_s64_fail); +} + +static void __init test_kstrtou32_ok(void) +{ + DECLARE_TEST_OK(u32, struct test_u32); + static DEFINE_TEST_OK(struct test_u32, test_u32_ok) = { + {"0", 10, 0}, + {"1", 10, 1}, + {"126", 10, 126}, + {"127", 10, 127}, + {"128", 10, 128}, + {"129", 10, 129}, + {"254", 10, 254}, + {"255", 10, 255}, + {"256", 10, 256}, + {"257", 10, 257}, + {"32766", 10, 32766}, + {"32767", 10, 32767}, + {"32768", 10, 32768}, + {"32769", 10, 32769}, + {"65534", 10, 65534}, + {"65535", 10, 65535}, + {"65536", 10, 65536}, + {"65537", 10, 65537}, + {"2147483646", 10, 2147483646}, + {"2147483647", 10, 2147483647}, + {"2147483648", 10, 2147483648}, + {"2147483649", 10, 2147483649}, + {"4294967294", 10, 4294967294}, + {"4294967295", 10, 4294967295}, + }; + TEST_OK(kstrtou32, u32, "%u", test_u32_ok); +} + +static void __init test_kstrtou32_fail(void) +{ + static DEFINE_TEST_FAIL(test_u32_fail) = { + {"-2", 10}, + {"-1", 10}, + {"4294967296", 10}, + {"4294967297", 10}, + {"9223372036854775806", 10}, + {"9223372036854775807", 10}, + {"9223372036854775808", 10}, + {"9223372036854775809", 10}, + {"18446744073709551614", 10}, + {"18446744073709551615", 10}, + {"18446744073709551616", 10}, + {"18446744073709551617", 10}, + }; + TEST_FAIL(kstrtou32, u32, "%u", test_u32_fail); +} + +static void __init test_kstrtos32_ok(void) +{ + DECLARE_TEST_OK(s32, struct test_s32); + static DEFINE_TEST_OK(struct test_s32, test_s32_ok) = { + {"-128", 10, -128}, + {"-127", 10, -127}, + {"-1", 10, -1}, + {"0", 10, 0}, + {"1", 10, 1}, + {"126", 10, 126}, + {"127", 10, 127}, + {"128", 10, 128}, + {"129", 10, 129}, + {"254", 10, 254}, + {"255", 10, 255}, + {"256", 10, 256}, + {"257", 10, 257}, + {"32766", 10, 32766}, + {"32767", 10, 32767}, + {"32768", 10, 32768}, + {"32769", 10, 32769}, + {"65534", 10, 65534}, + {"65535", 10, 65535}, + {"65536", 10, 65536}, + {"65537", 10, 65537}, + {"2147483646", 10, 2147483646}, + {"2147483647", 10, 2147483647}, + }; + TEST_OK(kstrtos32, s32, "%d", test_s32_ok); +} + +static void __init test_kstrtos32_fail(void) +{ + static DEFINE_TEST_FAIL(test_s32_fail) = { + {"2147483648", 10}, + {"2147483649", 10}, + {"4294967294", 10}, + {"4294967295", 10}, + {"4294967296", 10}, + {"4294967297", 10}, + {"9223372036854775806", 10}, + {"9223372036854775807", 10}, + {"9223372036854775808", 10}, + {"9223372036854775809", 10}, + {"18446744073709551614", 10}, + {"18446744073709551615", 10}, + {"18446744073709551616", 10}, + {"18446744073709551617", 10}, + }; + TEST_FAIL(kstrtos32, s32, "%d", test_s32_fail); +} + +static void __init test_kstrtou16_ok(void) +{ + DECLARE_TEST_OK(u16, struct test_u16); + static DEFINE_TEST_OK(struct test_u16, test_u16_ok) = { + {"0", 10, 0}, + {"1", 10, 1}, + {"126", 10, 126}, + {"127", 10, 127}, + {"128", 10, 128}, + {"129", 10, 129}, + {"254", 10, 254}, + {"255", 10, 255}, + {"256", 10, 256}, + {"257", 10, 257}, + {"32766", 10, 32766}, + {"32767", 10, 32767}, + {"32768", 10, 32768}, + {"32769", 10, 32769}, + {"65534", 10, 65534}, + {"65535", 10, 65535}, + }; + TEST_OK(kstrtou16, u16, "%hu", test_u16_ok); +} + +static void __init test_kstrtou16_fail(void) +{ + static DEFINE_TEST_FAIL(test_u16_fail) = { + {"-2", 10}, + {"-1", 10}, + {"65536", 10}, + {"65537", 10}, + {"2147483646", 10}, + {"2147483647", 10}, + {"2147483648", 10}, + {"2147483649", 10}, + {"4294967294", 10}, + {"4294967295", 10}, + {"4294967296", 10}, + {"4294967297", 10}, + {"9223372036854775806", 10}, + {"9223372036854775807", 10}, + {"9223372036854775808", 10}, + {"9223372036854775809", 10}, + {"18446744073709551614", 10}, + {"18446744073709551615", 10}, + {"18446744073709551616", 10}, + {"18446744073709551617", 10}, + }; + TEST_FAIL(kstrtou16, u16, "%hu", test_u16_fail); +} + +static void __init test_kstrtos16_ok(void) +{ + DECLARE_TEST_OK(s16, struct test_s16); + static DEFINE_TEST_OK(struct test_s16, test_s16_ok) = { + {"-130", 10, -130}, + {"-129", 10, -129}, + {"-128", 10, -128}, + {"-127", 10, -127}, + {"-1", 10, -1}, + {"0", 10, 0}, + {"1", 10, 1}, + {"126", 10, 126}, + {"127", 10, 127}, + {"128", 10, 128}, + {"129", 10, 129}, + {"254", 10, 254}, + {"255", 10, 255}, + {"256", 10, 256}, + {"257", 10, 257}, + {"32766", 10, 32766}, + {"32767", 10, 32767}, + }; + TEST_OK(kstrtos16, s16, "%hd", test_s16_ok); +} + +static void __init test_kstrtos16_fail(void) +{ + static DEFINE_TEST_FAIL(test_s16_fail) = { + {"32768", 10}, + {"32769", 10}, + {"65534", 10}, + {"65535", 10}, + {"65536", 10}, + {"65537", 10}, + {"2147483646", 10}, + {"2147483647", 10}, + {"2147483648", 10}, + {"2147483649", 10}, + {"4294967294", 10}, + {"4294967295", 10}, + {"4294967296", 10}, + {"4294967297", 10}, + {"9223372036854775806", 10}, + {"9223372036854775807", 10}, + {"9223372036854775808", 10}, + {"9223372036854775809", 10}, + {"18446744073709551614", 10}, + {"18446744073709551615", 10}, + {"18446744073709551616", 10}, + {"18446744073709551617", 10}, + }; + TEST_FAIL(kstrtos16, s16, "%hd", test_s16_fail); +} + +static void __init test_kstrtou8_ok(void) +{ + DECLARE_TEST_OK(u8, struct test_u8); + static DEFINE_TEST_OK(struct test_u8, test_u8_ok) = { + {"0", 10, 0}, + {"1", 10, 1}, + {"126", 10, 126}, + {"127", 10, 127}, + {"128", 10, 128}, + {"129", 10, 129}, + {"254", 10, 254}, + {"255", 10, 255}, + }; + TEST_OK(kstrtou8, u8, "%hhu", test_u8_ok); +} + +static void __init test_kstrtou8_fail(void) +{ + static DEFINE_TEST_FAIL(test_u8_fail) = { + {"-2", 10}, + {"-1", 10}, + {"256", 10}, + {"257", 10}, + {"32766", 10}, + {"32767", 10}, + {"32768", 10}, + {"32769", 10}, + {"65534", 10}, + {"65535", 10}, + {"65536", 10}, + {"65537", 10}, + {"2147483646", 10}, + {"2147483647", 10}, + {"2147483648", 10}, + {"2147483649", 10}, + {"4294967294", 10}, + {"4294967295", 10}, + {"4294967296", 10}, + {"4294967297", 10}, + {"9223372036854775806", 10}, + {"9223372036854775807", 10}, + {"9223372036854775808", 10}, + {"9223372036854775809", 10}, + {"18446744073709551614", 10}, + {"18446744073709551615", 10}, + {"18446744073709551616", 10}, + {"18446744073709551617", 10}, + }; + TEST_FAIL(kstrtou8, u8, "%hhu", test_u8_fail); +} + +static void __init test_kstrtos8_ok(void) +{ + DECLARE_TEST_OK(s8, struct test_s8); + static DEFINE_TEST_OK(struct test_s8, test_s8_ok) = { + {"-128", 10, -128}, + {"-127", 10, -127}, + {"-1", 10, -1}, + {"0", 10, 0}, + {"1", 10, 1}, + {"126", 10, 126}, + {"127", 10, 127}, + }; + TEST_OK(kstrtos8, s8, "%hhd", test_s8_ok); +} + +static void __init test_kstrtos8_fail(void) +{ + static DEFINE_TEST_FAIL(test_s8_fail) = { + {"-130", 10}, + {"-129", 10}, + {"128", 10}, + {"129", 10}, + {"254", 10}, + {"255", 10}, + {"256", 10}, + {"257", 10}, + {"32766", 10}, + {"32767", 10}, + {"32768", 10}, + {"32769", 10}, + {"65534", 10}, + {"65535", 10}, + {"65536", 10}, + {"65537", 10}, + {"2147483646", 10}, + {"2147483647", 10}, + {"2147483648", 10}, + {"2147483649", 10}, + {"4294967294", 10}, + {"4294967295", 10}, + {"4294967296", 10}, + {"4294967297", 10}, + {"9223372036854775806", 10}, + {"9223372036854775807", 10}, + {"9223372036854775808", 10}, + {"9223372036854775809", 10}, + {"18446744073709551614", 10}, + {"18446744073709551615", 10}, + {"18446744073709551616", 10}, + {"18446744073709551617", 10}, + }; + TEST_FAIL(kstrtos8, s8, "%hhd", test_s8_fail); +} + +static int __init test_kstrtox_init(void) +{ + test_kstrtoull_ok(); + test_kstrtoull_fail(); + test_kstrtoll_ok(); + test_kstrtoll_fail(); + + test_kstrtou64_ok(); + test_kstrtou64_fail(); + test_kstrtos64_ok(); + test_kstrtos64_fail(); + + test_kstrtou32_ok(); + test_kstrtou32_fail(); + test_kstrtos32_ok(); + test_kstrtos32_fail(); + + test_kstrtou16_ok(); + test_kstrtou16_fail(); + test_kstrtos16_ok(); + test_kstrtos16_fail(); + + test_kstrtou8_ok(); + test_kstrtou8_fail(); + test_kstrtos8_ok(); + test_kstrtos8_fail(); + return -EINVAL; +} +module_init(test_kstrtox_init); +MODULE_LICENSE("Dual BSD/GPL"); --- linux-2.6.38.orig/lib/Kconfig.debug +++ linux-2.6.38/lib/Kconfig.debug @@ -1236,3 +1236,6 @@ source "lib/Kconfig.kgdb" source "lib/Kconfig.kmemcheck" + +config TEST_KSTRTOX + tristate "Test kstrto*() family of functions at runtime" --- linux-2.6.38.orig/lib/xz/xz_dec_lzma2.c +++ linux-2.6.38/lib/xz/xz_dec_lzma2.c @@ -969,6 +969,9 @@ */ tmp = b->in[b->in_pos++]; + if (tmp == 0x00) + return XZ_STREAM_END; + if (tmp >= 0xE0 || tmp == 0x01) { s->lzma2.need_props = true; s->lzma2.need_dict_reset = false; @@ -1001,9 +1004,6 @@ lzma_reset(s); } } else { - if (tmp == 0x00) - return XZ_STREAM_END; - if (tmp > 0x02) return XZ_DATA_ERROR; --- linux-2.6.38.orig/debian.master/control.stub.in +++ linux-2.6.38/debian.master/control.stub.in @@ -0,0 +1,91 @@ +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, dpkg (>= 1.16.0~ubuntu4) +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-natty.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 ppc64 armel armhf +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 +Multi-Arch: same +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 ppc64 armel armhf +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.38.orig/debian.master/control.stub +++ linux-2.6.38/debian.master/control.stub @@ -0,0 +1,586 @@ +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, dpkg (>= 1.16.0~ubuntu4) +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-natty.git + +Package: linux-source-2.6.38 +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.38 with Ubuntu patches + This package provides the source code for the Linux kernel version + 2.6.38. + . + 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.38 + This package provides the various documents in the 2.6.38 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.38 + This package provides the architecture independent parts for kernel + version locked tools in the 2.6.38 kernel source. + +Package: linux-headers-2.6.38-12 +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.38 + This package provides kernel header files for version 2.6.38, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc ppc64 armel armhf +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 +Multi-Arch: same +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.38-12 +Architecture: i386 amd64 powerpc ppc64 armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel tools for version 2.6.38-12 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.38-12 on + DESC. + + +Package: linux-image-2.6.38-12-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-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86/x86_64 + This package provides kernel header files for version 2.6.38 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86/x86_64 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86 + This package contains the Linux kernel image for version 2.6.38 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.38-12-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86 + This package provides kernel header files for version 2.6.38 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on TI OMAP3-based systems + This package contains the Linux kernel image for version 2.6.38 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.38-12-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on TI OMAP3-based systems + This package provides kernel header files for version 2.6.38 on + TI OMAP3-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-omap-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on TI OMAP3-based systems + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 32-bit PowerPC + This package provides kernel header files for version 2.6.38 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.38 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.38-12-powerpc64-smp +Architecture: powerpc ppc64 +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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc64-smp +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.38 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc64-smp-dbgsym +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.38 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.38 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.38-12-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-efi-amd64 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86_64 + This package provides kernel header files for version 2.6.38 on + x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-server-dbgsym +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86_64 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on Versatile-based systems + This package contains the Linux kernel image for version 2.6.38 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.38-12-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on Versatile-based systems + This package provides kernel header files for version 2.6.38 on + Versatile-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-versatile-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on Versatile-based systems + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86/x86_64 + This package provides kernel header files for version 2.6.38 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86/x86_64 + This package provides a kernel debug image for version 2.6.38 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.38.orig/debian.master/copyright +++ linux-2.6.38/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.38.orig/debian.master/NOTES +++ linux-2.6.38/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.38.orig/debian.master/changelog +++ linux-2.6.38/debian.master/changelog @@ -0,0 +1,6952 @@ +linux (2.6.38-12.51) natty-proposed; urgency=low + + [Herton R. Krzesinski] + + * Release Tracking Bug + - LP: #860832 + + [ Alex Bligh ] + + * SAUCE: net/netfilter/nf_conntrack_netlink.c: fix Oops on container + destroy + - LP: #843892 + + [ Jesse Sung ] + + * SAUCE: Unregister input device only if it is registered + - LP: #839238 + + [ Leann Ogasawara ] + + * SAUCE: x86: reboot: Make Dell Latitude E6220 use reboot=pci + - LP: #838402 + * SAUCE: x86: reboot: Make Dell Latitude E6520 use reboot=pci + - LP: #833705 + + [ Ming Lei ] + + * SAUCE: fireware: add NO_MSI quirks for o2micro controller + - LP: #801719 + + [ Stefan Bader ] + + * [Config] Include all filesystem modules for virtual + - LP: #761809 + + [ Tim Gardner ] + + * [Config] kernel preparation cannot be parallelized + * [Config] Linearize module/abi checks + * [Config] Linearize and simplify tree preparation rules + * [Config] Build kernel image in parallel with modules + * [Config] Set concurrency for kmake invocations + * [Config] Improve install-arch-headers speed + * [Config] Fix binary-perarch dependencies + * [Config] Removed stamp-flavours target + * [Config] Serialize binary indep targets + * [Config] Use build stamp directly + * [Config] Restore prepare-% target + * [Config] Fix binary-% build target + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: disable PCH ports if needed when disabling a CRTC" + - LP: #814325, #838181 + * drm/i915: restore only the mode of this driver on lastclose (v2) + - LP: #848687 + * cifs: fix possible memory corruption in CIFSFindNext, CVE-2011-3191 + - LP: #834135 + - CVE-2011-3191 + * befs: Validate length of long symbolic links, CVE-2011-2928 + - LP: #834124 + - CVE-2011-2928 + * gro: Only reset frag0 when skb can be pulled, CVE-2011-2723 + - LP: #844371 + - CVE-2011-2723 + * inet_diag: fix inet_diag_bc_audit(), CVE-2011-2213 + - LP: #838421 + - CVE-2011-2213 + * si4713-i2c: avoid potential buffer overflow on si4713, CVE-2011-2700 + - LP: #844370 + - CVE-2011-2700 + * Bluetooth: Prevent buffer overflow in l2cap config request, + CVE-2011-2497 + - LP: #838423 + - CVE-2011-2497 + * crypto: Move md5_transform to lib/md5.c, CVE-2011-3188 + - LP: #834129 + - CVE-2011-3188 + * net: Compute protocol sequence numbers and fragment IDs using MD5, + CVE-2011-3188 + - LP: #834129 + - CVE-2011-3188 + * x86, intel, power: Initialize MSR_IA32_ENERGY_PERF_BIAS + - LP: #760131 + * x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message + - LP: #760131 + * rt2x00: Serialize TX operations on a queue. + - LP: #855239 + * ext4: Fix max file size and logical block counting of extent format + file, CVE-2011-2695 + - LP: #819574 + - CVE-2011-2695 + + -- Herton Ronaldo Krzesinski Tue, 27 Sep 2011 16:19:57 -0300 + +linux (2.6.38-11.50) natty-proposed; urgency=low + + [Herton R. Krzesinski] + + * Release Tracking Bug + - LP: #848246 + + [ Upstream Kernel Changes ] + + * Revert "eCryptfs: Handle failed metadata read in lookup" + * Revert "KVM: fix kvmclock regression due to missing clock update" + * Revert "ath9k: use split rx buffers to get rid of order-1 skb + allocations" + + -- Herton Ronaldo Krzesinski Mon, 12 Sep 2011 17:23:38 -0300 + +linux (2.6.38-11.49) natty-proposed; urgency=low + + [Herton R. Krzesinski] + + * Release Tracking Bug + - LP: #836903 + + [ Adam Jackson ] + + * SAUCE: drm/i915/pch: Fix integer math bugs in panel fitting + - LP: #753994 + + [ Keng-Yu Lin ] + + * SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo Zhaoyang E47 + - LP: #632884, #803005 + + [ Stefan Bader ] + + * [Config] Force perf to use libiberty for demangling + - LP: #783660 + + [ Tim Gardner ] + + * [Config] Add enic/fnic to udebs + - LP: #801610 + + [ Upstream Kernel Changes ] + + * eeepc-wmi: add keys found on EeePC 1215T + - LP: #812644 + * eCryptfs: Handle failed metadata read in lookup + - LP: #509180 + * pagemap: close races with suid execve, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * report errors in /proc/*/*map* sanely, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * close race in /proc/*/environ, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * auxv: require the target to be tracable (or yourself), CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * deal with races in /proc/*/{syscall, stack, personality}, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * vmscan: fix a livelock in kswapd + - LP: #813797 + * mmc: Add PCI fixup quirks for Ricoh 1180:e823 reader + - LP: #773524 + * mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency + - LP: #773524 + * rose: Add length checks to CALL_REQUEST parsing, CVE-2011-1493 + - LP: #816550 + - CVE-2011-1493 + * pata_marvell: Add support for 88SE91A0, 88SE91A4 + - LP: #777325 + * GFS2: make sure fallocate bytes is a multiple of blksize, CVE-2011-2689 + - LP: #819572 + - CVE-2011-2689 + * Bluetooth: l2cap and rfcomm: fix 1 byte infoleak to userspace. + - LP: #819569 + - CVE-2011-2492 + * drm/nv50-nvc0: work around an evo channel hang that some people see + - LP: #583760 + * KVM: fix kvmclock regression due to missing clock update + - LP: #795717 + * Add mount option to check uid of device being mounted = expect uid, + CVE-2011-1833 + - LP: #732628 + - CVE-2011-1833 + * proc: fix oops on invalid /proc//maps access, CVE-2011-1020 + - LP: #813026 + - CVE-2011-1020 + * ipv6: make fragment identifications less predictable, CVE-2011-2699 + - LP: #827685 + - CVE-2011-2699 + * ath9k: use split rx buffers to get rid of order-1 skb allocations + - LP: #728835 + * perf: Fix software event overflow, CVE-2011-2918 + - LP: #834121 + - CVE-2011-2918 + + -- Herton Ronaldo Krzesinski Mon, 29 Aug 2011 16:24:25 -0300 + +linux (2.6.38-11.48) natty-proposed; urgency=low + + [Herton R. Krzesinski] + + * Release Tracking Bug + - LP: #818175 + + [ Upstream Kernel Changes ] + + * Revert "HID: magicmouse: ignore 'ivalid report id' while switching + modes" + - LP: #814250 + + -- Herton Ronaldo Krzesinski Fri, 29 Jul 2011 14:50:19 -0300 + +linux (2.6.38-11.47) natty-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #811180 + + [ Keng-Yu Lin ] + + * SAUCE: Revert: "dell-laptop: Toggle the unsupported hardware + killswitch" + - LP: #775281 + + [ Ming Lei ] + + * SAUCE: fix yama_ptracer_del lockdep warning + - LP: #791019 + + [ Stefan Bader ] + + * SAUCE: Re-enable RODATA for i386 virtual + - LP: #809838 + + [ Tim Gardner ] + + * [Config] Add grub-efi as a recommended bootloader for server and + generic + - LP: #800910 + * SAUCE: rtl8192se: Force a build for a 2.6/3.0 kernel + - LP: #805494 + + [ Upstream Kernel Changes ] + + * Revert "bridge: Forward reserved group addresses if !STP" + - LP: #793702 + * Fix up ABI directory + * bonding: Incorrect TX queue offset, CVE-2011-1581 + - LP: #792312 + - CVE-2011-1581 + * fs/partitions/efi.c: corrupted GUID partition tables can cause kernel + oops + - LP: #795418 + - CVE-2011-1577 + * usbnet/cdc_ncm: add missing .reset_resume hook + - LP: #793892 + * ath5k: Disable fast channel switching by default + - LP: #767192 + * mm: vmscan: correctly check if reclaimer should schedule during + shrink_slab + - LP: #755066 + * mm: vmscan: correct use of pgdat_balanced in sleeping_prematurely + - LP: #755066 + * ALSA: hda - Use LPIB for ATI/AMD chipsets as default + - LP: #741825 + * ALSA: hda - Enable snoop bit for AMD controllers + - LP: #741825 + * ALSA: hda - Enable sync_write workaround for AMD generically + - LP: #741825 + * cpuidle: menu: fixed wrapping timers at 4.294 seconds + - LP: #774947 + * drm/i915: Fix gen6 (SNB) missed BLT ring interrupts. + - LP: #761065 + * USB: ehci: remove structure packing from ehci_def + - LP: #791552 + * drm/i915: disable PCH ports if needed when disabling a CRTC + - LP: #791752 + * kmemleak: Do not return a pointer to an object that kmemleak did not + get + - LP: #793702 + * kmemleak: Initialise kmemleak after debug_objects_mem_init() + - LP: #793702 + * Fix _OSC UUID in pcc-cpufreq + - LP: #793702 + * CPU hotplug, re-create sysfs directory and symlinks + - LP: #793702 + * Fix memory leak in cpufreq_stat + - LP: #793702 + * net: recvmmsg: Strip MSG_WAITFORONE when calling recvmsg + - LP: #793702 + * ftrace: Only update the function code on write to filter files + - LP: #793702 + * qla2xxx: Fix hang during driver unload when vport is active. + - LP: #793702 + * qla2xxx: Fix virtual port failing to login after chip reset. + - LP: #793702 + * qla2xxx: Fix vport delete hang when logins are outstanding. + - LP: #793702 + * powerpc/kdump64: Don't reference freed memory as pacas + - LP: #793702 + * powerpc/kexec: Fix memory corruption from unallocated slaves + - LP: #793702 + * x86, cpufeature: Fix cpuid leaf 7 feature detection + - LP: #793702 + * ath9k_hw: do noise floor calibration only on required chains + - LP: #793702 + * ath9k_hw: fix power for the HT40 duplicate frames + - LP: #793702 + * ath9k_hw: fix dual band assumption for XB113 + - LP: #793702 + * ath9k_hw: Fix STA connection issues with AR9380 (XB113). + - LP: #793702 + * powerpc: Set nr_cpu_ids early and use it to free PACAs + - LP: #793702 + * powerpc/oprofile: Handle events that raise an exception without + overflowing + - LP: #793702 + * iwlagn: fix iwl_is_any_associated + - LP: #793702 + * block: rescan partitions on invalidated devices on -ENOMEDIA too + - LP: #793702 + * block: move bd_set_size() above rescan_partitions() in __blkdev_get() + - LP: #793702 + * paride: Convert to bdops->check_events() + - LP: #793702 + * gdrom,viocd: Convert to bdops->check_events() + - LP: #793702 + * ide: Convert to bdops->check_events() + - LP: #793702 + * block: don't block events on excl write for non-optical devices + - LP: #793702 + * block: Fix discard topology stacking and reporting + - LP: #793702 + * block: add proper state guards to __elv_next_request + - LP: #793702 + * block: always allocate genhd->ev if check_events is implemented + - LP: #793702 + * mtd: mtdconcat: fix NAND OOB write + - LP: #793702 + * mtd: return badblockbits back + - LP: #793702 + * x86, 64-bit: Fix copy_[to/from]_user() checks for the userspace address + limit + - LP: #793702 + * ext4: fix possible use-after-free in ext4_remove_li_request() + - LP: #793702 + * iwlwifi: fix bugs in change_interface + - LP: #793702 + * nl80211: Fix set_key regression with some drivers + - LP: #793702 + * mac80211: fix a few RCU issues + - LP: #793702 + * wire up fanotify syscalls + - LP: #793702 + * wire up clock_adjtime syscall + - LP: #793702 + * drm: Send pending vblank events before disabling vblank. + - LP: #793702 + * pata_cm64x: fix boot crash on parisc + - LP: #793702 + * ext3: Fix fs corruption when make_indexed_dir() fails + - LP: #793702 + * jbd: Fix forever sleeping process in do_get_write_access() + - LP: #793702 + * jbd: fix fsync() tid wraparound bug + - LP: #793702 + * ext4: release page cache in ext4_mb_load_buddy error path + - LP: #793702 + * bonding: 802.3ad - fix agg_device_up + - LP: #793702 + * bridge: fix forwarding of IPv6 + - LP: #793702 + * ieee802154: Remove hacked CFLAGS in net/ieee802154/Makefile + - LP: #793702 + * irda: fix locking unbalance in irda_sendmsg + - LP: #793702 + * inetpeer: reduce stack usage + - LP: #793702 + * ipv6: Remove hoplimit initialization to -1 + - LP: #793702 + * ipv6: udp: fix the wrong headroom check + - LP: #793702 + * macvlan: fix panic if lowerdev in a bond + - LP: #793702 + * net: Do not wrap sysctl igmp_max_memberships in IP_MULTICAST + - LP: #793702 + * net: use hlist_del_rcu() in dev_change_name() + - LP: #793702 + * SCTP: fix race between sctp_bind_addr_free() and + sctp_bind_addr_conflict() + - LP: #793702 + * tcp: len check is unnecessarily devastating, change to WARN_ON + - LP: #793702 + * vlan: fix GVRP at dismantle time MIME-Version: 1.0 + - LP: #793702 + * igmp: call ip_mc_clear_src() only when we have no users of ip_mc_list + - LP: #793702 + * net: add skb_dst_force() in sock_queue_err_skb() + - LP: #793702 + * sch_sfq: avoid giving spurious NET_XMIT_CN signals + - LP: #793702 + * sctp: fix memory leak of the ASCONF queue when free asoc + - LP: #793702 + * sch_sfq: fix peek() implementation + - LP: #793702 + * bonding: prevent deadlock on slave store with alb mode (v3) + - LP: #793702 + * mpt2sas: move even handling of MPT2SAS_TURN_ON_FAULT_LED into process + context + - LP: #793702 + * bnx2i: Fixed packet error created when the sq_size is set to 16 + - LP: #793702 + * bnx2i: Updated the connection shutdown/cleanup timeout + - LP: #793702 + * Fix Ultrastor asm snippet + - LP: #793702 + * target: Fix multi task->task_sg[] chaining logic bug + - LP: #793702 + * target: Fix interrupt context bug with stats_lock and + core_tmr_alloc_req + - LP: #793702 + * target: Fix bug with task_sg chained transport_free_dev_tasks release + - LP: #793702 + * target: Fix task->task_execute_queue=1 clear bug + LUN_RESET OOPs + - LP: #793702 + * x86, ioapic: Fix potential resume deadlock + - LP: #793702 + * x86, amd: Do not enable ARAT feature on AMD processors below family + 0x12 + - LP: #793702 + * x86, amd: Use _safe() msr access for GartTlbWlk disable code + - LP: #793702 + * x86, cpufeature: Update CPU feature RDRND to RDRAND + - LP: #793702 + * oprofile, x86: Enable preemption during pci device setup in IBS init + - LP: #793702 + * rcu: Fix unpaired rcu_irq_enter() from locking selftests + - LP: #793702 + * When mandatory encryption on share, fail mount + - LP: #793702 + * staging: usbip: fix wrong endian conversion + - LP: #793702 + * staging: r8712u: Fix driver to support ad-hoc mode + - LP: #793702 + * Fix for buffer overflow in ldm_frag_add not sufficient + - LP: #793702 + * seqlock: Don't smp_rmb in seqlock reader spin loop + - LP: #793702 + * md: Fix race when creating a new md device. + - LP: #793702 + * md/bitmap: fix saving of events_cleared and other state. + - LP: #793702 + * ALSA: HDA: Use one dmic only for Dell Studio 1558 + - LP: #731706, #793702 + * ALSA: HDA: Add quirk for Lenovo U350 + - LP: #751681, #793702 + * ALSA: hda - Fix input-src parse in patch_analog.c + - LP: #793702 + * ASoC: Ensure output PGA is enabled for line outputs in wm_hubs + - LP: #793702 + * ASoC: Add some missing volume update bit sets for wm_hubs devices + - LP: #793702 + * HID: magicmouse: ignore 'ivalid report id' while switching modes + - LP: #793702 + * mm/page_alloc.c: prevent unending loop in __alloc_pages_slowpath() + - LP: #793702 + * loop: limit 'max_part' module param to DISK_MAX_PARTS + - LP: #793702 + * loop: handle on-demand devices correctly + - LP: #793702 + * i2c/writing-clients: Fix foo_driver.id_table + - LP: #793702 + * USB: CP210x Add 4 Device IDs for AC-Services Devices + - LP: #793702 + * USB: moto_modem: Add USB identifier for the Motorola VE240. + - LP: #793702 + * USB: serial: ftdi_sio: adding support for TavIR STK500 + - LP: #793702 + * USB: gadget: g_multi: fixed vendor and product ID in inf files + - LP: #793702 + * USB: gamin_gps: Fix for data transfer problems in native mode + - LP: #793702 + * Bind only modem AT command endpoint to option module. + - LP: #793702 + * USB: cdc_acm: Fix oops when Droids MuIn LCD is connected + - LP: #793702 + * xhci: Fix bug in control transfer cancellation. + - LP: #793702 + * usb/gadget: at91sam9g20 fix end point max packet size + - LP: #793702 + * usb: gadget: rndis: don't test against req->length + - LP: #793702 + * xhci: Fix memory leak in ring cache deallocation. + - LP: #793702 + * xhci: Fix memory leak bug when dropping endpoints + - LP: #793702 + * USB: option: add support for Huawei E353 device + - LP: #793702 + * OHCI: fix regression caused by nVidia shutdown workaround + - LP: #793702 + * USB: remove remaining usages of hcd->state from usbcore and fix + regression + - LP: #793702 + * cx88: protect per-device driver list with device lock + - LP: #793702 + * cx88: fix locking of sub-driver operations + - LP: #793702 + * cx88: hold device lock during sub-driver initialization + - LP: #793702 + * sh: clkfwk: fixup clk_rate_table_build parameter in div6 clock + - LP: #793702 + * sh: fixup fpu.o compile order + - LP: #793702 + * p54usb: add zoom 4410 usbid + - LP: #793702 + * eCryptfs: Allow 2 scatterlist entries for encrypted filenames + - LP: #793702 + * UBIFS: fix a rare memory leak in ro to rw remounting path + - LP: #793702 + * kbuild: Fix GNU make v3.80 compatibility + - LP: #793702 + * i8k: Avoid lahf in 64-bit code + - LP: #793702 + * idle governor: Avoid lock acquisition to read pm_qos before entering + idle + - LP: #793702 + * dm table: reject devices without request fns + - LP: #793702 + * ARM: 6941/1: cache: ensure MVA is cacheline aligned in + flush_kern_dcache_area + - LP: #793702 + * tmpfs: fix race between truncate and writepage + - LP: #793702 + * atm: expose ATM device index in sysfs + - LP: #793702 + * brd: limit 'max_part' module param to DISK_MAX_PARTS + - LP: #793702 + * brd: handle on-demand devices correctly + - LP: #793702 + * drm/i915: fix user irq miss in BSD ring on g4x + - LP: #793702 + * drm/radeon/evergreen/btc/fusion: setup hdp to invalidate and flush when + asked + - LP: #793702 + * drm/radeon/kms: add wait idle ioctl for eg->cayman + - LP: #793702 + * SUNRPC: Deal with the lack of a SYN_SENT sk->sk_state_change + callback... + - LP: #793702 + * NFSv4: Handle expired stateids when the lease is still valid + - LP: #793702 + * NFSv4.1: Fix the handling of NFS4ERR_SEQ_MISORDERED errors + - LP: #793702 + * PCI: Add quirk for setting valid class for TI816X Endpoint + - LP: #793702 + * xen mmu: fix a race window causing leave_mm BUG() + - LP: #793702 + * ext4: Use schedule_timeout_interruptible() for waiting in lazyinit + thread + - LP: #793702 + * AppArmor: fix oops in apparmor_setprocattr + - LP: #793702 + * Linux 2.6.38.8 + - LP: #793702 + * xhci: Add defines for hardcoded slot states + - LP: #802541 + * xhci: Do not issue device reset when device is not setup + - LP: #802541 + * taskstats: don't allow duplicate entries in listener mode, + CVE-2011-2484 + - LP: #806390 + - CVE-2011-2484 + * ext4: init timer earlier to avoid a kernel panic in __save_error_info, + CVE-2011-2493 + - LP: #806929 + - CVE-2011-2493 + * acer-wmi: does not poll device status when WMI event is available + - LP: #771758 + * acer-wmi: Only update rfkill status for associated hotkey events + - LP: #771758 + * (drop after 2.6.38) acer-wmi: Add support for Aspire 1830 wlan hotkey + - LP: #771758 + * mm: vmscan: correct check for kswapd sleeping in sleeping_prematurely + - LP: #808509 + * mm: vmscan: kswapd should not free an excessive number of pages when + balancing small zones + - LP: #808509 + * mm: vmscan: do not apply pressure to slab if we are not applying + pressure to zone + - LP: #808509 + * mm: vmscan: evaluate the watermarks against the correct classzone + - LP: #808509 + * mm: vmscan: only read new_classzone_idx from pgdat when reclaiming + successfully + - LP: #808509 + + -- Steve Conklin Fri, 15 Jul 2011 14:57:14 -0500 + +linux (2.6.38-10.46) natty-proposed; urgency=low + + [ Steve Conklin ] + + * Release Tracking Bug + - LP: #802464 + + [ Upstream Kernel Changes ] + + * Revert "put stricter guards on queue dead checks" + * Revert "fix oops in scsi_run_queue()" + + -- Steve Conklin Tue, 28 Jun 2011 12:36:29 +0100 + +linux (2.6.38-10.45) natty-proposed; urgency=low + + [ Upstream Kernel Changes ] + + * Revert "af_unix: Only allow recv on connected seqpacket sockets." + + -- Steve Conklin Mon, 27 Jun 2011 12:41:27 +0100 + +linux (2.6.38-10.44) natty-proposed; urgency=low + + [ Steve Conklin ] + + * Release Tracking Bug + - LP: #792013 + + [ Robert Nelson ] + + * SAUCE: omap3: beagle: detect new xM revision B + - LP: #770679 + * SAUCE: omap3: beagle: detect new xM revision C + - LP: #770679 + * SAUCE: omap3: beagle: if rev unknown, assume xM revision C + - LP: #770679 + + [ Stefan Bader ] + + * Include nls_iso8859-1 for virtual images + - LP: #732046 + + [ Thomas Schlichter ] + + * SAUCE: vesafb: mtrr module parameter is uint, not bool + - LP: #778043 + + [ Tim Gardner ] + + * Revert "SAUCE: acpi battery -- move first lookup asynchronous" + - LP: #775809 + * updateconfigs after update to v2.6.38.6 + + [ Upstream Kernel Changes ] + + * Revert "ALSA: hda - Fix pin-config of Gigabyte mobo" + - LP: #780546 + * Revert "[SCSI] Retrieve the Caching mode page" + - LP: #788691 + * Revert "USB: xhci - fix unsafe macro definitions" + * Revert "USB: xhci - fix math in xhci_get_endpoint_interval()" + * Revert "USB: xhci - also free streams when resetting devices" + * ath9k_hw: fix stopping rx DMA during resets + - LP: #775809 + * netxen: limit skb frags for non tso packet + - LP: #775809 + * ath: add missing regdomain pair 0x5c mapping + - LP: #775809 + * block, blk-sysfs: Fix an err return path in blk_register_queue() + - LP: #775809 + * p54: Initialize extra_len in p54_tx_80211 + - LP: #775809 + * qlcnic: limit skb frags for non tso packet + - LP: #775809 + * nfsd4: fix struct file leak on delegation + - LP: #775809 + * nfsd4: Fix filp leak + - LP: #775809 + * virtio: Decrement avail idx on buffer detach + - LP: #775809 + * x86, gart: Set DISTLBWALKPRB bit always + - LP: #775809 + * x86, gart: Make sure GART does not map physmem above 1TB + - LP: #775809 + * intel-iommu: Fix use after release during device attach + - LP: #775809 + * intel-iommu: Unlink domain from iommu + - LP: #775809 + * intel-iommu: Fix get_domain_for_dev() error path + - LP: #775809 + * drm/radeon/kms: pll tweaks for r7xx + - LP: #775809 + * drm/nouveau: fix notifier memory corruption bug + - LP: #775809 + * drm/radeon/kms: fix bad shift in atom iio table parser + - LP: #775809 + * drm/i915/tv: Remember the detected TV type + - LP: #775809 + * tty/n_gsm: fix bug in CRC calculation for gsm1 mode + - LP: #775809 + * serial/imx: read cts state only after acking cts change irq + - LP: #775809 + * ASoC: Fix output PGA enabling in wm_hubs CODECs + - LP: #775809 + * ASoC: codecs: JZ4740: Fix OOPS + - LP: #775809 + * ALSA: hda - Add a fix-up for Acer dmic with ALC271x codec + - LP: #775809 + * ahci: don't enable port irq before handler is registered + - LP: #775809 + * libata: Implement ATA_FLAG_NO_DIPM and apply it to mcp65 + - LP: #775809 + * kconfig: Avoid buffer underrun in choice input + - LP: #775809 + * UBIFS: fix master node recovery + - LP: #775809 + * ideapad: read brightness setting on brightness key notify + - LP: #775809 + * ACPI battery: fribble sysfs files from a resume notifier + - LP: #775809 + * UBIFS: fix false space checking failure + - LP: #775809 + * kvm-390: Let kernel exit SIE instruction on work + - LP: #775809 + * pfault: fix token handling + - LP: #775809 + * ACPI / PM: Avoid infinite recurrence while registering power resources + - LP: #775809 + * slub: fix panic with DISCONTIGMEM + - LP: #775809 + * set memory ranges in N_NORMAL_MEMORY when onlined + - LP: #775809 + * FLEXCOP-PCI: fix __xlate_proc_name-warning for flexcop-pci + - LP: #775809 + * virtio: console: Enable call to hvc_remove() on console port remove + - LP: #775809 + * oom: use pte pages in OOM score + - LP: #775809 + * mm: check if PTE is already allocated during page fault + - LP: #775809 + * mm: thp: fix /dev/zero MAP_PRIVATE and vm_flags cleanups + - LP: #775809 + * m68k/mm: Set all online nodes in N_NORMAL_MEMORY + - LP: #775809 + * vfs: avoid large kmalloc()s for the fdtable + - LP: #775809 + * nfs: don't lose MS_SYNCHRONOUS on remount of noac mount + - LP: #775809 + * NFSv4.1: Ensure state manager thread dies on last umount + - LP: #775809 + * um: mdd support for 64 bit atomic operations + - LP: #775809 + * drm: select FRAMEBUFFER_CONSOLE_PRIMARY if we have FRAMEBUFFER_CONSOLE + - LP: #775809 + * agp: fix arbitrary kernel memory writes + - LP: #775809 + * agp: fix OOM and buffer overflow + - LP: #775809 + * iwlwifi: do not set tx power when channel is changing + - LP: #775809 + * iwl3945: do not deprecate software scan + - LP: #775809 + * iwl3945: disable hw scan by default + - LP: #775809 + * iwlegacy: fix tx_power initialization + - LP: #775809 + * Input: xen-kbdfront - fix mouse getting stuck after save/restore + - LP: #775809 + * Linux 2.6.38.5 + - LP: #775809 + * pmcraid: reject negative request size + - LP: #780546 + * mpt2sas: prevent heap overflows and unchecked reads + - LP: #780546 + * scsi_dh: fix reference counting in scsi_dh_activate error path + - LP: #780546 + * put stricter guards on queue dead checks + - LP: #780546 + * ALSA: HDA: Fix automute for Gateway NV79 + - LP: #761861, #780546 + * ALSA: hda - Fix Realtek's chained fixup checks + - LP: #780546 + * i2c-parport: Fix adapter list handling + - LP: #780546 + * workqueue: fix deadlock in worker_maybe_bind_and_lock() + - LP: #780546 + * iwlwifi: fix skb usage after free + - LP: #780546 + * iwlagn: fix "Received BA when not expected" + - LP: #780546 + * atl1c: Fix work event interrupt/task races + - LP: #780546 + * UBIFS: do not free write-buffers when in R/O mode + - LP: #780546 + * UBIFS: seek journal heads to the latest bud in replay + - LP: #780546 + * mmc: sdhci-pci: Fix error case in sdhci_pci_probe_slot() + - LP: #780546 + * mmc: sdhci: Check mrq->cmd in sdhci_tasklet_finish + - LP: #780546 + * mmc: sdhci: Check mrq != NULL in sdhci_tasklet_finish + - LP: #780546 + * drm/radeon: fix regression on atom cards with hardcoded EDID record. + - LP: #780546 + * USB: fix regression in usbip by setting has_tt flag + - LP: #780546 + * firewire: Fix for broken configrom updates in quick succession + - LP: #780546 + * usbnet: add support for some Huawei modems with cdc-ether ports + - LP: #780546 + * imon: add conditional locking in change_protocol + - LP: #780546 + * flex_array: flex_array_prealloc takes a number of elements, not an end + - LP: #780546 + * flex_arrays: allow zero length flex arrays + - LP: #780546 + * ath9k: fix the return value of ath_stoprecv + - LP: #780546 + * mac80211: fix SMPS debugfs locking + - LP: #780546 + * af_unix: Only allow recv on connected seqpacket sockets. + - LP: #780546 + * ARM: 6891/1: prevent heap corruption in OABI semtimedop + - LP: #780546 + * XZ decompressor: Fix decoding of empty LZMA2 streams + - LP: #780546 + * Open with O_CREAT flag set fails to open existing files on non writable + directories + - LP: #780546 + * can: Add missing socket check in can/bcm release. + - LP: #780546 + * cx88: Fix HVR4000 IR keymap + - LP: #780546 + * KVM: SVM: check for progress after IRET interception + - LP: #780546 + * drm/radeon/kms: add some new pci ids + - LP: #780546 + * can: add missing socket check in can/raw release + - LP: #780546 + * fix oops in scsi_run_queue() + - LP: #780546 + * VM: skip the stack guard page lookup in get_user_pages only for mlock + - LP: #780546 + * Linux 2.6.38.6 + - LP: #780546 + * ips: use interruptible waits in ips-monitor + - LP: #765082 + * cifs: change bleft in decode_unicode_ssetup back to signed type + - LP: #788691 + * cifs: check for bytes_remaining going to zero in CIFS_SessSetup + - LP: #788691 + * cifs: sanitize length checking in coalesce_t2 (try #3) + - LP: #788691 + * cifs: refactor mid finding loop in cifs_demultiplex_thread + - LP: #788691 + * cifs: handle errors from coalesce_t2 + - LP: #788691 + * Validate size of EFI GUID partition entries. + - LP: #788691 + * drm/radeon/kms: add pci id to acer travelmate quirk for 5730 + - LP: #788691 + * x86, hw_breakpoints: Fix racy access to ptrace breakpoints + - LP: #788691 + * ptrace: Prepare to fix racy accesses on task breakpoints + - LP: #788691 + * hw_breakpoints, powerpc: Fix CONFIG_HAVE_HW_BREAKPOINT off-case in + ptrace_set_debugreg() + - LP: #788691 + * iwlwifi: add {ack, plpc}_check module parameters + - LP: #788691 + * drm/radeon/kms: fix gart setup on fusion parts (v2) backport + - LP: #788691 + * vm: fix vm_pgoff wrap in upward expansion + - LP: #788691 + * Don't lock guardpage if the stack is growing up + - LP: #788691 + * drm/i915/dp: Be paranoid in case we disable a DP before it is attached + - LP: #788691 + * drm/i915/lvds: Only act on lid notify when the device is on + - LP: #788691 + * drm/i915: Release object along create user fb error path + - LP: #788691 + * dccp: handle invalid feature options length + - LP: #788691 + * CIFS: Fix memory over bound bug in cifs_parse_mount_options + - LP: #788691 + * drivers/rtc/rtc-s3c.c: fixup wake support for rtc + - LP: #788691 + * mm: use alloc_bootmem_node_nopanic() on really needed path + - LP: #788691 + * tmpfs: fix race between umount and swapoff + - LP: #788691 + * ARM: zImage: make sure the stack is 64-bit aligned + - LP: #788691 + * PM: Fix warning in pm_restrict_gfp_mask() during SNAPSHOT_S2RAM ioctl + - LP: #788691 + * PM / Hibernate: Make snapshot_release() restore GFP mask + - LP: #788691 + * PM / Hibernate: Fix ioctl SNAPSHOT_S2RAM + - LP: #788691 + * net: ip_expire() must revalidate route + - LP: #788691 + * can: fix SJA1000 dlc for RTR packets + - LP: #788691 + * ipheth: Properly distinguish length and alignment in URBs and skbs + - LP: #788691 + * vmxnet3: Consistently disable irqs when taking adapter->cmd_lock + - LP: #788691 + * ehea: fix wrongly reported speed and port + - LP: #788691 + * NET: slip, fix ldisc->open retval + - LP: #788691 + * PCH_GbE : Fixed the issue of collision detection + - LP: #788691 + * PCH_GbE : Fixed the issue of checksum judgment + - LP: #788691 + * pch_gbe: support ML7223 IOH + - LP: #788691 + * net: dev_close() should check IFF_UP + - LP: #788691 + * slcan: fix ldisc->open retval + - LP: #788691 + * ASoC: UDA134x: Remove POWER_OFF_ON_STANDBY define. + - LP: #788691 + * ASoC: SSM2602: Fix 'Mic Boost2' control + - LP: #788691 + * ne-h8300: Fix regression caused during net_device_ops conversion + - LP: #788691 + * hydra: Fix regression caused during net_device_ops conversion + - LP: #788691 + * ehea: Fix memory hotplug oops + - LP: #788691 + * libertas: fix cmdpendingq locking + - LP: #788691 + * zorro8390: Fix regression caused during net_device_ops conversion + - LP: #788691 + * tmpfs: fix race between umount and writepage + - LP: #788691 + * tmpfs: fix race between swapoff and writepage + - LP: #788691 + * tmpfs: fix off-by-one in max_blocks checks + - LP: #788691 + * tmpfs: fix spurious ENOSPC when racing with unswap + - LP: #788691 + * libata: fix oops when LPM is used with PMP + - LP: #788691 + * drm/radeon/kms: fix extended lvds info parsing + - LP: #788691 + * cifs: add fallback in is_path_accessible for old servers + - LP: #788691 + * rapidio: fix default routing initialization + - LP: #788691 + * x86, AMD: Fix ARAT feature setting again + - LP: #788691 + * clocksource: Install completely before selecting + - LP: #788691 + * tick: Clear broadcast active bit when switching to oneshot + - LP: #788691 + * x86, apic: Fix spurious error interrupts triggering on all non-boot APs + - LP: #788691 + * Fix cx88 remote control input + - LP: #788691 + * v4l: Release module if subdev registration fails + - LP: #788691 + * x86: Fix UV BAU for non-consecutive nasids + - LP: #788691 + * x86, mce, AMD: Fix leaving freed data in a list + - LP: #788691 + * megaraid_sas: Sanity check user supplied length before passing it to + dma_alloc_coherent() + - LP: #788691 + * cdrom: always check_disk_change() on open + - LP: #788691 + * vmxnet3: Fix inconsistent LRO state after initialization + - LP: #788691 + * cifs: clean up various nits in unicode routines (try #2) + - LP: #788691 + * cifs: fix cifsConvertToUCS() for the mapchars case + - LP: #788691 + * iwlegacy: fix IBSS mode crashes + - LP: #788691 + * tmpfs: fix highmem swapoff crash regression + - LP: #788691 + * Linux 2.6.38.7 + - LP: #788691 + * rtlwifi: rtl8192ce: Fix LED initialization + - LP: #785975 + + -- Steve Conklin Thu, 02 Jun 2011 14:12:59 -0500 + +linux (2.6.38-9.43) natty-proposed; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #772096 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Revert "x86, hibernate: Initialize mmu_cr4_features during boot" + - LP: #764758 + + [ Leann Ogasawara ] + + * [Config] updateconfigs for 2.6.38.4 + + [ Paolo Pisati ] + + * [Config] s/USB_MUSB_TUSB6010/USB_MUSB_OMAP2PLUS/ on omap3 to get musb + - LP: #759913 + + [ Serge E. Hallyn ] + + * SAUCE: kvm: fix push of wrong eip when doing softint + - LP: #747090 + + [ Tim Gardner ] + + * [Config] Add cachefiles.ko to virtual flavour + - LP: #770430 + + [ Upstream Kernel Changes ] + + * Revert "net/sunrpc: Use static const char arrays" + - LP: #761134 + * Revert "x86: Cleanup highmap after brk is concluded" + - LP: #761134 + * ALSA: hda - Fix SPDIF out regression on ALC889 + - LP: #761134 + * ALSA: Fix yet another race in disconnection + - LP: #761134 + * ALSA: vmalloc buffers should use normal mmap + - LP: #761134 + * perf: Better fit max unprivileged mlock pages for tools needs + - LP: #761134 + * myri10ge: fix rmmod crash + - LP: #761134 + * cciss: fix lost command issue + - LP: #761134 + * ath9k: Fix kernel panic in AR2427 + - LP: #761134 + * sound/oss/opl3: validate voice and channel indexes + - LP: #761134 + * mac80211: initialize sta->last_rx in sta_info_alloc + - LP: #761134 + * ses: show devices for enclosures with no page 7 + - LP: #761134 + * ses: Avoid kernel panic when lun 0 is not mapped + - LP: #761134 + * PCI/ACPI: Report ASPM support to BIOS if not disabled from command line + - LP: #761134 + * eCryptfs: Unlock page in write_begin error path + - LP: #761134 + * eCryptfs: ecryptfs_keyring_auth_tok_for_sig() bug fix + - LP: #761134 + * crypto: aesni-intel - fixed problem with packets that are not multiple + of 64bytes + - LP: #761134 + * staging: usbip: bugfixes related to kthread conversion + - LP: #761134 + * staging: usbip: bugfix add number of packets for isochronous frames + - LP: #761134 + * staging: usbip: bugfix for isochronous packets and optimization + - LP: #761134 + * staging: hv: use sync_bitops when interacting with the hypervisor + - LP: #761134 + * staging: hv: Fix GARP not sent after Quick Migration + - LP: #761134 + * xfs: register the inode cache shrinker before quotachecks + - LP: #761134 + * amd64_edac: Fix potential memleak + - LP: #761134 + * watchdog: s3c2410_wdt.c: Convert release_resource to + release_region/release_mem_region + - LP: #761134 + * watchdog: Convert release_resource to release_region/release_mem_region + - LP: #761134 + * irda: validate peer name and attribute lengths + - LP: #761134 + * irda: prevent heap corruption on invalid nickname + - LP: #761134 + * powerpc: Fix accounting of softirq time when idle + - LP: #761134 + * nilfs2: fix data loss in mmap page write for hole blocks + - LP: #761134 + * ASoC: Explicitly say registerless widgets have no register + - LP: #761134 + * ASoC: imx: set watermarks for mx2-dma + - LP: #761134 + * ASoC: imx: fix burstsize for DMA + - LP: #761134 + * ASoC: Fix CODEC device name for Corgi + - LP: #761134 + * ALSA: ens1371: fix Creative Ectiva support + - LP: #761134 + * ALSA: hda - HDMI: Fix MCP7x audio infoframe checksums + - LP: #761134 + * ALSA: HDA: Fix single internal mic on ALC275 (Sony Vaio VPCSB1C5E) + - LP: #752792, #761134 + * net: fix ethtool->set_flags not intended -EINVAL return value + - LP: #761134 + * drm/radeon/kms: add some new ontario pci ids + - LP: #761134 + * drm/radeon/kms: add some sanity checks to obj info record parsingi (v2) + - LP: #761134 + * inotify: fix double free/corruption of stuct user + - LP: #761134 + * HID: hid-magicmouse: Increase evdev buffer size + - LP: #761134 + * perf: Fix task_struct reference leak + - LP: #761134 + * perf: Rebase max unprivileged mlock threshold on top of page size + - LP: #761134 + * ROSE: prevent heap corruption with bad facilities + - LP: #761134 + * Btrfs: Fix uninitialized root flags for subvolumes + - LP: #761134 + * x86, mtrr, pat: Fix one cpu getting out of sync during resume + - LP: #761134 + * Input: synaptics - fix crash in synaptics_module_init() + - LP: #761134 + * ath9k: fix a chip wakeup related crash in ath9k_start + - LP: #761134 + * mac80211: fix a crash in minstrel_ht in HT mode with no supported MCS + rates + - LP: #761134 + * staging: IIO: IMU: ADIS16400: Fix up SPI messages cs_change behavior + - LP: #761134 + * staging: IIO: IMU: ADIS16400: Add delay after self test + - LP: #761134 + * staging: IIO: IMU: ADIS16400: Fix addresses of GYRO and ACCEL + calibration offset + - LP: #761134 + * staging: IIO: IMU: ADIS16400: Make sure only enabled scan_elements are + pushed into the ring + - LP: #761134 + * UBIFS: do not read flash unnecessarily + - LP: #761134 + * UBIFS: fix oops on error path in read_pnode + - LP: #761134 + * UBIFS: fix debugging failure in dbg_check_space_info + - LP: #761134 + * quota: Don't write quota info in dquot_commit() + - LP: #761134 + * mm: avoid wrapping vm_pgoff in mremap() + - LP: #761134 + * iwlwifi: accept EEPROM version 0x423 for iwl6000 + - LP: #761134 + * p54usb: IDs for two new devices + - LP: #761134 + * rt2x00: Fix radio off hang issue for PCIE interface + - LP: #662288, #761134 + * rt2x00: fix cancelling uninitialized work + - LP: #761134 + * wl12xx: fix potential buffer overflow in testmode nvs push + - LP: #761134 + * media/radio/wl1273: fix build errors + - LP: #761134 + * b43: allocate receive buffers big enough for max frame len + offset + - LP: #761134 + * Bluetooth: sco: fix information leak to userspace + - LP: #761134 + * bridge: netfilter: fix information leak + - LP: #761134 + * Bluetooth: bnep: fix buffer overflow + - LP: #761134 + * Bluetooth: add support for Apple MacBook Pro 8,2 + - LP: #761134 + * Treat writes as new when holes span across page boundaries + - LP: #761134 + * char/tpm: Fix unitialized usage of data buffer + - LP: #761134 + * netfilter: ip_tables: fix infoleak to userspace + - LP: #761134 + * netfilter: xtables: fix reentrancy + - LP: #761134 + * netfilter: arp_tables: fix infoleak to userspace + - LP: #761134 + * netfilter: ipt_CLUSTERIP: fix buffer overflow + - LP: #761134 + * ipv6: netfilter: ip6_tables: fix infoleak to userspace + - LP: #761134 + * scsi_transport_iscsi: make priv_sess file writeable only by root + - LP: #761134 + * mfd: ab8500: world-writable debugfs register-* files + - LP: #761134 + * mfd: ab3500: world-writable debugfs register-* files + - LP: #761134 + * mfd: ab3100: world-writable debugfs *_priv files + - LP: #761134 + * drivers/rtc/rtc-ds1511.c: world-writable sysfs nvram file + - LP: #761134 + * drivers/misc/ep93xx_pwm.c: world-writable sysfs files + - LP: #761134 + * drivers/leds/leds-lp5523.c: world-writable engine* sysfs files + - LP: #761134 + * drivers/leds/leds-lp5521.c: world-writable sysfs engine* files + - LP: #761134 + * econet: 4 byte infoleak to the network + - LP: #761134 + * netfilter: h323: bug in parsing of ASN1 SEQOF field + - LP: #761134 + * sound/oss: remove offset from load_patch callbacks + - LP: #761134 + * drivers/media/video/tlg2300/pd-video.c: Remove second mutex_unlock in + pd_vidioc_s_fmt + - LP: #761134 + * acer-wmi: does not set persistence state by rfkill_init_sw_state + - LP: #761134 + * Squashfs: Use vmalloc rather than kmalloc for zlib workspace + - LP: #761134 + * Squashfs: handle corruption of directory structure + - LP: #761134 + * atm/solos-pci: Don't include frame pseudo-header on transmit hex-dump + - LP: #761134 + * atm/solos-pci: Don't flap VCs when carrier state changes + - LP: #761134 + * ext4: fix a double free in ext4_register_li_request + - LP: #761134 + * ext4: fix credits computing for indirect mapped files + - LP: #761134 + * nfsd: fix auth_domain reference leak on nlm operations + - LP: #761134 + * nfsd4: fix oops on lock failure + - LP: #761134 + * Linux 2.6.38.3 + - LP: #761134 + * vm: fix vm_pgoff wrap in stack expansion + - LP: #769042 + * drm/radeon/kms: pll tweaks for rv6xx + - LP: #769042 + * drm/radeon/kms: fix suspend on rv530 asics + - LP: #769042 + * cifs: always do is_path_accessible check in cifs_mount + - LP: #769042 + * cifs: check for private_data before trying to put it + - LP: #769042 + * cifs: set ra_pages in backing_dev_info + - LP: #769042 + * cifs: wrap received signature check in srv_mutex + - LP: #769042 + * video: sn9c102: world-wirtable sysfs files + - LP: #769042 + * UBIFS: restrict world-writable debugfs files + - LP: #769042 + * ALSA: hda - Fix pin-config of Gigabyte mobo + - LP: #769042 + * NET: cdc-phonet, handle empty phonet header + - LP: #769042 + * x86: Fix a bogus unwind annotation in lib/semaphore_32.S + - LP: #769042 + * tioca: Fix assignment from incompatible pointer warnings + - LP: #769042 + * mca.c: Fix cast from integer to pointer warning + - LP: #769042 + * vm: fix mlock() on stack guard page + - LP: #769042 + * UBIFS: fix assertion warnings + - LP: #769042 + * perf: Fix task context scheduling + - LP: #769042 + * bridge: Fix possibly wrong MLD queries' ethernet source address + - LP: #769042 + * fib: add rtnl locking in ip_fib_net_exit + - LP: #769042 + * gianfar: Fall back to software tcp/udp checksum on older controllers + - LP: #769042 + * l2tp: fix possible oops on l2tp_eth module unload + - LP: #769042 + * net ipv6: Fix duplicate /proc/sys/net/ipv6/neigh directory entries. + - LP: #769042 + * net_sched: fix ip_tos2prio + - LP: #769042 + * pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev + - LP: #769042 + * sctp: Pass __GFP_NOWARN to hash table allocation attempts. + - LP: #769042 + * tcp: avoid cwnd moderation in undo + - LP: #769042 + * xfrm: Refcount destination entry on xfrm_lookup + - LP: #769042 + * vlan: should take into account needed_headroom + - LP: #769042 + * bridge: Reset IPCB when entering IP stack on NF_FORWARD + - LP: #769042 + * sparc: Fix .size directive for do_int_load + - LP: #769042 + * sparc32: Fix might-be-used-uninitialized warning in do_sparc_fault(). + - LP: #769042 + * sparc32: Pass task_struct to schedule_tail() in ret_from_fork + - LP: #769042 + * sparc64: Fix build errors with gcc-4.6.0 + - LP: #769042 + * futex: Set FLAGS_HAS_TIMEOUT during futex_wait restart setup + - LP: #769042 + * kstrto*: converting strings to integers done (hopefully) right + - LP: #769042 + * mm/thp: use conventional format for boolean attributes + - LP: #769042 + * ramfs: fix memleak on no-mmu arch + - LP: #769042 + * oom-kill: remove boost_dying_task_prio() + - LP: #769042 + * MAINTAINERS: update STABLE BRANCH info + - LP: #769042 + * UBIFS: fix oops when R/O file-system is fsync'ed + - LP: #769042 + * x86, AMD: Set ARAT feature on AMD processors + - LP: #769042 + * x86, amd: Disable GartTlbWlkErr when BIOS forgets it + - LP: #769042 + * vfs: Fix absolute RCU path walk failures due to uninitialized seq + number + - LP: #769042 + * ARM: 6864/1: hw_breakpoint: clear DBGVCR out of reset + - LP: #769042 + * i2c-algo-bit: Call pre/post_xfer for bit_test + - LP: #769042 + * RTC: add missing "return 0" in new alarm func for rtc-bfin.c + - LP: #769042 + * sched: Fix erroneous all_pinned logic + - LP: #769042 + * vmscan: all_unreclaimable() use zone->all_unreclaimable as a name + - LP: #769042 + * brk: COMPAT_BRK: fix detection of randomized brk + - LP: #769042 + * usb: musb: temporarily make it bool + - LP: #769042 + * USB: ftdi_sio: Added IDs for CTI USB Serial Devices + - LP: #769042 + * USB: ftdi_sio: add PID for OCT DK201 docking station + - LP: #769042 + * USB: ftdi_sio: add ids for Hameg HO720 and HO730 + - LP: #769042 + * USB: option: Added support for Samsung GT-B3730/GT-B3710 LTE USB modem. + - LP: #769042 + * next_pidmap: fix overflow condition + - LP: #769042 + * proc: do proper range check on readdir offset + - LP: #769042 + * powerpc: Fix oops if scan_dispatch_log is called too early + - LP: #769042 + * powerpc/perf_event: Skip updating kernel counters if register value + shrinks + - LP: #769042 + * usb: Fix qcserial memory leak on rmmod + - LP: #769042 + * usb: qcserial avoid pointing to freed memory + - LP: #769042 + * usb: qcserial add missing errorpath kfrees + - LP: #769042 + * USB: EHCI: unlink unused QHs when the controller is stopped + - LP: #769042 + * USB: fix formatting of SuperSpeed endpoints in /proc/bus/usb/devices + - LP: #769042 + * USB: xhci - fix unsafe macro definitions + - LP: #769042 + * USB: xhci - fix math in xhci_get_endpoint_interval() + - LP: #769042 + * USB: xhci - also free streams when resetting devices + - LP: #769042 + * USB: Fix unplug of device with active streams + - LP: #769042 + * radeon: Fix KMS CP writeback on big endian machines. + - LP: #769042 + * Bluetooth: Fix HCI_RESET command synchronization + - LP: #700292, #769042 + * perf tool: Fix gcc 4.6.0 issues + - LP: #769042 + * bridge: reset IPCB in br_parse_ip_options + - LP: #769042 + * ip: ip_options_compile() resilient to NULL skb route + - LP: #769042 + * Linux 2.6.38.4 + - LP: #769042 + * (pre stable) ath9k_hw: partially revert "fix dma descriptor rx error + bit parsing" + - LP: #735171 + * fs/partitions/ldm.c: fix oops caused by corrupted partition table, + CVE-2011-1017 + - LP: #771382 + - CVE-2011-1017 + * (pre-stable) drm/i915: Sanitize the output registers after resume + - LP: #745304 + + -- Brad Figg Wed, 27 Apr 2011 11:02:03 -0700 + +linux (2.6.38-8.42) natty; urgency=low + + [ David Henningsson ] + + * SAUCE: (drop after 2.6.38) ALSA: HDA: Fix dock mic for Lenovo + X220-tablet + - LP: #751033 + + [ Gustavo F. Padovan ] + + * SAUCE: Revert "Bluetooth: Add new PID for Atheros 3011" + - LP: #720949 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 2.6.39) v4l: make sure drivers supply a zeroed + struct v4l2_subdev + - LP: #745213 + + [ John Johansen ] + + * AppArmor: Fix masking of capabilities in complain mode + - LP: #748656 + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_RTS_PSTOR for armel, powerpc + + [ Manoj Iyer ] + + * SAUCE: (drop after 2.6.38) add support for Lenovo tablet ID (0xE6) + - LP: #746652 + + [ Steve Langasek ] + + * [Config] Make linux-libc-dev coinstallable under multiarch + - LP: #750585 + + [ Tim Gardner ] + + * [Config] CONFIG_RTS_PSTOR=m + - LP: #698006 + + [ Upstream Kernel Changes ] + + * Revert "tcp: disallow bind() to reuse addr/port" + - LP: #731878 + * ALSA: HDA: Add dock mic quirk for Lenovo Thinkpad X220 + - LP: #746259 + * ALSA: HDA: New AD1984A model for Dell Precision R5500 + - LP: #741516 + * Input: sparse-keymap - report scancodes with key events + * Input: sparse-keymap - report KEY_UNKNOWN for unknown scan codes + * KVM: SVM: Load %gs earlier if CONFIG_X86_32_LAZY_GS=n + - LP: #729085 + * watchdog: sp5100_tco.c: Check if firmware has set correct value in + tcobase. + - LP: #740011 + * staging: add rts_pstor for Realtek PCIE cardreader + - LP: #698006 + * staging: fix rts_pstor build errors + - LP: #698006 + * Staging: rts_pstor: fixed some brace code styling issues + - LP: #698006 + * staging: rts_pstor: potential NULL dereference + - LP: #698006 + * Staging: rts_pstor: fix read past end of buffer + - LP: #698006 + * staging: rts_pstor: delete a function + - LP: #698006 + * staging: rts_pstor: fix sparse warning + - LP: #698006 + * staging: rts_pstor: fix a bug that a greenhouse sd card can't be + recognized + - LP: #698006 + * staging: rts_pstor: optimize kmalloc to kzalloc + - LP: #698006 + * staging: rts_pstor: MSXC card power class + - LP: #698006 + * staging: rts_pstor: modify initial card clock + - LP: #698006 + * staging: rts_pstor: set lun_mode in a different place + - LP: #698006 + * x86, hibernate: Initialize mmu_cr4_features during boot + - LP: #752870 + + -- Leann Ogasawara Fri, 08 Apr 2011 09:24:59 -0700 + +linux (2.6.38-8.41) natty; urgency=low + + [ Luke Yelavich ] + + * [Config] Disable CONFIG_CRASH_DUMP on 32-bit powerpc kernels + - LP: #745358 + * [Config] Disable CONFIG_DRM_RADEON_KMS on powerpc kernels + * [Config] Build some framebuffer drivers as modules for powerpc kernels. + + [ Seth Forshee ] + + * SAUCE: (drop after 2.6.38) eeepc-wmi: Add support for T101MT + Home/Express Gate key + + [ Tim Gardner ] + + * SAUCE: Increase the default hard limit for open FDs to 4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + * Relax si_code check in rt_sigqueueinfo and rt_tgsigqueueinfo + + -- Leann Ogasawara Tue, 05 Apr 2011 09:25:22 -0700 + +linux (2.6.38-8.40) natty; urgency=low + + [ Brad Figg ] + + * [Config] Set CONFIG_NR_CPUS=256 for amd64 generic + - LP: #737124 + + [ Henrik Rydberg ] + + * SAUCE: HID: hid-ntrig: add support for 1b96:0006 model + * SAUCE: HID: ntrig: fix suspend/resume on recent models + + [ Kees Cook ] + + * [Config] packaging: adjust perms on vmlinuz as well + * SAUCE: nx-emu: further clarify dmesg reporting + - LP: #745181 + + [ Leann Ogasawara ] + + * rebase to v2.6.38.1 + * [Config] update configs after v2.6.38.1 rebase + * rebase to v2.6.38.2 + + [ Manoj Iyer ] + + * SAUCE: thinkpad-acpi: module autoloading for newer Lenovo ThinkPads. + - LP: #745217 + + [ Tim Gardner ] + + * SAUCE: INR_OPEN=4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * (drop after v2.6.38) HID: ntrig don't dereference unclaimed hidinput + * (drop after v2.6.38) HID: ntrig: apply NO_INIT_REPORTS quirk + * (drop after v2.6.38) HID: hid-ntrig: init settle and mode check + * eeepc-wmi: add hotplug code for Eeepc 1000H + * eeepc-wmi: serialize access to wmi method + * eeepc-wmi: return proper error code in eeepc_rfkill_set() + * eeepc-wmi: add an helper using simple return codes + * eeepc-wmi: add hibernate/resume callbacks + * eeepc-wmi: switch to platform_create_bundle() + * eeepc-wmi: reorder defines + * eeepc-wmi: use the presence bit correctly + * eeepc-wmi: add camera and card reader support + * eeepc-wmi: add wimax support + * eeepc-wmi: set the right key code for 0xe9 + * eeepc-wmi: support backlight power (bl_power) attribute + * eeepc-wmi: respect wireless_hotplug setting + * eeepc-wmi: real touchpad led device id is 0x001000012 + * eeepc-wmi: comments keymap to clarify the meaning of some keys + * eeepc-wmi: add touchpad sysfs file + * eeepc-wmi: reorder device ids + + [ Major Kernel Changes ] + + * rebase from v2.6.38 to v2.6.38.1 + - LP: #735640, #735450 + * rebase from v2.6.38.1 to v2.6.38.2 + - LP: #733780 + + -- Leann Ogasawara Mon, 28 Mar 2011 06:20:13 -0700 + +linux (2.6.38-7.39) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-7ubuntu1. + + -- Leann Ogasawara Thu, 24 Mar 2011 09:27:45 -0700 + +linux (2.6.38-7.38) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload take 2. 2.6.38-7.37 was accidentally uploaded before + gcc-4.5.2-6ubuntu5 finished building on all arches. + + -- Leann Ogasawara Tue, 22 Mar 2011 06:12:47 -0700 + +linux (2.6.38-7.37) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-6ubuntu5. + + -- Leann Ogasawara Sun, 20 Mar 2011 16:02:48 -0700 + +linux (2.6.38-7.36) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler + optimisation" + * purge last vestiges of maverick + * [Config] switch CONFIG_FB_VESA back to module + + [ Chris Wilson ] + + * SAUCE: drm/i915: Fix pipelined fencing + - LP: #717114 + + [ Loïc Minier ] + + * Include nls_cp437 module in virtual for fat + - LP: #732046 + * Support arch= cross-compilation for any arch + * Fix couple of typos in 0-common-vars.mk + * Enforce DEFAULT_MMAP_MIN_ADDR on armhf + * Add armhf to Debian -> Linux arch map + * Add initial armhf.mk + * Enable common packages for armhf + + [ Upstream Kernel Changes ] + + * Yama: fix default relationship to check thread group + - LP: #737676 + + -- Andy Whitcroft Fri, 18 Mar 2011 18:18:02 +0000 + +linux (2.6.38-7.35) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 2fbfac4e053861925fa3fffcdc327649b09af54c + * rebase fixes bug #715330 + * [Config] disable CONFIG_SCSI_QLA_ISCSI for powerpc 32bit to fix FTBS + * rebase to v2.6.38 final + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Apply OPTION_BLACKLIST_SENDSETUP also for ZTE MF626 + - LP: #636091 + + [ Tim Gardner ] + + * [Confg] CONFIG_BOOT_PRINTK_DELAY=y + + [ Upstream Kernel Changes ] + + * Yama: use thread group leader when creating match + - LP: #729839 + * (drop after 2.6.38) ahci: AHCI mode SATA patch for Intel Patsburg SATA + RAID controller + - LP: #735240 + * (drop after v2.6.38) x86, quirk: Fix SB600 revision check + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc8 to v2.6.38 final + - LP: #715330 + + -- Andy Whitcroft Tue, 15 Mar 2011 19:04:19 +0000 + +linux (2.6.38-6.34) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] normalise CONFIG_INTEL_TXT + * SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler optimisation + - LP: #730860 + * rebase to mainline v2.6.38-rc8 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc7 + fb62c00a6d8942775abc23d1621db1252e2d93d1 + to v2.6.38-rc8 + + -- Andy Whitcroft Tue, 08 Mar 2011 11:54:48 +0000 + +linux (2.6.38-6.33) natty; urgency=low + + [ Andy Whitcroft ] + + * d-i -- enable speakup-modules udeb + - LP: #672699 + * rebase to 493f3358cb289ccf716c5a14fa5bb52ab75943e5 + * [Config] debian PPC64 configuration + * [Config] cleanup powerpc config fixing unexpected inconsistancies + * [Config] resync ppc64 configuration + * SAUCE: match up ENTRY/END naming for 32/64 bit + * rebase to fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] update configs after rebase to + fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] pps_gen_parport no longer built + + [ 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 + + [ John Johansen ] + + * SAUCE: Fix aufs calling of security_path_mknod + - LP: #724456 + + [ Kees Cook ] + + * SAUCE: proc: hide kernel addresses via %pK in /proc//stack + + [ Tim Gardner ] + + * rebase to 2.6.38-rc7 + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: fix corruptions on i8xx due to relaxed fencing" + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc6 to v2.6.38-rc7 + + fb62c00a6d8942775abc23d1621db1252e2d93d1 + - LP: #721389 + - LP: #722925 + - LP: #723672 + - LP: #723676 + - LP: #715318 + + -- Andy Whitcroft Mon, 07 Mar 2011 15:33:17 +0000 + +linux (2.6.38-5.32) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to mainline 6f576d57f1fa0d6026b495d8746d56d949989161 + * [Config] updateconfigs following rebase to v2.6.38-rc6 + * [Config] enable CONFIG_DMAR + - LP: #552311 + + [ Upstream Kernel Changes ] + + * drm/i915: skip FDI & PCH enabling for DP_A + - LP: #561802, #600453, #681877 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc5 to v2.6.38-rc6 + - LP: #718402 + - LP: #719524 + - LP: #721126 + - LP: #719691 + - LP: #722689 + - LP: #722310 + + -- Andy Whitcroft Tue, 22 Feb 2011 13:28:39 +0000 + +linux (2.6.38-4.31) natty; urgency=low + + [ Andy Whitcroft ] + + * add in bugs closed by upstream patches pulled in by rebases + * rebase to 795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 + * [Config] enable CONFIG_VSX to allow use of vector instuctions + * resync with maverick 98defa1c5773a3d7e4c524967eb01d5bae035816 + * rebase to mainline v2.6.38-rc5 + * SAUCE: ecryptfs: read on a directory should return EISDIR if not + supported + - LP: #719691 + + [ Colin Ian King ] + + * SAUCE: Dell All-In-One: Remove need for Dell module alias + + [ Manoj Iyer ] + + * SAUCE: (drop after 2.6.38) add ricoh 0xe823 pci id. + - LP: #717435 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRC32C_INTEL=y + + [ Upstream Kernel Changes ] + + * Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15 + - LP: #702434 + * vfs: fix BUG_ON() in fs/namei.c:1461 + + [ Vladislav P ] + + * SAUCE: Release BTM while sleeping to avoid deadlock. + - LP: #713837 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc4 to v2.6.38-rc5 + - LP: #579276 + - LP: #715877 + - LP: #713769 + - LP: #716811 + * resync with Maverick Ubuntu-2.6.35-27.47 + + -- Andy Whitcroft Fri, 11 Feb 2011 17:24:09 +0000 + +linux (2.6.38-3.30) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.38-rc4 + * ppc64 -- add basic architecture + * ubuntu: AUFS -- update to 65835da20b77c98fb538c9114fc31f5de1328230 + + [ Colin Ian King ] + + * SAUCE: Add WMI hotkeys support for Dell All-In-One series + - LP: #676997 + * 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 + + [ Dan Rosenberg ] + + * SAUCE: (drop after 2.6.38) Convert net %p usage %pK + + [ Kees Cook ] + + * Revert "SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of + attacking" + * SAUCE: (drop after 2.6.38) use %pK for /proc/kallsyms and /proc/modules + + [ Tim Gardner ] + + * [Config] CONFIG_BLK_CGROUP=y + - LP: #706394 + * [Config] CONFIG_DELL_WMI_AIO=m + + [ Upstream Kernel Changes ] + + * drm/i915/lvds: Restore dithering on native modes for gen2/3 + - LP: #711568 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc3 to v2.6.38-rc4. + - LP: #701271 + - LP: #708521 + - LP: #710371 + + -- Andy Whitcroft Tue, 08 Feb 2011 02:07:18 +0000 + +linux (2.6.38-2.29) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 1f0324caefd39985e9fe052fac97da31694db31e + * [Config] updateconfigs following rebase to + 1f0324caefd39985e9fe052fac97da31694db31e + * rebase to 70d1f365568e0cdbc9f4ab92428e1830fdb09ab0 + * [Config] reenable HIBERNATE + - LP: #710877 + * rebase to v2.6.38-rc3 + * [Config] reenable CONFIG_CRASH_DUMP + + [ Kamal Mostafa ] + + * SAUCE: rtl8192se: fix source file perms + * SAUCE: rtl8192se: fix source file newline + * SAUCE: omnibook: fix source file newline + + [ Kees Cook ] + + * [Config] packaging: really make System.map mode 0600 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: OMAP3630: PM: don't warn the user with a trace in case of + PM34XX_ERRATUM + + [ Soren Hansen ] + + * SAUCE: nbd: Remove module-level ioctl mutex + + [ Tim Gardner ] + + * SAUCE: Disable building the ACPI debugfs source + + [ Upstream Kernel Changes ] + + * Set physical start and alignment 1M for virtual i386 + - LP: #710754 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + to v2.6.38-rc3 + - LP: #707902 + + -- Andy Whitcroft Fri, 28 Jan 2011 16:30:32 +0000 + +linux (2.6.38-1.28) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to b1cee06249dfa0ab30951e7f06490a75c155b620 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: omap3: beaglexm: fix DVI initialization + * [Config] omap: move CONFIG_PANEL_GENERIC_DPI to build in to make + display work at Beagle + + -- Andy Whitcroft Fri, 28 Jan 2011 10:51:57 +0000 + +linux (2.6.38-1.27) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- update to c5021514085a5d96364e096dbd34cadb2251abfd + * SAUCE: ensure root is ready before running usermodehelpers in it + * correct the Vcs linkage to point to natty + * rebase to linux tip e78bf5e6cbe837daa6ab628a5f679548742994d3 + * [Config] update configs following rebase + e78bf5e6cbe837daa6ab628a5f679548742994d3 + * SAUCE: Yama: follow changes to generic_permission + * ubuntu: compcache -- follow changes to bd_claim/bd_release + * ubuntu: iscsitarget -- follow changes to open_bdev_exclusive + * ubuntu: ndiswrapper -- fix interaction between __packed and packed + * ubuntu: AUFS -- update to 806051bcbeec27748aae2b7957726a4e63ff308e + * update package version to match payload version + * rebase to e6f597a1425b5af64917be3448b29e2d5a585ac8 + * rebase to v2.6.38-rc1 + * [Config] updateconfigs following rebase to v2.6.38-rc1 + * SAUCE: x86 fix up jiffies/jiffies_64 handling + * rebase to linus tip 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] updateconfigs following rebase to + 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] disable CONFIG_TRANSPARENT_HUGEPAGE to fix i386 boot crashes + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * [Config] CONFIG_NR_CPUS=256 for amd64 -server flavour + * rebase to v2.6.38-rc2 + * rebase to mainline d315777b32a4696feb86f2a0c9e9f39c94683649 + * rebase to c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] update configs following rebase to + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] disable CONFIG_AD7152 to fix FTBS on armel versatile + * [Config] disable CONFIG_AD7150 to fix FTBS on armel versatile + * [Config] disable CONFIG_RTL8192CE to fix FTBS on armel omap + * [Config] disable CONFIG_MANTIS_CORE to fix FTBS on armel versatile + + [ Kees Cook ] + + * SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of attacking + + [ Stefan Bader ] + + * Temporarily disable RODATA for virtual i386 + - LP: #699828 + + [ Tim Gardner ] + + * [Config] CONFIG_NLS_DEFAULT=utf8 + - LP: #683690 + * [Config] CONFIG_HIBERNATION=n + * update bnx2 firmware files in d-i/firmware/nic-modules + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/bo: add some fallback placements for VRAM only + objects." + * packaging: make System.map mode 0600 + * thinkpad_acpi: Always report scancodes for hotkeys + - LP: #702407 + * sched: tg->se->load should be initialised to tg->shares + * Input: sysrq -- ensure sysrq_enabled and __sysrq_enabled are consistent + * brcm80211: include linux/slab.h for kfree + * pch_dma: add include/slab.h for kfree + * i2c-eg20t: include linux/slab.h for kfree + * gpio/ml_ioh_gpio: include linux/slab.h for kfree + * tty: include linux/slab.h for kfree + * winbond: include linux/delay.h for mdelay et al + + [ Upstream Kernel Changes ] + + * mark the start of v2.6.38 versioning + * rebase v2.6.37 to v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + - LP: #689886 + - LP: #702125 + - LP: #608775 + - LP: #215802 + - LP: #686333 + - LP: #677830 + - LP: #677652 + - LP: #696493 + - LP: #697240 + - LP: #689036 + - LP: #705323 + - LP: #686692 + + -- Andy Whitcroft Sun, 09 Jan 2011 13:44:52 +0000 + +linux (2.6.37-12.26) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc8 + * [Config] armel -- reenable omap flavour + * [Config] disable CONFIG_MACH_OMAP3517EVM to fix FTBS on armel omap + * [Config] disable CONFIG_GPIO_VX855 to fix FTBS on omap armel + * [Config] disable CONFIG_WESTBRIDGE_ASTORIA to fix FTBS on omap armel + * [Config] disable CONFIG_TI_DAVINCI_EMAC to fix FTBS on omap armel + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * [Config] track missing modules + * rebase to v2.6.37 final + + [ Chase Douglas ] + + * SAUCE: (drop after 2.6.37) HID: magicmouse: Don't report REL_{X, Y} for + Magic Trackpad + + [ Stefan Bader ] + + * Revert "SAUCE: blkfront: default to sd devices" + - LP: #684875 + + [ Tim Gardner ] + + * Revert "SAUCE: (no-up) libata: Ignore HPA by default." + - LP: #380138 + * [Config] Added autofs4.ko to -virtual flavour + - LP: #692917 + + [ Upstream Kernel Changes ] + + * Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series + Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc8 + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * rebase to v2.6.37 final + + -- Andy Whitcroft Thu, 23 Dec 2010 18:34:13 +0000 + +linux (2.6.37-11.25) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- add hpsa to the list of block devices + - LP: #684304 + * [Config] add vmw-balloon driver to -virtual flavour + - LP: #592039 + * rebase to v2.6.37-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc7 + + -- Andy Whitcroft Tue, 21 Dec 2010 13:35:28 +0000 + +linux (2.6.37-10.24) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc6 + * updateconfigs following rebase to v2.6.37-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc6 + + -- Andy Whitcroft Thu, 16 Dec 2010 12:34:19 +0000 + +linux (2.6.37-9.23) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks + - LP: #689606 + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks (grub) + - LP: #689606 + + [ Kees Cook ] + + * SAUCE: RO/NX protection for loadable kernel, fix ftrace + - LP: #690190 + + -- Andy Whitcroft Wed, 15 Dec 2010 19:29:57 +0000 + +linux (2.6.37-9.22) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.35-rc5 + * [Config] updateconfigs following rebase to v2.6.37-rc5 + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: dm-raid4-5 -- follow changes to bio flags + * ubuntu: dm-raid4-5 -- re-enable + * ubuntu: omnibook -- update BOM + * ubuntu: ndiswrapper -- update BOM to match actual version + * ubuntu: ndiswrapper -- follow removal of the BKL and locked ioctl + * ubuntu: ndiswrapper -- re-enable + * ubuntu: iscsitarget -- re-instate copy_io_context + * ubuntu: iscsitarget -- follow changes to semaphore initialisation + * ubuntu: iscsitarget -- convert NIPQUAD to %pI4 + * ubuntu: iscsitarget -- re-enable + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 13 + - LP: #685015 + + [ Tim Gardner ] + + * [Config] CONFIG_9P_FSCACHE=y,CONFIG_9P_FS_POSIX_ACL=y + * [Config] CONFIG_CRYPTO_CRC32C=y + - LP: #681819 + * [Config] CONFIG_9P_FSCACHE=n + * [Config] Add nfsd modules to -virtual flavour + - LP: #688070 + + [ Upstream Kernel Changes ] + + * Revert "Staging: zram: work around oops due to startup ordering snafu" + * NFS: Fix panic after nfs_umount() + - LP: #683938 + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + * x86: Resume trampoline must be executable + * x86: RO/NX protection for loadable kernel, jump_table fix + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc5 + + -- Andy Whitcroft Thu, 09 Dec 2010 18:15:35 +0000 + +linux (2.6.37-8.21) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- include the aufs_types.h file in + linux-libc-headers" + * Revert "(no-up) add support for installed header files to ubuntu + directory" + + -- Andy Whitcroft Sun, 05 Dec 2010 17:33:28 +0000 + +linux (2.6.37-8.20) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] drivers/serial/mfd.c: Fix ARM compile error" + * Revert "SAUCE: Nouveau: Disable acceleration on MacBook Pros" + * Revert "SAUCE: Nouveau: Add quirk framework to disable acceleration" + * Revert "SAUCE: i915 -- disable powersave by default" + * SAUCE: enable Marvell 9128 PCIe SATA controller + - LP: #658521 + * [Config] evtchn has been renamed + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + + [ Tim Gardner ] + + * [Config] MISS: evtchn, NEW : xen-evtchn + * rebase to v2.6.37-rc4 + + [ Upstream Kernel Changes ] + + * drm/i915: Clean conflicting modesetting registers upon init + - LP: #683775 + * rebase to v2.6.37-rc4 + + -- Andy Whitcroft Fri, 03 Dec 2010 18:42:07 +0000 + +linux (2.6.37-7.19) natty; urgency=low + + [ Tim Gardner ] + + * [Config] Add bnx2 firmware to nic-modules udeb + - LP: #676245 + + -- Andy Whitcroft Fri, 26 Nov 2010 17:53:45 +0000 + +linux (2.6.37-7.18) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID" + * Revert "SAUCE: Add extra headers to linux-libc-dev" + * Revert "SAUCE: Enable speedstep for sonoma processors." + * [Config] enable CONFIG_BT_HCIUART_ATH3K + * [Config] enable CONFIG_IWLWIFI_DEBUGFS + * [Config] standardise CONFIG_MII + * [Config] standardise CONFIG_PRISM2_USB + * [Config] standardise CONFIG_SCSI_QLA_ISCSI + * [Config] build in CONFIG_AGP + * [Config] build in CONFIG_AGP_INTEL + * [Config] build in CONFIG_AGP_AMD + * [Config] build in CONFIG_AGP_AMD64 + * [Config] build in CONFIG_AGP_NVIDIA + * [Config] build in CONFIG_AGP_VIA + * [Config] disable CONFIG_SCSI_QLA_ISCSI for FTBS (arm) + * (no-up): document the new ## scheme + * [Config] harmonise CONFIG_SERIAL_8250_NR_UARTS + * [Config] update CONFIG_SERIAL_8250_RUNTIME_UARTS=32 + - LP: #675453 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * nx-emu: fix inverted report of disable_nx + + -- Andy Whitcroft Tue, 23 Nov 2010 21:00:39 +0000 + +linux (2.6.37-6.17) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch + aufs2.1-36-UNRELEASED-20101103" + * Revert "ubuntu: AUFS -- aufs2-base.patch + aufs2.1-36-UNRELEASED-20101103" + * [Config] standardise CONFIG_BT + * [Config] standardise CONFIG_IRDA + * [Config] standardise CONFIG_LAPB + * [Config] standardise CONFIG_RDS + * [Config] standardise CONFIG_RFKILL + * [Config] standardise CONFIG_TIPC + * [Config] standardise CONFIG_X25 + * [Config] standardise CONFIG_INPUT_EVDEV + * [Config] standardise CONFIG_INPUT_JOYDEV + * [Config] standardise CONFIG_INPUT_JOYSTICK + * [Config] standardise CONFIG_INPUT_TOUCHSCREEN + * [Config] CONFIG_INPUT_TOUCHSCREEN=n for FTBS (arm) + * [Config] CONFIG_IRDA=n for FTBS (arm) + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-37 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37 + * ubuntu: AUFS -- update to 097bf62d6f49619359d34bf17f242df38562489a + + [ Tim Gardner ] + + * SAUCE: Fix drivers/staging/easycap FTBS + * [Config] CONFIG_EASYCAP=m after fixing FTBS + + [ Upstream Kernel Changes ] + + * Revert "x86: Add NX protection for kernel data" + + -- Andy Whitcroft Mon, 22 Nov 2010 18:09:10 +0000 + +linux (2.6.37-6.16) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] update config for CONFIG_DEBUG_SET_MODULE_RONX" + * rebase to v2.6.37-rc3 + + [ Tim Gardner ] + + * [Config] CONFIG_SCHED_AUTOGROUP=y + + [ Upstream Kernel Changes ] + + * Revert "x86: Add RO/NX protection for loadable kernel modules" + * sched: automated per session task groups + * rebase to v2.6.37-rc3 + + -- Andy Whitcroft Mon, 22 Nov 2010 10:11:13 +0000 + +linux (2.6.37-6.15) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] standardise CONFIG_CEPH_FS + * [Config] standardise CONFIG_SCSI_LPFC_DEBUG_FS + * [Config] standardise CONFIG_SCSI_PROC_FS + * [Config] standardise CONFIG_UBIFS_FS + * [Config] standardise CONFIG_USB_GADGET_DEBUG_FS + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 11 + - LP: #677210 + * SAUCE: enable rfkill for rtl8192se driver + - LP: #640992 + + [ Tim Gardner ] + + * [Config] CONFIG_EASYCAP=n for FTBS + * Rebase to v2.6.32-rc2+git + + [ Upstream Kernel Changes ] + + * x86: Fix improper large page preservation + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + + [ Upstream Kernel Changes ] + + * Rebase to Linus 2.6.37-rc2+git + + -- Andy Whitcroft Sat, 20 Nov 2010 11:40:00 +0000 + +linux (2.6.37-5.14) natty; urgency=low + + [ Upstream Kernel Changes ] + + * PCI: fix offset check for sysfs mmapped files + - LP: #676963 + + -- Andy Whitcroft Thu, 18 Nov 2010 18:12:27 +0000 + +linux (2.6.37-5.13) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.37-rc2 + * updateconfigs following rebase to v2.6.37-rc2 + + [ Tim Gardner ] + + * [Config] Added NFS and related modules to virtual flavour + - LP: #659084 + + [ Upstream Kernel Changes ] + + * x86, cpu: Rename verify_cpu_64.S to verify_cpu.S + * x86, cpu: Clear XD_DISABLED flag on Intel to regain NX + * x86, cpu: Call verify_cpu during 32bit CPU startup + * x86, cpu: Only CPU features determine NX capabilities + + [ Upstream Changes ] + + * rebased to v2.67.37-rc2 + + -- Andy Whitcroft Tue, 16 Nov 2010 13:13:29 +0000 + +linux (2.6.37-4.12) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] HID: magicmouse: add param for scroll speed" + * Revert "[Upstream] HID: magicmouse: properly account for scroll + movement in state" + * Revert "[Upstream] HID: magicmouse: disable and add module param for + scroll acceleration" + * Revert "[Upstream] HID: magicmouse: scroll on entire surface, not just + middle of mouse" + + [ Henrik Rydberg ] + + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Upstream Kernel Changes ] + + * Revert "mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume" + * Revert "[ARM] implement arch_randomize_brk()" + * Revert "ARM: stack protector: change the canary value per task" + * Revert "ARM: initial stack protector (-fstack-protector) support" + * Revert "ALSA: hda - Handle pin NID 0x1a on ALC259/269" + * Revert "ALSA: hda - Handle missing NID 0x1b on ALC259 codec" + * Revert "perf probe: Add kernel source path option" + * hid: ntrig: Support single-touch devices + * hid: ntrig: Mask pen switch events + * net: rtnetlink.h -- only include linux/netdevice.h when used by the + kernel + - LP: #673073 + * Fix userspace build of linux/fs.h + + -- Andy Whitcroft Mon, 15 Nov 2010 19:31:44 +0000 + +linux (2.6.37-3.11) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- update to + b37c575759dc4535ccc03241c584ad5fe69e3b25" + * Revert "ubuntu: AUFS -- track changes to the arguements to fop fsync()" + * Revert "ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601" + * Revert "ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601" + * Revert "ubuntu: AUFS -- aufs2 base patch for linux-2.6.34" + * [Config] Disable intel_idle for -virtual kernels + - LP: #651370 + * [Config] enforcer -- ensure we never enable CONFIG_IMA + * debian -- pass the correct flavour name when checking configs + * [Config] enforcer -- ensure CONFIG_INTEL_IDLE is off for -virtual + * [Config] ensure CONFIG_IPV6=y for powerpc + * [Config] enforcer -- ensure CONFIG_IPV6=y + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- update to aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- re-enable + * ubuntu: AUFS -- track changes to work queue initialisation + * ubuntu: AUFS -- track changes to llseek in v2.6.37-rc1 + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + * SAUCE: drm -- stop early access to drm devices + + [ Jeremy Kerr ] + + * [Config] Build-in powermac ZILOG serial driver + - LP: #673346 + + [ Kees Cook ] + + * SAUCE: nx-emu: use upstream ASLR when possible + + [ Tim Gardner ] + + * [Config] Use correct be2iscsi module name in d-i/modules/scsi-modules + - LP: #628776 + + [ Upstream Kernel Changes ] + + * i386: NX emulation + * nx-emu: drop exec-shield sysctl, merge with disable_nx + * nx-emu: standardize boottime message prefix + * mmap randomization for executable mappings on 32-bit + * exec-randomization: brk away from exec rand area + + -- Andy Whitcroft Thu, 11 Nov 2010 23:46:37 +0000 + +linux (2.6.37-2.10) natty; urgency=low + + [ Andy Whitcroft ] + + * reinstate armel config changes: + * [Config] CONFIG_GPIO_PCH=n for armel FTBS + * [Config] CONFIG_GPIO_VX855=n for armel FTBS + + -- Andy Whitcroft Wed, 03 Nov 2010 22:20:35 +0000 + +linux (2.6.37-2.9) natty; urgency=low + + [ Andy Whitcroft ] + + * config -- fix genportsconfig + * [Config] move powerpc over from ports to distro + * bump master version number to match contained kernel + * SAUCE: fix documentation strings for struct input_keymap_entry + * usb: gadget: goku_udc: add registered flag bit + + -- Andy Whitcroft Tue, 02 Nov 2010 15:14:11 +0000 + +linux (2.6.36-2.8) natty; urgency=low + + [ Tim Gardner ] + + * [Config]: fix changed CONFIG_SYSFS_DEPRECATED_V2 enforcement rules + * [Config]: TWL4030_CORE=n for FTBS + * [Config]: CONFIG_ATH6K_LEGACY=n for FTBS + * [Config]: CONFIG_SOLO6X10=n for FTBS + * [Config]: CONFIG_GPIO_PCH=n for armel FTBS + * [Config]: CONFIG_GPIO_VX855=n for armel FTBS + * [Config]: CONFIG_DRM_NOUVEAU=n for armel FTBS + * [Config]: CONFIG_LINE6_USB=n for armel FTBS + * [Config]: CONFIG_SENSORS_AK8975=n for armel FTBS + * [Config]: CONFIG_I2C_I801=n for armel FTBS + * UBUNTU: SAUCE: AppArmor: Fix unpack of network tables. + * AppArmor: compatibility patch for v5 interface + * AppArmor: compatibility patch for v5 network controll + * Dropped (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: libata: Add ALPM power state accounting to the AHCI driver + * Dropped: UBUNTU: SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + * Dropped: hid: 3m: Convert to MT slots + * Dropped: HID: magicmouse: don't allow hidinput to initialize the device + * Dropped: HID: magicmouse: simplify touch data bit manipulation + * Dropped: HID: magicmouse: simplify touch down logic + * Dropped: HID: magicmouse: enable Magic Trackpad support + * Dropped: UBUNTU: SAUCE: hid: ntrig: remove sysfs nodes + * Dropped: UBUNTU: SAUCE: hid: ntrig: Setup input filtering manually + * Dropped: UBUNTU: SAUCE: hid: ntrig: New ghost-filtering event logic + * Dropped: UBUNTU: SAUCE: hid: ntrig: identify firmware version (wiggled) + * Dropped: UBUNTU: (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: KMS: cache the EDID information of the LVDS + * Dropped: UBUNTU: SAUCE: fbcon -- fix race between open and removal of framebuffers + * Dropped: UBUNTU: SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + * Dropped: UBUNTU: SAUCE: x86: implement cs-limit nx-emulation for ia32 + * Dropped: UBUNTU: SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * Dropped: UBUNTU: SAUCE: [um] Don't use nx_enabled under UML + * Dropped: UBUNTU: SAUCE: x86: brk away from exec rand area + + [ Upstream Kernel Changes ] + + * rebased against 2.6.27-rc1 + + -- Tim Gardner Fri, 22 Oct 2010 19:35:05 -0600 + +linux (2.6.36-1.7) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.36 final + * [Config] update configs following rebase to v2.6.36 final + * [Config] update ports configs following rebase to v2.6.36 final + + [ Upstream Kernel Changes ] + + * rebased to v2.6.36 final + + -- Andy Whitcroft Thu, 21 Oct 2010 14:28:57 +0100 + +linux (2.6.36-1.6) natty; urgency=low + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "Staging: Add initial release of brcm80211 - Broadcom 802.11n + wireless LAN driver." + + -- Andy Whitcroft Wed, 20 Oct 2010 10:41:25 +0100 + +linux (2.6.36-1.5) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.36-rc8 + * updateconfigs following rebase to v2.6.36-rc8 + * updateportsconfigs following rebase to v2.6.36-rc8 + * config -- simplify the kernelconfig interface + * config -- add new config mode 'dumpconfigs' + + [ Tim Gardner ] + + * Simplify the use of CROSS_COMPILER + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "staging: brcm80211: Make compiling of brcm80211.ko and + brcmfmac.ko mutually exclusive." + * Revert "staging: brcm80211: Fix compile issue when BRCM80211_PCI is not + set." + * Revert "Staging: brcm80211: remove driver specific -W options" + * Revert "Staging: brcm80211: clean up makefile cflag lines" + * Revert "staging: brcm80211: add fullmac driver" + * Revert "staging: brcm80211: use string native library" + * Revert "staging: brcm80211: use native ctype library" + * Revert "staging: brcm80211: fix remaining checkpatch errors." + * Revert "staging: brcm80211: fix "ERROR: trailing whitespace."" + * Revert "staging: brcm80211: fix "ERROR: spaces required around that + ..."" + * Revert "staging: brcm80211: fix "ERROR: spaces prohibited around that + ':' ..."" + * Revert "staging: brcm80211: fix "ERROR: space required before that + ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that close + brace"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited before + ...close square bracket"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited after that + ..."" + * Revert "staging: brcm80211: fix "ERROR: need consistent spacing around + '*'"" + * Revert "staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"'" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... + do - while loop"" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise statics to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise globals to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: while should follow close brace + '}'"" + * Revert "staging: brcm80211: fix "ERROR: that open brace { ... prev + line"" + * Revert "staging: brcm80211: fix "ERROR: trailing statements should be + on next line"" + * Revert "staging: brcm80211: fix "ERROR: do not use assignment in if + condition"" + * Revert "staging: brcm80211: fix "ERROR: return is not a function, + paren..."" + * Revert "staging: brcm80211: fix "ERROR: open brace '{' following + function dec..."" + * Revert "staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo + *bar"'" + * Revert "staging: brcm80211: Fix URLs for firmware files." + * Revert "staging: brcm80211: use '%pM' format to print MAC address" + * Revert "staging: brcm80211: Add contact info to TODO list." + * Revert "staging: brcm80211: Fix some initialisation failure paths" + * Export dump_{write,seek} to binary loader modules + * rebase to v2.6.36-rc8. + + -- Andy Whitcroft Tue, 19 Oct 2010 18:58:11 +0100 + +linux (2.6.36-0.4) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: perf: increase stack footprint to avoid stack-protector warning + (fixes FTBS on powerpc) + + -- Andy Whitcroft Thu, 14 Oct 2010 13:16:16 +0100 + +linux (2.6.36-0.3) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_SCSI_QLA_ISCSI to fix FTBS on powerpc + + -- Andy Whitcroft Thu, 14 Oct 2010 03:01:30 +0100 + +linux (2.6.36-0.2) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateportsconfigs following rebase to 2.6.36-rc7 + (fix FTBS on powerpc) + + -- Andy Whitcroft Wed, 13 Oct 2010 23:25:12 +0100 + +linux (2.6.36-0.1) natty; urgency=low + + [ Andy Whitcroft ] + + * reduce disk usage during buildd builds + - LP: #645653 + * [Config] enforcer -- ensure CONFIG_INIT_PASS_ALL_PARAMS is y + * [Config] armel -- drop omap flavour + + [ Tim Gardner ] + + * Added dropped patch list + * more dropped patches + * [Config] Disable aufs, dmraid-4.5, ndis-wrapper + * [Config] Add support for cross compiling armel + * [Config] CONFIG_SCSI_QLA_ISCSI=n for armel + * [Upstream] drivers/serial/mfd.c: Fix ARM compile error + * [Config]: updateconfigs after adding brcm80211 + * staging: brcm80211: Fix Makefile syntax error + * rebased to v2.6.36-rc7 + + [ Upstream Kernel Changes ] + + * (upstream) IPS driver: don't toggle CPU turbo on unsupported CPUs + * (upstream) IPS driver: verify BIOS provided limits + * intel_ips: Print MCP limit exceeded values. + * Staging: Add initial release of brcm80211 - Broadcom 802.11n wireless + LAN driver. + * staging: brcm80211: Fix some initialisation failure paths + * staging: brcm80211: Add contact info to TODO list. + * staging: brcm80211: use '%pM' format to print MAC address + * staging: brcm80211: Fix URLs for firmware files. + * staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo *bar"' + * staging: brcm80211: fix "ERROR: open brace '{' following function + dec..." + * staging: brcm80211: fix "ERROR: return is not a function, paren..." + * staging: brcm80211: fix "ERROR: do not use assignment in if condition" + * staging: brcm80211: fix "ERROR: trailing statements should be on next + line" + * staging: brcm80211: fix "ERROR: that open brace { ... prev line" + * staging: brcm80211: fix "ERROR: while should follow close brace '}'" + * staging: brcm80211: fix "ERROR: do not initialise globals to 0 or NULL" + * staging: brcm80211: fix "ERROR: do not initialise statics to 0 or NULL" + * staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis" + * staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... do - + while loop" + * staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"' + * staging: brcm80211: fix "ERROR: need consistent spacing around '*'" + * staging: brcm80211: fix "ERROR: space prohibited after that ..." + * staging: brcm80211: fix "ERROR: space prohibited before ...close square + bracket" + * staging: brcm80211: fix "ERROR: space required after that close brace" + * staging: brcm80211: fix "ERROR: space required after that ..." + * staging: brcm80211: fix "ERROR: space required before that ..." + * staging: brcm80211: fix "ERROR: spaces prohibited around that ':' ..." + * staging: brcm80211: fix "ERROR: spaces required around that ..." + * staging: brcm80211: fix "ERROR: trailing whitespace." + * staging: brcm80211: fix remaining checkpatch errors. + * staging: brcm80211: use native ctype library + * staging: brcm80211: use string native library + * staging: brcm80211: add fullmac driver + * Staging: brcm80211: clean up makefile cflag lines + * Staging: brcm80211: remove driver specific -W options + * staging: brcm80211: Fix compile issue when BRCM80211_PCI is not set. + * staging: brcm80211: Make compiling of brcm80211.ko and brcmfmac.ko + mutually exclusive. + + -- Andy Whitcroft Tue, 12 Oct 2010 16:00:27 +0100 + +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.38.orig/debian.master/changelog.historical +++ linux-2.6.38/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.38.orig/debian.master/control +++ linux-2.6.38/debian.master/control @@ -0,0 +1,586 @@ +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, dpkg (>= 1.16.0~ubuntu4) +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-natty.git + +Package: linux-source-2.6.38 +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.38 with Ubuntu patches + This package provides the source code for the Linux kernel version + 2.6.38. + . + 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.38 + This package provides the various documents in the 2.6.38 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.38 + This package provides the architecture independent parts for kernel + version locked tools in the 2.6.38 kernel source. + +Package: linux-headers-2.6.38-12 +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.38 + This package provides kernel header files for version 2.6.38, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc ppc64 armel armhf +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 +Multi-Arch: same +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.38-12 +Architecture: i386 amd64 powerpc ppc64 armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel tools for version 2.6.38-12 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.38-12 on + DESC. + + +Package: linux-image-2.6.38-12-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-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86/x86_64 + This package provides kernel header files for version 2.6.38 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86/x86_64 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86 + This package contains the Linux kernel image for version 2.6.38 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.38-12-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86 + This package provides kernel header files for version 2.6.38 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on TI OMAP3-based systems + This package contains the Linux kernel image for version 2.6.38 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.38-12-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on TI OMAP3-based systems + This package provides kernel header files for version 2.6.38 on + TI OMAP3-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-omap-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on TI OMAP3-based systems + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 32-bit PowerPC + This package provides kernel header files for version 2.6.38 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.38 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.38-12-powerpc64-smp +Architecture: powerpc ppc64 +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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc64-smp +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.38 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc64-smp-dbgsym +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.38 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.38-12-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.38 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.38 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.38-12-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-efi-amd64 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-2.6.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86_64 + This package provides kernel header files for version 2.6.38 on + x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-server-dbgsym +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86_64 + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on Versatile-based systems + This package contains the Linux kernel image for version 2.6.38 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.38-12-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on Versatile-based systems + This package provides kernel header files for version 2.6.38 on + Versatile-based systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-versatile-dbgsym +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on Versatile-based systems + This package provides a kernel debug image for version 2.6.38 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.38-12-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.38 | linux-source-2.6.38, linux-tools +Description: Linux kernel image for version 2.6.38 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.38 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.38-12-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.38-12, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.38 on x86/x86_64 + This package provides kernel header files for version 2.6.38 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.38-12/debian.README.gz for details. + +Package: linux-image-2.6.38-12-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.38 on x86/x86_64 + This package provides a kernel debug image for version 2.6.38 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.38.orig/debian.master/etc/getabis +++ linux-2.6.38/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.38.orig/debian.master/etc/kernelconfig +++ linux-2.6.38/debian.master/etc/kernelconfig @@ -0,0 +1,7 @@ +if [ "$variant" = "ports" ]; then + archs="" + family='ports' +else + archs="amd64 i386 armel powerpc ppc64" + family='ubuntu' +fi --- linux-2.6.38.orig/debian.master/d-i/exclude-modules.sparc +++ linux-2.6.38/debian.master/d-i/exclude-modules.sparc @@ -0,0 +1,9 @@ +efi-modules +nic-pcmcia-modules +pcmcia-modules +pcmcia-storage-modules +irda-modules +floppy-modules +fb-modules +acpi-modules +virtio-modules --- linux-2.6.38.orig/debian.master/d-i/package-list +++ linux-2.6.38/debian.master/d-i/package-list @@ -0,0 +1,185 @@ +Package: kernel-image + +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.38.orig/debian.master/d-i/exclude-modules.armel-omap +++ linux-2.6.38/debian.master/d-i/exclude-modules.armel-omap @@ -0,0 +1,10 @@ +serial-modules +firewire-core-modules +floppy-modules +pcmcia-storage-modules +fb-modules +nic-pcmcia-modules +pcmcia-modules +pata-modules +message-modules +virtio-modules --- linux-2.6.38.orig/debian.master/d-i/exclude-modules.powerpc +++ linux-2.6.38/debian.master/d-i/exclude-modules.powerpc @@ -0,0 +1,4 @@ +efi-modules +fb-modules +acpi-modules +virtio-modules --- linux-2.6.38.orig/debian.master/d-i/exclude-firmware.armel-omap +++ linux-2.6.38/debian.master/d-i/exclude-firmware.armel-omap @@ -0,0 +1,2 @@ +nic-modules +scsi-modules --- linux-2.6.38.orig/debian.master/d-i/exclude-modules.amd64-virtual +++ linux-2.6.38/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 +nfs-modules +speakup-modules --- linux-2.6.38.orig/debian.master/d-i/exclude-modules.armel-versatile +++ linux-2.6.38/debian.master/d-i/exclude-modules.armel-versatile @@ -0,0 +1,19 @@ +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 +virtio-modules --- linux-2.6.38.orig/debian.master/d-i/kernel-versions.in +++ linux-2.6.38/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.38.orig/debian.master/d-i/kernel-versions +++ linux-2.6.38/debian.master/d-i/kernel-versions @@ -0,0 +1,15 @@ +# arch version flavour installedname suffix bdep +amd64 2.6.38-12 generic 2.6.38-12-generic - +amd64 2.6.38-12 virtual 2.6.38-12-virtual - + +i386 2.6.38-12 generic 2.6.38-12-generic - +i386 2.6.38-12 generic-pae 2.6.38-12-generic-pae - +i386 2.6.38-12 virtual 2.6.38-12-virtual - + +armel 2.6.38-12 versatile 2.6.38-12-versatile - +armel 2.6.38-12 omap 2.6.38-12-omap - + +# Ports +# arch version flavour installedname suffix bdep +powerpc 2.6.38-12 powerpc 2.6.38-12-powerpc - +powerpc 2.6.38-12 powerpc64-smp 2.6.38-12-powerpc64-smp - --- linux-2.6.38.orig/debian.master/d-i/exclude-modules.ia64 +++ linux-2.6.38/debian.master/d-i/exclude-modules.ia64 @@ -0,0 +1,4 @@ +irda-modules +floppy-modules +fb-modules +virtio-modules --- linux-2.6.38.orig/debian.master/d-i/exclude-modules.i386-virtual +++ linux-2.6.38/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 +nfs-modules +speakup-modules --- linux-2.6.38.orig/debian.master/d-i/modules-sparc/block-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules-sparc/message-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules-powerpc/scsi-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules-powerpc/storage-core-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules-powerpc/block-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules-powerpc/message-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules-powerpc/nic-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/fb-modules +++ linux-2.6.38/debian.master/d-i/modules/fb-modules @@ -0,0 +1,3 @@ +fbcon ? +vesafb ? +vga16fb ? --- linux-2.6.38.orig/debian.master/d-i/modules/pata-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/nic-pcmcia-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/sata-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/usb-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/crypto-modules +++ linux-2.6.38/debian.master/d-i/modules/crypto-modules @@ -0,0 +1,8 @@ +aes_generic ? +blowfish ? +twofish ? +serpent ? +sha256_generic ? +cbc ? +ecb ? +crc32c ? --- linux-2.6.38.orig/debian.master/d-i/modules/scsi-modules +++ linux-2.6.38/debian.master/d-i/modules/scsi-modules @@ -0,0 +1,118 @@ +# 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 ? +fnic ? +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.38.orig/debian.master/d-i/modules/fat-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/storage-core-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/pcmcia-storage-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/firewire-core-modules +++ linux-2.6.38/debian.master/d-i/modules/firewire-core-modules @@ -0,0 +1,4 @@ +firewire-core ? +firewire-ohci ? +firewire-sbp2 ? +firewire-net ? --- linux-2.6.38.orig/debian.master/d-i/modules/irda-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/vlan-modules +++ linux-2.6.38/debian.master/d-i/modules/vlan-modules @@ -0,0 +1,3 @@ +slp ? +garp ? +8021q ? --- linux-2.6.38.orig/debian.master/d-i/modules/block-modules +++ linux-2.6.38/debian.master/d-i/modules/block-modules @@ -0,0 +1,31 @@ +aoe ? +aten ? +bpck ? +bpck6 ? +cciss ? +comm ? +cpqarray ? +DAC960 ? +dstr ? +epat ? +epia ? +fit2 ? +fit3 ? +friq ? +frpw ? +hpsa ? +kbic ? +ktti ? +nbd ? +on20 ? +on26 ? +paride ? +pcd ? +pd ? +pf ? +pg ? +pt ? +sx8 ? +umem ? +virtio_blk ? +xen-blkfront ? --- linux-2.6.38.orig/debian.master/d-i/modules/mouse-modules +++ linux-2.6.38/debian.master/d-i/modules/mouse-modules @@ -0,0 +1,2 @@ +psmouse ? +usbmouse ? --- linux-2.6.38.orig/debian.master/d-i/modules/floppy-modules +++ linux-2.6.38/debian.master/d-i/modules/floppy-modules @@ -0,0 +1 @@ +floppy ? --- linux-2.6.38.orig/debian.master/d-i/modules/plip-modules +++ linux-2.6.38/debian.master/d-i/modules/plip-modules @@ -0,0 +1 @@ +plip ? --- linux-2.6.38.orig/debian.master/d-i/modules/ppp-modules +++ linux-2.6.38/debian.master/d-i/modules/ppp-modules @@ -0,0 +1,6 @@ +ppp_async ? +ppp_deflate ? +ppp_mppe ? +pppoe ? +pppox ? +ppp_synctty ? --- linux-2.6.38.orig/debian.master/d-i/modules/speakup-modules +++ linux-2.6.38/debian.master/d-i/modules/speakup-modules @@ -0,0 +1,16 @@ +speakup ? +speakup_acntpc ? +speakup_acntsa ? +speakup_apollo ? +speakup_audptr ? +speakup_bns ? +speakup_decext ? +speakup_dectlk ? +speakup_dtlk ? +speakup_dummy ? +speakup_keypc ? +speakup_ltlk ? +speakup_soft ? +speakup_spkout ? +speakup_txprt ? +speakup_decpc ? --- linux-2.6.38.orig/debian.master/d-i/modules/fs-core-modules +++ linux-2.6.38/debian.master/d-i/modules/fs-core-modules @@ -0,0 +1,3 @@ +jfs ? +reiserfs ? +xfs ? --- linux-2.6.38.orig/debian.master/d-i/modules/input-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/message-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/squashfs-modules +++ linux-2.6.38/debian.master/d-i/modules/squashfs-modules @@ -0,0 +1 @@ +squashfs ? --- linux-2.6.38.orig/debian.master/d-i/modules/serial-modules +++ linux-2.6.38/debian.master/d-i/modules/serial-modules @@ -0,0 +1,3 @@ +generic_serial ? +serial_cs ? +synclink_cs ? --- linux-2.6.38.orig/debian.master/d-i/modules/nic-usb-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/nfs-modules +++ linux-2.6.38/debian.master/d-i/modules/nfs-modules @@ -0,0 +1,4 @@ +nfs ? +nfs_acl ? +lockd ? +sunrpc ? --- linux-2.6.38.orig/debian.master/d-i/modules/virtio-modules +++ linux-2.6.38/debian.master/d-i/modules/virtio-modules @@ -0,0 +1,4 @@ +virtio_balloon ? +virtio_pci ? +virtio_ring ? +virtio-rng ? --- linux-2.6.38.orig/debian.master/d-i/modules/md-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/nic-shared-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/nic-modules +++ linux-2.6.38/debian.master/d-i/modules/nic-modules @@ -0,0 +1,157 @@ +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 ? +enic ? +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.38.orig/debian.master/d-i/modules/pcmcia-modules +++ linux-2.6.38/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.38.orig/debian.master/d-i/modules/parport-modules +++ linux-2.6.38/debian.master/d-i/modules/parport-modules @@ -0,0 +1,2 @@ +parport ? +parport_pc ? --- linux-2.6.38.orig/debian.master/d-i/modules/fs-secondary-modules +++ linux-2.6.38/debian.master/d-i/modules/fs-secondary-modules @@ -0,0 +1,5 @@ +btrfs ? +fuse ? +ntfs ? +hfs ? +hfsplus ? --- linux-2.6.38.orig/debian.master/d-i/firmware/scsi-modules +++ linux-2.6.38/debian.master/d-i/firmware/scsi-modules @@ -0,0 +1,3 @@ +qlogic/1040.bin +qlogic/12160.bin +qlogic/1280.bin --- linux-2.6.38.orig/debian.master/d-i/firmware/README.txt +++ linux-2.6.38/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.38.orig/debian.master/d-i/firmware/nic-modules +++ linux-2.6.38/debian.master/d-i/firmware/nic-modules @@ -0,0 +1,8 @@ +e100/d101m_ucode.bin +e100/d101s_ucode.bin +e100/d102e_ucode.bin +bnx2/bnx2-mips-06-6.2.1.fw +bnx2/bnx2-mips-09-6.2.1.fw +bnx2/bnx2-rv2p-06-6.0.15.fw +bnx2/bnx2-rv2p-09-6.0.17.fw +bnx2/bnx2-rv2p-09ax-6.0.17.fw --- linux-2.6.38.orig/debian.master/rules.d/i386.mk +++ linux-2.6.38/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.38.orig/debian.master/rules.d/ppc64.mk +++ linux-2.6.38/debian.master/rules.d/ppc64.mk @@ -0,0 +1,19 @@ +build_arch = powerpc +header_arch = $(build_arch) +asm_link = $(build_arch) +defconfig = ppc64_defconfig +flavours = 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=ubuntu --- linux-2.6.38.orig/debian.master/rules.d/powerpc.mk +++ linux-2.6.38/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=ubuntu --- linux-2.6.38.orig/debian.master/rules.d/armel.mk +++ linux-2.6.38/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.38.orig/debian.master/rules.d/armhf.mk +++ linux-2.6.38/debian.master/rules.d/armhf.mk @@ -0,0 +1,14 @@ +build_arch = arm +header_arch = arm +asm_link = arm +defconfig = defconfig +flavours = +build_image = zImage +kernel_file = arch/$(build_arch)/boot/zImage +install_file = vmlinuz +no_dumpfile = true + +loader = grub + +skipabi = true +skipmodules = true --- linux-2.6.38.orig/debian.master/rules.d/amd64.mk +++ linux-2.6.38/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.38.orig/debian.master/config/config.common.ubuntu +++ linux-2.6.38/debian.master/config/config.common.ubuntu @@ -0,0 +1,5595 @@ +# +# Common config options automatically generated by splitconfig.pl +# +CONFIG_32BIT=y +CONFIG_3C359=m +CONFIG_3C515=m +# CONFIG_40x is not set +# CONFIG_44x is not set +CONFIG_60XX_WDT=m +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_9P_FS_POSIX_ACL=y +CONFIG_AB3100_CORE=y +CONFIG_AB3100_OTP=m +CONFIG_AB3550_CORE=y +CONFIG_AB8500_CORE=y +CONFIG_AB8500_DEBUG=y +CONFIG_AB8500_USB=m +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_ERST_DEBUG=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_EC_DEBUGFS=m +CONFIG_ACPI_FAN=y +CONFIG_ACPI_HED=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_HOTPLUG_MEMORY=m +CONFIG_ACPI_IPMI=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_QUICKSTART=m +CONFIG_ACPI_SBS=y +CONFIG_ACPI_SLEEP=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_AD2S120X=m +CONFIG_AD2S1210=m +# CONFIG_AD2S1210_GPIO_INPUT is not set +CONFIG_AD2S1210_GPIO_NONE=y +# CONFIG_AD2S1210_GPIO_OUTPUT is not set +CONFIG_AD2S90=m +CONFIG_AD525X_DPOT=m +CONFIG_AD525X_DPOT_I2C=m +CONFIG_AD525X_DPOT_SPI=m +CONFIG_AD5446=m +CONFIG_AD5624R_SPI=m +CONFIG_AD5930=m +CONFIG_AD7291=m +CONFIG_AD7298=m +CONFIG_AD7314=m +CONFIG_AD7476=m +CONFIG_AD7745=m +CONFIG_AD7816=m +CONFIG_AD7887=m +CONFIG_AD799X=m +CONFIG_AD799X_RING_BUFFER=y +CONFIG_AD9832=m +CONFIG_AD9834=m +CONFIG_AD9850=m +CONFIG_AD9852=m +CONFIG_AD9910=m +CONFIG_AD9951=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_ADE7753=m +CONFIG_ADE7754=m +CONFIG_ADE7758=m +CONFIG_ADE7759=m +CONFIG_ADE7854=m +CONFIG_ADE7854_I2C=m +CONFIG_ADE7854_SPI=m +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADIS16060=m +CONFIG_ADIS16080=m +CONFIG_ADIS16130=m +CONFIG_ADIS16201=m +CONFIG_ADIS16203=m +CONFIG_ADIS16204=m +CONFIG_ADIS16209=m +CONFIG_ADIS16220=m +CONFIG_ADIS16240=m +CONFIG_ADIS16251=m +CONFIG_ADIS16260=m +CONFIG_ADIS16300=m +CONFIG_ADIS16350=m +CONFIG_ADIS16400=m +CONFIG_ADM8211=m +CONFIG_ADT7310=m +CONFIG_ADT7316=m +CONFIG_ADT7316_I2C=m +CONFIG_ADT7316_SPI=m +CONFIG_ADT7410=m +CONFIG_ADT75=m +# CONFIG_ADVANCED_OPTIONS is not set +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=y +CONFIG_AGP_ALI=m +CONFIG_AGP_AMD=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_ATI=m +CONFIG_AGP_EFFICEON=m +CONFIG_AGP_INTEL=y +CONFIG_AGP_NVIDIA=y +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_UNINORTH=m +CONFIG_AGP_VIA=y +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +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_ALI_FIR=m +CONFIG_ALTIVEC=y +CONFIG_AMBA_PL08X=y +CONFIG_AMD8111_ETH=m +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_STATS=y +CONFIG_AMD_NB=y +CONFIG_AMD_NUMA=y +# CONFIG_AMIGAONE is not set +CONFIG_AMIGA_PARTITION=y +CONFIG_ANON_INODES=y +CONFIG_ANSLCD=m +CONFIG_APDS9802ALS=m +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_APPLE_AIRPORT=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_HAS_ILOG2_U32=y +CONFIG_ARCH_HAS_ILOG2_U64=y +CONFIG_ARCH_HAS_OPP=y +CONFIG_ARCH_HAS_WALK_MEMORY=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_LH7A40X is not set +# CONFIG_ARCH_LOKI is not set +# CONFIG_ARCH_LPC32XX 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_MXS 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_OMAP2PLUS_TYPICAL=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_S5P6442 is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_S5PV310 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_TCC_926 is not set +# CONFIG_ARCH_TEGRA is not set +# 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_WANTS_FREEZER_CONTROL=y +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_CHARLCD=y +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +# CONFIG_ARM_ERRATA_458693 is not set +# CONFIG_ARM_ERRATA_460075 is not set +CONFIG_ARM_ERRATA_743622=y +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_SP805_WATCHDOG=m +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_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_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_OVER_ETH=m +CONFIG_ATA_SFF=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH5K_PCI=y +# CONFIG_ATH6K_LEGACY 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_ATH9K_RATE_CONTROL=y +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_AUDIT_WATCH=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_SBILIST=y +# CONFIG_AUFS_SHWH is not set +# CONFIG_AUFS_SP_IATTR is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +# CONFIG_AUTO_IRQ_AFFINITY is not set +# CONFIG_AUTO_ZRELADDR is not set +CONFIG_AUXDISPLAY=y +CONFIG_AVERAGE=y +CONFIG_AVERATEC_5100P=m +CONFIG_AX25=m +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_PHY_N=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_PWM=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_BQ20Z75=m +CONFIG_BATTERY_BQ27x00=m +CONFIG_BATTERY_DA9030=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_DS2782=m +CONFIG_BATTERY_MAX17040=m +CONFIG_BATTERY_MAX17042=m +CONFIG_BATTERY_OLPC=m +CONFIG_BATTERY_PMU=m +CONFIG_BAYCOM_EPP=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BCM63XX_PHY=m +CONFIG_BCM_WIMAX=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_AOUT=m +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BITREVERSE=y +CONFIG_BKL=y +CONFIG_BLK_CGROUP=y +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_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=y +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_RBD=m +# CONFIG_BLK_DEV_SC1200 is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SL82C105 is not set +# CONFIG_BLK_DEV_SLC90E66 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_THROTTLING=y +# 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_XD is not set +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BLOCK=y +CONFIG_BLOCK_COMPAT=y +CONFIG_BMAC=m +CONFIG_BMP085=m +CONFIG_BNA=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_BOOTX_TEXT is not set +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_BOUNCE=y +CONFIG_BPQETHER=m +CONFIG_BRANCH_PROFILE_NONE=y +CONFIG_BRCM80211=m +CONFIG_BRCM80211_PCI=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_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_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_ATH3K=y +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_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_SPI_SLAVE=m +# CONFIG_CAIF_SPI_SYNC is not set +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_ESD_USB2=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_PM_TRACE=y +CONFIG_CAN_RAW=m +CONFIG_CAN_SJA1000=m +CONFIG_CAN_SJA1000_ISA=m +CONFIG_CAN_SJA1000_OF_PLATFORM=m +CONFIG_CAN_SJA1000_PLATFORM=m +CONFIG_CAN_SLCAN=m +CONFIG_CAN_SOFTING=m +CONFIG_CAN_SOFTING_CS=m +# CONFIG_CAN_TI_HECC is not set +CONFIG_CAN_TSCAN1=m +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_CARL9170=m +# CONFIG_CARL9170_DEBUGFS is not set +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# 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_STACKPROTECTOR=y +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEPH_FS=m +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_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_WEXT=y +CONFIG_CFQ_GROUP_IOSCHED=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_MEM_RES_CTLR_SWAP_ENABLED=y +CONFIG_CGROUP_NS=y +CONFIG_CGROUP_SCHED=y +CONFIG_CHARGER_GPIO=m +CONFIG_CHARGER_ISP1704=m +CONFIG_CHARGER_PCF50633=m +CONFIG_CHARGER_TWL4030=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_T4VF=m +CONFIG_CHELSIO_T4VF_DEPENDS=y +CONFIG_CHELSIO_T4_DEPENDS=y +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_ST=m +CONFIG_CIFS=m +# CONFIG_CIFS_ACL is not set +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLKDEV_LOOKUP=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_CMM=y +CONFIG_CMPXCHG_LOCAL=y +CONFIG_CNIC=m +CONFIG_CODA_FS=m +# CONFIG_CODE_PATCHING_SELFTEST is not set +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_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_PMAC=y +CONFIG_CPU_FREQ_PMAC64=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_CRC16=y +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +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_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=y +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_DEV_GEODE=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_CRYPTO_DEV_OMAP_AES=m +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_FPU=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_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=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_586=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_SEED=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_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=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_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_DEBUGGER=y +# CONFIG_DEBUG_BLK_CGROUP is not set +# 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_REDUCED 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_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_SET_MODULE_RONX=y +# 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_DECOMPRESS_XZ=y +CONFIG_DEFAULT_CUBIC=y +CONFIG_DEFAULT_IO_DELAY_TYPE=1 +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_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_DEPRECATED_PARAM_STRUCT is not set +CONFIG_DETECT_HUNG_TASK=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_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=y +# CONFIG_DMAR_DEFAULT_ON is not set +CONFIG_DMAR_FLOPPY_WA=y +# 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_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_RAID=m +CONFIG_DM_UEVENT=y +CONFIG_DM_ZERO=m +CONFIG_DNET=m +CONFIG_DNOTIFY=y +CONFIG_DNS_RESOLVER=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_I2C_SIL164=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_BACKLIGHT=y +CONFIG_DRM_NOUVEAU_DEBUG=y +CONFIG_DRM_R128=m +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_DTC=y +CONFIG_DTL=y +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 is not set +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_DVB_HOPPER=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_L64781=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_MB86A20S=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_S5H1432=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_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_LME2510=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_E200 is not set +CONFIG_E2100=m +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +CONFIG_EASYCAP=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_AMD8111 is not set +# CONFIG_EDAC_AMD8131 is not set +# 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_I7300=m +CONFIG_EDAC_I7CORE=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_MCE=y +CONFIG_EDAC_MCE_INJ=m +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_EEH=y +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_EHEA=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_ELECTRA_CF=m +CONFIG_ELF_CORE=y +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_ELPLUS=m +# 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=m +CONFIG_ENCRYPTED_KEYS=m +CONFIG_ENIC=m +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_ES3210=m +CONFIG_ESI_DONGLE=m +# CONFIG_ET131X_DEBUG is not set +CONFIG_ETH16I=m +CONFIG_ETHOC=m +CONFIG_EUROTECH_WDT=m +CONFIG_EVENTFD=y +# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set +CONFIG_EVENT_TRACING=y +CONFIG_EWRK3=m +# CONFIG_EXOFS_DEBUG is not set +CONFIG_EXOFS_FS=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPERT=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_F71808E_WDT=m +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=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_ACCEL is not set +CONFIG_FB_3DFX_I2C=y +CONFIG_FB_ARC=m +CONFIG_FB_ARK=m +CONFIG_FB_ASILIANT=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_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_CONTROL=y +CONFIG_FB_CT65550=y +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_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_IBM_GXT4500=m +CONFIG_FB_IMSTT=y +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_KYRO=m +CONFIG_FB_LE80578=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_OF=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_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_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_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +CONFIG_FB_TRIDENT=m +CONFIG_FB_VALKYRIE=y +CONFIG_FB_VESA=m +CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +CONFIG_FB_VT8623=m +# CONFIG_FB_WMT_GE_ROPS is not set +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_NOSY=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_OHCI_DEBUG=y +# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FIREWIRE_SBP2=m +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_FIXED_PHY=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_FONT_10x18 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_ACORN_8x8=y +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_SUN8x16 is not set +CONFIG_FORCEDETH=m +# CONFIG_FPE_FASTFPE is not set +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_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_FSL_ULI1575 is not set +CONFIG_FSNOTIFY=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FT1000=m +CONFIG_FT1000_USB=m +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_FTR_FIXUP_SELFTEST is not set +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=m +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_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_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_DEPRECATED is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_NVRAM=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_74X164=m +CONFIG_GPIO_ADP5520=m +CONFIG_GPIO_ADP5588=m +CONFIG_GPIO_BASIC_MMIO=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_ML_IOH=m +CONFIG_GPIO_PCA953X_IRQ=y +# CONFIG_GPIO_PL061 is not set +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_STMPE=y +CONFIG_GPIO_SX150X=y +CONFIG_GPIO_TC3589X=y +CONFIG_GPIO_TIMBERDALE=y +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_HARDLOCKUP_DETECTOR is not set +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +# CONFIG_HAS_RAPIDIO is not set +CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y +CONFIG_HAVE_ARCH_JUMP_LABEL=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_C_RECORDMCOUNT=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_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_GENERIC_HARDIRQS=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_INTEL_TXT=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_XZ=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_MEMBLOCK=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_PERF_EVENTS_NMI=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_PWM=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_SCHED_CLOCK=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_SYSCALL_WRAPPERS=y +CONFIG_HAVE_TEXT_POKE_SMP=y +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=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_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_ACRUX=m +CONFIG_HID_ACRUX_FF=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_ELECOM=m +CONFIG_HID_EMS_FF=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_MULTITOUCH=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_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_PYRA=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_UCLOGIC=m +CONFIG_HID_WACOM=m +CONFIG_HID_WACOM_POWER_SUPPLY=y +CONFIG_HID_WALTOP=m +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_HMC6352=m +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_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HOTPLUG_PCI_RPA=y +CONFIG_HOTPLUG_PCI_RPA_DLPAR=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_WATCHDOG is not set +CONFIG_HP_WMI=m +CONFIG_HTC_I2CPLD=y +CONFIG_HTC_PASIC3=m +CONFIG_HT_IRQ=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y +CONFIG_HVCS=m +CONFIG_HVC_DCC=y +CONFIG_HVC_DRIVER=y +CONFIG_HVC_IRQ=y +CONFIG_HVC_RTAS=y +CONFIG_HVC_UDBG=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_PASEMI=y +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_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_EG20T=m +CONFIG_I2C_HYDRA=m +CONFIG_I2C_INTEL_MID=m +CONFIG_I2C_ISCH=m +CONFIG_I2C_MPC=m +CONFIG_I2C_MUX=m +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=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_POWERMAC=y +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_IBMVIO=y +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_IBM_RTL=m +CONFIG_ICS932S401=m +CONFIG_ICST=y +CONFIG_IDEAPAD_LAPTOP=m +CONFIG_IDEPCI_PCIBUS_ORDER=y +CONFIG_IDE_ATAPI=y +CONFIG_IDE_GD=y +CONFIG_IDE_GD_ATA=y +# CONFIG_IDE_GD_ATAPI is not set +CONFIG_IDE_PROC_FS=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_XFER_MODE=y +CONFIG_IEEE802154=m +CONFIG_IEEE802154_DRIVERS=m +# CONFIG_IEEE802154_FAKEHARD is not set +CONFIG_IFB=m +CONFIG_IGBVF=m +CONFIG_IGB_DCA=y +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_EHCA=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_USER=y +CONFIG_INPUT=y +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AB8500_PONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_AD714X_SPI=m +CONFIG_INPUT_ADBHID=y +CONFIG_INPUT_ADXL34X=m +CONFIG_INPUT_ADXL34X_I2C=m +CONFIG_INPUT_ADXL34X_SPI=m +# CONFIG_INPUT_APANEL is not set +CONFIG_INPUT_APMPOWER=m +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_CMA3000=m +CONFIG_INPUT_CMA3000_I2C=m +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=y +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_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_PWM_BEEPER=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_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_INTEL_MID_DMAC=m +CONFIG_IOMMU_API=y +# 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_IPIC is not set +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_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_NFCT=y +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_PE_SIP=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_IRQ_TIME_ACCOUNTING is not set +CONFIG_IRQ_WORK=y +CONFIG_IRTTY_SIR=m +CONFIG_IR_ENE=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_NUVOTON=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_IR_WINBOND_CIR=m +CONFIG_ISAPNP=y +CONFIG_ISA_DMA_API=y +CONFIG_ISCSI_BOOT_SYSFS=m +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_ISL29020=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_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWLAGN=m +CONFIG_IWLWIFI=m +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLWIFI_DEBUGFS=y +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_AS5011=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_JUMP_LABEL=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_KERNEL_XZ 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_GPIO_POLLED=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_OPENCORES=m +# CONFIG_KEYBOARD_QT2160 is not set +CONFIG_KEYBOARD_STMPE=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_TC3589X=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYS=y +CONFIG_KEYS_COMPAT=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_KGDB_KDB=y +CONFIG_KGDB_LOW_LEVEL_TRAP=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KINGSUN_DONGLE=m +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_KSZ884X_PCI=m +CONFIG_KVM_AMD=m +CONFIG_KVM_APIC_ARCHITECTURE=y +CONFIG_KVM_ASYNC_PF=y +CONFIG_KVM_BOOK3S_32=m +CONFIG_KVM_BOOK3S_32_HANDLER=y +CONFIG_KVM_BOOK3S_64_HANDLER=y +CONFIG_KVM_BOOK3S_HANDLER=y +CONFIG_KVM_CLOCK=y +CONFIG_KVM_GUEST=y +CONFIG_KVM_INTEL=m +CONFIG_KVM_MMIO=y +# CONFIG_KVM_MMU_AUDIT is not set +CONFIG_KXSD9=m +CONFIG_L2TP=m +CONFIG_L2TP_DEBUGFS=m +# CONFIG_L2TP_V3 is not set +CONFIG_LANCE=m +CONFIG_LANMEDIA=m +CONFIG_LAPB=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=y +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_ADP5520=m +CONFIG_LEDS_ALIX2=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_CLASS=y +# 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_OF=y +CONFIG_LEDS_GPIO_PLATFORM=y +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_MC13783=m +CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_NET5501=m +CONFIG_LEDS_PWM=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m +# CONFIG_LEDS_TRIGGER_IDE_DISK is not set +CONFIG_LEDS_WM831X_STATUS=m +CONFIG_LEDS_WM8350=m +CONFIG_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_LINE6_USB_DEBUG is not set +# CONFIG_LINE6_USB_DUMP_CTRL is not set +# CONFIG_LINE6_USB_DUMP_MIDI is not set +# CONFIG_LINE6_USB_DUMP_PCM is not set +# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set +# CONFIG_LINE6_USB_RAW is not set +CONFIG_LIRC=m +CONFIG_LIRC_BT829=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_LOCKUP_DETECTOR is not set +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_LOGIWII_FF=y +# CONFIG_LOGO is not set +CONFIG_LOWMEM_SIZE=0x30000000 +CONFIG_LP486E=m +CONFIG_LPC_SCH=m +# CONFIG_LP_CONSOLE is not set +CONFIG_LRU_CACHE=m +CONFIG_LSM_MMAP_MIN_ADDR=0 +CONFIG_LTPC=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_ht" +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_PID=y +CONFIG_MACE=m +# CONFIG_MACE_AAUI_PORT is not set +CONFIG_MACHZ_WDT=m +# CONFIG_MACH_CM_T35 is not set +CONFIG_MACH_CM_T3517=y +# CONFIG_MACH_CRANEBOARD is not set +# CONFIG_MACH_DEVKIT8000 is not set +CONFIG_MACH_IGEP0020=y +CONFIG_MACH_IGEP0030=y +CONFIG_MACH_NOKIA_RM680=y +CONFIG_MACH_NOKIA_RX51=y +# CONFIG_MACH_OMAP3517EVM is not set +CONFIG_MACH_OMAP3530_LV_SOM=y +CONFIG_MACH_OMAP3EVM=y +CONFIG_MACH_OMAP3_BEAGLE=y +CONFIG_MACH_OMAP3_PANDORA=y +CONFIG_MACH_OMAP3_TORPEDO=y +CONFIG_MACH_OMAP3_TOUCHBOOK=y +CONFIG_MACH_OMAP3_WESTBRIDGE_AST_PNAND_HAL=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_FLOPPY=m +CONFIG_MAC_PARTITION=y +CONFIG_MADGEMC=m +CONFIG_MAGIC_SYSRQ=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_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_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_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_TDA18218=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_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_CS5535=m +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_MC13783=m +CONFIG_MFD_MC13XXX=m +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set +CONFIG_MFD_STMPE=y +CONFIG_MFD_SUPPORT=y +CONFIG_MFD_TC3589X=y +CONFIG_MFD_TIMBERDALE=m +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_VX855=m +CONFIG_MFD_WM831X=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_MFD_WM831X_SPI=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_MIGHT_HAVE_PCI=y +CONFIG_MIGRATION=y +CONFIG_MII=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_BLOCK_BOUNCE=y +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_CB710=m +# CONFIG_MMC_CLKGATE is not set +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_OMAP=m +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_RICOH_MMC=y +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_TMIO is not set +# CONFIG_MMC_UNSAFE_RESUME is not set +CONFIG_MMC_USHC=m +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_MPENTIUM4 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +CONFIG_MPIC=y +CONFIG_MPIC_BROKEN_REGREAD=y +# CONFIG_MPIC_WEIRD is not set +# CONFIG_MPSC is not set +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +# CONFIG_MSI_BITMAP_SELFTEST is not set +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_FSL_ELBC 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_PASEMI is not set +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_OF_PARTS=y +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_PHYSMAP_OF=m +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_MV643XX_ETH=m +# 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_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_KM=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_CPU=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_IPVS=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_CHECKSUM=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_IDLETIMER=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_PHY_TIMESTAMPING is not set +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_CSUM=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_IPGRE_DEMUX=m +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_NFC_DEVICES=y +CONFIG_NFSD=m +CONFIG_NFSD_DEPRECATED=y +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_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +# CONFIG_NFS_USE_NEW_IDMAPPER is not set +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_V4_1 is not set +CONFIG_NFTL_RW=y +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CT_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_DEFRAG_IPV6=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="utf8" +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_NODES_SPAN_OTHER_NODES=y +# CONFIG_NOHIGHMEM is not set +CONFIG_NOP_TRACER=y +CONFIG_NORTEL_HERMES=m +CONFIG_NOZOMI=m +CONFIG_NO_BOOTMEM=y +CONFIG_NR_IRQS=512 +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_NTP_PPS is not set +CONFIG_NUMA=y +# CONFIG_NUMA_EMU is not set +CONFIG_NV_TCO=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_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_DEVICE=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_IRQ=y +CONFIG_OF_MDIO=y +CONFIG_OF_NET=y +CONFIG_OF_PROMTREE=y +CONFIG_OF_SPI=y +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_OLPC=y +CONFIG_OLPC_OPENFIRMWARE=y +CONFIG_OLPC_OPENFIRMWARE_DT=y +CONFIG_OLPC_XO1=m +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=m +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_MCBSP=y +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_SMARTREFLEX is not set +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_P54_COMMON=m +CONFIG_P54_LEDS=y +CONFIG_P54_PCI=m +CONFIG_P54_SPI=m +# CONFIG_P54_SPI_DEFAULT_EEPROM is not set +CONFIG_P54_USB=m +CONFIG_PACKARDBELL_E5=m +CONFIG_PACKET=y +CONFIG_PADATA=y +CONFIG_PAGEFLAGS_EXTENDED=y +# CONFIG_PAGE_POISONING is not set +CONFIG_PANASONIC_LAPTOP=m +CONFIG_PANEL_ACX565AKM=m +# CONFIG_PANEL_CHANGE_MESSAGE is not set +CONFIG_PANEL_NEC_NL8048HL11_01B=m +CONFIG_PANEL_PARPORT=0 +CONFIG_PANEL_PROFILE=5 +CONFIG_PANEL_SHARP_LS037V7DW01=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_PASEMI_MAC is not set +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_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_MACIO=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OF_PLATFORM=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_PLATFORM=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_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_PCH_CAN=m +CONFIG_PCH_DMA=m +CONFIG_PCH_GBE=m +CONFIG_PCH_PHUB=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 is not set +# 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_MMCONFIG=y +CONFIG_PCI_MSI=y +CONFIG_PCI_OLPC=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCI_XEN=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_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_PERF_COUNTERS=y +CONFIG_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PHANTOM=m +CONFIG_PHONE=m +CONFIG_PHONET=m +# CONFIG_PHONET_PIPECTRLR is not set +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m +CONFIG_PHYLIB=y +# CONFIG_PHYP_DUMP is not set +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_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_ADVANCED_DEBUG is not set +CONFIG_PM_OPP=y +CONFIG_PM_OPS=y +CONFIG_PM_RUNTIME=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PM_TEST_SUSPEND=y +CONFIG_PM_TRACE=y +CONFIG_PM_TRACE_RTC=y +# CONFIG_PM_VERBOSE is not set +CONFIG_PN544_NFC=m +CONFIG_PNP=y +CONFIG_PNPACPI=y +CONFIG_PNPBIOS=y +CONFIG_PNPBIOS_PROC_FS=y +CONFIG_PNP_DEBUG_MESSAGES=y +CONFIG_POHMELFS_CRYPTO=y +# CONFIG_POHMELFS_DEBUG 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_DEBUG is not set +CONFIG_PPC=y +CONFIG_PPC32=y +# CONFIG_PPC601_SYNC_FIX 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_MPC512x is not set +# CONFIG_PPC_MPC52xx is not set +CONFIG_PPC_MSI_BITMAP=y +CONFIG_PPC_NATIVE=y +CONFIG_PPC_OF=y +CONFIG_PPC_OF_BOOT_TRAMPOLINE=y +# CONFIG_PPC_OF_PLATFORM_PCI is not set +CONFIG_PPC_PASEMI=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_STD_MMU=y +CONFIG_PPC_STD_MMU_32=y +CONFIG_PPC_STD_MMU_64=y +CONFIG_PPC_SUBPAGE_PROT=y +CONFIG_PPC_UDBG_16550=y +CONFIG_PPDEV=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_CLIENT_PARPORT=m +# CONFIG_PPS_DEBUG is not set +CONFIG_PPTP=m +# CONFIG_PQ2ADS is not set +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_NOTIFIERS=y +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +CONFIG_PRINT_STACK_DEPTH=64 +CONFIG_PRISM2_USB=m +CONFIG_PRISM54=m +CONFIG_PROCESSOR_SELECT=y +CONFIG_PROC_DEVICETREE=y +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_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_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_R8712U=m +# CONFIG_R8712_AP is not set +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_CADET=m +CONFIG_RADIO_GEMTEK=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_WL1273=m +CONFIG_RADIO_ZOLTRIX=m +CONFIG_RAID6_PQ=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMOOPS=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_CORE=m +CONFIG_RC_LOOPBACK=m +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_RD_XZ=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_AB8500=y +CONFIG_REGULATOR_AD5398=m +CONFIG_REGULATOR_BQ24022=m +CONFIG_REGULATOR_DA903X=m +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_ISL6271A=m +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_LP3972=m +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8925=m +CONFIG_REGULATOR_MAX8952=m +CONFIG_REGULATOR_MAX8998=m +CONFIG_REGULATOR_MC13783=m +CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_MC13XXX_CORE=m +# CONFIG_REGULATOR_PCAP is not set +CONFIG_REGULATOR_PCF50633=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS6524X=m +CONFIG_REGULATOR_TPS6586X=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=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_RPS=y +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT2500USB=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +# 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_RTAS_ERROR_LOGGING=y +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_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_DS3232=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_GENERIC=m +CONFIG_RTC_DRV_ISL12022=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_MAX8998=m +CONFIG_RTC_DRV_MC13XXX=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_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_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 is not set +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_RTL8192SE=m +CONFIG_RTL8192U=m +CONFIG_RTLWIFI=m +# CONFIG_RTS_PSTOR_DEBUG is not set +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_ACARD_AHCI=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_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_2T3E3=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_SCHED_AUTOGROUP=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_CXGB4_ISCSI=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DEBUG=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_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_IBMVFC_TRACE=y +CONFIG_SCSI_IMM=m +CONFIG_SCSI_IN2000=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +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_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=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_PROC_FS=y +CONFIG_SCSI_QLA_FC=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_DMESG_RESTRICT is not set +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_AMS=m +CONFIG_SENSORS_AMS_I2C=y +CONFIG_SENSORS_AMS_PMU=y +CONFIG_SENSORS_APDS990X=m +CONFIG_SENSORS_APPLESMC=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATK0110=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=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_GPIO_FAN=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_HMC5843=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_ISL29018=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=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_LTC4261=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_SHT21=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMM665=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_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +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_NR_UARTS=48 +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_RUNTIME_UARTS=32 +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_GRLIB_GAISLER_APBUART=m +# CONFIG_SERIAL_ICOM is not set +# CONFIG_SERIAL_IFX6X60 is not set +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_MAX3100=m +CONFIG_SERIAL_MAX3107=m +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_MRST_MAX3110=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_OF_PLATFORM=m +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_PMACZILOG_CONSOLE=y +# CONFIG_SERIAL_PMACZILOG_TTYS is not set +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_PS2MULT=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_XILINX_XPS_PS2=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_SIMPLE_GPIO=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_SLICOSS=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB 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_SMSC37B787_WDT=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_SMSC9420=m +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMS_SDIO_DRV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_USB_DRV=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_ALOOP=m +CONFIG_SND_ALS100=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_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_AZT1605=m +CONFIG_SND_AZT2316=m +CONFIG_SND_AZT2320=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +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_CA0110=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_HDMI=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_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_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_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_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_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_SIS7019=m +CONFIG_SND_SOC_88PM860X=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_ALC5623=m +CONFIG_SND_SOC_ALL_CODECS=m +# CONFIG_SND_SOC_CACHE_LZO is not set +CONFIG_SND_SOC_CS4270=m +CONFIG_SND_SOC_CS42L51=m +CONFIG_SND_SOC_CX20442=m +CONFIG_SND_SOC_DA7210=m +CONFIG_SND_SOC_L3=m +CONFIG_SND_SOC_MAX98088=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_WL1273=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_WM8737=m +CONFIG_SND_SOC_WM8741=m +CONFIG_SND_SOC_WM8750=m +CONFIG_SND_SOC_WM8753=m +CONFIG_SND_SOC_WM8770=m +CONFIG_SND_SOC_WM8776=m +CONFIG_SND_SOC_WM8804=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_WM8962=m +CONFIG_SND_SOC_WM8971=m +CONFIG_SND_SOC_WM8974=m +CONFIG_SND_SOC_WM8978=m +CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_WM8988=m +CONFIG_SND_SOC_WM8990=m +CONFIG_SND_SOC_WM8993=m +CONFIG_SND_SOC_WM8994=m +CONFIG_SND_SOC_WM8995=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_IMX074=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_OV2640=m +CONFIG_SOC_CAMERA_OV6650=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_SOLO6X10 is not set +CONFIG_SONYPI=m +CONFIG_SONYPI_COMPAT=y +CONFIG_SONY_LAPTOP=m +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +# CONFIG_SOUND_PRIME is not set +CONFIG_SP5100_TCO=m +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_RCU_POINTER is not set +CONFIG_SPEAKUP=m +CONFIG_SPEAKUP_SYNTH_ACNTPC=m +CONFIG_SPEAKUP_SYNTH_ACNTSA=m +CONFIG_SPEAKUP_SYNTH_APOLLO=m +CONFIG_SPEAKUP_SYNTH_AUDPTR=m +CONFIG_SPEAKUP_SYNTH_BNS=m +CONFIG_SPEAKUP_SYNTH_DECEXT=m +CONFIG_SPEAKUP_SYNTH_DECPC=m +CONFIG_SPEAKUP_SYNTH_DECTLK=m +CONFIG_SPEAKUP_SYNTH_DTLK=m +CONFIG_SPEAKUP_SYNTH_DUMMY=m +CONFIG_SPEAKUP_SYNTH_KEYPC=m +CONFIG_SPEAKUP_SYNTH_LTLK=m +CONFIG_SPEAKUP_SYNTH_SOFT=m +CONFIG_SPEAKUP_SYNTH_SPKOUT=m +CONFIG_SPEAKUP_SYNTH_TXPRT=m +CONFIG_SPECIALIX=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_DW_MID_DMA=y +# 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_PXA2XX=m +CONFIG_SPI_TLE62X0=m +CONFIG_SPI_TOPCLIFF_PCH=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_LZO=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=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_POSSIBLE=y +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +# CONFIG_SSB_SILENT is not set +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_STMMAC_DA is not set +# CONFIG_STMMAC_DUAL_MAC is not set +CONFIG_STMMAC_ETH=m +CONFIG_STOP_MACHINE=y +CONFIG_STP=m +CONFIG_STRICT_DEVMEM=y +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_STUB_POULSBO=m +CONFIG_ST_BT=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_SUN_PARTITION=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SWAP=y +CONFIG_SWIOTLB=y +CONFIG_SWIOTLB_XEN=y +# CONFIG_SWP_EMULATE is not set +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 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_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_HANWANG=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TARGET_CORE=m +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_TC1100_WMI=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_NSC=m +CONFIG_TCIC=m +CONFIG_TCM_FILEIO=m +CONFIG_TCM_IBLOCK=m +CONFIG_TCM_PSCSI=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_KSTRTOX=m +# CONFIG_TEST_LIST_SORT is not set +CONFIG_TEST_POWER=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_THERMAL_HWMON=y +CONFIG_THERM_ADT746X=m +CONFIG_THERM_PM72=m +CONFIG_THERM_WINDTUNNEL=m +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_TIDSPBRIDGE is not set +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=y +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_TI_DAC7512=m +CONFIG_TI_DAVINCI_CPDMA=m +# CONFIG_TI_DAVINCI_EMAC is not set +CONFIG_TI_DAVINCI_MDIO=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_AD7879_SPI=m +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_BU21013=m +CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m +CONFIG_TOUCHSCREEN_CY8CTMG110=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_QT602240=m +CONFIG_TOUCHSCREEN_ST1232=m +CONFIG_TOUCHSCREEN_STMPE=m +CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=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_TC45USB=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_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_TRANSPARENT_HUGEPAGE is not set +CONFIG_TREE_RCU=y +# CONFIG_TREE_RCU_TRACE is not set +CONFIG_TRUSTED_KEYS=m +CONFIG_TTY_PRINTK=y +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_NAPI is not set +# CONFIG_TUNE_CELL is not set +CONFIG_TWL4030_CODEC=y +CONFIG_TWL4030_POWER=y +CONFIG_TWL4030_WATCHDOG=m +CONFIG_TWL6030_PWM=m +CONFIG_TWL6030_USB=m +CONFIG_TYPHOON=m +CONFIG_U3_DART=y +# 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_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_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_BIG_ENDIAN_DESC=y +CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y +CONFIG_USB_EHCI_HCD_OMAP=y +CONFIG_USB_EHCI_HCD_PPC_OF=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_ENESTORAGE=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_CI13XXX_PCI 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_EG20T is not set +# CONFIG_USB_GADGET_LANGWELL is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA_U2O is not set +# CONFIG_USB_GADGET_R8A66597 is not set +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GL860=m +CONFIG_USB_GOKU=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_KONICA=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_SPCA1528=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_SQ930X=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_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_G_DBGP=m +# CONFIG_USB_G_DBGP_PRINTK is not set +CONFIG_USB_G_DBGP_SERIAL=y +CONFIG_USB_G_HID=m +CONFIG_USB_G_MULTI_CDC=y +CONFIG_USB_G_MULTI_RNDIS=y +CONFIG_USB_G_NCM=m +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_IDMOUSE=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_IPHETH=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_KBD=m +CONFIG_USB_KC2190=y +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +# CONFIG_USB_LIBUSUAL is not set +CONFIG_USB_M5602=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_MOUSE=m +CONFIG_USB_MR800=m +# CONFIG_USB_MUSB_AM35X is not set +# 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_NET2280=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_CX82310_ETH=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_HCD_OMAP3=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_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_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_SAMBA=m +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SSU100=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_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_UAS=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_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_YUREX=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_WHCI=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_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=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_AK881X=m +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_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_CX231XX_RC=y +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_CX23885=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_DM6446_CCDC=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_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_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_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_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_SAA7164=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SH_MOBILE_CEU=m +CONFIG_VIDEO_SH_MOBILE_CSI2=m +CONFIG_VIDEO_SR030PC30=m +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TVP7002=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_VIA_CAMERA=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_VPFE_CAPTURE=m +CONFIG_VIDEO_VPSS_SYSTEM=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_BALLOON=m +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTUALIZATION=y +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_VIRT_TO_BUS=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLSI_FIR=m +CONFIG_VM86=y +CONFIG_VME_USER=m +CONFIG_VMIVME_7805=m +# CONFIG_VMSPLIT_1G is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_2G_OPT is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +CONFIG_VMWARE_BALLOON=m +CONFIG_VMWARE_PVSCSI=m +CONFIG_VMXNET3=m +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VORTEX=m +CONFIG_VSX=y +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_DS2423=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_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_WATCHDOG_RTAS=m +CONFIG_WD80x3=m +CONFIG_WDT=m +CONFIG_WDTPCI=m +CONFIG_WESTBRIDGE=m +# CONFIG_WESTBRIDGE_ASTORIA is not set +# CONFIG_WESTBRIDGE_DEBUG is not set +CONFIG_WESTBRIDGE_HAL_SELECTED=y +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_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_WL12XX=m +# CONFIG_WL12XX_HT is not set +CONFIG_WL12XX_MENU=m +CONFIG_WL12XX_PLATFORM_DATA=y +CONFIG_WL12XX_SDIO=m +# CONFIG_WL12XX_SDIO_TEST is not set +CONFIG_WL12XX_SPI=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_X25=m +CONFIG_X86=y +CONFIG_X86_32_IRIS=m +# 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=64 +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_BACKEND=y +CONFIG_XEN_BALLOON=y +CONFIG_XEN_COMPAT_XENFS=y +# CONFIG_XEN_DEBUG_FS is not set +CONFIG_XEN_DEV_EVTCHN=m +CONFIG_XEN_DOM0=y +CONFIG_XEN_FBDEV_FRONTEND=m +CONFIG_XEN_GNTDEV=m +CONFIG_XEN_KBDDEV_FRONTEND=m +CONFIG_XEN_MAX_DOMAIN_MEMORY=128 +CONFIG_XEN_PCIDEV_FRONTEND=m +CONFIG_XEN_PLATFORM_PCI=m +CONFIG_XEN_PVHVM=y +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_XICS=y +CONFIG_XILINX_EMACLITE=m +CONFIG_XILINX_LL_TEMAC=m +# CONFIG_XIP_KERNEL is not set +# CONFIG_XMON is not set +CONFIG_XO1_RFKILL=m +CONFIG_XOR_BLOCKS=m +CONFIG_XPS=y +CONFIG_XPS_USB_HCD_XILINX=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_TEST=m +CONFIG_XZ_DEC_X86=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_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 +CONFIG_ZRAM=m --- linux-2.6.38.orig/debian.master/config/config.common.ports +++ linux-2.6.38/debian.master/config/config.common.ports @@ -0,0 +1 @@ + --- linux-2.6.38.orig/debian.master/config/enforce +++ linux-2.6.38/debian.master/config/enforce @@ -0,0 +1,77 @@ +# +# 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_DEBUG_SET_MODULE_RONX | value CONFIG_DEBUG_SET_MODULE_RONX 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 on ARM, 65536 for everything else. +( ( arch armel | arch armhf ) & 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 +!exists CONFIG_SYSFS_DEPRECATED_V2 | 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 +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 + +# upstart relies on getting all of the kernel arguments +value CONFIG_INIT_PASS_ALL_PARAMS y + +# Enabling CONFIG_IMA is vastly expensive, ensure it is off +value CONFIG_IMA n + +# Ensure CONFIG_INTEL_IDLE is turned off for -virtual. +!exists CONFIG_INTEL_IDLE | \ + (flavour virtual & value CONFIG_INTEL_IDLE n) | \ + value CONFIG_INTEL_IDLE y + +# Ensure CONFIG_IPV6 is y, if this is a module we get a module load for +# every ipv6 packet, bad. +value CONFIG_IPV6 y --- linux-2.6.38.orig/debian.master/config/powerpc/config.flavour.powerpc-smp +++ linux-2.6.38/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_DMA_ADDR_T_64BIT is not set +# 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_CRASH_DUMP is not set +CONFIG_CRYPTO_LZO=m +CONFIG_FB_ATY=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +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_MAX_ACTIVE_REGIONS=32 +# CONFIG_MMIO_NVRAM is not set +# CONFIG_MPIC_U3_HT_IRQS 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_QLA_ISCSI is not set +CONFIG_SMP=y +# CONFIG_TPS65010 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.38.orig/debian.master/config/powerpc/config.flavour.powerpc64-smp +++ linux-2.6.38/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_DMA_ADDR_T_64BIT=y +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_CRASH_DUMP=y +CONFIG_CRYPTO_LZO=y +CONFIG_FB_ATY=m +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_SYS_IMAGEBLIT=y +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_MAX_ACTIVE_REGIONS=256 +CONFIG_MMIO_NVRAM=y +CONFIG_MPIC_U3_HT_IRQS=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_QLA_ISCSI=m +CONFIG_SMP=y +# CONFIG_TPS65010 is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_GADGET_GOKU is not set +CONFIG_USB_GADGET_NET2280=y +CONFIG_WORD_SIZE=64 --- linux-2.6.38.orig/debian.master/config/powerpc/config.flavour.powerpc +++ linux-2.6.38/debian.master/config/powerpc/config.flavour.powerpc @@ -0,0 +1,48 @@ +# +# Config options for config.flavour.powerpc automatically generated by splitconfig.pl +# +# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set +# 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_CRASH_DUMP is not set +CONFIG_CRYPTO_LZO=m +CONFIG_FB_ATY=y +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +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_MAX_ACTIVE_REGIONS=32 +# CONFIG_MMIO_NVRAM is not set +# CONFIG_MPIC_U3_HT_IRQS 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_RISCOM8=m +CONFIG_SCHEDSTATS=y +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SMP is not set +CONFIG_TPS65010=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.38.orig/debian.master/config/powerpc/config.common.powerpc +++ linux-2.6.38/debian.master/config/powerpc/config.common.powerpc @@ -0,0 +1,417 @@ +# +# Config options for config.common.powerpc automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +# CONFIG_ALIM7101_WDT is not set +CONFIG_APM_EMULATION=m +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SUPPORTS_MSI=y +# CONFIG_ASUS_OLED is not set +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ATALK=m +CONFIG_ATA_GENERIC=m +CONFIG_ATA_PIIX=m +CONFIG_ATM=m +# CONFIG_ATM_BR2684_IPFILTER is not set +# CONFIG_ATM_DUMMY is not set +CONFIG_AUDIT_ARCH=y +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_B43=m +CONFIG_B43LEGACY=m +CONFIG_B44=m +# CONFIG_BLK_DEV_DRBD is not set +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BRCMFMAC is not set +CONFIG_BROADCOM_PHY=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_CHR_DEV_SG=m +CONFIG_CICADA_PHY=m +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_COMEDI is not set +# CONFIG_COMPACTION is not set +CONFIG_CPU_FREQ_STAT=m +CONFIG_CRC_T10DIF=m +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_DEV_HIFN_795X is not set +# CONFIG_CRYPTO_GCM is not set +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEQIV is not set +# CONFIG_DAB is not set +CONFIG_DAVICOM_PHY=m +# CONFIG_DEBUG_INFO is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DISPLAY_SUPPORT=m +CONFIG_DL2K=m +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +# CONFIG_DM_RAID45 is not set +CONFIG_DM_SNAPSHOT=m +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_RADEON=m +# CONFIG_DRM_RADEON_KMS is not set +# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +# CONFIG_DVB_USB_EC168 is not set +# CONFIG_ECHO is not set +# CONFIG_EDAC_CPC925 is not set +# CONFIG_EDAC_PASEMI is not set +# CONFIG_ET131X is not set +# CONFIG_EZX_PCAP is not set +CONFIG_FB_3DFX=y +CONFIG_FB_ATY128=m +CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_DDC=y +CONFIG_FB_MACMODES=y +CONFIG_FB_MATROX=m +CONFIG_FB_RADEON=m +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_UDL is not set +CONFIG_FB_UVESA=m +# CONFIG_FB_VGA16 is not set +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_FONTS is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FSAM7400 is not set +CONFIG_FTL=m +CONFIG_FUNCTION_TRACER=y +# CONFIG_GENERIC_IOMAP is not set +# CONFIG_GENERIC_IRQ_PROBE is not set +# CONFIG_GENERIC_PENDING_IRQ is not set +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GPIO_JANZ_TTL=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_PCH=m +# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_VX855=m +# CONFIG_HARDIRQS_SW_RESEND is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HIGHMEM=y +CONFIG_HIGH_RES_TIMERS=y +# CONFIG_HOTPLUG_PCI is not set +# CONFIG_HVC_CONSOLE is not set +CONFIG_HWMON=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_I801=m +# CONFIG_I2C_PASEMI is not set +# CONFIG_IBMEBUS is not set +# CONFIG_IBMVETH is not set +# CONFIG_IBM_BSR is not set +CONFIG_ICPLUS_PHY=m +CONFIG_IDE=y +# CONFIG_IDE_PHISON is not set +# CONFIG_IGB is not set +# CONFIG_IIO is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_IOMMU_HELPER=y +CONFIG_IPMI_HANDLER=m +CONFIG_IRDA=m +# CONFIG_IRQ_ALL_CPUS is not set +CONFIG_IRQ_PER_CPU=y +# CONFIG_ISA is not set +CONFIG_ISDN=y +# CONFIG_IWL3945 is not set +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KSM=y +CONFIG_KVM=y +# CONFIG_KVM_BOOK3S_64 is not set +CONFIG_LAPBETHER=m +# CONFIG_LEDS_GPIO is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LIBERTAS_MESH=y +# CONFIG_LIBIPW_DEBUG is not set +# CONFIG_LINE6_USB is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_LPARCFG is not set +CONFIG_LSI_ET1011C_PHY=m +CONFIG_LXT_PHY=m +CONFIG_LZO_COMPRESS=y +CONFIG_MACH_NO_WESTBRIDGE=y +CONFIG_MANTIS_CORE=m +CONFIG_MARVELL_PHY=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_MEMORY_HOTPLUG=y +# CONFIG_MEMORY_HOTREMOVE is not set +CONFIG_MEMSTICK=m +CONFIG_MFD_JANZ_CMODIO=m +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MMC=m +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOXA_SMARTIO is not set +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_NATIONAL_PHY=m +# 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_NODES_SHIFT=8 +CONFIG_NOP_USB_XCEIV=m +CONFIG_NO_HZ=y +CONFIG_NVRAM=y +# CONFIG_PANEL is not set +CONFIG_PANEL_GENERIC_DPI=m +CONFIG_PARPORT=m +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +CONFIG_PATA_SIS=m +CONFIG_PCCARD=m +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_STUB is not set +CONFIG_PCI_SYSCALL=y +CONFIG_PDC_ADMA=m +CONFIG_PHYSICAL_START=0x00000000 +# CONFIG_PM_DEBUG is not set +# CONFIG_POHMELFS is not set +CONFIG_POWER_SUPPLY=y +CONFIG_PPC_4K_PAGES=y +# CONFIG_PPC_64K_PAGES is not set +# CONFIG_PPC_SMLPAR is not set +# CONFIG_PPC_SPLPAR is not set +CONFIG_PPP=m +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PSERIES_ENERGY=m +CONFIG_QSEMI_PHY=m +CONFIG_R3964=m +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +CONFIG_RFD_FTL=m +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +# CONFIG_RTAS_FLASH is not set +CONFIG_RTC_DRV_CMOS=m +# CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTL8192CE=m +# CONFIG_RTL8192E is not set +# CONFIG_RTS_PSTOR is not set +CONFIG_SATA_SVW=y +# CONFIG_SCANLOG is not set +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_DH=m +# CONFIG_SCSI_IBMVFC is not set +# CONFIG_SCSI_IBMVSCSI is not set +# CONFIG_SCSI_IBMVSCSIS is not set +# CONFIG_SCSI_IPR is not set +CONFIG_SCSI_ISCSITARGET=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_PCI=m +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIAL_UARTLITE=m +# CONFIG_SLAB is not set +CONFIG_SLHC=m +CONFIG_SLIP=m +CONFIG_SLUB=y +CONFIG_SMSC_PHY=m +# CONFIG_SM_FTL is not set +CONFIG_SND=m +CONFIG_SND_ALI5451=m +CONFIG_SND_BT87X_OVERCLOCK=y +CONFIG_SND_EMU10K1_SEQ=m +# CONFIG_SND_HIFIER is not set +# 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_SPARSE_IRQ=y +CONFIG_SPI=y +CONFIG_SPI_DESIGNWARE=y +# CONFIG_SPI_PXA2XX_PCI is not set +CONFIG_SPI_SPIDEV=m +CONFIG_SSB_B43_PCI_BRIDGE=y +# CONFIG_SSB_PCMCIAHOST is not set +# CONFIG_STACK_TRACER is not set +CONFIG_STANDALONE=y +CONFIG_STE10XP=m +CONFIG_SUNGEM=m +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_TABLET_USB_WACOM is not set +# CONFIG_TCG_TIS is not set +CONFIG_TCG_TPM=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_THERMAL=y +# CONFIG_TRANZPORT is not set +CONFIG_TTPCI_EEPROM=m +CONFIG_TUN=y +CONFIG_TWL4030_CORE=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_DUMMY_HCD is not set +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_INVENTRA_DMA is not set +# CONFIG_USB_IP_COMMON is not set +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_MON=y +# CONFIG_USB_MUSB_OMAP2PLUS is not set +CONFIG_USB_MUSB_TUSB6010=y +CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set +# CONFIG_USB_OTG is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +# CONFIG_USB_SI470X is not set +CONFIG_USB_SN9C102=m +CONFIG_USB_UHCI_HCD=y +CONFIG_VGASTATE=m +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_VGA_CONSOLE=y +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_ADV7343=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_CPIA=m +# CONFIG_VIDEO_CX25821 is not set +CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_MT9V011=m +# CONFIG_VIDEO_MXB is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_SAA7191=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_TLV320AIC23B=m +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TVP514X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m +CONFIG_VITESSE_PHY=m +# CONFIG_VME_BUS is not set +# CONFIG_VT6656 is not set +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_W35UND is not set +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_ASY=m +CONFIG_ZONE_DMA_FLAG=1 --- linux-2.6.38.orig/debian.master/config/ppc64/config.flavour.powerpc64-smp +++ linux-2.6.38/debian.master/config/ppc64/config.flavour.powerpc64-smp @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.powerpc64-smp automatically generated by splitconfig.pl +# --- linux-2.6.38.orig/debian.master/config/ppc64/config.common.ppc64 +++ linux-2.6.38/debian.master/config/ppc64/config.common.ppc64 @@ -0,0 +1,460 @@ +# +# Config options for config.common.ppc64 automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +# CONFIG_ALIM7101_WDT is not set +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_NO_VIRT_TO_BUS=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SUPPORTS_MSI=y +# CONFIG_ASUS_OLED is not set +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ATALK=m +CONFIG_ATA_GENERIC=m +CONFIG_ATA_NONSTANDARD=y +CONFIG_ATA_PIIX=m +CONFIG_ATM=m +# CONFIG_ATM_BR2684_IPFILTER is not set +# CONFIG_ATM_DUMMY is not set +CONFIG_AUDIT_ARCH=y +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_B43=m +CONFIG_B43LEGACY=m +CONFIG_B44=m +# CONFIG_BLK_DEV_DRBD is not set +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SR_VENDOR=y +# CONFIG_BRCMFMAC is not set +CONFIG_BROADCOM_PHY=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_CHR_DEV_SG=m +CONFIG_CICADA_PHY=m +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_COMEDI is not set +CONFIG_COMPACTION=y +CONFIG_CPU_FREQ_STAT=m +CONFIG_CRASH_DUMP=y +CONFIG_CRC_T10DIF=m +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_DEV_HIFN_795X is not set +# CONFIG_CRYPTO_GCM is not set +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_LZO=y +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEQIV is not set +# CONFIG_DAB is not set +CONFIG_DAVICOM_PHY=m +# CONFIG_DEBUG_INFO is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DISPLAY_SUPPORT=m +CONFIG_DL2K=m +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +# CONFIG_DM_RAID45 is not set +CONFIG_DM_SNAPSHOT=m +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_KMS=y +# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +# CONFIG_DVB_USB_EC168 is not set +# CONFIG_ECHO is not set +CONFIG_EDAC_CPC925=m +CONFIG_EDAC_PASEMI=m +# CONFIG_ET131X is not set +# CONFIG_EZX_PCAP is not set +CONFIG_FB_3DFX=y +CONFIG_FB_ATY=y +CONFIG_FB_ATY128=y +CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_DDC=y +CONFIG_FB_MACMODES=y +CONFIG_FB_MATROX=y +CONFIG_FB_RADEON=y +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_SYS_IMAGEBLIT=y +CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_UDL is not set +CONFIG_FB_UVESA=m +# CONFIG_FB_VGA16 is not set +CONFIG_FB_VIRTUAL=m +CONFIG_FB_VOODOO1=y +CONFIG_FIRMWARE_EDID=y +# CONFIG_FONTS is not set +CONFIG_FORCE_MAX_ZONEORDER=9 +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FSAM7400 is not set +CONFIG_FTL=m +CONFIG_FUNCTION_TRACER=y +# CONFIG_GENERIC_IOMAP is not set +# CONFIG_GENERIC_IRQ_PROBE is not set +# CONFIG_GENERIC_PENDING_IRQ is not set +CONFIG_GENERIC_TBSYNC=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_PCH=m +# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_VX855=m +# CONFIG_HARDIRQS_SW_RESEND is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HOTPLUG_PCI=y +# CONFIG_HOTPLUG_PCI_CPCI is not set +# CONFIG_HOTPLUG_PCI_FAKE is not set +CONFIG_HP_ILO=m +CONFIG_HUGETLB_PAGE=y +CONFIG_HVC_CONSOLE=y +CONFIG_HWMON=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +CONFIG_I2C_ALGOBIT=y +# CONFIG_I2C_GPIO is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_I801=m +CONFIG_I2C_PASEMI=m +CONFIG_IBMEBUS=y +CONFIG_IBMVETH=m +CONFIG_IBM_BSR=y +CONFIG_ICPLUS_PHY=m +CONFIG_IDE=y +# CONFIG_IDE_PHISON is not set +# CONFIG_IGB is not set +# CONFIG_IIO is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_IOMMU_HELPER=y +CONFIG_IPMI_HANDLER=m +CONFIG_IRDA=m +CONFIG_IRQ_ALL_CPUS=y +CONFIG_IRQ_PER_CPU=y +CONFIG_ISDN=y +# CONFIG_IWL3945 is not set +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_KERNEL_START=0xc000000000000000 +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KGDB=y +CONFIG_KSM=y +CONFIG_KVM=y +CONFIG_KVM_BOOK3S_64=y +CONFIG_LAPBETHER=m +CONFIG_LATENCYTOP=y +# CONFIG_LEDS_GPIO is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LIBERTAS_MESH=y +# CONFIG_LIBIPW_DEBUG is not set +# CONFIG_LINE6_USB is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOG_BUF_SHIFT=19 +CONFIG_LPARCFG=y +CONFIG_LSI_ET1011C_PHY=m +CONFIG_LXT_PHY=m +CONFIG_LZO_COMPRESS=y +CONFIG_MACH_NO_WESTBRIDGE=y +CONFIG_MANTIS_CORE=m +CONFIG_MARVELL_PHY=m +CONFIG_MAX_ACTIVE_REGIONS=256 +CONFIG_MAX_RAW_DEVS=8192 +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MEMSTICK=m +CONFIG_MFD_JANZ_CMODIO=m +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MMC=m +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMIO_NVRAM=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOXA_SMARTIO is not set +CONFIG_MPIC_U3_HT_IRQS=y +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_NATIONAL_PHY=m +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=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_NODES_SHIFT=8 +CONFIG_NOP_USB_XCEIV=m +CONFIG_NO_HZ=y +CONFIG_NR_CPUS=1024 +CONFIG_PAGE_OFFSET=0xc000000000000000 +# CONFIG_PANEL is not set +CONFIG_PARPORT=m +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +CONFIG_PATA_SIS=m +CONFIG_PCCARD=m +CONFIG_PCI_IOV=y +CONFIG_PCI_STUB=y +CONFIG_PCI_SYSCALL=y +CONFIG_PDC_ADMA=m +CONFIG_PHYSICAL_START=0x00000000 +CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_PM_DEBUG is not set +# CONFIG_POHMELFS is not set +CONFIG_POWER_SUPPLY=m +CONFIG_PPC64=y +# CONFIG_PPC_4K_PAGES is not set +CONFIG_PPC_64K_PAGES=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_PPC_SMLPAR=y +CONFIG_PPC_SPLPAR=y +CONFIG_PPP=m +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PSERIES_ENERGY=y +CONFIG_QSEMI_PHY=m +CONFIG_R3964=m +CONFIG_RCU_FANOUT=64 +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +CONFIG_RFD_FTL=m +CONFIG_RISCOM8=m +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTAS_FLASH=y +CONFIG_RTC_DRV_CMOS=m +# CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTL8192CE=m +# CONFIG_RTL8192E is not set +# CONFIG_RTS_PSTOR is not set +CONFIG_SATA_SVW=y +CONFIG_SCANLOG=y +CONFIG_SCHEDSTATS=y +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_DH=m +CONFIG_SCSI_IBMVFC=m +CONFIG_SCSI_IBMVSCSI=m +CONFIG_SCSI_IBMVSCSIS=m +CONFIG_SCSI_IPR=m +CONFIG_SCSI_IPR_DUMP=y +CONFIG_SCSI_IPR_TRACE=y +CONFIG_SCSI_ISCSITARGET=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_PCI=m +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIAL_UARTLITE=m +# CONFIG_SLAB is not set +CONFIG_SLHC=m +CONFIG_SLIP=m +CONFIG_SLUB=y +CONFIG_SMP=y +CONFIG_SMSC_PHY=m +# CONFIG_SM_FTL is not set +CONFIG_SND=m +CONFIG_SND_ALI5451=m +CONFIG_SND_BT87X_OVERCLOCK=y +CONFIG_SND_EMU10K1_SEQ=m +# CONFIG_SND_HIFIER is not set +# 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_SPARSE_IRQ=y +CONFIG_SPI=y +CONFIG_SPI_DESIGNWARE=y +# CONFIG_SPI_PXA2XX_PCI is not set +CONFIG_SPI_SPIDEV=m +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_STACK_TRACER is not set +CONFIG_STANDALONE=y +CONFIG_STE10XP=m +CONFIG_SUNGEM=m +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_TABLET_USB_WACOM is not set +# CONFIG_TCG_TIS is not set +CONFIG_TCG_TPM=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_THERMAL=y +# CONFIG_TPS65010 is not set +# CONFIG_TRANZPORT is not set +CONFIG_TTPCI_EEPROM=m +CONFIG_TUN=y +CONFIG_TWL4030_CORE=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_DUALSPEED=y +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_GOKU is not set +CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_INVENTRA_DMA is not set +# CONFIG_USB_IP_COMMON is not set +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_MON=y +# CONFIG_USB_MUSB_OMAP2PLUS is not set +CONFIG_USB_MUSB_TUSB6010=y +CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PPC_OF_LE=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +# CONFIG_USB_SI470X is not set +CONFIG_USB_SN9C102=m +CONFIG_USB_UHCI_HCD=y +CONFIG_VGASTATE=m +CONFIG_VGA_ARB_MAX_GPUS=64 +CONFIG_VGA_CONSOLE=y +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_ADV7343=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_CPIA=m +# CONFIG_VIDEO_CX25821 is not set +CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_MT9V011=m +# CONFIG_VIDEO_MXB is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_SAA7191=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_TLV320AIC23B=m +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TVP514X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m +CONFIG_VITESSE_PHY=m +# CONFIG_VME_BUS is not set +# CONFIG_VT6656 is not set +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_W35UND is not set +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_WORD_SIZE=64 +CONFIG_X25_ASY=m +CONFIG_ZONE_DMA_FLAG=1 --- linux-2.6.38.orig/debian.master/config/amd64/config.common.amd64 +++ linux-2.6.38/debian.master/config/amd64/config.common.amd64 @@ -0,0 +1,447 @@ +# +# Config options for config.common.amd64 automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_AD7150=m +CONFIG_AD7152=m +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_ALIM7101_WDT=m +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +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_ASUS_OLED=m +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ATALK=m +CONFIG_ATA_GENERIC=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=y +CONFIG_ATM=m +# CONFIG_ATM_BR2684_IPFILTER is not set +# CONFIG_ATM_DUMMY is not set +CONFIG_AUDIT_ARCH=y +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_B43=m +CONFIG_B43LEGACY=m +CONFIG_B44=m +CONFIG_BLK_DEV_DRBD=m +CONFIG_BLK_DEV_MD=y +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BRCMFMAC is not set +CONFIG_BROADCOM_PHY=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=y +CONFIG_CFG80211_REG_DEBUG=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_CHR_DEV_SG=y +CONFIG_CICADA_PHY=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_CIFS_XATTR=y +CONFIG_COMEDI=m +CONFIG_COMPACTION=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CRASH_DUMP=y +CONFIG_CRC_T10DIF=y +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_LZO=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SEQIV=m +CONFIG_DAB=y +CONFIG_DAVICOM_PHY=y +CONFIG_DEBUG_INFO=y +CONFIG_DISPLAY_SUPPORT=m +# CONFIG_DL2K is not set +CONFIG_DM_MIRROR=y +CONFIG_DM_MULTIPATH=y +CONFIG_DM_RAID45=m +CONFIG_DM_SNAPSHOT=y +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_KMS=y +CONFIG_DT3155=m +# CONFIG_DVB_FE_CUSTOMISE is not set +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +# CONFIG_DVB_USB_EC168 is not set +CONFIG_ECHO=m +CONFIG_ET131X=m +# CONFIG_EZX_PCAP is not set +CONFIG_FB_3DFX=m +CONFIG_FB_ATY=m +CONFIG_FB_ATY128=m +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_DDC=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MATROX=m +CONFIG_FB_RADEON=m +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_UDL=m +CONFIG_FB_UVESA=m +CONFIG_FB_VGA16=m +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FIRMWARE_EDID=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_FONTS is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FSAM7400=m +CONFIG_FTL=m +CONFIG_FUNCTION_TRACER=y +CONFIG_GENERIC_CPU=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=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_PCH=m +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_VX855=m +# CONFIG_HARDIRQS_SW_RESEND is not set +# CONFIG_HAVE_AOUT is not set +CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HP_ILO=m +CONFIG_HUGETLB_PAGE=y +CONFIG_HWMON=y +CONFIG_HZ=100 +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_GPIO=m +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_I801=m +CONFIG_ICPLUS_PHY=y +# CONFIG_IDE is not set +CONFIG_IDE_PHISON=m +CONFIG_IGB=m +CONFIG_IIO=m +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INTEL_TXT=y +CONFIG_INTR_REMAP=y +CONFIG_IOMMU_HELPER=y +CONFIG_IPMI_HANDLER=m +CONFIG_IRDA=m +# CONFIG_IRQ_PER_CPU is not set +CONFIG_ISDN=y +CONFIG_IWL3945=m +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KGDB=y +CONFIG_KSM=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_KVM=m +CONFIG_LAPBETHER=m +CONFIG_LATENCYTOP=y +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LIBIPW_DEBUG=y +CONFIG_LINE6_USB=m +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_LSI_ET1011C_PHY=y +CONFIG_LXT_PHY=y +CONFIG_LZO_COMPRESS=y +# CONFIG_M686 is not set +CONFIG_MACH_NO_WESTBRIDGE=y +CONFIG_MANTIS_CORE=m +CONFIG_MARVELL_PHY=y +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_GPIO=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MEMSTICK=m +CONFIG_MFD_JANZ_CMODIO=m +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOXA_SMARTIO=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_NATIONAL_PHY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=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_NODES_SHIFT=6 +CONFIG_NOP_USB_XCEIV=m +CONFIG_NO_HZ=y +CONFIG_NVRAM=m +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_PANEL=m +CONFIG_PANEL_GENERIC_DPI=m +CONFIG_PARPORT=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_SIS=y +CONFIG_PCCARD=m +CONFIG_PCI_IOV=y +CONFIG_PCI_STUB=m +CONFIG_PDC_ADMA=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PM_DEBUG=y +CONFIG_POCH=m +CONFIG_POHMELFS=m +CONFIG_POWER_SUPPLY=y +CONFIG_PPP=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_QSEMI_PHY=y +CONFIG_R3964=m +CONFIG_RCU_FANOUT=64 +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +CONFIG_RFD_FTL=m +CONFIG_RISCOM8=m +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTL8192CE=m +CONFIG_RTL8192E=m +CONFIG_RTS_PSTOR=m +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_SATA_SVW=m +CONFIG_SCHEDSTATS=y +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_DH=y +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +CONFIG_SCSI_ISCSITARGET=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SENSORS_AK8975=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_PCI=y +# CONFIG_SERIAL_PMACZILOG is not set +CONFIG_SERIAL_UARTLITE=m +# CONFIG_SLAB is not set +CONFIG_SLHC=y +CONFIG_SLIP=m +CONFIG_SLUB=y +CONFIG_SMP=y +CONFIG_SMSC_PHY=y +CONFIG_SM_FTL=m +CONFIG_SND=m +CONFIG_SND_ALI5451=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_HIFIER=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_SPARSE_IRQ=y +CONFIG_SPI=y +CONFIG_SPI_DESIGNWARE=y +# CONFIG_SPI_PXA2XX_PCI is not set +CONFIG_SPI_SPIDEV=m +CONFIG_SSB_B43_PCI_BRIDGE=y +# CONFIG_SSB_PCMCIAHOST is not set +CONFIG_STACK_TRACER=y +# CONFIG_STANDALONE is not set +CONFIG_STE10XP=y +CONFIG_SUNGEM=m +CONFIG_SYS_HYPERVISOR=y +CONFIG_TABLET_USB_WACOM=m +CONFIG_TCG_TIS=m +CONFIG_TCG_TPM=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_THERMAL=y +CONFIG_TPS65010=m +CONFIG_TRANZPORT=m +CONFIG_TTPCI_EEPROM=m +CONFIG_TUN=y +# CONFIG_TWL4030_CORE is not set +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_DUALSPEED=y +CONFIG_USB_GADGET_DUMMY_HCD=y +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_MUSB_HDRC is not set +# CONFIG_USB_GADGET_NET2280 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_INVENTRA_DMA is not set +CONFIG_USB_IP_COMMON=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_MON=y +# CONFIG_USB_MUSB_OMAP2PLUS is not set +CONFIG_USB_MUSB_TUSB6010=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OTG is not set +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_SERIAL_QUATECH2=m +CONFIG_USB_SERIAL_QUATECH_USB2=m +CONFIG_USB_SI470X=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_ZC0301=m +CONFIG_VGASTATE=m +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_VGA_CONSOLE=y +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +# CONFIG_VIDEO_ADV7343 is not set +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_GO7007=m +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_MT9V011=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7185=m +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TCM825X is not set +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +# CONFIG_VIDEO_TDA9875 is not set +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +CONFIG_VIDEO_TVAUDIO=m +# CONFIG_VIDEO_TVP514X is not set +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VITESSE_PHY=y +CONFIG_VME_BUS=m +CONFIG_VME_CA91CX42=m +CONFIG_VME_TSI148=m +CONFIG_VT6656=m +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_W35UND=m +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_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_XEN_PRIVILEGED_GUEST=y +CONFIG_ZONE_DMA32=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-2.6.38.orig/debian.master/config/amd64/config.flavour.server +++ linux-2.6.38/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_NETDEV_FRONTEND=m +CONFIG_XEN_XENBUS_FRONTEND=m --- linux-2.6.38.orig/debian.master/config/amd64/config.flavour.generic +++ linux-2.6.38/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=256 +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_XEN_NETDEV_FRONTEND=m +CONFIG_XEN_XENBUS_FRONTEND=m --- linux-2.6.38.orig/debian.master/config/amd64/config.flavour.virtual +++ linux-2.6.38/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_NETDEV_FRONTEND=y +CONFIG_XEN_XENBUS_FRONTEND=y --- linux-2.6.38.orig/debian.master/config/i386/config.flavour.generic +++ linux-2.6.38/debian.master/config/i386/config.flavour.generic @@ -0,0 +1,21 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +CONFIG_INTEL_IDLE=y +# CONFIG_IOMMU_HELPER is not set +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x1000000 +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m +# CONFIG_XEN_PRIVILEGED_GUEST is not set --- linux-2.6.38.orig/debian.master/config/i386/config.common.i386 +++ linux-2.6.38/debian.master/config/i386/config.common.i386 @@ -0,0 +1,446 @@ +# +# Config options for config.common.i386 automatically generated by splitconfig.pl +# +# CONFIG_64BIT is not set +CONFIG_ACPI_BLACKLIST_YEAR=2000 +CONFIG_AD7150=m +CONFIG_AD7152=m +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_ALIM7101_WDT=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_ASUS_OLED=m +CONFIG_ASYNC_TX_DMA=y +CONFIG_ATALK=m +CONFIG_ATA_GENERIC=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=y +CONFIG_ATM=m +# CONFIG_ATM_BR2684_IPFILTER is not set +# CONFIG_ATM_DUMMY is not set +# CONFIG_AUDIT_ARCH is not set +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_B43=m +CONFIG_B43LEGACY=m +CONFIG_B44=m +CONFIG_BLK_DEV_DRBD=m +CONFIG_BLK_DEV_MD=y +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BRCMFMAC is not set +CONFIG_BROADCOM_PHY=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=y +CONFIG_CFG80211_REG_DEBUG=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_CHR_DEV_SG=y +CONFIG_CICADA_PHY=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_CIFS_XATTR=y +CONFIG_COMEDI=m +CONFIG_COMPACTION=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CRASH_DUMP=y +CONFIG_CRC_T10DIF=y +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_LZO=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SEQIV=m +CONFIG_DAB=y +CONFIG_DAVICOM_PHY=y +CONFIG_DEBUG_INFO=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DISPLAY_SUPPORT=m +# CONFIG_DL2K is not set +CONFIG_DM_MIRROR=y +CONFIG_DM_MULTIPATH=y +CONFIG_DM_RAID45=m +CONFIG_DM_SNAPSHOT=y +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_KMS=y +CONFIG_DT3155=m +# CONFIG_DVB_FE_CUSTOMISE is not set +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +# CONFIG_DVB_USB_EC168 is not set +CONFIG_ECHO=m +CONFIG_ET131X=m +# CONFIG_EZX_PCAP is not set +CONFIG_FB_3DFX=m +CONFIG_FB_ATY=m +CONFIG_FB_ATY128=m +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_DDC=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MATROX=m +CONFIG_FB_RADEON=m +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_UDL=m +CONFIG_FB_UVESA=m +CONFIG_FB_VGA16=m +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FIRMWARE_EDID=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_FONTS is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FSAM7400=m +CONFIG_FTL=m +CONFIG_FUNCTION_TRACER=y +# CONFIG_GENERIC_CPU is not set +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +# 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_PCH=m +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_VX855=m +# CONFIG_HARDIRQS_SW_RESEND is not set +CONFIG_HAVE_AOUT=y +# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HIGHMEM=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HP_ILO=m +CONFIG_HUGETLB_PAGE=y +CONFIG_HWMON=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_GPIO=m +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_I801=m +CONFIG_ICPLUS_PHY=y +# CONFIG_IDE is not set +CONFIG_IDE_PHISON=m +CONFIG_IGB=m +CONFIG_IIO=m +CONFIG_ILLEGAL_POINTER_VALUE=0 +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_INTEL_TXT is not set +# CONFIG_INTR_REMAP is not set +CONFIG_IPMI_HANDLER=m +CONFIG_IRDA=m +# CONFIG_IRQ_PER_CPU is not set +CONFIG_ISA=y +CONFIG_ISDN=y +CONFIG_IWL3945=m +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KGDB=y +CONFIG_KSM=y +CONFIG_KTIME_SCALAR=y +CONFIG_KVM=m +CONFIG_LAPBETHER=m +CONFIG_LATENCYTOP=y +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LIBIPW_DEBUG=y +CONFIG_LINE6_USB=m +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LSI_ET1011C_PHY=y +CONFIG_LXT_PHY=y +CONFIG_LZO_COMPRESS=y +CONFIG_M686=y +CONFIG_MACH_NO_WESTBRIDGE=y +CONFIG_MANTIS_CORE=m +CONFIG_MARVELL_PHY=y +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_GPIO=y +CONFIG_MEMSTICK=m +CONFIG_MFD_JANZ_CMODIO=m +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOXA_SMARTIO=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_NATIONAL_PHY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set +CONFIG_NET_CLS_CGROUP=y +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_DCCPPROBE=m +CONFIG_NET_POCKET=y +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_TCPPROBE=m +CONFIG_NFTL=m +CONFIG_NOP_USB_XCEIV=m +CONFIG_NO_HZ=y +CONFIG_NR_CPUS=8 +CONFIG_NVRAM=m +CONFIG_OUTPUT_FORMAT="elf32-i386" +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PANEL=m +CONFIG_PANEL_GENERIC_DPI=m +CONFIG_PARPORT=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_SIS=y +CONFIG_PCCARD=m +CONFIG_PCI_IOV=y +CONFIG_PCI_STUB=m +CONFIG_PDC_ADMA=y +CONFIG_PM_DEBUG=y +CONFIG_POCH=m +CONFIG_POHMELFS=m +CONFIG_POWER_SUPPLY=y +CONFIG_PPP=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_QSEMI_PHY=y +CONFIG_R3964=m +CONFIG_RCU_FANOUT=32 +CONFIG_REGULATOR_DEBUG=y +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +CONFIG_RFD_FTL=m +CONFIG_RISCOM8=m +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTL8192CE=m +CONFIG_RTL8192E=m +CONFIG_RTS_PSTOR=m +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_SATA_SVW=m +CONFIG_SCHEDSTATS=y +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_DH=y +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +CONFIG_SCSI_ISCSITARGET=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SENSORS_AK8975=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_PCI=y +# CONFIG_SERIAL_PMACZILOG is not set +CONFIG_SERIAL_UARTLITE=m +# CONFIG_SLAB is not set +CONFIG_SLHC=y +CONFIG_SLIP=m +CONFIG_SLUB=y +CONFIG_SMP=y +CONFIG_SMSC_PHY=y +CONFIG_SM_FTL=m +CONFIG_SND=m +CONFIG_SND_ALI5451=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_HIFIER=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_SPARSE_IRQ=y +CONFIG_SPI=y +CONFIG_SPI_DESIGNWARE=y +CONFIG_SPI_PXA2XX_PCI=y +CONFIG_SPI_SPIDEV=m +CONFIG_SSB_B43_PCI_BRIDGE=y +# CONFIG_SSB_PCMCIAHOST is not set +CONFIG_STACK_TRACER=y +# CONFIG_STANDALONE is not set +CONFIG_STE10XP=y +CONFIG_SUNGEM=m +CONFIG_TABLET_USB_WACOM=m +CONFIG_TCG_TIS=m +CONFIG_TCG_TPM=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_THERMAL=y +CONFIG_TPS65010=m +CONFIG_TRANZPORT=m +CONFIG_TTPCI_EEPROM=m +CONFIG_TUN=y +# CONFIG_TWL4030_CORE is not set +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_DUALSPEED=y +CONFIG_USB_GADGET_DUMMY_HCD=y +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_MUSB_HDRC is not set +# CONFIG_USB_GADGET_NET2280 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_INVENTRA_DMA is not set +CONFIG_USB_IP_COMMON=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_MON=y +# CONFIG_USB_MUSB_OMAP2PLUS is not set +CONFIG_USB_MUSB_TUSB6010=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OTG is not set +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_SERIAL_QUATECH2=m +CONFIG_USB_SERIAL_QUATECH_USB2=m +CONFIG_USB_SI470X=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_ZC0301=m +CONFIG_VGASTATE=m +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_VGA_CONSOLE=y +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +# CONFIG_VIDEO_ADV7343 is not set +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_GO7007=m +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_MT9V011=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7185=m +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TCM825X is not set +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +# CONFIG_VIDEO_TDA9875 is not set +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +CONFIG_VIDEO_TVAUDIO=m +# CONFIG_VIDEO_TVP514X is not set +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VITESSE_PHY=y +CONFIG_VME_BUS=m +CONFIG_VME_CA91CX42=m +CONFIG_VME_TSI148=m +CONFIG_VT6656=m +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_W35UND=m +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_ASY=m +CONFIG_X86_32=y +# CONFIG_X86_64 is not set +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_MINIMUM_CPU_FAMILY=5 +CONFIG_X86_SPEEDSTEP_LIB=y +# CONFIG_X86_X2APIC is not set +# CONFIG_ZONE_DMA32 is not set +CONFIG_ZONE_DMA_FLAG=1 --- linux-2.6.38.orig/debian.master/config/i386/config.flavour.generic-pae +++ linux-2.6.38/debian.master/config/i386/config.flavour.generic-pae @@ -0,0 +1,24 @@ +# +# Config options for config.flavour.generic-pae automatically generated by splitconfig.pl +# +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_INTEL_IDLE=y +CONFIG_IOMMU_HELPER=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x1000000 +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 +CONFIG_XEN_PRIVILEGED_GUEST=y +CONFIG_XEN_XENBUS_FRONTEND=m --- linux-2.6.38.orig/debian.master/config/i386/config.flavour.virtual +++ linux-2.6.38/debian.master/config/i386/config.flavour.virtual @@ -0,0 +1,24 @@ +# +# Config options for config.flavour.virtual automatically generated by splitconfig.pl +# +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +# CONFIG_INTEL_IDLE is not set +CONFIG_IOMMU_HELPER=y +CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_PHYSICAL_START=0x100000 +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 +CONFIG_XEN_PRIVILEGED_GUEST=y +CONFIG_XEN_XENBUS_FRONTEND=y --- linux-2.6.38.orig/debian.master/config/armel/config.common.armel +++ linux-2.6.38/debian.master/config/armel/config.common.armel @@ -0,0 +1,283 @@ +# +# Config options for config.common.armel automatically generated by splitconfig.pl +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +CONFIG_ASUS_OLED=m +CONFIG_ASYNC_TX_DMA=y +CONFIG_ATA_GENERIC=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=y +CONFIG_ATM_BR2684_IPFILTER=y +CONFIG_ATM_DUMMY=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_BLK_DEV_DRBD=m +CONFIG_BLK_DEV_MD=y +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_BROADCOM_PHY=y +CONFIG_CFG80211_REG_DEBUG=y +CONFIG_CHR_DEV_SG=y +CONFIG_CICADA_PHY=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_CIFS_XATTR=y +# CONFIG_COMEDI is not set +# CONFIG_COMPACTION is not set +CONFIG_CPU_FREQ_STAT=y +CONFIG_CRASH_DUMP=y +CONFIG_CRC_T10DIF=y +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_LZO=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SEQIV=m +CONFIG_DAB=y +CONFIG_DAVICOM_PHY=y +CONFIG_DEBUG_INFO=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_DL2K is not set +CONFIG_DM_MIRROR=y +CONFIG_DM_MULTIPATH=y +CONFIG_DM_SNAPSHOT=y +# CONFIG_DRM_NOUVEAU is not set +# CONFIG_DRM_RADEON is not set +CONFIG_DRM_RADEON_KMS=y +# CONFIG_DT3155 is not set +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_ECHO=m +CONFIG_ET131X=m +CONFIG_EZX_PCAP=y +CONFIG_FB_3DFX=m +CONFIG_FB_ATY=m +CONFIG_FB_ATY128=m +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MATROX=m +CONFIG_FB_RADEON=m +# CONFIG_FB_SAVAGE is not set +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_UDL=m +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FLATMEM_MANUAL=y +CONFIG_FONTS=y +CONFIG_FORCE_MAX_ZONEORDER=11 +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FSAM7400 is not set +# CONFIG_FUNCTION_TRACER is not set +CONFIG_GENERIC_IRQ_PROBE=y +# CONFIG_GENERIC_PENDING_IRQ is not set +# CONFIG_GPIO_JANZ_TTL is not set +# CONFIG_GPIO_PCH is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_TWL4030=y +# CONFIG_GPIO_VX855 is not set +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HAVE_AOUT=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HP_ILO=m +# CONFIG_HUGETLB_PAGE is not set +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_GPIO=m +# CONFIG_I2C_HELPER_AUTO is not set +# CONFIG_I2C_I801 is not set +CONFIG_ICPLUS_PHY=y +# CONFIG_IDE is not set +CONFIG_IDE_PHISON=m +CONFIG_IGB=m +CONFIG_IIO=m +# CONFIG_INTR_REMAP is not set +# CONFIG_IPMI_HANDLER is not set +# CONFIG_IRQ_PER_CPU is not set +CONFIG_IWL3945=m +CONFIG_KGDB=y +# CONFIG_LAPBETHER is not set +CONFIG_LATENCYTOP=y +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LIBIPW_DEBUG=y +# CONFIG_LINE6_USB is not set +CONFIG_LSI_ET1011C_PHY=y +CONFIG_LXT_PHY=y +CONFIG_LZO_COMPRESS=m +# CONFIG_M686 is not set +# CONFIG_MANTIS_CORE is not set +CONFIG_MARVELL_PHY=y +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_GPIO=y +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MOXA_SMARTIO=m +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_NATIONAL_PHY=y +CONFIG_NEED_DMA_MAP_STATE=y +# CONFIG_NET_POCKET is not set +CONFIG_NVRAM=m +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PANEL=m +CONFIG_PANEL_GENERIC_DPI=y +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_SIS=y +# CONFIG_PCCARD is not set +CONFIG_PCI_IOV=y +CONFIG_PCI_STUB=m +CONFIG_PDC_ADMA=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_POCH is not set +CONFIG_POHMELFS=m +CONFIG_POWER_SUPPLY=y +CONFIG_PPP=y +CONFIG_QSEMI_PHY=y +# CONFIG_R3964 is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_RISCOM8=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_TWL4030=y +# CONFIG_RTL8192CE is not set +CONFIG_RTL8192E=m +# CONFIG_RTS_PSTOR is not set +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_SATA_SVW=m +CONFIG_SCHEDSTATS=y +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_ADVANSYS is not set +CONFIG_SCSI_DH=y +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +# CONFIG_SCSI_QLA_ISCSI is not set +CONFIG_SCSI_SYM53C8XX_2=y +# CONFIG_SENSORS_AK8975 is not set +CONFIG_SERIAL_8250_PCI=m +# CONFIG_SERIAL_PMACZILOG is not set +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SLHC=y +CONFIG_SMSC_PHY=y +CONFIG_SM_FTL=m +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_BT87X_OVERCLOCK is not set +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_HIFIER=m +# 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_SND_SOC_TWL4030=y +# CONFIG_SPARSEMEM_MANUAL is not set +# CONFIG_SPARSE_IRQ is not set +CONFIG_SPI_DESIGNWARE=m +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SSB_B43_PCI_BRIDGE is not set +# CONFIG_STACK_TRACER is not set +CONFIG_STANDALONE=y +CONFIG_STE10XP=y +# CONFIG_SUNGEM is not set +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_TABLET_USB_WACOM=m +# CONFIG_TCG_TPM is not set +CONFIG_TPS65010=m +CONFIG_TRANZPORT=m +CONFIG_TWL4030_USB=y +# CONFIG_USB_ET61X251 is not set +CONFIG_USB_GADGET_DUALSPEED=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_INVENTRA_DMA=y +CONFIG_USB_IP_COMMON=m +# CONFIG_USB_ISP1362_HCD is not set +CONFIG_USB_MON=m +CONFIG_USB_MUSB_OMAP2PLUS=y +# CONFIG_USB_MUSB_TUSB6010 is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +# CONFIG_USB_QUICKCAM_MESSENGER is not set +CONFIG_USB_SI470X=m +# 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_ARB_MAX_GPUS=16 +# CONFIG_VGA_CONSOLE is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 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_SAA7191 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TDA9875 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_TVP514X 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_VITESSE_PHY=y +CONFIG_VME_BUS=m +# CONFIG_VME_CA91CX42 is not set +# CONFIG_VME_TSI148 is not set +# CONFIG_VT6656 is not set +CONFIG_W35UND=m +# 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.38.orig/debian.master/config/armel/config.flavour.versatile +++ linux-2.6.38/debian.master/config/armel/config.flavour.versatile @@ -0,0 +1,159 @@ +# +# 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_BRCMFMAC is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CDROM_PKTCDVD is not set +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_CRYPTO_HMAC=y +CONFIG_DISPLAY_SUPPORT=m +CONFIG_DM_RAID45=m +# CONFIG_DVB_FE_CUSTOMISE is not set +# CONFIG_DVB_USB_EC168 is not set +CONFIG_FB_ARMCLCD=y +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_DDC=m +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_SVGALIB=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_UVESA=m +CONFIG_FIRMWARE_EDID=y +# CONFIG_FTL is not set +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=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_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_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LLC=y +# CONFIG_LLC2 is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_MACH_NO_WESTBRIDGE=y +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_MFD_WL1273_CORE 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_REGULATOR_FIXED_VOLTAGE is not set +# CONFIG_RFD_FTL 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_SCSI_ISCSITARGET=m +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIO_AMBAKMI=y +CONFIG_SLAB=y +CONFIG_SLIP=m +# CONFIG_SLUB is not set +CONFIG_SMC91X=y +CONFIG_SND=m +# CONFIG_SND_MIXER_OSS is not set +# CONFIG_SND_MPU401 is not set +CONFIG_SND_PCM=m +# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_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_TTPCI_EEPROM=m +CONFIG_TUN=y +# CONFIG_TWL4030_CORE is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_TT_NEWSCHED=y +# CONFIG_USB_GADGET is not set +CONFIG_USB_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 --- linux-2.6.38.orig/debian.master/config/armel/config.flavour.omap +++ linux-2.6.38/debian.master/config/armel/config.flavour.omap @@ -0,0 +1,159 @@ +# +# 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_BRCMFMAC=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set +CONFIG_CRYPTO_HMAC=m +CONFIG_DISPLAY_SUPPORT=y +# CONFIG_DM_RAID45 is not set +CONFIG_DVB_FE_CUSTOMISE=y +CONFIG_DVB_USB_EC168=m +CONFIG_FB_ARMCLCD=m +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_S1D13XXX=m +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FB_UVESA is not set +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FTL=m +# CONFIG_GPIO_MAX732X is not set +CONFIG_GPIO_PCA953X=y +# CONFIG_GPIO_PCF857X is not set +# CONFIG_HIGHMEM is not set +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HTC_EGPIO=y +CONFIG_HWMON=y +CONFIG_HZ=128 +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_LEDS_TRIGGER_HEARTBEAT=y +# CONFIG_LIBERTAS_MESH is not set +CONFIG_LLC=m +CONFIG_LLC2=m +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_MACH_NO_WESTBRIDGE is not set +# 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_MFD_WL1273_CORE=m +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_REGULATOR_FIXED_VOLTAGE=y +CONFIG_RFD_FTL=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_SCSI_ISCSITARGET is not set +# CONFIG_SCSI_SPI_ATTRS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_AMBA_PL011=m +# CONFIG_SERIO_AMBAKMI is not set +# CONFIG_SLAB is not set +CONFIG_SLIP=y +CONFIG_SLUB=y +CONFIG_SMC91X=m +CONFIG_SND=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_MPU401=m +CONFIG_SND_PCM=y +CONFIG_SND_PCM_OSS=m +CONFIG_SND_SOC=y +CONFIG_SND_SOC_I2C_AND_SPI=y +CONFIG_SND_TIMER=y +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +CONFIG_SPI=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_THERMAL=m +# CONFIG_TTPCI_EEPROM is not set +CONFIG_TUN=m +CONFIG_TWL4030_CORE=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 --- linux-2.6.38.orig/debian.master/control.d/vars.powerpc +++ linux-2.6.38/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.38.orig/debian.master/control.d/vars.generic-pae +++ linux-2.6.38/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.38.orig/debian.master/control.d/vars.generic +++ linux-2.6.38/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-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1)" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9" --- linux-2.6.38.orig/debian.master/control.d/flavour-control.stub +++ linux-2.6.38/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.38.orig/debian.master/control.d/vars.powerpc-smp +++ linux-2.6.38/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.38.orig/debian.master/control.d/vars.omap +++ linux-2.6.38/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.38.orig/debian.master/control.d/virtual.inclusion-list +++ linux-2.6.38/debian.master/control.d/virtual.inclusion-list @@ -0,0 +1,124 @@ +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/vmw_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/* +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.38.orig/debian.master/control.d/vars.versatile +++ linux-2.6.38/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.38.orig/debian.master/control.d/vars.powerpc64-smp +++ linux-2.6.38/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 ppc64" --- linux-2.6.38.orig/debian.master/control.d/vars.server +++ linux-2.6.38/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-efi-amd64 | grub | lilo (>= 19.1)" +provides="redhat-cluster-modules, kvm-api-4, ivtv-modules, ndiswrapper-modules-1.9" --- linux-2.6.38.orig/debian.master/control.d/vars.virtual +++ linux-2.6.38/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.38.orig/debian.master/abi/2.6.38-11.50/abiname +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/abiname @@ -0,0 +1 @@ +11 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/powerpc/powerpc64-smp.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/powerpc/powerpc64-smp.modules @@ -0,0 +1,2732 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +74x164 +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 +ab8500-ponkey +ab8500-usb +abyss +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +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 +ad5398 +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +adcxx +adfs +adi +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 +adv7180 +adv7343 +adxl34x +adxl34x-i2c +adxl34x-spi +aes_generic +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak881x +alauda +algif_hash +algif_skcipher +ali-ircc +altera_jtaguart +altera_ps2 +altera_uart +amc6821 +amd8111e +analog +ansi_cprng +anubis +aoe +apbuart +apds9802als +apds990x +appledisplay +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +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 +ath5k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +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 +basic_mmio_gpio +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcm63xx +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bmp085 +bna +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcm80211 +bridge +broadcom +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +bw-qcam +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capi +capidrv +capifs +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cciss +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cicada +cifs +cirrusfb +clearpad_tm1217 +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +configfs +core +cp210x +cpia2 +cpufreq_spudemand +cpufreq_stats +cpu-notifier-error-inject +c-qcam +cramfs +crc7 +crc-ccitt +crc-itu-t +crc-t10dif +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-mfd +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +dabusb +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 +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dm-log +dm-mirror +dm-multipath +dm-queue-length +dm-raid +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 +ds620 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3155v4l +dtl1_cs +dummy +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-lmedm04 +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_midpci +dynapro +e100 +e1000 +e1000e +earth-pt1 +easycap +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 +electra_cf +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +encrypted +eni +enic +epat +epca +epia +epic100 +eql +esd_usb2 +esi-sir +esp4 +esp6 +et1011c +et61x251 +ethoc +evbug +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 +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +g_dbgp +gdth +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_ncm +g_nokia +gpio-addr-flash +gpio-charger +gpio-fan +gpio-i2cmux +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_vbus +g_printer +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_konica +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_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +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 +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-zpff +hid-zydacron +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc6352 +hopper +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpilo +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-dev +i2c-eg20t +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +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 +ibmpex +ib_mthca +ibmtr_cs +ib_qib +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igbvf +ili9320 +imm +imon +imx074 +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 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +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_boot_sysfs +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +istallion +it87 +it8761e_gpio +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jsm +kafs +kaweth +kbic +kbtab +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kyrofb +l1oip +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-lp5521 +leds-lp5523 +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 +libceph +libcrc32c +libcxgbi +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_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 +lp +lp3971 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lrw +ltc4215 +ltc4245 +ltc4261 +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_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max1586 +max1619 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8998 +mb862xxfb +mb862xxfb_accel +mb86a16 +mb86a20s +mc13783-adc +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc33880 +mc44s803 +mceusb +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +metronomefb +mfd +mga +michael_mic +micrel +microtek +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mk712 +mkiss +ml_ioh_gpio +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 +mrst_max3110 +msdos +msp3400 +mspro_block +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 +mwl8k +mxl5005s +mxl5007t +myri10ge +nand +nand_ecc +nand_ids +nandsim +national +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +net2280 +netconsole +netjet +netrom +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_defrag_ipv6 +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 +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 +nosy +nouveau +nozomi +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 +old_belkin-sir +olympic +omfs +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 +ov2640 +ov6650 +ov7670 +ov772x +ov9640 +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_artop +pata_atiixp +pata_atp867x +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_macio +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc87360 +pc87427 +pca953x +pca9541 +pca954x +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pch_can +pch_dma +pch_gbe +pch_gpio +pch_phub +pch_uart +pci +pci200syn +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 +pmc551 +pmcraid +pn544 +pn_pep +poseidon +poulsbo +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +ps2mult +ps3disk +ps3flash +ps3_gelic +ps3-lpm +ps3rom +ps3stor_lib +ps3vram +pseries_energy +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +qt602240_ts +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192u_usb +r852 +r8712u +r8a66597-hcd +rack-meter +radeon +radeonfb +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +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-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +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-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-msi-digivox-ii +rc-msi-digivox-iii +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-002t +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-terratec-slim +rc-tevii-nec +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +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 +rio500 +riscom8 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +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-ds3232 +rtc-ds3234 +rtc-fm3130 +rtc-generic +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +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 +rtl8180 +rtl8187 +rtl8192ce +rtlwifi +rxkad +s1d13xxxfb +s2255drv +s2io +s3fb +s5h1409 +s5h1411 +s5h1420 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +sam-ba +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 +sbe-2t3e3 +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-platform +sdio_uart +sd_mod +sdricoh_cs +se401 +sedlbauer_cs +seed +sep_driver +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +ses +sfc +sg +sha1_generic +sha256_generic +sha512_generic +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_of_platform +sja1000_platform +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slhc +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +smm665 +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-aloop +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-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +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-oxygen +snd-oxygen-lib +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-88pm860x +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-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max98088 +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-wl1273 +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-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +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-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +specialix +spectrum_cs +speedfax +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +spi_topcliff_pch +spufs +squashfs +sr030pc30 +sr_mod +ssb +ssfdc +sst25l +ssu100 +st +st1232 +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste10Xp +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +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 +tda18218 +tda18271 +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +therm_pm72 +thmc50 +ths7303 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tle62x0 +tlv320aic23b +tm6000 +tm6000-alsa +tm6000-dvb +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 +tps6524x-regulator +tps6586x-regulator +trancevibrator +tridentfb +trusted +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030_charger +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twl6030-pwm +twl6030-usb +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +uas +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 +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 +usb_gigaset +usbhid +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-compat-ioctl32 +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vgastate +vgg2432a4 +vhost_net +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +vicam +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 +vivi +vivopay-serial +vlsi_ir +vmac +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vx855 +vx855_gpio +vxge +w1_bq27000 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w6692 +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w9966 +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 +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +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_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr364xx +zram --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/powerpc/powerpc +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/powerpc/powerpc @@ -0,0 +1,10863 @@ +EXPORT_SYMBOL arch/powerpc/kvm/kvm 0x68d966eb 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 0xeac688b8 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x349c70d0 uPD98402_init +EXPORT_SYMBOL drivers/block/paride/paride 0x01811de1 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x340f7409 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x4e787d96 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x6992b363 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x8b61509d pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x934b2d3a pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xa92e2bfb pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xac43a569 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xc5228851 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xf643c8bf pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xfab19cbf pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xfe63cb36 paride_unregister +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 0x117b5173 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x125a2a82 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x185b0c07 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x228eb3aa ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x275e6a14 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x292a0f07 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2d38f8c7 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x35867d3c ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3af6f811 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3caeb995 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4a0023ac ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x505fe33d ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5356d690 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5b830a5c ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6b22d3b7 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x72d83be7 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x87265f4c ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9438a514 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x97b92090 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa4bcc4c0 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd567973c ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdd83862f ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xddbc380a ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf0fd6774 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/edac/edac_core 0x387d05c9 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0x8cea767d edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xa19347e7 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x091b26d7 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x09f18fa7 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x306ec978 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x39b62091 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c75ef9b fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x41785fbb fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x478139f0 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x70defe83 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x83e71bf9 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x85655fde fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x891588b2 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x989d3b62 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xafb1cec7 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb057200d fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb0c443c5 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb1a0faf5 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb7f08a21 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc4e549b0 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc5f61d2c fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd92e513a fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe29077fb fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe4015af6 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfb725191 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00f18018 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04347f95 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x077addf4 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x084671f8 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0908780a drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a80ca12 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cb15a83 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d5639dc drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0dd58637 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e455c2b drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0efe173c drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fe08b10 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11dfd67d drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13139fa9 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1364dba7 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1acd14f7 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d3737fc drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24190503 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x256743c3 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25fc0d46 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2be80221 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d3a88b3 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f43b31d drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x313fe282 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34f26b3e drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b5c02d8 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3de15451 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb94bd3 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f1fbe83 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42483c9e drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x452407e9 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x468440b0 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ae639d4 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c8281dc drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d6f6482 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e26fe75 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5111ebc3 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51c949e7 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x538ea6a5 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x558f3277 drm_core_ioremap +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 0x588d7030 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5970d4d6 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c74dea4 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ca70ec0 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6161593b drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6496eb63 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a2f13eb drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b4526fb drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c00d735 drm_core_ioremap_wc +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 0x715f6aa8 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x759b9c47 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75f8301b drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x781b857e drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78be2134 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ae90b82 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c67c813 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e2f387d drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e4eb8d3 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8286462e drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x864f6c1e drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x875c760c drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87bf3389 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88fdddd2 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c9e9cf3 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f2e43cb drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90c95e38 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9368a274 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x971bb420 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x973bee44 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x988559ab drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce1cf2c drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e126c14 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa486f0de drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7062f16 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaab07fa4 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacaa6a2c drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae033f46 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaeb266d6 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1848555 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb18b4dd9 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2bbc074 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4e95374 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6812d70 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a7f565 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb794e478 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb951f2fb drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb9ea734 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbaa152f drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcfe4141 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd18105c drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe2283b7 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf195a09 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc299fd53 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc851361d drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca70fdf1 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd2eac5d drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb4647b drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xceb31ef4 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf039ef3 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd04e3d21 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0b47a9c drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3bc0254 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5b294b3 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd64972af drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd773bc67 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd77d3a43 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8151d88 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd95ca2fa drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9b95f71 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc4b4f38 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde4112d4 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe149124f drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2092a3c drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe257e746 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3975e0f drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe41354ba drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe551bfe7 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe72e3c1b drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7ef554e drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8087df6 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8d68930 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe90a4fa6 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea329a1b drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb660ece drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf093c84f drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1e2344b drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf30c15e2 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4eb7d62 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf692a7e0 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf84a3e75 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf97da826 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaa57d4e drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff7ec5ef drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0332ba80 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x039c9fdc drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1193c5ea drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x13090286 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1698bbe9 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1d6db841 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1fff9d85 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34f8da46 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4521252c drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x489b0a56 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6fcbf61e drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x70b8da1d drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x72485ad7 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x74c7e5ee drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x841876cf drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94c7bee3 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99a12268 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa13a7b94 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa6233a38 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xacde4189 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb4566f45 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbac710c3 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf05d7f5 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 0xc93407d2 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd4c1c9f5 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd738534e drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdb651991 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe9ae3cfc drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf0c81837 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf938a027 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x04a67ae0 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x06c09096 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b5ee647 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d0c416f ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x11877c84 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x218569c2 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x26a472e2 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2836c887 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3060ae0e ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32fe9e88 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x369e5fe5 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a7668c9 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42fea97e ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x451916b6 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4a7e7e98 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b68233b ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5715b774 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5eb1b02e ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5fcb39bd ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x684d5bd3 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fb8acaf ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fd00095 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x708262c1 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x73f8a123 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x76aac2fa ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7803432a ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8079a532 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x82c7449e ttm_bo_unlock_delayed_workqueue +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 0x917bc241 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9485296f ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x956dd1e2 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9993d9fd ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2c7632b ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa4f1dfe1 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa8decb30 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabb0a47d ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb28e8d6a ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xba65d40b ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbc7a4687 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc820b10c ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcd152b22 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcead96cf ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd0aeed76 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd4e3cf69 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd79db104 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8e57702 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda4a57ad ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe40ac82d ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5531167 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe80af94c ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec2438b1 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1b8b6a3 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1e2f4e0 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf9049438 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc9f7f92 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xffd81182 ttm_bo_mem_space +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 0x8acf47fc i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xe521c2f4 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xb6b45253 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x08167596 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x10faf4e5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc210e756 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xee034f38 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x21bbd2de ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4277494a ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5d710bf6 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x61939472 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x643edb13 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x663dbceb ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6c2a9d30 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x86c77122 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8aeb4116 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x988bfdea ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa9404f5f ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbc54f8d4 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd2c19c0b ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe9950d72 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf2a84d2c ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf5701dfb ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf899f758 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01e60edf ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x025088df ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x025dae45 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05d4fc5d ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09845288 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0bce9dd0 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c978394 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13bb3734 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14cdce1e ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19c4d1dd ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b6c46e4 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f04739b ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22055ae3 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x261c148d ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27749a40 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f2c72c1 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bed83aa ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ea166b9 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4156f31f ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45f81b27 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48a9b243 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x493b70e6 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a4f4daf ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ba5d1e0 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52205385 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x548f9a58 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a677552 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b26a3eb ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cabee74 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f16b6dc ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6297aebe ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69a1a0dd ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73ad2890 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x742e0b8c ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7dd38344 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x842bd218 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98fe2cb4 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d4962ce ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ff19d99 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa08c183e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa17ed552 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa4d39411 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa60d3e5c ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad578945 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xadc21384 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae1fd785 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb42ab9c8 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbaaaa555 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbea66af3 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc035abd4 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0eb72f7 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1af2136 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc626ddef ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc82facdb ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd4bf66c ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd46f212b ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4c76725 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf7decd5 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe01e4955 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9807c11 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeaee660d ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1eaab72 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2bdef28 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4b44a4a ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5736041 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5cefc76 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff2209eb ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x39cd3013 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x57dbbf01 ib_get_rmpp_segment +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 0x7d2ffb64 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8c0954fd ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x96398068 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9b862cca ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa2e1e0b3 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa50fbc29 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd61047bd ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd9679298 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd9a0b779 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf3f656fa ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3efac8d0 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x4a6b1297 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x75246607 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x791e08ef ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x88e54d9f ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90480d64 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa32b8741 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xaaa7ca68 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xae6c0697 ib_sa_path_rec_get +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 0x801febd7 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x80513df7 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x84441c37 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9343285e iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xacde4286 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcd96569f iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcdebc61d iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd4250b6b iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x07c6d0b5 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x335fd50f rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x352965b9 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5ccb20e7 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e0b44e0 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x64c411de rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7291668d rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x72f466c9 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaacb4a73 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbbd8eb2d rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc3ab40e7 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc739dc0e rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcaa21282 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd3709c7b rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe66748cc rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe75867c3 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xef579844 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfb7eeac2 rdma_set_service_type +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0a756c1a gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1f4dc258 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4308905e gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7bf559d6 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9b2ef8bb gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd1e01630 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd40ae90f __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf3674450 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf87e31eb gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x6bb28c19 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x71fa04df input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x8bcf9289 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xcf73e5fd input_allocate_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x333e64b5 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7327603d ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x86062ec2 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xfd8099cb ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x026d149f cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x838000f7 cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x8b937ade cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x9232b03b cma3000_init +EXPORT_SYMBOL drivers/input/sparse-keymap 0x07cb1869 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x66dd79a4 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x744d908e sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb6993367 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd515fc2d sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd76a4918 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x14d9e495 ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x29b62ea1 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x5c820ccb ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x9b66e35b ad7879_probe +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x67d799bb capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xded26c8a 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 0x3254885f capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x33431e26 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b3141e capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5480b164 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x585478ff capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5aaff34f detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5e1a4e79 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xbe115c64 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc7ee217d capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe5389bc4 capi20_put_message +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 0x01e3f9f2 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1a9ab2a7 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x23310b69 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x41e62636 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4d3d9196 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5e28aa50 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x73fd43a8 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x74fe0953 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xaed9ca3a b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb474fe50 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbd1ee54e b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xca5c9e3c b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe51e4ce7 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe922f28d b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xef10ece9 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x11eb5110 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x14fc832a b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x31b4e925 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x56e07f3f b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x91502527 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc82998bf b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe276b32f b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf3b37c0b b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf805f84f t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0xf781c7e1 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4644782d mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xabbf6237 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xdeb525d7 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xfd1a9aad mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x9d8a40fe mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x9dd161c7 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 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9a72aa07 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x1f07f84c isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x81ad7b10 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9819a777 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa471c595 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf234702e isacsx_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x1d60e472 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7aee26e8 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc938243e 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 0x0b460ce1 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0bd4848d recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x11ff9268 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x139e1d2e mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2bdad45c mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x43d5db55 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4fa4331c l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x518de05c recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x53d29dea create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58e78430 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x81b6d2ba recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8b78136d get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8e9db806 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x90c61d7a mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbd3d1c18 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc1187766 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd058b8c7 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd310333f mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdb5ddad4 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe43766e8 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +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 0xfceabb80 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfcf03a3a mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x1fb27fa8 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x6770882d dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xba02ef8e dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xdf5d4063 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x2c7057e7 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x58ee94c7 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x88dd5842 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x8a480ed5 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xaeaf0da3 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xfa8e9017 dm_snap_cow +EXPORT_SYMBOL drivers/md/md-mod 0x11d12fa3 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x1578465c md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0x2072749c md_check_no_bitmap +EXPORT_SYMBOL drivers/md/md-mod 0x22403d4c bitmap_cond_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x257d47d1 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x27c9a41f md_error +EXPORT_SYMBOL drivers/md/md-mod 0x34b26af1 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x4581894c bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x49adee4b unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x4b8e6708 md_integrity_register +EXPORT_SYMBOL drivers/md/md-mod 0x4d15cc5c register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x57c1e9ce bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x5b89fc38 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x5cd74839 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x614ff2b4 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x62721dff md_set_array_sectors +EXPORT_SYMBOL drivers/md/md-mod 0x79125ecd bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x7e652fc9 md_integrity_add_rdev +EXPORT_SYMBOL drivers/md/md-mod 0xa9e4a9e9 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0xb0985efd md_flush_request +EXPORT_SYMBOL drivers/md/md-mod 0xb698b93d bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xc7c06eac mddev_congested +EXPORT_SYMBOL drivers/md/md-mod 0xd7a916d9 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xfbbd2fa4 md_wait_for_blocked_rdev +EXPORT_SYMBOL drivers/md/raid456 0x23645969 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x0e8119b7 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xdafdb2fc mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x68d363ff mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xdc0b2407 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x15a9a6c4 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x8d360ea2 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x7a38f827 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x054e10e9 tda18218_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 0x707d8190 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xd44de89e xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x123d73e5 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x14871a7f flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x183e9226 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x25c4f168 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3192cdd0 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6980e3a0 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6dbb1da8 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6f6a00a0 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x94cb5191 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa464ce58 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xade81d6f flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb86979a9 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb9235279 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbb963785 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbba4b275 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbcb851ef flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc22cb0f1 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd571aabf flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe051adca flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf4ddbf6a flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x2bd44ed2 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x6ca745fe bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x73805735 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xb217dc7d bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x01f294a9 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x242fd713 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x3291c6ec dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x3cb3cfd9 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5022cca5 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x98d3cec5 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb4272d8d dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbdc34510 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd56e21a1 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x39858468 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x057d782a dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x13d954c9 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x208bee1d dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x337dca17 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x57247078 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x57c7da52 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5ebea147 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x62ea0d6f dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6c8a292b dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6d46bbf0 dvb_net_release +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 0x7cde67d7 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x81e89341 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 0x8ba04e55 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8ea92763 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x964fce6e dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb32a55cd dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb5768857 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb6c842a7 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xba44614d dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbbbac071 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcf0edf3d dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe04e7270 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed4fe913 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf106e275 dvb_dmx_swfilter_204 +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 0xf867c8dc dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x022edb7c dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2b29331a dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6df690f5 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x97d4ca46 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc6aad8f0 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd6701a3f dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe4374f44 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xf8c3fb4d af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00efcd82 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x374567ce dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x39e79bcf dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4285ce32 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x48bb2184 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x53c7193b dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x701f4581 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8290de00 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9f3b0768 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xac272c3a dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4584632 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x097536ce af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xe4bb368d atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x060d5e91 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x895f3245 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xa770b83d cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x60118329 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x0495ad62 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xd1363cf2 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xea063d32 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x4085de2a cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x07112889 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x85c50f3c cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x07c66da4 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x3883eff4 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x44ddf88f dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x921b9f02 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xd92f00a3 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x2130ba1c dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7d8d3e77 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8f35cc2b dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9908867f dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc8ff3459 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xd1e4d536 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xeefed68f dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf9f7a15d dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x15de2606 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0fe08490 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x18974813 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x53885d20 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8f44bde5 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9e0f7d7d dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xe002bf08 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x06769610 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x6164a4ff dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x726622d1 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xeae4dadc dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x083f12e5 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4d145ad6 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x65b41963 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x972e8fe6 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb180ddb3 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb1a35010 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb76c68ab dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xea00dab4 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0870146d dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x123db206 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1594b733 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2d09ce24 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x3b26f00f dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x3f0f6798 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x42e2859a dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x446cee82 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x45e8bcff dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7de95276 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf511d3ab dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3b8eef00 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x64fdda7d dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x6b76499c dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd2785e05 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x20a80478 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xc4df923b dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xa7558fce isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x6f558fbb isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x01eef4be isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x966d5524 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xbcd5a792 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x1982bfb4 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xf5b1832c lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x859878b5 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x75a9a60f lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x126852b6 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x520e4ae3 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x6206ef34 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x0d5eabd3 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x977696a7 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x51686bb7 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xc8a72947 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xcbdb6195 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x7e201dc2 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xa08a1bf9 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x44001da8 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x5f02d227 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xdc5b1832 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xeab556ea s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0xd3784c73 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xf4e9e83b si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x6c7d7ff1 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xb61136c6 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xc0c32650 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x0e5b0ff0 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xce9c0b01 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x7242796a stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x2d44c0f8 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x1b8473b7 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xf58bfddd stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x43667e69 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x45e34213 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x93046032 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x93c50573 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x21255afc tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xf13bf241 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xe7b1023e tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xed08af20 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x4c7c5bb0 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x0aa00b27 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x6d122ea2 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xa4106ed4 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x6768b652 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xbe63d5f4 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x69b31281 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x6cc597ce ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0xe471974a zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x23eb5971 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x4d7fba37 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xb0206da2 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x48e3ac23 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x6324ade9 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x05de2089 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x32309a9b lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x35399da1 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x4487aa1a lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x6d734e7c lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe4283931 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xeca112ce lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xef06b782 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/rc-core 0x002b1579 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x378b43b0 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x4b1bab49 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x949532e9 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xa0ab2365 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x41a11058 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc7d8d576 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x0e3d7659 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x492febc3 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x564f15aa cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9e645a11 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xe7fe577c cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x1a1efa54 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x328527c0 cx231xx_unregister_extension +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 0x5cd76265 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x884dedc6 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf20e6fc cx2341x_handler_init +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 0xd19c2a75 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x43d9a434 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x51be4831 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x223c8634 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x3fa18aad cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x883915e4 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xc271b515 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd5481317 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xf7bea8ce cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x0bb0546b cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x13960669 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x261439b1 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x47664da3 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x4ff9133e cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xde1ad2a6 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0548259b cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x13c3d0a7 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x14835877 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x178ca982 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2401c176 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x247cd916 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2da7aad4 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x35209727 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x441226a4 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x568a78eb cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8e9386bb cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9ac5a606 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b1abab5 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa44d5ead cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb363cf7f cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbf5807e2 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd399b3b4 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdbbb51bf cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe9824a68 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf2a38147 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf7d601a7 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf9dbf08c cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x620025d8 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x91e9c522 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x0eb54bf9 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x1c67914a gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x464091e5 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x57dd0ae1 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8dbfa1b7 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf65cea4a gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf66726e1 gspca_resume +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0d51eee7 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x58629182 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5af6cf8d ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7108aadc ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x750aa2ed ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x8a427576 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x940b2399 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x96ae3449 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9fb52fff ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa2b20673 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd7e514b0 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe3cea973 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x02e0efa7 saa7134_set_dmabits +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 0x3e780b16 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x44991b19 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4d1ee3e7 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6ccf006c saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x78483250 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7b32ff4b saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8d0b0297 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbab471ec saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc44b024d saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcc15bd45 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xde39381c saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/soc_camera 0x943435ad soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xa2ab0994 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xda78b31a soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xeac197ee 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 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x0b5ed79b tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xa7595071 tveeprom_read +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 0x1abb5fd2 v4l2_ctrl_check +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 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 0x61240794 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa4bf0ba4 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xac8a9a31 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-mem2mem 0x2ab87216 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x361edb95 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xab09d1db v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xf1b5e5af v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x26904224 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x53b5218e videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x90525742 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa7a790c2 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xbe242ce3 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc35cc88d videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x0280abe9 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0b5cec7a v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x1d5c285e v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x28fa0f01 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x30239a76 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bad4ce4 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3e3ba5d1 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x407f12d6 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x43a44e7c v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x469d87f7 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x47bc3ae5 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x47c7f449 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4a991f25 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x4f1675c1 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x5066e00e v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x58bd3160 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x702062ff v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x7579dbf5 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x84a60f58 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x8960540a v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x923f3999 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x95170a47 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x97704bcd v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xa0d2a4fd video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0xa24b3791 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xa2e5a961 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0xa5e72844 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xa68b378a v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xa9d24e70 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xad15c79d v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xbb914e7c v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xd67bf317 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0xd789fceb v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xd9516bca v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe9398a26 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xe98199d4 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xeecf17c7 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf61f29a3 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x7dfd7093 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xe6b210c0 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xf716f8ea videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xfe7fd927 videocodec_unregister +EXPORT_SYMBOL drivers/memstick/core/memstick 0x15d053ca memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x207c8003 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4f050362 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b5c17c8 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x65d927e6 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6eb5d92a memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7ff41488 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x876d53a4 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c9b5da4 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x93927fcf memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x99096cf3 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd9818de4 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe4f8b6c2 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf116db61 memstick_free_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1aa73d47 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x24d3d064 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x24d6fffe mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x30992192 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x317bc9b3 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3544c547 mpt_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 0x5611305a mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5bb653d0 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5cf32934 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6cf65a3b mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6eb1fd09 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x75ffd57e mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x78d87b1f mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x81ac7992 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8588037e mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x858d59e8 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x87897155 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x887c192f mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8b4f77a7 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x90f6a35f mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x911be6a3 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x91f529d5 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9205fd71 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x966d28f6 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaadc94af mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xad66e4e6 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb50d2ce2 mpt_resume +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 0xc60bcbff mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf2a95de1 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0adef35b mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1c424f1a mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x25049e87 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x296a0228 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2e322888 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30000650 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3424384c mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4806bd04 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x50aa44d4 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x60611622 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x676c8056 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6834fb1c mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x68a97b2c mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6b6eed2a mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6e94d81f mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x760275f3 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c29c3d1 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x85b9dff7 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x86c8328d mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8c47cb19 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x98a4928a mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc1561d64 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd3170b8a mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe6c5c1be mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeca84287 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfc9cf52b mptscsih_abort +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x48faa48e i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x49741e51 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x546bab1b i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x54845dbd i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5e2739a2 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x607ed82d i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x66b863f8 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6e313e52 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa954fdcd i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb98765b7 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb9bfd7e3 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc4d387de i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcb921548 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd000c8ca i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd8ff2715 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xede9bf5c i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeedb3e17 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfb39a27e i2o_driver_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x1a055b97 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xb3d0ddde pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x23e29646 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2d40c547 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2f85af47 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x4d9f1e75 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5659d8d1 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x56cc987d mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x596ef7bd mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x66834549 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7578fbdc mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbc4b1e0c mc13783_to_mc13xxx +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc33703d0 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc947820d mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xcc82099a mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd90ffbeb mc13xxx_irq_unmask +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/mfd/twl6030-pwm 0x0c23f5b9 pwm_config +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x24ba6d1e pwm_free +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x9d09808d pwm_enable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xb0493b18 pwm_disable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xc1f4ec93 pwm_request +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x10da93e8 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xc6d3b3d8 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/c2port/core 0xf7c2fe14 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xfa24d4c3 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x83af956f ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xda133435 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x1307f3ca tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x16392a0a tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x19798403 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x19bf8bd6 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x3ddb0c1a tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x3eff9a6b tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x4708d82b tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x8196d569 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x9d17f9d7 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xdc2c8780 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xed07780c tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xf20d65c0 tifm_eject +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x9cb61637 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x03ae777e mmc_can_secure_erase_trim +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0480316f mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x11cf09ea mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1234118c mmc_can_erase +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x14c393e4 mmc_erase_group_aligned +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x227a5fa8 mmc_try_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x262c4b02 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2bde8400 mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x31bfcae0 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3f482893 mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x401577b4 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x459c6621 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4c48d1bc mmc_power_restore_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4c49cd0e mmc_power_save_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5b2eafce mmc_can_trim +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5de14484 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6018a817 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x67345f62 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x70a79f8f mmc_host_lazy_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x779b5874 mmc_card_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x77e48aa5 mmc_regulator_set_ocr +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x867c5129 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9a21cabb mmc_erase +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa53e65c3 mmc_host_enable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xac75a6cb mmc_host_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb5aedb61 mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc1cd50bb mmc_set_blocklen +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc35029d4 mmc_card_can_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd56f9042 mmc_align_data_size +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xdce9b7bc mmc_card_awake +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xeae0f6c8 __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf8a13d20 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfdb6a215 mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x2a83b593 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x35f789f8 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x3a42df5b cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0f5c353b unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xa9b2f04f do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb6dc410d map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xe3da589d register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x5cfea484 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x65502b07 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x32f50ab9 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x13ff2ae3 of_mtd_parse_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xd23bc2fa add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xf9cdef02 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x5249ed4f mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xa16abca0 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x352fccf3 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x3df7cf6d nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x6ba64079 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x7128ea7e nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x83f7187a nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb3c04ba6 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xda1df1b8 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3744141a nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x811df497 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 0x3f40c36f onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xab918352 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc1b70f7f onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc50753b7 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x0e6f5702 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x2d7a8863 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x307ed944 ei_close +EXPORT_SYMBOL drivers/net/8390 0x5a271243 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x86af753e __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x8c3dbdba ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0x8ddb0b8c ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xb6af94b8 ei_open +EXPORT_SYMBOL drivers/net/8390 0xcd1a61ae NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xd4efdb8b ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x263c9ea2 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x29ec1803 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3500424a arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6fb420cd arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x711aa0a3 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x92219532 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9c00248e arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa5453e42 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb14d3602 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc10a101e arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x101c4f25 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x17fd9568 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xfbcec99d com20020_found +EXPORT_SYMBOL drivers/net/bnx2 0xefdcd976 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0x8f1ea278 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x3bab53e8 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0e8fc8c7 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3963ce2b cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x39965b52 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4dce400f t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6c9dc23b cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7a9debc2 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7b7339a3 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x87bf54ac cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8cd28285 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa46a7b44 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb2582d75 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb4ea3f96 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xcadfb570 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd386b90e cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd90c42f1 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xea9798b4 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x05773ec5 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0f7f2605 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1f84c6f4 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x341f094f cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3a691d75 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5d49e35c cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5f9fd7c6 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x80ed42cd cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa505f95d cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa556b3ea cxgb4_create_server +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 0xd41bea45 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe289f749 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe5cb925c cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xec3012ed cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfd1f2a66 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfe7ad4ac cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5c2b7999 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x800c6b07 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9ac8fac9 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd859087a hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xec6b4786 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x146fed75 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3c7a733d sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3e6bc1ae sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x53d93b75 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7811d710 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8f6efe91 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8fb384b8 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdbdf00a9 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe348c73b sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xef69d547 sirdev_put_instance +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mlx4/mlx4_core 0x1489d1d8 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xde07c599 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xf59d826a alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp_generic 0x04c9dae5 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x1b9990db ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x365c2371 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x665e3dd3 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0x9170c1b8 ppp_register_net_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xa04735da ppp_dev_name +EXPORT_SYMBOL drivers/net/ppp_generic 0xbc28ec2b ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xbf18be7d ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xc2e7609a ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0xd0e66c48 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xe3aa996b ppp_unit_number +EXPORT_SYMBOL drivers/net/pppox 0x41973777 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x425d9b36 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x6788f815 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 0xcd97f86c mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x0c157613 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x2fd550df tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6b3652ab tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x71c019c6 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc55a1c15 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/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 0x171ce54c attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x18264c28 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1d77548e register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2706d39f hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x71405c81 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x744b812e hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa3ed4eee detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xaa4530bd unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb6b83814 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdb6775e8 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xeb74cd3f alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x6b03510d i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x535c95a1 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xd7cb42c0 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xedd96049 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x091b0c2f ath_hw_keyreset +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 0x494d0c3f ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7d723066 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x98fe23b4 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9e3fffe9 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1672f3e ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1b9258c ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbd886e6d ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc48d602a ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe14712e1 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2b8b09fa ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5fb438e7 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe5ba1a5b 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 0x016e7992 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0790c3e5 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0898557b ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b26e329 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b9cba36 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bb704ac ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c793cd7 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x163e40b5 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x192355fe ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19f27f15 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1bb0413c ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c6abe81 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c97d401 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20f98341 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21ecd828 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22a29aea ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2972b612 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3594a898 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36131c90 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x381d85ea ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3976d126 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a9086a1 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d2de98b ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d7f40bb ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4700670f ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4736f632 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4eb0132b ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fcae47e ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fcbeb0c ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x50e2a181 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52730c89 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x553a7693 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a8efaa0 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5abf1345 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x615c92cd ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x664ec338 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c28fa05 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x719ea6e1 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73c50c18 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75c783ec ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b524f9c ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c607242 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e3b345d ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ea8b9f9 ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x830f3fa8 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cda3a45 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cfcece4 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d633fbd ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90fb1e9f ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x963894d6 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x970e4ce4 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97ca0673 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99546da7 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d1b46cc ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f08004f ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa04f09be ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa78ba2bd ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa798de8a ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xabaa8bb6 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf201e78 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8f539e2 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb91af427 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb267e9d ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc709d6de ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcbc1e489 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce0b7fa3 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0bbbe8b ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd247c74b ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd94d13df ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda751cbe ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb7190be ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc52039f ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1752589 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe57b2dd9 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe57bca68 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5c27a6e ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe927a9a8 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeaaef0a0 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed32ec64 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeeb451b6 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5517b79 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf625f195 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb06c6c6 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfdbecd64 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff9a592c ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xffec46d7 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/atmel 0x04a0c4c5 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x0538df2f atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xce02c09e stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22858631 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x23a74583 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2eca0e41 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x300b0b67 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x399d2ff8 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3e54ec9c hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x46ce1d74 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5b66d412 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5bb3d1c2 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5f6cc319 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x69399e03 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x835dbeed hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8a914336 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x957f5bb6 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa04f0959 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbef3f815 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc392db15 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc504053c hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd4f85dd5 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdc58fb31 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe6b236b9 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe86a82b1 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xece29f63 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeecf6efc hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf7784b0b hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x029a64eb libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x08a91394 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1547144d libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1bc5a027 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x52a54063 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6184c7c0 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7ea70ff0 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x85064994 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8a784693 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa3005227 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xaf5bad65 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbec113bc libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc6924420 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd375af41 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd9a74aa9 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe4d74cbe libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf0142604 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfabcd05e libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfb012f74 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfb793914 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfd241120 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00d675dd iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0231dbe3 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x05c51123 iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x072dce96 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0d972e6c iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x184c8011 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x193ef850 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20cfa22d iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20d55b5c iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27124960 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27d3add2 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28686585 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x297f60b4 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x325acd64 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32dcb016 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37a04068 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a06942f iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a58c1db iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3b46c552 iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d3253cd iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4037a304 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4046409d iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40521061 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41b4c0d9 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x442d7042 iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x46bc1ec7 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x46cb215d iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x47173102 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x474b544b iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x47c87c63 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48802309 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b189370 iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c503549 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e151df3 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50f93ccc iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x55369f0c iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x56a5deb9 iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57e7df7c iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5db19d54 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5db1fdb7 iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e6dc370 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5fbc7868 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5fdaa6a2 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x637ebe17 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x65a0a424 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67f106be iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x687ecf24 iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6964a376 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 0x6d33ff11 iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x737c7979 iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7450fbc1 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7502aec5 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78b4164d iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7c86bcc8 iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7e53c298 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x81eb1560 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x84c33319 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85174149 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8555b5ab iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9cde1f24 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9dd71414 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9e3ab1f2 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa0392147 iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa237d745 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa383d7e6 iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa4438339 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5168185 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7d56b1e iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae09b4f5 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb0287795 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb1310a9c iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb470ea89 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb62f97ff iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb77680e2 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc05f6b1e iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc71271a0 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca0a66a5 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcdee2664 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xce45e2f1 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd0cf058c iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd6a0dee9 iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd947dfa0 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xddf233e1 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe189344c iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe39cf00f iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3f01f64 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe4d0f688 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe5641614 iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe88b8214 iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8a2ec88 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec87d494 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xef195073 iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf05af54a iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf0b0cd74 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf12cfc80 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf27f447d iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf709d9f9 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf728745d iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb46a76d iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc3536e9 iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0aecb858 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x37c58bd6 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x62991aaf hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a3c6706 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a79d6df orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6ce86040 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6db46c0a orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x82e2a2c9 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x87f9c64c __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8c1f7fdd orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x918f8361 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x94dec6e3 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbefca3ff orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbf220595 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcb299dca orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf9476f2d orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa1baab7 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x04bce30d rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0c0a7c3a rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1fb8555f rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x46569db5 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4bd528e2 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x50808190 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x50f7af69 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x59eaedc4 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x68fc320a rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79ca5fb6 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7ad3f83f rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb84c3359 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb85fb0ae rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xce6180d0 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf6ee1ae2 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/parport/parport 0x00501a2c parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x111c4dce parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x1251aa06 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x1c7a5403 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x205e9339 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x2880913e parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x331ddeb2 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x334ff221 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x39f6696d parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x39fbaaa9 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x42289bd8 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x6a35ebe5 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x764819a1 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x7956fc56 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x7adc8254 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x7cda4fb2 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7e3bd570 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x808c5edf parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x93b24efa parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa2197af9 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xb9ecc8b8 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xbce2b154 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xbd7ea5fe parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xbe1a6f60 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xc2f75351 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xcbe16dbc parport_release +EXPORT_SYMBOL drivers/parport/parport 0xdcc2de29 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xe2946738 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xeb863bb3 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xfb111596 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x55bd6ce5 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf0c9726c parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x195584fb pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x27e78aca pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x287b76fc pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5049adab pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x51d47598 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x660a07d7 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x75bfd12e pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x828a6b7a pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb1584d30 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb32f6752 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc5d3f37d pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcec8caf8 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdd2736ab pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe1102f13 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe4aaa8c2 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xef814766 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf1ac27b6 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf3277984 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfb0e282c pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x06aae278 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x091e9be9 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x17ebb49c pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x43a4639f pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x584b9c2a pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x616acae3 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7a47277b pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa24bfbbf pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa33b7bed pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xee2c4f73 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfbb687db pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x1df5a942 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x4c026613 pccard_static_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x2d60c357 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x7a181715 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x96e2faa4 pps_register_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0cba46ea fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1a2602fb fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x28e6a185 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5681a495 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb41ab34a fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcf3cc624 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd0d9747f fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03b9334e fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06f372a3 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ad9134b fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14e4e121 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d50c63c fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1eb2e713 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x29bc0ff6 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2d11d667 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f223b2b fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x300d372f fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x34e56741 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x35236683 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x35b820b9 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4d8942be fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x52e4e651 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57472855 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x58b13eab fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x597e7de6 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d5a15b5 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5f3b9d6c fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5fe905c0 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6726c187 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a371749 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74c238e9 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74f0a1e1 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75e8006a fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x769efa4c fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x776487a5 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7900833c fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ee2ecaa fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x84657ad7 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9625906d fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9766858d fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x984f03d2 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98e66ec9 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7000ccb _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab399601 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb089b62d fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb21c0fd6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdedc7d6f fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2b52287 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe450975c fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe59c79df fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xedb65fde fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf36c330e fc_lport_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 0xf57030f2 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x073cfcc7 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0adece6a osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0d5d350b osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x14403153 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2aab0da2 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2fd8f46f osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x370a1eef osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3f2a5d37 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x41b0621f osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x42f60ee3 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x45ef7ede osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x48c01fba osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x63da262a osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6cc4fcea osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x72392247 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x83ab76bd osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8aa241a0 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8f264782 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x98361d40 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x990a6c27 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9fa0f607 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaea08303 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf6c4385 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc4332ac3 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc9a7bc82 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcc41603e osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcf95f2ea osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd0c0581c osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd7f6c679 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe1706d69 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe2633226 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe3c52c13 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe94be0a8 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xef08450e osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf271b1c8 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf517466c osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/osd 0x586373b4 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fabb74f osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x804f9505 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x89e8180e osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc2fdb8c4 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe120f278 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x0b130e20 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x47a23c5d qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4f40b9a3 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4f90ef21 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x62da5ca0 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa0e030b2 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x220bb859 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x43b2eaf5 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x9719def8 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x081658fb fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x10621432 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1fe219d6 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3820def9 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x385a5d7c fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x52032c94 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x631a63b8 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x86238414 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xba699dfb fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc2bdde1c fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcfd32f49 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe5929c11 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xec125941 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16855f33 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x176d8ed7 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1d616876 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1f3517ee sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x252594f2 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4035733e sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x54515e54 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5d7e9728 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6f53e75b sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c835b99 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x860365e2 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8d3a9380 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x904dc19e scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x931bd39e sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c9b3d26 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9cdeac78 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaadb4ff7 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb4278782 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc550b43d sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc8628121 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc966e0b5 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc9859b23 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd65bc393 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd6eb2482 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xde261c8e sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xee8de24f sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2da6aa43 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x463ae286 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe742c4b5 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xea34f2d6 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xfc0210af spi_release_transport +EXPORT_SYMBOL drivers/ssb/ssb 0x17dc05b3 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x233ae785 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x372c7dff ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x412d4e44 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x4cd1576f ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x62ccd3a8 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x6f1dbe5c ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x7173970e ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x7276d75b ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x7e64e7cf ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x877799e5 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x90637801 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x92064e84 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xa74ae606 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xab48ff04 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xc030ff14 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd76e8407 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xe0fa3f65 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xebb0139c ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xfc02e7a2 ssb_clockspeed +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d9d1422 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x12fa7a9a ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2578696f ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a6d61b8 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2e0a4b41 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2e3393a3 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c5cd1d1 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a95b503 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e56f52b DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e869202 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f08b573 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6379727e ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x652b3c3b ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d0104ea ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6e36eb94 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74b665ad ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x77187ba1 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x77b4e9a3 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7a5b4056 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c327c08 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e749ac3 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x90407afe ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x940fa2b0 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x942d0d01 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x96e17718 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x97bd579d ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a67326f ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d85bc41 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8146158 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaefa1c3e ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb1f4d77a ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb3d31649 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xba9b15e1 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc21ce709 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 0xc593d4e4 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc7f67298 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd85aaffd ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd87c881b ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda7e494c ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdf6a597b ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe107e1dd ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe651b800 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe8fb072f ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe93271aa ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec1df7f5 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec76f091 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf1dfbf91 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf404a4f3 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf75290d5 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf7605e02 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf8b5c91a notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf979cbed ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc142a48 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff64f210 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x8112bbfb tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xe879a9e2 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xee372a49 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x02bdc9c0 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x03cae7ec usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x42cad956 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x5bd3b8f7 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x70e48a6c usbvideo_register +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x72079d96 usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x79172f82 RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xadcd846e RingQueue_Flush +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd26d1f7c RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xebd25d56 usbvideo_TestPattern +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x053ac3e6 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0576edf8 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0654562c sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x081cffb4 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0b70abf6 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x1299764a transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x20e47b2b target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x24a6e15f fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x25fbdf1f transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x2653e81e sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x26b5158d sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2e105b9e transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x30efd5ff transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/target/target_core_mod 0x37aead39 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x3c2a22fb transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d559418 transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3e1e89d7 transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x42356f28 transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x44012831 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x44fb4f05 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x46ad23c5 transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x48ff527a core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b71a442 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x541b11cf iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x5beb0df6 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x674da1ff fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x693865f8 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x744ecd92 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x749f9349 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x7807f16e transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x7bbb743b core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b44a58c core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x8e058a25 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x8f7ec26d transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x92dfc637 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x9758551b __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x98b9918a transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x996aa6d3 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa82fb504 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xb6ae8f2a core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xbce4743b iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xc6ee8ba2 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb7f4d47 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xccece368 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xcf7226be transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3e455b0 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xe752081e transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xea0acb2c iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xed97697f transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xee3c9c7a transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0xeff3eae7 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf7c727da transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9b453c3 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xfc1dd488 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xfffaf44c transport_deregister_session +EXPORT_SYMBOL drivers/telephony/ixj 0x992a50a9 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0xaaa843ec phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xe73f69fd phone_unregister_device +EXPORT_SYMBOL drivers/tty/serial/8250 0x15dc1f1d serial8250_register_port +EXPORT_SYMBOL drivers/tty/serial/8250 0x41c54e04 serial8250_set_isa_configurator +EXPORT_SYMBOL drivers/tty/serial/8250 0x4bf0107a serial8250_do_pm +EXPORT_SYMBOL drivers/tty/serial/8250 0x837a5757 serial8250_do_set_termios +EXPORT_SYMBOL drivers/tty/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x32e16392 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x65513a52 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x8c541c40 usb_gadget_probe_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xf12a8f55 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 0x01cc196d usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1a5394bd usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2fc3af05 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x31840d9c usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x45b597ae usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x64d6a1ba usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8448a7b4 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x84901ad6 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9657c707 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa631692f usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbef75062 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xca76d3e9 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd8002c9e usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdc97c187 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf38d8282 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x05c4dd73 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x709b4b68 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1fea6d9e lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7ffa99ca lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x653dcad8 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xcdb6bc8f cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xe2839e5b cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xf55be99b cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0x10d033e1 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x3ffbfdb2 display_device_register +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x10e436e1 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x14e919ca matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x30ef8963 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x62dff33b DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6ed448c9 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x75b5ed57 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc2949438 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x789d0ea2 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xf4382181 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x27b4a32b matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x2eee2b30 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x36541be2 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe11af440 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x2a254423 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xcdb5ffc1 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x08698889 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x439b7711 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x69b96e1f matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe9b9e7a7 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xfe4b9af3 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xeb10f619 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x639fea63 video_output_register +EXPORT_SYMBOL drivers/video/output 0x95e5e8ea 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 0x137edb8d svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x14a215d2 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x1769e873 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x5f33631a svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x95cf4a06 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xcf0bf62c svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe2f49dbc svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0x48b4ea1c sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x68d7685e sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x490d1036 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 0x8b1b1ed3 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x8f2a6f03 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x28896f9c w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x7cdf2030 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb241f54e w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xfc68f5ff w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/wire 0x18a277ff w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x6c675f6b w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x891e3d8d w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xba9c3490 w1_register_family +EXPORT_SYMBOL fs/configfs/configfs 0x076f622e config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x08735653 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x21ac8e17 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x36ea504f config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x55b1bff5 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x60d21560 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x81cbe535 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xa7a80f45 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xc75900cf config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd25706c5 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xdb9146db config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xf27e56ea configfs_register_subsystem +EXPORT_SYMBOL fs/fscache/fscache 0x03ec1148 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x124a9f27 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x1d7ec216 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x1dd5f6d7 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3a7027a7 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x3d256aba __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x3e933690 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x49a86cb3 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x5559f05a __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x5d0d19c6 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x685e2ebc fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7b469072 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8af44620 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x952f5442 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x9e54b5d2 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xc0adf19b __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xc7a3bad4 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc9d0a70e __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xc9dbb773 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xcd7c6451 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xd8e1ee72 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xe17d3364 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xe51f13b6 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xe888ff6e fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xedd22a93 __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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x006735e8 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x0a718067 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x31a00ad5 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x4d7e5ece qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xf7d3c225 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/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/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0x64aa7d8f make_8023_client +EXPORT_SYMBOL net/802/p8023 0xa1436f19 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x029d6226 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x1a20238b p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x2544627c p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2c4b8da0 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x2ee59e47 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x343d78ce p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x36033667 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x3aa837ec p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x402091ac p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x44a1d7b2 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x4fd9743b p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x54207982 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x555599d3 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x556d0c53 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x5577b2f2 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5bc5c0dc p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x64025431 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x65724160 p9_client_link +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 0x77e245b3 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x82c985bd p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x9af8a27f p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9e0c333f p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x9e200581 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xa2bce8b7 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xa4238ea5 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xab52772b p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xb1cac9a2 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xb5e8d4f6 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xb80f5f34 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xbb5aa5ba p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xbd0527cb p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xd0c332cb p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xd585c3ea p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xd90ff304 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe105d3de p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xe2fca08b p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xe50238d5 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe5f1e5bb p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xec9adefd v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xedf1357d p9_client_mkdir_dotl +EXPORT_SYMBOL net/appletalk/appletalk 0x186645ac aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x948a78ac atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xdf5e8992 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xe3edf53d alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x00e1a18f atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x0f01fa6a atm_charge +EXPORT_SYMBOL net/atm/atm 0x14b6395a register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x19080e96 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3264b8a5 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x55cc7439 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x5d13cae1 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x8ea5b441 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa5ee0385 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xae77be1e vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xebd00d4b deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf19ed8a2 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xf49525dc 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 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x26020d0e ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x2c731c88 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4bf52a8e ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x4f9f1623 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x7258427e ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x82641700 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc2371fd6 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xd15d9a15 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd8500bce ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0ccce892 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x143b442e hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x16ccddb6 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x17243c31 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x18db42ac hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x190a3b6a hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b6bd31d bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2d0a878c hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3253756c hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3299a32f bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x451d66a9 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e8a7ffa hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x555528a6 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d17a743 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6d4b4b8e bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6eac048b bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7250546f bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74b4e80e bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x952e9268 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x95a849d1 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9726a716 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb5dafa30 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcebc1166 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd283d188 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5fdce1f hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe4b350a0 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe77b99c4 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xef6c5938 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf218ea7f bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf3127b9a bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf3282328 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfaf59cae hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfc6e62e6 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xffabd437 hci_send_acl +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x53075d93 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4eb0c481 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x711f50b9 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x96e019a7 ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0714b825 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x0c3fa2f1 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x27c4c9db cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x2b3f3040 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x530c6e47 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x61dcb1a2 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x643ad04c cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x6f07335e cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x739c5915 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x74eb7673 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x7f720928 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0x809fd4e9 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x82032ae0 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x86812720 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0xa1b0679e cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xa7dadc3c cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xb0d34f64 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0xbce79da7 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0xbfb747f6 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xc2074496 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xc58bcf2e cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xc694bbfe cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xcdd869bc cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0xdae4a30c cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0xdbb9b07f cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xde4f8af7 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0xe29ca9eb cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xe99ba71f cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0xefd6e084 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xf77a44d2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0xfa11ac1c cfpkt_setlen +EXPORT_SYMBOL net/can/can 0x50886488 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x9efa7335 can_send +EXPORT_SYMBOL net/can/can 0xc6ed817b can_proto_unregister +EXPORT_SYMBOL net/can/can 0xda672698 can_proto_register +EXPORT_SYMBOL net/can/can 0xe8b71ad4 can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x07de84ed ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x081b70df ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x08b588a2 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x1495db10 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x18f3ae84 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1ad82be7 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x1f3248f6 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x20725bab ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x29bbed1d ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3b03b457 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x3b1ea0e3 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x4024bd85 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x46c47f3e ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x518b4cbd ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x527c5112 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x5518163d ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x644963fa ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x68b02322 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7a8f0eac ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x7f65fe9e ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x80b5b538 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x827831f8 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9c7e821b ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa2225c4f ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xa3582be5 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa7284c6b ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xaedcf79f ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb19f5e06 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xb326981c ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb5d880eb ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb8451c37 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xb8899339 ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0xbadaf376 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xbc115b78 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xc01774c5 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcba0fd64 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xd5e96805 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xd6eb0e1a ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xeaafc0dd ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xeda709f2 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xeecd0aec ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xfc3cdbd2 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xfe3b0e59 ceph_osdc_start_request +EXPORT_SYMBOL net/ieee802154/ieee802154 0x19b0dd02 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3d40ec49 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x410ef9e6 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4512f266 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x45ad641c ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x550835e2 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa3170109 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb89b478a wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd872df25 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdb603328 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe7bc0b82 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xeb2d13e1 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf957dd10 wpan_phy_find +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x2caff292 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4f22c0c9 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7f1fb28e arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x3c4a8961 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x66dacebb ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbcd8dc8c ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x51663b3f nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x793faf53 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8401326c nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa0b2b12f __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa6b99412 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa9e9eaef nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xfca4e268 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x4f15375a xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xf2390f27 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0f471398 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x111790bb ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd434a1b8 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe8c52262 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x44c0e843 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xe4360ce6 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xacd00c4c xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xb5945328 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0fac6c33 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2aecb44f ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x44b82dca ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x45b3f7a7 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6345e81b ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbb97791e ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcecde265 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcf4a7cd6 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x0198c865 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x08add1fd irlap_close +EXPORT_SYMBOL net/irda/irda 0x13c002d0 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x21f1a25e irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x22caf86e hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x2c2d19f6 iriap_close +EXPORT_SYMBOL net/irda/irda 0x2d3765bc hashbin_find +EXPORT_SYMBOL net/irda/irda 0x3614a4ee irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x4440f2c2 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x446ec26c irda_notify_init +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 0x58678b1f irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x58b11615 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x5f55c3a2 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6fd8bf3e irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x74c6eb16 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x757934bf irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7717d0f6 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x780f3dd3 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x79aa68ba async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x7aa1ddbc irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x7de04a81 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x80da7829 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9318295b irlap_open +EXPORT_SYMBOL net/irda/irda 0x9793196b iriap_open +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xae3740de irlmp_disconnect_request +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 0xbea90df5 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xbf285a4c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xbf6bebb5 proc_irda +EXPORT_SYMBOL net/irda/irda 0xc3a512dd hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xd2334ae9 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xd515c5b0 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xdf1f8221 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xe2574d78 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xe26deb41 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xeac9eabb irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xedf805a9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0xef16660b hashbin_new +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/l2tp/l2tp_core 0xb3e79847 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0e9403b5 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x2b267946 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x6adf06a7 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x75b9a363 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x94b18892 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xb8c9fe8e lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xc54fff57 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xf909888f lapb_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x06d2d4b2 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x0a2edc66 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x0c1c7d53 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x140ac4d7 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1fc361f7 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x21231b50 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x256031b2 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x270575c0 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x277bffd4 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x2bb31391 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x3330ddd6 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3f7d610b ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x47e60706 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x597c304b ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x6b75f5d3 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x739e1b07 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7c40673b ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x822d19f9 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x894afa7b ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8e0b33e9 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa098fac6 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa92aa3d5 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xad890546 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xb0458110 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb4a6dbae ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xbe222f33 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xc33f4396 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc34bf7a1 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xceb71106 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xd05f9dc1 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd324025f __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd5416eb7 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xd7e11d1a ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd902dd04 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xda82a101 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xebc3f830 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xedcf4162 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf06994cb ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xf1d5da4d ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xfa1fbc92 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xfe908897 ieee80211_stop_queue +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x09c7f105 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0f4bb984 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x176b49ac ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2125bda9 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x321c3cc6 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x46b014b0 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5293b773 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x69cf5878 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6fbbb641 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdcc7019b register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf48763b8 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfa8a9844 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3cd5d5e7 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x56440f27 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb49f2dbc nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x33ba35e7 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x183b4878 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x3542cdca xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x3e33d00d xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x4235d8a6 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x473efea8 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x5c1838b1 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f66be26 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x97543f1b xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xcfafbb72 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xe58a5a02 xt_register_match +EXPORT_SYMBOL net/phonet/phonet 0x27d79bd7 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x3765987b phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x38a15120 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x3be3bee1 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x3bfaba95 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x8d53bbda pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xd36607ca pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xdbe86b6b pn_skb_send +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x01d8a83e rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x041ab256 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1fa51193 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x353148b2 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x375c548b rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x391aa2a5 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4673575a rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x50023343 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x60fd0b30 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x69381f4d rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x733faf4c rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb13bc097 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc742efd1 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc9061598 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdcf3efb5 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x30126cbe svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf9f1c810 xdr_terminate_string +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x8bb41ab6 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x6101afb6 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xf2e40067 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x04666ce1 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x152cd7d7 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x20049a39 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x20471ade __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x21f2094e wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x2da91f6f cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x30013b78 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x3ef42749 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x3fc0ee85 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x423f72be regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x49ac6689 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x4e948084 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x62a1d865 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x76b0c719 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x7e4470fd cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fdfbe55 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x81519e7f cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x82c17ef2 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x85a36882 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x899dbed9 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x89cb8cbc __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x8cc63fa5 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x90171718 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x942cd929 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x9607f516 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa0d959d6 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xa407ef60 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xa649cd93 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xa6f90335 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xa878563f cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xaafc0626 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb21c213d cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xb3c810bb cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xb4a6c63a cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xb9b5a8be freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xbb97fd68 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xbc39279f wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xc1bcc0cf wiphy_rfkill_set_hw_state +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 0xd4670c15 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xd59b208b cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xe8237e09 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xf462121d wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xf8a00920 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xf8fa33e2 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xfe81a3d9 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/lib80211 0x04a3b218 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x0fa1221e lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x3ea1e751 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x4fa96152 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x5aaaa65c lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x5eed2349 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x68ba22b1 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xcc04fd18 lib80211_crypt_info_init +EXPORT_SYMBOL sound/ac97_bus 0x1988c8d8 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00c5d4ac snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x0906bf6b snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x22226b4e snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x24ab6ed4 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 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 0x7699e1e0 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x8ab72e7d 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 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 0x09b187ad snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x060d01db snd_device_free +EXPORT_SYMBOL sound/core/snd 0x0cabca3c snd_device_register +EXPORT_SYMBOL sound/core/snd 0x122f06a7 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x13f93854 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1a847166 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x1f80fc0f snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x225d733b snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2b888af0 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x2ec374c0 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x31c0e62f snd_info_register +EXPORT_SYMBOL sound/core/snd 0x33dfa560 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3b3992d0 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x3bd57ffd snd_card_create +EXPORT_SYMBOL sound/core/snd 0x3e56ac55 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x4877b418 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x51bcbb3e _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x52be4355 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x53e90d5e snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x5522a011 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x5929a023 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x5c2c5a30 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x61e8b319 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x6d1af116 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x6f05017a snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x73a7694c snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x7ef39c41 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x8ab886f6 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x8be31eca snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9016a063 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x93cc5983 snd_jack_set_key +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 0xa327599a snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xa48d488c snd_cards +EXPORT_SYMBOL sound/core/snd 0xa688d42b snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xaabd097b snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xace5df27 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xaf853f22 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xb1f23416 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb71e72ee snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xc4cf6862 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 0xd65f172b snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xd924f834 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe3c7696d snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xf77563f5 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd-hwdep 0x7c976fcb snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x01b3fe37 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x29195cb6 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x62e64be7 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x975800ff snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xdfe9f3ee snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x02e918c8 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x1349d9b7 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x1873dfc0 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x2135558d snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x2907b2f5 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x292e5743 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x29c6027a snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x4605a9fd snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x48047d20 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x493a8ea4 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x4aad45aa snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x4cb8e87c snd_pcm_lib_writev +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 0x557c00a6 _snd_pcm_lib_alloc_vmalloc_buffer +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 0x73aa836f snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x792a1489 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x82cc8466 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x8b9a1d37 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x8d41ad11 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x9b1c81b1 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x9c8fb99e snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x9ce39f03 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x9fba265e snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x9ff27eef snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa7aad6b4 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xaaaaf913 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xb032171d snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc1d0b801 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xc4a819d1 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xc6f75c53 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xcfa78ab7 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd8ba9270 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xd9a592c8 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0xe14da752 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe67fe0b1 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xe957f79a snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xea92d032 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xedc4b943 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xf0059313 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf6d7e5d6 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xf8c5d128 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xfb17914e snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-rawmidi 0x17cefe3e snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x24c4dc46 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x32b60de1 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3ad2e57c snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x42efc212 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4ace133d snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5993087c snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7717789f snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9dc8d7df snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xae786f7a snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaf6f88aa snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb15222d2 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb93b9099 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbe71de2b snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd0b3d33c snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf6c9846e snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf9fa7c33 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-timer 0x016dcaea snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x0a75de5a snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x0db1e68e snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x10f6bea8 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x208c7eca snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x2fa51e1f snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x429bb2bf snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x54188bc5 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x694af0c7 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x79bf706d snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x823fc8b3 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x9178839e snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x92a4f04d 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 0x61d6d4be 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 0x19d6adf0 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3f194677 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x865d9058 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9efe0a47 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb90f963f snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb94b25f6 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd6087d39 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf7095d9e snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xfd140e08 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x028eab35 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1a43dc7a snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x23b53de4 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6379d31c snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x646f66b9 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x80387bbe 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 0xda83ac6f snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xeb6f43f2 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf959f37d snd_vx_setup_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x0f45a502 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x11e17446 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa6ab5540 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xbfb2949d snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc14366dc snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xfaa2b13e snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x1aaf52ca snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x60aaf518 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6f350e30 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x7c27c268 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x7cee8bcf snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xcded8b69 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2d8cc8d6 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x48db790c snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x92f8965e snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x97c7e458 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x54b8891f snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xf7b534c3 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x08800052 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xc3e55171 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x5460741c snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x86695a0f snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xab6eed80 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xcb096749 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xeda966f2 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-i2c 0x10410c5e snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5219a16a snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa2044203 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xadd0f961 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xcb784b2d snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xeec6f014 snd_i2c_device_free +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2e788e05 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x31c9573d snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3fb2fe6b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6d21eedc snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb0758693 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb3278720 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xbb43ede8 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xbbeeb329 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xda4741b6 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xeca17971 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x075ef0ae snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x25aa0630 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x3f7f025e snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0dd7bc2a snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x17673681 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x45d2acf5 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4c3e36b7 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x51a1586c snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x59158914 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x649f7b80 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x677136ff snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x70f0f80e snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7d4d4352 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9cd95f07 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xadaced6e snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb4a1ff22 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf41bc016 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf8bc5220 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf960ca70 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfdc7c58d snd_ac97_update_power +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0a13aee6 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4055bcb0 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x60d3f984 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x674bf576 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x943441ff snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xaba5a6eb snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xcb9b4d8f snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd21d7f3c snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe63935d5 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xc54693a2 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x16b5b169 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x9962a7f8 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xd9a97394 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1650faad oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x228335f5 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2ca97f6c oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x38488aac oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4937ecd0 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x74a09e28 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7a7bf8ec oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x83c79685 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x868bc267 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x89b22252 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x91f3140d oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa00e634e oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xab35a518 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xabb73612 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb37c8e78 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc758c1e0 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc8ace85a oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcb2d9204 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd0740f23 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd91f25b6 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe7096c7e oxygen_write_uart +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x22ced70c snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x330e8c6d snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x393d25b0 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4e654539 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x5a7edc5e snd_trident_alloc_voice +EXPORT_SYMBOL sound/soundcore 0xaae8fee1 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x324681b7 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x60855b1d snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb36bd2db snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb4a2faaf snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb4b1807a snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf404822e snd_emux_unlock_voice +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 0x39bb1a1a 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 0x0010004d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x002761b3 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x003ed69a __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x006961d4 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0093adc8 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x00b4d37e kobject_set_name +EXPORT_SYMBOL vmlinux 0x00c1a0e2 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x00d1d26f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01033c61 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01179fb3 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x0120d398 end_writeback +EXPORT_SYMBOL vmlinux 0x0135dcb2 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x0153b91a kunmap_high +EXPORT_SYMBOL vmlinux 0x018543ce bio_sector_offset +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a14c79 dev_uc_init +EXPORT_SYMBOL vmlinux 0x01a18bc1 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01d71d43 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x01feceb6 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x0217b003 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x02384e8d ioremap_flags +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02ed595f security_inode_notifysecctx +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 0x0330c4f8 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0395633d jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x03a8298a netdev_info +EXPORT_SYMBOL vmlinux 0x03a8793a security_inode_readlink +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c14d84 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x03d2158a inet_frag_kill +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04029d88 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x040fc7d3 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x04109758 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042ba11c tty_name +EXPORT_SYMBOL vmlinux 0x0458e399 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x045b63cc framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x04769edf sk_dst_check +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0499e5a2 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x04c6f4c3 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x0505ce4d __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05c0c50b dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x05cbc3df xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x0604ac4c vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x060b75d3 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x060cf496 dquot_operations +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06316f99 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x06454d24 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06a628da giveup_fpu +EXPORT_SYMBOL vmlinux 0x06b6cf05 wireless_send_event +EXPORT_SYMBOL vmlinux 0x06db4cb6 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0702d55f elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x07235275 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x075cf9f5 simple_readpage +EXPORT_SYMBOL vmlinux 0x0774a27e jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07ac77e4 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x07b48ee0 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x07b6bcae dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x07b973dc ip6_frag_init +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d8f3ff redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07e86ab6 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x07eae65e vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x07eaf687 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x080a41da xfrm_register_km +EXPORT_SYMBOL vmlinux 0x081534df bh_submit_read +EXPORT_SYMBOL vmlinux 0x0826ebbc llc_sap_open +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08724dee __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x088c23ce blk_init_queue +EXPORT_SYMBOL vmlinux 0x08a1eedb cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x08ac75ec neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x08b5c5c8 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x08b62cc3 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x08ba6b0b swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x08f8a20d pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x09250277 default_llseek +EXPORT_SYMBOL vmlinux 0x09333104 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098a6328 dma_pool_free +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a4271e rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x09a9f090 kernel_read +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cd9560 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2c9a2d generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a3f9d03 pci_select_bars +EXPORT_SYMBOL vmlinux 0x0a47b231 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x0a4cff11 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x0a730423 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x0a90651e pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x0a9068ee scsi_scan_target +EXPORT_SYMBOL vmlinux 0x0aa76b6e sync_inode +EXPORT_SYMBOL vmlinux 0x0abcdff6 unregister_8022_client +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0add1bbc jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x0ae86245 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x0aea63fb inode_lock +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b37d3fa __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x0b42533b i2c_del_driver +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b537255 agp_free_memory +EXPORT_SYMBOL vmlinux 0x0b66fcd9 input_event +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7e4506 backlight_device_register +EXPORT_SYMBOL vmlinux 0x0b9ad9a8 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x0bd4d883 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x0bf7d82a nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x0c05de61 page_readlink +EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0c39f733 pci_domain_nr +EXPORT_SYMBOL vmlinux 0x0c4d823e ip6_xmit +EXPORT_SYMBOL vmlinux 0x0c4e730d tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6b113f abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x0c716493 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x0c767275 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x0c7c3766 get_phy_device +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cd02214 key_link +EXPORT_SYMBOL vmlinux 0x0cd2692e vga_tryget +EXPORT_SYMBOL vmlinux 0x0cd3d124 backlight_force_update +EXPORT_SYMBOL vmlinux 0x0d1acbc2 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x0d32ced7 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x0d32ecab dquot_alloc +EXPORT_SYMBOL vmlinux 0x0d3a32f5 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x0d4f2ddf account_page_dirtied +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d695f2d udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x0d8a76bd f_setown +EXPORT_SYMBOL vmlinux 0x0d97cd63 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x0d9faa36 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0daea071 secpath_dup +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0dddbeba journal_forget +EXPORT_SYMBOL vmlinux 0x0e02a652 generic_write_checks +EXPORT_SYMBOL vmlinux 0x0e0c7010 log_start_commit +EXPORT_SYMBOL vmlinux 0x0e3e3176 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x0e5258f5 flex_array_get +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e6d8c16 vfs_unlink +EXPORT_SYMBOL vmlinux 0x0e8b3404 get_gendisk +EXPORT_SYMBOL vmlinux 0x0ec22ea7 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0ec9d361 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x0ee775a8 macio_release_resource +EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr +EXPORT_SYMBOL vmlinux 0x0f15599b generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x0f1c1a29 bmap +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f3142fa security_file_mmap +EXPORT_SYMBOL vmlinux 0x0f526e21 sock_map_fd +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb834bb blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x1035061a gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x103bd8b9 giveup_altivec +EXPORT_SYMBOL vmlinux 0x1083b707 mntput +EXPORT_SYMBOL vmlinux 0x10a056d5 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x10aa2e98 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x10b15ce1 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x10bef5c3 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x10bff989 save_mount_options +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 0x113436b5 dev_warn +EXPORT_SYMBOL vmlinux 0x113852de skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x1152fd98 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11663cec adb_register +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x119f4375 set_page_dirty +EXPORT_SYMBOL vmlinux 0x11e4cb8c cdev_del +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12341f96 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x1237273e sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x126e64fa input_unregister_device +EXPORT_SYMBOL vmlinux 0x126efcf1 input_set_keycode +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x128f8bbb scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x1298ac43 mod_timer +EXPORT_SYMBOL vmlinux 0x129b2ea5 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12a87e27 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x12b2d20c machine_id +EXPORT_SYMBOL vmlinux 0x12d73b65 invalidate_partition +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12de967c dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12eec985 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fb307a inode_init_owner +EXPORT_SYMBOL vmlinux 0x13022be1 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x1318ded4 generic_write_end +EXPORT_SYMBOL vmlinux 0x1327290e inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x133eb665 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x134d41f8 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x1354b360 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x138a26ec udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x138b2105 dev_emerg +EXPORT_SYMBOL vmlinux 0x13a44be7 nla_reserve +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13fe6ed5 dput +EXPORT_SYMBOL vmlinux 0x14062884 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x141ab111 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x1454c524 do_truncate +EXPORT_SYMBOL vmlinux 0x147297e0 take_over_console +EXPORT_SYMBOL vmlinux 0x147d3ceb mii_check_link +EXPORT_SYMBOL vmlinux 0x14820d40 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x14c076de cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x14caa695 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x14e07938 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x14e97f30 agp_backend_release +EXPORT_SYMBOL vmlinux 0x14f8b32e scsi_remove_device +EXPORT_SYMBOL vmlinux 0x1541bf84 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15605f10 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x15696442 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x156e380d request_firmware +EXPORT_SYMBOL vmlinux 0x1588da31 dev_crit +EXPORT_SYMBOL vmlinux 0x15b68885 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x15ebb7ae pci_target_state +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x167553d6 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x16925a56 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x16c28d65 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x16c9e5c6 new_inode +EXPORT_SYMBOL vmlinux 0x16cdca43 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x16e2c3f9 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x16f3f889 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x16f48de8 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x16fbc6ca tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x1707b83a dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x17091842 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf +EXPORT_SYMBOL vmlinux 0x171e872b tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x172dc2a6 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x17628c85 dev_get_flags +EXPORT_SYMBOL vmlinux 0x176f398c uart_register_driver +EXPORT_SYMBOL vmlinux 0x1781a91b key_type_keyring +EXPORT_SYMBOL vmlinux 0x1792e1c3 skb_unlink +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17aaa2c2 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e3dc01 sock_release +EXPORT_SYMBOL vmlinux 0x17ed07ac dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1824f18b mpage_writepage +EXPORT_SYMBOL vmlinux 0x1836c3c5 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x1842aeee mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x184ba3f0 note_scsi_host +EXPORT_SYMBOL vmlinux 0x185d0245 journal_update_format +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x18a43c30 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x18e05fc4 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x18f3e668 arp_find +EXPORT_SYMBOL vmlinux 0x1925e804 journal_abort +EXPORT_SYMBOL vmlinux 0x192ccbef pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x1947033a ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x195cd6fa unlock_new_inode +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x19740882 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19da50db bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a221d2f inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x1a4cde2c dquot_resume +EXPORT_SYMBOL vmlinux 0x1a5ae5bb locks_init_lock +EXPORT_SYMBOL vmlinux 0x1a882364 down_killable +EXPORT_SYMBOL vmlinux 0x1aa30cc0 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad18107 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x1ad771de notify_change +EXPORT_SYMBOL vmlinux 0x1adca7c1 lock_fb_info +EXPORT_SYMBOL vmlinux 0x1ae7ab30 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x1afbff72 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b065b4a input_release_device +EXPORT_SYMBOL vmlinux 0x1b0725c2 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b780744 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x1b7afc71 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba184c2 d_alloc +EXPORT_SYMBOL vmlinux 0x1ba221d1 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x1bb37979 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bdfb872 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c419961 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x1c4c0501 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x1c58e770 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x1c58efa8 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c676dfa llc_sap_close +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c8f8f94 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x1c9034e9 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x1c9fe6b2 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3a4808 __register_chrdev +EXPORT_SYMBOL vmlinux 0x1d52d18c path_lookup +EXPORT_SYMBOL vmlinux 0x1d6f59d3 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x1d7c695f uart_suspend_port +EXPORT_SYMBOL vmlinux 0x1d97fc7f pskb_copy +EXPORT_SYMBOL vmlinux 0x1d9dd45a nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x1db53e7b register_snap_client +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc65d8b set_anon_super +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1def7a20 agp_copy_info +EXPORT_SYMBOL vmlinux 0x1e0ef78e register_netdevice +EXPORT_SYMBOL vmlinux 0x1e198f98 phy_disconnect +EXPORT_SYMBOL vmlinux 0x1e22398e dev_err +EXPORT_SYMBOL vmlinux 0x1e40702f xfrm_state_update +EXPORT_SYMBOL vmlinux 0x1e6a351d proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e782800 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x1e9cfc29 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1efee93a ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x1f2d06e4 cdev_alloc +EXPORT_SYMBOL vmlinux 0x1f55713b search_binary_handler +EXPORT_SYMBOL vmlinux 0x1f633b88 submit_bh +EXPORT_SYMBOL vmlinux 0x1f969e08 tty_port_put +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd7093e blkdev_fsync +EXPORT_SYMBOL vmlinux 0x1ff11f77 get_disk +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20030ecd ioremap +EXPORT_SYMBOL vmlinux 0x201dbe5b skb_pad +EXPORT_SYMBOL vmlinux 0x2026a7db buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x20538c07 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20772c9b sock_create_kern +EXPORT_SYMBOL vmlinux 0x20803084 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x20a27004 fget +EXPORT_SYMBOL vmlinux 0x20c1dbf5 register_key_type +EXPORT_SYMBOL vmlinux 0x2149c224 blk_rq_init +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2190283b blk_remove_plug +EXPORT_SYMBOL vmlinux 0x21aafe97 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x21dc1efd fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x21fd9f66 ide_set_handler +EXPORT_SYMBOL vmlinux 0x22085915 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x220c164a kset_unregister +EXPORT_SYMBOL vmlinux 0x220d47e9 __blk_end_request +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x221f0ae3 security_path_truncate +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22300a4c tty_throttle +EXPORT_SYMBOL vmlinux 0x223295c0 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x227e34ea dev_get_by_name +EXPORT_SYMBOL vmlinux 0x227e82fd blk_stop_queue +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228f86e7 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x2295b5e3 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x2298b2e6 path_is_under +EXPORT_SYMBOL vmlinux 0x22aa8e5c generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x22aac11a ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0x22b30696 request_key +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c68a6b gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x22d6a510 dev_addr_init +EXPORT_SYMBOL vmlinux 0x22dda8cc vc_cons +EXPORT_SYMBOL vmlinux 0x22f20809 of_node_get +EXPORT_SYMBOL vmlinux 0x22fc6a67 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x2321f371 seq_write +EXPORT_SYMBOL vmlinux 0x2341dae2 register_quota_format +EXPORT_SYMBOL vmlinux 0x2362553a alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x2365d8d5 scsi_device_get +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23c0b9ca skb_store_bits +EXPORT_SYMBOL vmlinux 0x23e02325 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x23e11e58 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x23e12c8b d_obtain_alias +EXPORT_SYMBOL vmlinux 0x23e9f621 pci_request_regions +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240016cf blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x240f04da filp_close +EXPORT_SYMBOL vmlinux 0x241e72a7 nf_register_hook +EXPORT_SYMBOL vmlinux 0x2423b2ab lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x2453d015 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x2454a69e scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2470810c of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x2496d2e2 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x249df99c kobject_put +EXPORT_SYMBOL vmlinux 0x24affea8 gen_pool_create +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x250c70c1 tty_port_init +EXPORT_SYMBOL vmlinux 0x2511253c fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x25226daf aio_put_req +EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x253037df generic_delete_inode +EXPORT_SYMBOL vmlinux 0x253e5611 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x2544ac98 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x255d73f5 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25873046 rtnl_notify +EXPORT_SYMBOL vmlinux 0x259b4255 blk_register_region +EXPORT_SYMBOL vmlinux 0x259beb6e eth_validate_addr +EXPORT_SYMBOL vmlinux 0x25ac381b cdrom_check_events +EXPORT_SYMBOL vmlinux 0x25d66438 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x25e767b1 agp_create_memory +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x25f6cf0c radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x2603bcd4 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x261209da thaw_bdev +EXPORT_SYMBOL vmlinux 0x2616c18c elevator_exit +EXPORT_SYMBOL vmlinux 0x262106db __scm_send +EXPORT_SYMBOL vmlinux 0x2629379b cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x26586dd2 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2691e701 d_find_alias +EXPORT_SYMBOL vmlinux 0x2693c45c pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x26a04f21 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26d406eb jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x26d8e78e mapping_tagged +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f65091 of_device_unregister +EXPORT_SYMBOL vmlinux 0x26fc7863 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x26fd8f91 __d_drop +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x2710ca9f i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x27330c8d block_read_full_page +EXPORT_SYMBOL vmlinux 0x2742e263 get_super +EXPORT_SYMBOL vmlinux 0x27776250 generic_writepages +EXPORT_SYMBOL vmlinux 0x277be770 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2789cb79 flex_array_put +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27a37c00 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27aeb0c0 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ce3404 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27e96a9d dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x287496db dm_unregister_target +EXPORT_SYMBOL vmlinux 0x287b32c7 register_8022_client +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28fd13e9 bio_put +EXPORT_SYMBOL vmlinux 0x290ce462 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x290fc0a0 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x2911971c bio_unmap_user +EXPORT_SYMBOL vmlinux 0x291bfd4b xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x292b9943 inet_bind +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29825170 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x29a87e2b proc_dostring +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29b27f29 revalidate_disk +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29bfcdd3 vfs_link +EXPORT_SYMBOL vmlinux 0x29e8144b input_allocate_device +EXPORT_SYMBOL vmlinux 0x2a07b67e grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x2a09cbc8 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x2a0c4ba3 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x2a29e430 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a39f28d tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x2a493e31 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x2a4af3ce load_nls_default +EXPORT_SYMBOL vmlinux 0x2a6ef920 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x2abc3a58 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x2ae6fa18 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x2af6748d alloc_fddidev +EXPORT_SYMBOL vmlinux 0x2af6f6cc kmalloc_caches +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b121724 input_register_handler +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b2f90ba dev_notice +EXPORT_SYMBOL vmlinux 0x2b31894f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2b58ab29 sock_no_accept +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 0x2b6c64ae elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x2b8407fb dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create +EXPORT_SYMBOL vmlinux 0x2b9286e2 stop_tty +EXPORT_SYMBOL vmlinux 0x2b976c73 __nla_put +EXPORT_SYMBOL vmlinux 0x2b9b84b9 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x2b9baebe ip_route_output_key +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2baeac08 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x2bbd8791 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bdf4a0c cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x2be857f5 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x2c07152a mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c41f960 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x2c78cd81 security_path_symlink +EXPORT_SYMBOL vmlinux 0x2c9d57eb blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x2cc5553b ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x2ccf502b ps2_begin_command +EXPORT_SYMBOL vmlinux 0x2ce1f487 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x2d06a3aa ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d354d56 skb_copy +EXPORT_SYMBOL vmlinux 0x2d399b13 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x2d5685ee nf_ct_attach +EXPORT_SYMBOL vmlinux 0x2d74ae1b textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2db4a175 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x2dc55c3f install_exec_creds +EXPORT_SYMBOL vmlinux 0x2dccccb2 flush_tlb_range +EXPORT_SYMBOL vmlinux 0x2de0d115 netif_device_detach +EXPORT_SYMBOL vmlinux 0x2e147e99 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x2e17afdd bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3fa46e journal_destroy +EXPORT_SYMBOL vmlinux 0x2e4823ca __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x2e4bfb8b tcf_register_action +EXPORT_SYMBOL vmlinux 0x2e6747df __rta_fill +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e7b3930 kset_register +EXPORT_SYMBOL vmlinux 0x2e9878aa blk_end_request +EXPORT_SYMBOL vmlinux 0x2ea3bfb1 inet_sendpage +EXPORT_SYMBOL vmlinux 0x2ea8b9d2 path_get +EXPORT_SYMBOL vmlinux 0x2ea8e79f ihold +EXPORT_SYMBOL vmlinux 0x2eb30a11 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x2eb4ecd0 genphy_read_status +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ed37508 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x2ed5f4c7 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x2eff9ad7 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f29b9f0 __napi_schedule +EXPORT_SYMBOL vmlinux 0x2f2a5062 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x2f6ad092 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x2f716a89 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x2f7f0bac eth_header_parse +EXPORT_SYMBOL vmlinux 0x2f819334 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x2f96323f rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x2fa23c6d ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x2ff746b7 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x2ffa0a7f journal_load +EXPORT_SYMBOL vmlinux 0x3013f538 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3028e855 init_timer_key +EXPORT_SYMBOL vmlinux 0x30294e70 vfs_writev +EXPORT_SYMBOL vmlinux 0x303214dc d_genocide +EXPORT_SYMBOL vmlinux 0x304c1611 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x30588738 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x306cf1cd generic_file_mmap +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30d70fa9 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3113a40b unlock_page +EXPORT_SYMBOL vmlinux 0x3117666a inet_getname +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31669087 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31b5cafb input_free_device +EXPORT_SYMBOL vmlinux 0x31b79c40 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x31d6f4a2 inet_ioctl +EXPORT_SYMBOL vmlinux 0x31db096a tty_devnum +EXPORT_SYMBOL vmlinux 0x31ed9458 sock_no_connect +EXPORT_SYMBOL vmlinux 0x32020ed6 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x32233b64 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x324560e4 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x324a2ad1 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x325aedc0 skb_clone +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x328bd478 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x3292f3e2 gen_pool_add +EXPORT_SYMBOL vmlinux 0x32bba797 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x32c55021 datagram_poll +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x32e56683 do_sync_read +EXPORT_SYMBOL vmlinux 0x3326e435 __inet6_hash +EXPORT_SYMBOL vmlinux 0x332da24a fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x3349d496 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x33617446 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x33880f01 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x33aecf24 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33b8b32e may_umount +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f06bec bio_init +EXPORT_SYMBOL vmlinux 0x340c85c1 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x34454aae sk_receive_skb +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x348a0b37 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x349050e6 neigh_lookup +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x3493acdd __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34d8815a sock_no_listen +EXPORT_SYMBOL vmlinux 0x34ec47a5 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x34ec5ddc pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x3500cee3 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x352ee995 dev_addr_del +EXPORT_SYMBOL vmlinux 0x3541a31b netpoll_poll +EXPORT_SYMBOL vmlinux 0x3550d534 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x35618b45 tty_register_device +EXPORT_SYMBOL vmlinux 0x3563cccb bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x35652293 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x357e1d35 netdev_features_change +EXPORT_SYMBOL vmlinux 0x359c8540 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x35bb4c69 user_path_at +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35ddef52 input_register_handle +EXPORT_SYMBOL vmlinux 0x35e7b982 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x35fbd6a1 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x35fc6932 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x3600efb4 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x362205f3 scsi_print_command +EXPORT_SYMBOL vmlinux 0x3623a2fc d_path +EXPORT_SYMBOL vmlinux 0x36553d7a scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x366d5e48 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x3699b1ba rt6_lookup +EXPORT_SYMBOL vmlinux 0x36d11704 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f91108 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x370cd5b8 d_move +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x372227cc pci_get_device +EXPORT_SYMBOL vmlinux 0x37307045 of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x373ef6a7 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x376da1e4 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x3793da71 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x3798a95d pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x37aa1f21 __irq_regs +EXPORT_SYMBOL vmlinux 0x37aa4d94 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x37ae4ef1 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x37b54876 ilookup5 +EXPORT_SYMBOL vmlinux 0x37b7fffc blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37e7b988 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37f6efd1 kernel_accept +EXPORT_SYMBOL vmlinux 0x38133c8b dqstats +EXPORT_SYMBOL vmlinux 0x382cb3b2 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x38343254 dquot_destroy +EXPORT_SYMBOL vmlinux 0x385371af tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x385ec71e swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x387c2baf radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0x388d731a kobject_add +EXPORT_SYMBOL vmlinux 0x388eb394 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38d57628 skb_put +EXPORT_SYMBOL vmlinux 0x38d6ef04 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x38e48c7e do_splice_to +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x3903da3a fb_set_suspend +EXPORT_SYMBOL vmlinux 0x3927507e give_up_console +EXPORT_SYMBOL vmlinux 0x392c1d7f lookup_bdev +EXPORT_SYMBOL vmlinux 0x39432f07 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x394c0a28 sock_no_poll +EXPORT_SYMBOL vmlinux 0x396c57d6 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x397b170f nlmsg_notify +EXPORT_SYMBOL vmlinux 0x397c41a9 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a344c1 key_put +EXPORT_SYMBOL vmlinux 0x39a410ac __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x39f004c6 ps2_end_command +EXPORT_SYMBOL vmlinux 0x39ffb77a genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x3a206067 security_inode_permission +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a2b61c0 pci_bus_type +EXPORT_SYMBOL vmlinux 0x3a2ca0cd kthread_bind +EXPORT_SYMBOL vmlinux 0x3a68b12b xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x3a70aa48 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3aa57772 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x3ad71524 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x3ae3591b write_one_page +EXPORT_SYMBOL vmlinux 0x3af5c29a dquot_scan_active +EXPORT_SYMBOL vmlinux 0x3af7ceaf netlink_dump_start +EXPORT_SYMBOL vmlinux 0x3b1098f7 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b68e55b security_path_chmod +EXPORT_SYMBOL vmlinux 0x3b93cb4c con_copy_unimap +EXPORT_SYMBOL vmlinux 0x3b95a0bf gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x3bc0885b abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c15fe7a block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c46e525 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x3c4a6b5f jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x3c65df36 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9ac0a5 pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cca62df cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x3cd3ea71 d_add_ci +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cfa48d9 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x3cfe80ad _dev_info +EXPORT_SYMBOL vmlinux 0x3d159386 lookup_hash +EXPORT_SYMBOL vmlinux 0x3d428efb sk_run_filter +EXPORT_SYMBOL vmlinux 0x3d5c348b dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x3d7e8ba3 neigh_create +EXPORT_SYMBOL vmlinux 0x3d9232b6 tcp_poll +EXPORT_SYMBOL vmlinux 0x3d93ddf3 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da0e39e elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x3da51c25 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x3dbbd095 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x3dcaac83 skb_dequeue +EXPORT_SYMBOL vmlinux 0x3dd17f07 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x3de63870 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e067f70 pci_get_class +EXPORT_SYMBOL vmlinux 0x3e114a6d tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x3e14c267 elv_register_queue +EXPORT_SYMBOL vmlinux 0x3e14d603 mii_link_ok +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e6d6211 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e99c0ad kern_path +EXPORT_SYMBOL vmlinux 0x3eae86ff netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ed990a7 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x3ef00d17 ip_options_compile +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f09c545 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f97be55 register_cdrom +EXPORT_SYMBOL vmlinux 0x3faa0fbf inet_frags_init +EXPORT_SYMBOL vmlinux 0x3fb40bbf tcf_action_exec +EXPORT_SYMBOL vmlinux 0x3fb51b93 simple_setattr +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x40056811 __brelse +EXPORT_SYMBOL vmlinux 0x400f4c76 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x401b9b5e dst_discard +EXPORT_SYMBOL vmlinux 0x4040689b vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x4048e146 generic_read_dir +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409858cd inode_add_bytes +EXPORT_SYMBOL vmlinux 0x40a0efc0 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a69b8c tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40bcb150 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d2dd32 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x40e62e51 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x41039cac unregister_filesystem +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x412886a2 mount_pseudo +EXPORT_SYMBOL vmlinux 0x413d1319 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414bd092 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41900ae4 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x41a2ab4c dcb_setapp +EXPORT_SYMBOL vmlinux 0x41c50447 have_submounts +EXPORT_SYMBOL vmlinux 0x41cdbe20 genl_register_family +EXPORT_SYMBOL vmlinux 0x41dd975c no_llseek +EXPORT_SYMBOL vmlinux 0x420abd72 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x420ea077 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x4221e4d1 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x422f70eb rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x42312852 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x425d9d3b tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42b72940 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x42ce9c12 put_tty_driver +EXPORT_SYMBOL vmlinux 0x42d164f8 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x42f37e6c kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x4302c869 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43035435 generic_permission +EXPORT_SYMBOL vmlinux 0x4307f8d3 __find_get_block +EXPORT_SYMBOL vmlinux 0x431de2ab follow_up +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x43485f22 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x435cf8ef blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x438c867c create_empty_buffers +EXPORT_SYMBOL vmlinux 0x439247bd pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x439393f7 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x43954047 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x43ae0c58 poll_initwait +EXPORT_SYMBOL vmlinux 0x43e4e2ac dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x44034cb8 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x4405fa3d generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x4409e84f of_unregister_platform_driver +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x443c5bcf cdrom_release +EXPORT_SYMBOL vmlinux 0x4452a746 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x446d83f3 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x448212fa down_trylock +EXPORT_SYMBOL vmlinux 0x449057f6 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44bc68bd sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x44c320b0 scsi_add_device +EXPORT_SYMBOL vmlinux 0x44d1d07a unlock_super +EXPORT_SYMBOL vmlinux 0x44e4df8a vfs_mkdir +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44ee1b00 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x4517aca0 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x45319db3 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x4537f873 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x454a2a53 mach_chrp +EXPORT_SYMBOL vmlinux 0x456db399 scsi_free_command +EXPORT_SYMBOL vmlinux 0x456e6dce radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457c29c6 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x457cf761 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x45962a2f key_validate +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x4597fdd9 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x459b8a60 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x45a73123 vfs_readdir +EXPORT_SYMBOL vmlinux 0x45c3fc87 pipe_unlock +EXPORT_SYMBOL vmlinux 0x45c48b1e seq_lseek +EXPORT_SYMBOL vmlinux 0x45c9b4d4 inet_shutdown +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45e17e1c mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x45f5f158 input_close_device +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x4650942f tcp_child_process +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46a829e4 path_put +EXPORT_SYMBOL vmlinux 0x46a8cce1 mpage_readpage +EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x46aa8c36 lock_super +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46d34769 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x46fc15f8 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x470cdaab key_unlink +EXPORT_SYMBOL vmlinux 0x47405066 put_page +EXPORT_SYMBOL vmlinux 0x47438bdc ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x476716fd abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x477c1521 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x477c36d3 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x47842af3 init_buffer +EXPORT_SYMBOL vmlinux 0x47938294 devm_iounmap +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47978302 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47be97f5 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x47dcf2cf file_remove_suid +EXPORT_SYMBOL vmlinux 0x47eaa81f scsi_register_driver +EXPORT_SYMBOL vmlinux 0x48158bdc skb_checksum +EXPORT_SYMBOL vmlinux 0x481b0df1 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48737fc2 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x488014ad of_find_matching_node +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x48918c36 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x48b87f4a devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x48c89343 scsi_init_io +EXPORT_SYMBOL vmlinux 0x48f3feb4 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x4907679d wait_iff_congested +EXPORT_SYMBOL vmlinux 0x4933790d dm_io +EXPORT_SYMBOL vmlinux 0x493571a8 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49774a70 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49ca4839 nonseekable_open +EXPORT_SYMBOL vmlinux 0x49dce880 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x4a0fd1b7 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x4a122c86 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x4a132966 arp_send +EXPORT_SYMBOL vmlinux 0x4a283268 override_creds +EXPORT_SYMBOL vmlinux 0x4a290d4d cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x4a2d3820 neigh_table_init +EXPORT_SYMBOL vmlinux 0x4a2e5419 __init_rwsem +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a388c0c d_set_d_op +EXPORT_SYMBOL vmlinux 0x4a4a0bbd kdb_current_task +EXPORT_SYMBOL vmlinux 0x4a54517e netlink_unicast +EXPORT_SYMBOL vmlinux 0x4a59bf22 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x4a62417e max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x4a6857ea dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x4a977da9 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ab6b95d phy_detach +EXPORT_SYMBOL vmlinux 0x4aef1353 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1b17f9 dev_change_flags +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b29ab91 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4b6a2e93 netif_device_attach +EXPORT_SYMBOL vmlinux 0x4b6e9c6d register_con_driver +EXPORT_SYMBOL vmlinux 0x4b83276e posix_lock_file +EXPORT_SYMBOL vmlinux 0x4ba4aff4 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4be063fa __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2fe97a bio_copy_user +EXPORT_SYMBOL vmlinux 0x4c61406e mnt_unpin +EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states +EXPORT_SYMBOL vmlinux 0x4cad453c of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc182b8 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x4cccf3fc blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x4cd1b803 journal_flush +EXPORT_SYMBOL vmlinux 0x4cd2db36 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d259540 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d85dd33 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x4d88b345 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4da5b225 switch_mmu_context +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dbc95c1 blk_rq_map_kern +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 0x4e24a388 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e50716c pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x4e5eea34 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e7ba28f kmem_cache_create +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e940431 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ec8ac1e set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x4efd81da phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f228df7 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x4f32cb15 single_release +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f86025a ipv4_specific +EXPORT_SYMBOL vmlinux 0x4f976f34 netif_skb_features +EXPORT_SYMBOL vmlinux 0x4f9ca91d dquot_acquire +EXPORT_SYMBOL vmlinux 0x4fdc82fb cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x4fdcb102 vc_resize +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +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 0x50384baf vgacon_remap_base +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x50686b7c jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x5071e0e2 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x5078ae5d __alloc_skb +EXPORT_SYMBOL vmlinux 0x509f69a2 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x50a8922b netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50b60c49 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x50ba439d __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x50bccc86 adb_client_list +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50de9c93 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x511c4678 __destroy_inode +EXPORT_SYMBOL vmlinux 0x514ccb44 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x5160d869 validate_sp +EXPORT_SYMBOL vmlinux 0x51a95613 follow_down_one +EXPORT_SYMBOL vmlinux 0x51ca15b1 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51cfdcf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ecbb7e dquot_drop +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x527488b0 scsi_eh_finish_cmd +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 0x52acbee2 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x52ccdd67 bio_clone +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52e861c4 generic_file_open +EXPORT_SYMBOL vmlinux 0x52fd2d9e textsearch_prepare +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x534a76ee journal_init_inode +EXPORT_SYMBOL vmlinux 0x53554c49 vfs_statfs +EXPORT_SYMBOL vmlinux 0x5364cd2e netlink_broadcast +EXPORT_SYMBOL vmlinux 0x5375a200 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x53787da5 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53b55973 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d9ad15 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53f9bf7b xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x53fd224c journal_clear_err +EXPORT_SYMBOL vmlinux 0x540bae1d abort_creds +EXPORT_SYMBOL vmlinux 0x54156d32 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x542006c2 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x5429e4ff skb_trim +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x547262cb pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x54996f91 blk_complete_request +EXPORT_SYMBOL vmlinux 0x54a357b3 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b6dfdc swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x54db5968 iget_locked +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f89e46 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x553567bc block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x5535c416 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x555532fa ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0x555582c7 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x55624d5e release_sock +EXPORT_SYMBOL vmlinux 0x55887055 nla_append +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55afd049 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x55b9a425 kstat +EXPORT_SYMBOL vmlinux 0x55bf042d cont_write_begin +EXPORT_SYMBOL vmlinux 0x55d8ec55 ps2_drain +EXPORT_SYMBOL vmlinux 0x55e41058 account_page_writeback +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x560773bc inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565d0414 sock_update_classid +EXPORT_SYMBOL vmlinux 0x565e4c13 simple_write_begin +EXPORT_SYMBOL vmlinux 0x56755fa8 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x5696bd19 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56a2d103 mount_single +EXPORT_SYMBOL vmlinux 0x56a4d970 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56dc897f blk_sync_queue +EXPORT_SYMBOL vmlinux 0x57257daf ether_setup +EXPORT_SYMBOL vmlinux 0x572be1d8 blkdev_get +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5751d515 journal_init_dev +EXPORT_SYMBOL vmlinux 0x5755479a fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5791f301 journal_stop +EXPORT_SYMBOL vmlinux 0x57a62c0f dcache_readdir +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57af2738 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57dadbed security_path_mkdir +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e1927e in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x580d1247 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x5827b1d3 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x582c1225 scsi_host_get +EXPORT_SYMBOL vmlinux 0x582d4380 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5834b6b9 elv_rb_del +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x585391ce netif_carrier_on +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5860d621 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x586ce44a flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x587f8dc6 write_inode_now +EXPORT_SYMBOL vmlinux 0x58b174c6 bio_map_kern +EXPORT_SYMBOL vmlinux 0x58f0ddad iput +EXPORT_SYMBOL vmlinux 0x59047281 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x59131248 journal_restart +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595314fa tcf_hash_create +EXPORT_SYMBOL vmlinux 0x595acba9 dev_driver_string +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x596538ef __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x596737cd __f_setown +EXPORT_SYMBOL vmlinux 0x596cd383 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x599e2175 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x59b10871 generic_removexattr +EXPORT_SYMBOL vmlinux 0x59b518b9 mii_check_media +EXPORT_SYMBOL vmlinux 0x59b783fd fasync_helper +EXPORT_SYMBOL vmlinux 0x59cd2a3a scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a0496aa module_refcount +EXPORT_SYMBOL vmlinux 0x5a10d746 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x5a140bf4 netif_napi_del +EXPORT_SYMBOL vmlinux 0x5a20d999 __devm_release_region +EXPORT_SYMBOL vmlinux 0x5a2f17a6 vfs_write +EXPORT_SYMBOL vmlinux 0x5a3a89ce cdev_init +EXPORT_SYMBOL vmlinux 0x5a4d670b dmam_pool_create +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7b3da6 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x5a8b0615 pci_pme_active +EXPORT_SYMBOL vmlinux 0x5aad1bee tc_classify_compat +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5ac17090 file_update_time +EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register +EXPORT_SYMBOL vmlinux 0x5ae8a586 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b1b6035 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x5b1f46ff xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x5b20604f tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x5b219b33 proc_symlink +EXPORT_SYMBOL vmlinux 0x5b305b63 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x5b34c709 dcb_getapp +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b4be079 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x5bad0e7c sk_release_kernel +EXPORT_SYMBOL vmlinux 0x5bdae88e fd_install +EXPORT_SYMBOL vmlinux 0x5bedea2d of_get_mac_address +EXPORT_SYMBOL vmlinux 0x5c0e0a03 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c2d8977 tcp_connect +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5ca27a4d security_path_link +EXPORT_SYMBOL vmlinux 0x5ca9ef06 pci_iounmap +EXPORT_SYMBOL vmlinux 0x5cf104ac bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x5cfc1474 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x5d35b7d1 pci_release_regions +EXPORT_SYMBOL vmlinux 0x5d4365e6 audit_log_format +EXPORT_SYMBOL vmlinux 0x5d5cbd9a mach_powermac +EXPORT_SYMBOL vmlinux 0x5d5d08d8 mdiobus_write +EXPORT_SYMBOL vmlinux 0x5d6060c2 ide_complete_rq +EXPORT_SYMBOL vmlinux 0x5db275d5 con_is_bound +EXPORT_SYMBOL vmlinux 0x5db7b28d inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x5db7fc23 bdget_disk +EXPORT_SYMBOL vmlinux 0x5dc1fed8 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5dcd57cf genphy_update_link +EXPORT_SYMBOL vmlinux 0x5ddba816 tty_hangup +EXPORT_SYMBOL vmlinux 0x5de1735a ll_rw_block +EXPORT_SYMBOL vmlinux 0x5dead0ec of_get_gpio_flags +EXPORT_SYMBOL vmlinux 0x5dff8b4d pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x5e1b9912 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x5e5737f9 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x5e591c25 noop_llseek +EXPORT_SYMBOL vmlinux 0x5e5a7572 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e82d165 macio_enable_devres +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eacf9d3 kthread_stop +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed87a09 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f0332cd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x5f09e72b prepare_binprm +EXPORT_SYMBOL vmlinux 0x5f133d3d i2c_release_client +EXPORT_SYMBOL vmlinux 0x5f3515f3 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x5f491b99 freeze_bdev +EXPORT_SYMBOL vmlinux 0x5f51558b d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x5f60058a simple_link +EXPORT_SYMBOL vmlinux 0x5f6e42ef tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x5f6f3653 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f8b3781 page_symlink +EXPORT_SYMBOL vmlinux 0x5f9e4ad7 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fa3648f dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x5fc9fb48 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x5ff2208e loop_register_transfer +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a9383 __devm_request_region +EXPORT_SYMBOL vmlinux 0x602a5fd6 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap +EXPORT_SYMBOL vmlinux 0x60849d31 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60bf860c blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x60c0bde9 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x60d13d89 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x60dd79d3 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x60e973d1 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x60edfd3e textsearch_destroy +EXPORT_SYMBOL vmlinux 0x60f2ec31 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x616c79bc llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x616fdfe8 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bec895 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x6223816b __lru_cache_add +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627d472d thaw_super +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags +EXPORT_SYMBOL vmlinux 0x62929041 neigh_for_each +EXPORT_SYMBOL vmlinux 0x62943a28 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x62dfc97b pci_iomap +EXPORT_SYMBOL vmlinux 0x62efa32b ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x6315cd45 cad_pid +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6326d07e pci_remove_bus +EXPORT_SYMBOL vmlinux 0x632cb07e eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x6352678a max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x6384c7d7 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x63b6d618 phy_print_status +EXPORT_SYMBOL vmlinux 0x63c77a69 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63fd230b insert_inode_locked +EXPORT_SYMBOL vmlinux 0x64014628 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x6481e0c6 vfs_readv +EXPORT_SYMBOL vmlinux 0x648c45da inode_needs_sync +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64b76839 fb_pan_display +EXPORT_SYMBOL vmlinux 0x64d3db1c generic_file_fsync +EXPORT_SYMBOL vmlinux 0x64e3cec7 ip6_route_output +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x655c156f max8998_read_reg +EXPORT_SYMBOL vmlinux 0x658ad398 page_address +EXPORT_SYMBOL vmlinux 0x6591cfe6 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x65accf7b scsi_device_resume +EXPORT_SYMBOL vmlinux 0x65c064e2 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x65c436bc inet_select_addr +EXPORT_SYMBOL vmlinux 0x65d534ff scsi_remove_target +EXPORT_SYMBOL vmlinux 0x65d9d443 input_inject_event +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x6609b110 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x663d6a62 inet6_bind +EXPORT_SYMBOL vmlinux 0x6654ea52 submit_bio +EXPORT_SYMBOL vmlinux 0x665aa2c9 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66f55bc7 __page_symlink +EXPORT_SYMBOL vmlinux 0x66f8355b pneigh_lookup +EXPORT_SYMBOL vmlinux 0x66fe3c7e unlock_buffer +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67244de7 key_task_permission +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x67523362 of_register_spi_devices +EXPORT_SYMBOL vmlinux 0x676dca65 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x6770c022 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +EXPORT_SYMBOL vmlinux 0x67880958 register_nls +EXPORT_SYMBOL vmlinux 0x678dd231 powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask +EXPORT_SYMBOL vmlinux 0x67eca0a8 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x67ee7c6d set_bdi_congested +EXPORT_SYMBOL vmlinux 0x67f803d3 input_get_keycode +EXPORT_SYMBOL vmlinux 0x681d2914 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x685031dd agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6907022e tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x690881cc dev_gro_receive +EXPORT_SYMBOL vmlinux 0x690ea865 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x690fd997 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x6928a809 of_parse_phandle +EXPORT_SYMBOL vmlinux 0x692ff04d tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x695f2c50 vfs_create +EXPORT_SYMBOL vmlinux 0x69639768 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6976be4c __breadahead +EXPORT_SYMBOL vmlinux 0x69838a08 pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0x698cbb3e set_user_nice +EXPORT_SYMBOL vmlinux 0x69965ab5 unlock_rename +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69af4e9c security_path_unlink +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f81e64 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a064b50 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x6a2674fc hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x6a3f218b blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6b0998d8 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b4301c9 deny_write_access +EXPORT_SYMBOL vmlinux 0x6b479664 pci_find_bus +EXPORT_SYMBOL vmlinux 0x6b519b06 send_sig +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6b6218b7 journal_force_commit +EXPORT_SYMBOL vmlinux 0x6b71f929 kmap_high +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc686f7 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf401de input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c335beb register_netdev +EXPORT_SYMBOL vmlinux 0x6c454e95 netdev_set_master +EXPORT_SYMBOL vmlinux 0x6c587dba pipe_lock +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c681377 nf_afinfo +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6cb95ac8 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cdef7f2 phy_stop +EXPORT_SYMBOL vmlinux 0x6ce5f5c1 open_exec +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6cfe0111 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x6d25939d fb_set_var +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2f9a3d elv_queue_empty +EXPORT_SYMBOL vmlinux 0x6d390ba6 mb_cache_create +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d561b31 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6de6d6fe journal_ack_err +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfca9af generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x6e5faf4b fifo_set_limit +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e7ffd98 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x6e89db75 misc_register +EXPORT_SYMBOL vmlinux 0x6e955ee8 journal_start_commit +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb8554a __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x6ec485fe pci_assign_resource +EXPORT_SYMBOL vmlinux 0x6ed1d78e single_open +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fa8045c try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x6fb0ed3b genphy_suspend +EXPORT_SYMBOL vmlinux 0x6fcc3603 fb_get_mode +EXPORT_SYMBOL vmlinux 0x6fd5753d free_buffer_head +EXPORT_SYMBOL vmlinux 0x6fe19f39 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x6ffb56c1 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x700319d5 find_vma +EXPORT_SYMBOL vmlinux 0x700c4da2 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x701a5959 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x702d892a filemap_fault +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705b1da6 set_disk_ro +EXPORT_SYMBOL vmlinux 0x705ffd08 tty_kref_put +EXPORT_SYMBOL vmlinux 0x7065305e pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x706641d3 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x708b9839 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x70956fbc i2c_clients_command +EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x70f8e089 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x70faac28 journal_extend +EXPORT_SYMBOL vmlinux 0x710c429c __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7120b082 free_task +EXPORT_SYMBOL vmlinux 0x7122e1b9 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71441394 read_dev_sector +EXPORT_SYMBOL vmlinux 0x714d6514 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x718c244d wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x719fcc07 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a9770e arp_create +EXPORT_SYMBOL vmlinux 0x71b7aa09 mount_ns +EXPORT_SYMBOL vmlinux 0x71c4420f follow_pfn +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71f6cb4c gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x7245eb2e of_unregister_driver +EXPORT_SYMBOL vmlinux 0x7252bb4f bdev_read_only +EXPORT_SYMBOL vmlinux 0x7283b887 inet_addr_type +EXPORT_SYMBOL vmlinux 0x72a73bfd iterate_mounts +EXPORT_SYMBOL vmlinux 0x72a7a2ef dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x72b0abc6 d_alloc_root +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72ea1553 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ecc00f flex_array_shrink +EXPORT_SYMBOL vmlinux 0x72ee6d4d thaw_process +EXPORT_SYMBOL vmlinux 0x72f06aff complete_request_key +EXPORT_SYMBOL vmlinux 0x73113751 unregister_netdev +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x73390ef0 fb_find_mode +EXPORT_SYMBOL vmlinux 0x7343253e soft_cursor +EXPORT_SYMBOL vmlinux 0x73499864 km_query +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x73788a09 udp_disconnect +EXPORT_SYMBOL vmlinux 0x739a7f78 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73ab497c pipe_to_file +EXPORT_SYMBOL vmlinux 0x73bf681f pci_scan_slot +EXPORT_SYMBOL vmlinux 0x73cf5865 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x74062593 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x740c7bf4 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x74228123 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x74621059 udp_proc_register +EXPORT_SYMBOL vmlinux 0x746878e9 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x746e1a25 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x7470b2aa pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x7496d952 sync_blockdev +EXPORT_SYMBOL vmlinux 0x74997ece __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x749f28df dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74d67452 vga_get +EXPORT_SYMBOL vmlinux 0x74d6f02c dev_mc_del +EXPORT_SYMBOL vmlinux 0x74f311e2 __nla_reserve +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x750466d9 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75509fbf of_match_node +EXPORT_SYMBOL vmlinux 0x755a390b hippi_type_trans +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x758c51b0 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75a3b62c generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75c7bb68 __block_write_begin +EXPORT_SYMBOL vmlinux 0x75ce86cc devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x75f5bb5c security_path_rename +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76115df4 dst_release +EXPORT_SYMBOL vmlinux 0x7612f065 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x76194f8c agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x7629a321 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x76743346 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x768a1d8f pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x76bc92f7 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76fd650a elevator_change +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77463ec4 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x77547e2d i2c_register_driver +EXPORT_SYMBOL vmlinux 0x775c5105 dev_addr_add +EXPORT_SYMBOL vmlinux 0x778ea8df dquot_file_open +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a544ff netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77cd7e23 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7803cdfa swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x781e6765 set_groups +EXPORT_SYMBOL vmlinux 0x782497c7 ide_dma_off +EXPORT_SYMBOL vmlinux 0x784b9709 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x784e513e blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x784fa8e5 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x786aac68 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x7874f693 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x7898ae14 sock_wake_async +EXPORT_SYMBOL vmlinux 0x78cbc57f pci_restore_state +EXPORT_SYMBOL vmlinux 0x78da53ce lro_flush_all +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e0f3d9 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x78fa9c3a elv_rb_add +EXPORT_SYMBOL vmlinux 0x78fae846 ide_dump_status +EXPORT_SYMBOL vmlinux 0x79042caf eth_change_mtu +EXPORT_SYMBOL vmlinux 0x79047d47 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x7929bfdc xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x7932b2d5 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x79472cb6 neigh_destroy +EXPORT_SYMBOL vmlinux 0x79582f52 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x795f971b blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x795fa206 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x799ddc8a tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79ca4d12 should_remove_suid +EXPORT_SYMBOL vmlinux 0x79cb616b cap_file_mmap +EXPORT_SYMBOL vmlinux 0x79e58c26 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x7a19eb73 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x7a1d8c0a truncate_setsize +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3283a0 __break_lease +EXPORT_SYMBOL vmlinux 0x7a3c4b2e kernel_sendpage +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a711cca inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x7a727e87 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x7a733971 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x7ac9df12 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x7acc232e con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x7ad26119 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x7ae35e1d security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x7af22ee6 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x7af86a26 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x7afc087b qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x7b1b4a63 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x7b2d03ae tc_classify +EXPORT_SYMBOL vmlinux 0x7b3119c9 input_flush_device +EXPORT_SYMBOL vmlinux 0x7b54f513 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x7b5f42b9 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b7da2e5 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x7ba54cbb dquot_commit +EXPORT_SYMBOL vmlinux 0x7baf377f iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x7bb37dec ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0x7bbf1ecd sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x7bbf87fd __free_pages +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7bf4eae6 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x7c189a47 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x7c35aab8 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c73fc47 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x7c8291e8 update_region +EXPORT_SYMBOL vmlinux 0x7c82cb9a blk_queue_start_tag +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 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7d09b7e5 down_read +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d349812 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x7d3aa223 current_fs_time +EXPORT_SYMBOL vmlinux 0x7d7a5616 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x7d999d0d scsi_get_command +EXPORT_SYMBOL vmlinux 0x7d9e0bab qdisc_destroy +EXPORT_SYMBOL vmlinux 0x7da52d93 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de0a78b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7e0e5973 tr_type_trans +EXPORT_SYMBOL vmlinux 0x7e370952 journal_revoke +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e41afe1 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x7e4afd4e nf_setsockopt +EXPORT_SYMBOL vmlinux 0x7e5ed2ae agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x7ebc98f7 genphy_resume +EXPORT_SYMBOL vmlinux 0x7ec769df truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x7ed72ce3 iget_failed +EXPORT_SYMBOL vmlinux 0x7ee4d2cc icmpv6_send +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f67bb71 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x7f6bc2fd unregister_key_type +EXPORT_SYMBOL vmlinux 0x7f701107 km_state_notify +EXPORT_SYMBOL vmlinux 0x7f7308cc dev_uc_add +EXPORT_SYMBOL vmlinux 0x7f9601da sockfd_lookup +EXPORT_SYMBOL vmlinux 0x7f9ff798 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x7fd194d0 mdiobus_read +EXPORT_SYMBOL vmlinux 0x7fd2053d sk_wait_data +EXPORT_SYMBOL vmlinux 0x7ffc7897 init_special_inode +EXPORT_SYMBOL vmlinux 0x800c8e48 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x8017db99 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x80590b61 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x80ab0c30 add_timer +EXPORT_SYMBOL vmlinux 0x80af65ec radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x80b3dd00 irq_stat +EXPORT_SYMBOL vmlinux 0x80b831df neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +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 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81cbf849 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x81d69949 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x81da6990 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dca4d1 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x823de6d3 generic_setlease +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 0x8288e373 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b5eca0 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x8306d8b6 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x8345afe0 simple_lookup +EXPORT_SYMBOL vmlinux 0x83571370 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x83868316 vmap +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83ad802c kernel_connect +EXPORT_SYMBOL vmlinux 0x83b79b10 fsync_bdev +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x83d5514e vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x83d98fb7 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x843c457a inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84db2b50 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x84ef56c7 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x84f84e53 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8579b3e4 page_put_link +EXPORT_SYMBOL vmlinux 0x858ee1df qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x85977c1c llc_add_pack +EXPORT_SYMBOL vmlinux 0x85a8fd7a i2c_master_recv +EXPORT_SYMBOL vmlinux 0x85d5968b eth_header_cache +EXPORT_SYMBOL vmlinux 0x85dd90e6 flex_array_clear +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e0816c set_device_ro +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85e8b444 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x86034b68 __scm_destroy +EXPORT_SYMBOL vmlinux 0x86044d3c make_bad_inode +EXPORT_SYMBOL vmlinux 0x8625eb01 km_state_expired +EXPORT_SYMBOL vmlinux 0x862ba441 find_lock_page +EXPORT_SYMBOL vmlinux 0x8638fd10 end_page_writeback +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868a0fc4 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86c6a449 __kfree_skb +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86ddb3e2 of_node_put +EXPORT_SYMBOL vmlinux 0x86de67a5 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87231c86 dm_put_device +EXPORT_SYMBOL vmlinux 0x873379a9 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x87399ecb __seq_open_private +EXPORT_SYMBOL vmlinux 0x87694fb0 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x8771c046 udp_ioctl +EXPORT_SYMBOL vmlinux 0x87744100 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x879a1e7c dquot_disable +EXPORT_SYMBOL vmlinux 0x87b1d18a blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x87c341c6 rfkill_register +EXPORT_SYMBOL vmlinux 0x87cafabb block_write_end +EXPORT_SYMBOL vmlinux 0x87d67abb radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x87dc2cb6 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x87ef7335 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x87f0a2de agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x884a88ec blk_free_tags +EXPORT_SYMBOL vmlinux 0x8861787f cfb_copyarea +EXPORT_SYMBOL vmlinux 0x886f329f writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x887a2ad4 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x88a2dc19 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x88b65ace textsearch_register +EXPORT_SYMBOL vmlinux 0x88ce0cf3 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x88dbd2dc ide_do_reset +EXPORT_SYMBOL vmlinux 0x88f8f9d1 vfs_rename +EXPORT_SYMBOL vmlinux 0x8901cd4a register_sysctl_table +EXPORT_SYMBOL vmlinux 0x8925d942 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x8944eee8 keyring_search +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x8968e75b ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x89698305 set_bh_page +EXPORT_SYMBOL vmlinux 0x89739af2 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89b3107b isa_mem_base +EXPORT_SYMBOL vmlinux 0x89c71b1f jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x89d2960d key_revoke +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89da4432 of_iomap +EXPORT_SYMBOL vmlinux 0x8a3fe936 lock_may_read +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa723d2 mntget +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8ace755d radix_tree_delete +EXPORT_SYMBOL vmlinux 0x8adde15c netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x8aecc147 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x8b1132c6 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b20f2ec is_container_init +EXPORT_SYMBOL vmlinux 0x8b26a673 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x8b3aa1f7 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x8b456fc0 tcp_prot +EXPORT_SYMBOL vmlinux 0x8b7f21ad netdev_alert +EXPORT_SYMBOL vmlinux 0x8bac8876 vfs_mknod +EXPORT_SYMBOL vmlinux 0x8bb2f491 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0x8bcf0f3b phy_driver_register +EXPORT_SYMBOL vmlinux 0x8be3bc49 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x8be3e5e7 drop_super +EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x8c143219 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8caf4a69 start_tty +EXPORT_SYMBOL vmlinux 0x8cbb6353 simple_empty +EXPORT_SYMBOL vmlinux 0x8cc44ca7 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cccdf10 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x8cced958 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x8cdbb1b9 uart_resume_port +EXPORT_SYMBOL vmlinux 0x8ce1d8b5 pci_set_master +EXPORT_SYMBOL vmlinux 0x8cf0f17b ___pskb_trim +EXPORT_SYMBOL vmlinux 0x8cf1dba7 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x8cf51d15 up +EXPORT_SYMBOL vmlinux 0x8cf81fb7 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x8d05cabd xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x8d1b5c41 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x8d4d88d0 __sock_create +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d69bb38 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x8d69c895 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x8d861d78 blk_get_request +EXPORT_SYMBOL vmlinux 0x8dab7ef1 __elv_add_request +EXPORT_SYMBOL vmlinux 0x8dbba0ce clear_user_page +EXPORT_SYMBOL vmlinux 0x8dc1e166 pci_clear_master +EXPORT_SYMBOL vmlinux 0x8dea035e pci_match_id +EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e176a48 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x8e1854fc phy_start +EXPORT_SYMBOL vmlinux 0x8e20b53c scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x8e2983f1 block_commit_write +EXPORT_SYMBOL vmlinux 0x8e2fdb63 dentry_unhash +EXPORT_SYMBOL vmlinux 0x8e42fe8c dqget +EXPORT_SYMBOL vmlinux 0x8e4de075 km_report +EXPORT_SYMBOL vmlinux 0x8e63b31f unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x8e6f148d d_splice_alias +EXPORT_SYMBOL vmlinux 0x8e80d758 neigh_update +EXPORT_SYMBOL vmlinux 0x8e85ce25 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x8e8a3ffc tty_vhangup +EXPORT_SYMBOL vmlinux 0x8e98a5b5 proc_dointvec +EXPORT_SYMBOL vmlinux 0x8ea1a45a km_policy_expired +EXPORT_SYMBOL vmlinux 0x8ea37f35 kernel_bind +EXPORT_SYMBOL vmlinux 0x8ec84c84 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ef66cae sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x8f0beef2 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x8f24bb7f napi_gro_frags +EXPORT_SYMBOL vmlinux 0x8f37e0c4 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f4d646e truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x8f571558 inode_permission +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f90e540 pci_map_rom +EXPORT_SYMBOL vmlinux 0x8f950dd2 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x8f9819e4 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x8f9dd00e __invalidate_device +EXPORT_SYMBOL vmlinux 0x8faf3850 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x8fc17918 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x8fc5f13f netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x8fe5b3f3 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900e21e5 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x90155073 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x9016ceb1 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x901aac91 mpage_readpages +EXPORT_SYMBOL vmlinux 0x9026716a kill_block_super +EXPORT_SYMBOL vmlinux 0x904ab96e agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x9050272c jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x905807e4 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x905c69a7 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x905e829f iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x9071ac86 phy_device_free +EXPORT_SYMBOL vmlinux 0x908103b2 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x908c2163 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x90a251ca pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x90b347f4 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x90cc62ac keyring_clear +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90e6d30b blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x9111dfd2 netpoll_setup +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x912aae64 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x91380c78 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x9139bcf3 phy_find_first +EXPORT_SYMBOL vmlinux 0x913e3018 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x918f9be9 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91b82331 bdget +EXPORT_SYMBOL vmlinux 0x91d88e48 __debugger_dabr_match +EXPORT_SYMBOL vmlinux 0x91e3270a __bio_clone +EXPORT_SYMBOL vmlinux 0x91ffc683 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x92118ebd nf_log_register +EXPORT_SYMBOL vmlinux 0x9225c2ef dm_get_device +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923dbe51 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x9251d7f5 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x92569ffe ps2_command +EXPORT_SYMBOL vmlinux 0x927974d4 dma_set_mask +EXPORT_SYMBOL vmlinux 0x928d4965 seq_path +EXPORT_SYMBOL vmlinux 0x928ec40e simple_rename +EXPORT_SYMBOL vmlinux 0x92a0fe7c tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x92a8250e set_security_override +EXPORT_SYMBOL vmlinux 0x92bc5c73 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x92cd0df0 do_splice_from +EXPORT_SYMBOL vmlinux 0x92da2d90 inet_accept +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x932f0872 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x933e79d5 downgrade_write +EXPORT_SYMBOL vmlinux 0x9342d6a2 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x9345f906 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x93569ba5 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0x935b2296 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b44dd6 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x93c0a312 blk_unplug +EXPORT_SYMBOL vmlinux 0x93c6f286 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x93f8ad64 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9400f02c bio_pair_release +EXPORT_SYMBOL vmlinux 0x940b4c62 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x940b95e2 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x9429bd40 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x947483a7 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x9498b6fa noop_qdisc +EXPORT_SYMBOL vmlinux 0x94a98b58 do_sync_write +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94b09156 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x94c56cb7 napi_get_frags +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94fc3e3b default_file_splice_read +EXPORT_SYMBOL vmlinux 0x950eaf31 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x951cdc1a swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x952e9e0d kernel_getpeername +EXPORT_SYMBOL vmlinux 0x95333c9f bdevname +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x95457cd5 skb_make_writable +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x954f9e9e i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x9551d847 dget_parent +EXPORT_SYMBOL vmlinux 0x9563b9a2 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x956a76d4 release_pages +EXPORT_SYMBOL vmlinux 0x95a56abc swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x95acdc97 icmp_send +EXPORT_SYMBOL vmlinux 0x95cc6109 revert_creds +EXPORT_SYMBOL vmlinux 0x95cf776f boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x95fe970f llc_sap_find +EXPORT_SYMBOL vmlinux 0x96372730 mac_find_mode +EXPORT_SYMBOL vmlinux 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x966ed607 security_path_mknod +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96bd7ac4 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d60e65 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x96dccd28 sock_no_bind +EXPORT_SYMBOL vmlinux 0x96de806e sock_wfree +EXPORT_SYMBOL vmlinux 0x9700d5c9 __bforget +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x97293e78 __lookup_one_len +EXPORT_SYMBOL vmlinux 0x973852e7 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975bdedb qdisc_reset +EXPORT_SYMBOL vmlinux 0x975cb40b tty_port_close +EXPORT_SYMBOL vmlinux 0x9786c15b sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x97ad3be1 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x97e0f6a5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x97f7ac12 scsi_execute +EXPORT_SYMBOL vmlinux 0x9856e8fb dm_register_target +EXPORT_SYMBOL vmlinux 0x9859136a iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x985e6abe mpage_writepages +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98abee30 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x98b9748c pci_dev_put +EXPORT_SYMBOL vmlinux 0x98bee2e1 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x9902a89c sock_rfree +EXPORT_SYMBOL vmlinux 0x990607a4 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x9912232b file_sb_list_del +EXPORT_SYMBOL vmlinux 0x992c6f44 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x9947a25c __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x99493417 inode_init_always +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9965ac03 tty_free_termios +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99b534d6 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c2c781 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99f36887 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a23042c cdev_add +EXPORT_SYMBOL vmlinux 0x9a37cda1 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x9a4d8991 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a7a2889 user_revoke +EXPORT_SYMBOL vmlinux 0x9a8cc0a6 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x9a9171ef xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x9abf4f91 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x9ac37a61 input_open_device +EXPORT_SYMBOL vmlinux 0x9aea86b2 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x9af84a25 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x9afada2f macio_dev_put +EXPORT_SYMBOL vmlinux 0x9aff11d6 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x9b0857cc agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x9b10c493 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x9b28d8f1 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b5829f8 rtas +EXPORT_SYMBOL vmlinux 0x9b639283 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b85c48f proc_mkdir +EXPORT_SYMBOL vmlinux 0x9b93574a kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x9b9c141e fput +EXPORT_SYMBOL vmlinux 0x9b9f7c6b netdev_warn +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9ba856c1 sock_create +EXPORT_SYMBOL vmlinux 0x9bb05bbc swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x9bbb13a5 uart_match_port +EXPORT_SYMBOL vmlinux 0x9bcc657b macio_request_resource +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bd240fe netlink_set_err +EXPORT_SYMBOL vmlinux 0x9bdce452 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x9bed28bc pci_set_mwi +EXPORT_SYMBOL vmlinux 0x9bf55d10 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c05c50b jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x9c062a33 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x9c1d0f10 elv_rb_find +EXPORT_SYMBOL vmlinux 0x9c334384 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x9c35aaca unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x9c3daa45 set_binfmt +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c5f7b24 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x9c64a52a unregister_snap_client +EXPORT_SYMBOL vmlinux 0x9c91f4d3 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x9cafe122 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x9cb2a986 kill_pid +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc49af0 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x9cd7f79c pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x9cdbb753 commit_creds +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfc93a7 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05c676 d_drop +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d2db41d napi_skb_finish +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d412ca0 kill_pgrp +EXPORT_SYMBOL vmlinux 0x9d4e1575 vm_insert_page +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d760b56 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x9d981442 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x9d9bc1c5 inet6_release +EXPORT_SYMBOL vmlinux 0x9dbab6bd scsi_register +EXPORT_SYMBOL vmlinux 0x9dbc9a01 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x9dbdc9b3 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x9dd02528 iunique +EXPORT_SYMBOL vmlinux 0x9dff792a agp_bind_memory +EXPORT_SYMBOL vmlinux 0x9e067795 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e141ce5 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e2b0bbc bio_alloc +EXPORT_SYMBOL vmlinux 0x9e3a8c74 sock_init_data +EXPORT_SYMBOL vmlinux 0x9e48c17d sock_i_uid +EXPORT_SYMBOL vmlinux 0x9e49410a napi_complete +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e7ccd52 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x9e823832 seq_open_private +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9cb59c __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x9e9daed4 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ebf0109 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x9ec3ca4e scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef05c18 kobject_del +EXPORT_SYMBOL vmlinux 0x9ef25c0b sk_alloc +EXPORT_SYMBOL vmlinux 0x9f096bc8 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f25dac7 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4dea4c starget_for_each_device +EXPORT_SYMBOL vmlinux 0x9f78dc46 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x9f9613e3 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9fa78dd8 kernel_listen +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe55b73 scsi_host_put +EXPORT_SYMBOL vmlinux 0x9fed75c0 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0xa0287a7a genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xa034f3eb skb_seq_read +EXPORT_SYMBOL vmlinux 0xa03dacd6 console_start +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa085dd1a mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xa08d36dc freeze_super +EXPORT_SYMBOL vmlinux 0xa092fccf xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b5332b set_blocksize +EXPORT_SYMBOL vmlinux 0xa0c96072 d_delete +EXPORT_SYMBOL vmlinux 0xa0ccf061 blk_insert_request +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0e5f21c shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f74ce7 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1148209 poll_freewait +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12a2ad6 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14c068b generic_file_llseek +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1764276 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1babd53 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xa1c4b6d2 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1db533e dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xa1df8044 __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0xa1f110bd dev_mc_flush +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa21afb9c skb_set_dev +EXPORT_SYMBOL vmlinux 0xa21f7975 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xa2870c65 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c332d6 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xa2dc5981 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa30c240e module_layout +EXPORT_SYMBOL vmlinux 0xa31202f6 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xa316fd4b __register_binfmt +EXPORT_SYMBOL vmlinux 0xa31a3643 mem_map +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa351af15 module_put +EXPORT_SYMBOL vmlinux 0xa35427ae __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xa3591e29 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36c2ce9 pci_read_irq_line +EXPORT_SYMBOL vmlinux 0xa37b2a88 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a985a2 vfs_llseek +EXPORT_SYMBOL vmlinux 0xa3aa800b blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xa3ada86d __pagevec_release +EXPORT_SYMBOL vmlinux 0xa3bf4cc4 vmtruncate +EXPORT_SYMBOL vmlinux 0xa3cc487f scsi_unregister +EXPORT_SYMBOL vmlinux 0xa3dbb1f6 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa40ad6d9 proto_register +EXPORT_SYMBOL vmlinux 0xa41146cf abx500_register_ops +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4471145 iget5_locked +EXPORT_SYMBOL vmlinux 0xa44ddf30 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xa468283f inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xa484918a dev_addr_flush +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4cce672 pci_enable_device +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4eea33e dev_get_by_index +EXPORT_SYMBOL vmlinux 0xa50be27d inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa56c1405 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xa56f3e17 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xa57180a8 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit +EXPORT_SYMBOL vmlinux 0xa588a8c9 force_sig +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5bed0c8 vga_put +EXPORT_SYMBOL vmlinux 0xa5ca5b33 pcim_iomap +EXPORT_SYMBOL vmlinux 0xa5ce544d serio_close +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5d68222 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xa5ee4023 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xa61d4e6d __neigh_event_send +EXPORT_SYMBOL vmlinux 0xa62eb142 inode_change_ok +EXPORT_SYMBOL vmlinux 0xa652c4ef __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa6775ac3 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6acf669 d_lookup +EXPORT_SYMBOL vmlinux 0xa6c84ab7 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6f0d9f0 d_rehash +EXPORT_SYMBOL vmlinux 0xa71f80f5 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xa740cd19 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xa744627a tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xa7460538 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xa7b2711a security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xa7c8285f tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xa7ce6356 fb_class +EXPORT_SYMBOL vmlinux 0xa7cf0edc posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xa7d71133 nf_log_packet +EXPORT_SYMBOL vmlinux 0xa8003f04 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xa802fa3d cfb_fillrect +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa83c5d95 may_umount_tree +EXPORT_SYMBOL vmlinux 0xa8497dfb dev_alloc_name +EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap +EXPORT_SYMBOL vmlinux 0xa8711538 down_write_trylock +EXPORT_SYMBOL vmlinux 0xa88d2dcb cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa8a91582 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xa8b92c86 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8d03418 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xa8d5f272 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xa8e221a4 blk_start_request +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90c85c1 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa91debcb replace_mount_options +EXPORT_SYMBOL vmlinux 0xa922abc9 dquot_release +EXPORT_SYMBOL vmlinux 0xa931473f log_wait_commit +EXPORT_SYMBOL vmlinux 0xa9426c11 bd_set_size +EXPORT_SYMBOL vmlinux 0xa94b719a led_brightness_set +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa9576a7b skb_pull +EXPORT_SYMBOL vmlinux 0xa97b1544 agp_enable +EXPORT_SYMBOL vmlinux 0xa994f13b __blk_run_queue +EXPORT_SYMBOL vmlinux 0xa9c1c0bb generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xa9e1afda i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xa9e3b0fc __ps2_command +EXPORT_SYMBOL vmlinux 0xa9ee819f skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xa9f01999 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xa9f62e79 of_device_is_available +EXPORT_SYMBOL vmlinux 0xaa005688 simple_fill_super +EXPORT_SYMBOL vmlinux 0xaa0b09a1 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xaa2eecb7 touch_atime +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6e3c7a blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xaa72571d I_BDEV +EXPORT_SYMBOL vmlinux 0xaa79af4c tty_shutdown +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa94c163 generic_setxattr +EXPORT_SYMBOL vmlinux 0xaa994e18 skb_find_text +EXPORT_SYMBOL vmlinux 0xaabc7358 __dst_free +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab12a748 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0xab1a2530 ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0xab1d85d1 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xab2681fa console_stop +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xabc0659d mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabf2a8d3 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xabf41321 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xabf684ce blkdev_put +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1c53ae llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xac1f4f65 netdev_notice +EXPORT_SYMBOL vmlinux 0xac2ec710 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac796bc4 igrab +EXPORT_SYMBOL vmlinux 0xac88c349 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xaca08b7c mount_bdev +EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xaca3c928 pci_choose_state +EXPORT_SYMBOL vmlinux 0xacbccdd3 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd03a14 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0xacd0924c remove_arg_zero +EXPORT_SYMBOL vmlinux 0xacd2f600 da903x_query_status +EXPORT_SYMBOL vmlinux 0xace65a29 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad38f4e0 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad4c79b4 generic_getxattr +EXPORT_SYMBOL vmlinux 0xad549fe3 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xad750797 generic_write_sync +EXPORT_SYMBOL vmlinux 0xad7e8dc4 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xad8bff66 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0xad907ae6 input_grab_device +EXPORT_SYMBOL vmlinux 0xad981c92 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xad9b3a8b blk_plug_device +EXPORT_SYMBOL vmlinux 0xad9ecd76 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xad9eed21 simple_transaction_read +EXPORT_SYMBOL vmlinux 0xada6bf0c mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadab37f7 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xadb366a1 brioctl_set +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xaddfbf62 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae17ef3a flex_array_free +EXPORT_SYMBOL vmlinux 0xae23e646 del_gendisk +EXPORT_SYMBOL vmlinux 0xae551085 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xae9ccae8 set_create_files_as +EXPORT_SYMBOL vmlinux 0xaea85e9b generic_readlink +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaf243058 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xaf25d352 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xaf2b3e5f mnt_pin +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf41ff0d wireless_spy_update +EXPORT_SYMBOL vmlinux 0xaf4857e0 inet_listen +EXPORT_SYMBOL vmlinux 0xaf52da8d tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf6104db skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xaf6f5196 softnet_data +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf94610f fddi_type_trans +EXPORT_SYMBOL vmlinux 0xafa732b5 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xafab9511 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xafb0bc87 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0xafccba79 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xafe39404 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xb02a4e0c dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xb0316082 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xb0884cb2 follow_down +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d11bcd kill_litter_super +EXPORT_SYMBOL vmlinux 0xb0d3ab57 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xb0de2ca9 seq_open +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f0a8d5 lookup_one_len +EXPORT_SYMBOL vmlinux 0xb1194c10 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xb12860bf nf_reinject +EXPORT_SYMBOL vmlinux 0xb1397038 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb1669d79 add_disk +EXPORT_SYMBOL vmlinux 0xb176871c security_path_chown +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1e7a1e3 bioset_create +EXPORT_SYMBOL vmlinux 0xb1f49370 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xb20b1e65 do_SAK +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2325db2 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set +EXPORT_SYMBOL vmlinux 0xb25c5782 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0xb265337b nobh_write_end +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26f292a elv_add_request +EXPORT_SYMBOL vmlinux 0xb2993ae9 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xb2c40fab inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xb2c97b08 skb_push +EXPORT_SYMBOL vmlinux 0xb2defbe9 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb3263952 register_qdisc +EXPORT_SYMBOL vmlinux 0xb32e77c8 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb3377ac8 d_instantiate +EXPORT_SYMBOL vmlinux 0xb3693a00 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xb36b5d70 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xb38a216b xfrm_input +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3ba2172 dquot_enable +EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc +EXPORT_SYMBOL vmlinux 0xb3efc72d down +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4301577 serio_open +EXPORT_SYMBOL vmlinux 0xb437339d jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4835d63 udp_prot +EXPORT_SYMBOL vmlinux 0xb493eb62 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xb4a52218 alloc_trdev +EXPORT_SYMBOL vmlinux 0xb4a5257a flush_signals +EXPORT_SYMBOL vmlinux 0xb4b18d68 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xb4b2ec2a genl_register_mc_group +EXPORT_SYMBOL vmlinux 0xb4c7ba4f xfrm_init_state +EXPORT_SYMBOL vmlinux 0xb4c89716 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xb4d33d28 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb514b1f5 devm_free_irq +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5507429 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb5668ee2 bio_map_user +EXPORT_SYMBOL vmlinux 0xb5961c00 seq_release_private +EXPORT_SYMBOL vmlinux 0xb5a33f04 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5dfe1d1 serio_reconnect +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb63bb2f2 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xb64dee0a generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb66a1274 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb68d52bf of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xb699314d copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6be2183 dquot_transfer +EXPORT_SYMBOL vmlinux 0xb6c2e242 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d576a6 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xb6e1c4ca scsi_print_sense +EXPORT_SYMBOL vmlinux 0xb6e21e12 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xb6f35d6e eth_type_trans +EXPORT_SYMBOL vmlinux 0xb72f66ab blk_run_queue +EXPORT_SYMBOL vmlinux 0xb7356d3f register_console +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb760ccc5 get_user_pages +EXPORT_SYMBOL vmlinux 0xb76b7aa8 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb78e254c scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xb7903ff1 xrlim_allow +EXPORT_SYMBOL vmlinux 0xb7965f20 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xb7a02484 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xb7ac2546 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7b9fc7f xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xb7d858e6 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xb7da7d59 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xb805b7cd km_policy_notify +EXPORT_SYMBOL vmlinux 0xb806e845 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xb815e6d8 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb82088ac journal_check_available_features +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8825b69 kobject_get +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb8999cdf eth_mac_addr +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8b38876 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xb8bcff92 dma_direct_ops +EXPORT_SYMBOL vmlinux 0xb8f59369 __napi_complete +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb96b4631 pci_disable_device +EXPORT_SYMBOL vmlinux 0xb96e48dc get_sb_bdev +EXPORT_SYMBOL vmlinux 0xb978e0ee of_device_alloc +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9a6c0f7 max8998_update_reg +EXPORT_SYMBOL vmlinux 0xb9afb657 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xb9c97b5a tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xb9e1be02 dentry_path_raw +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xba2d2d96 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5c48af jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xba5fa3e2 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xba885e0f init_task +EXPORT_SYMBOL vmlinux 0xba9cddda __lock_page +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbac5d7ca kobject_init +EXPORT_SYMBOL vmlinux 0xbaca5ccb request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xbaea2a1f scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xbb01046e skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xbb1181b1 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb62a37d __serio_register_driver +EXPORT_SYMBOL vmlinux 0xbb741f25 input_reset_device +EXPORT_SYMBOL vmlinux 0xbb791fea nobh_write_begin +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba131b7 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbce6647 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xbbdc3109 dma_find_channel +EXPORT_SYMBOL vmlinux 0xbbe3e519 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xbbe4a0d0 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0xbbef7529 of_register_platform_driver +EXPORT_SYMBOL vmlinux 0xbbf5e366 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xbbf7cda7 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xbc1cc2b9 bdput +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc60e2fb skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xbc6da59c ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xbc7381aa tty_port_open +EXPORT_SYMBOL vmlinux 0xbc8cb370 gen_pool_free +EXPORT_SYMBOL vmlinux 0xbc9b0f42 down_read_trylock +EXPORT_SYMBOL vmlinux 0xbc9b46ba __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xbcad394c read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xbcb08943 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xbcefe492 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xbcf23cb4 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xbd3c9a74 vm_map_ram +EXPORT_SYMBOL vmlinux 0xbd7142e2 pci_request_region +EXPORT_SYMBOL vmlinux 0xbd722384 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0xbd7c1035 lock_rename +EXPORT_SYMBOL vmlinux 0xbd875fe6 bioset_free +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd8edf68 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xbd952db6 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xbd9de8a8 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdfa2de5 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe23b9ed radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xbe62e35f lro_receive_skb +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe732ff8 netif_rx +EXPORT_SYMBOL vmlinux 0xbe78d165 dquot_initialize +EXPORT_SYMBOL vmlinux 0xbe875bd4 i2c_master_send +EXPORT_SYMBOL vmlinux 0xbecb3336 dev_alert +EXPORT_SYMBOL vmlinux 0xbecf098f vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xbed6e20b macio_dev_get +EXPORT_SYMBOL vmlinux 0xbed98f08 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xbeda6d6f blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xbee83c9c sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef2420f ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef837cc dentry_open +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc2df7a sk_filter +EXPORT_SYMBOL vmlinux 0xbfdff814 of_get_address +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc003ded8 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xc04448b5 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc0728326 scsi_device_put +EXPORT_SYMBOL vmlinux 0xc076561f nla_put +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc083dd0a scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xc08a115e __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xc08a8163 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xc08bd5d7 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b09848 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0b3a475 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xc0c257e8 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xc0d31928 of_get_next_child +EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll +EXPORT_SYMBOL vmlinux 0xc10f5934 simple_release_fs +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc11ef042 inet_frag_find +EXPORT_SYMBOL vmlinux 0xc1265bf3 devm_ioremap +EXPORT_SYMBOL vmlinux 0xc14de61e tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc171eb7c truncate_pagecache +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d6925e tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request +EXPORT_SYMBOL vmlinux 0xc1f0d6ca free_netdev +EXPORT_SYMBOL vmlinux 0xc20c9892 bdi_init +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24820ff tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xc24964fa lease_modify +EXPORT_SYMBOL vmlinux 0xc251f41c simple_unlink +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26654d0 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xc26be83d phy_attach +EXPORT_SYMBOL vmlinux 0xc2a8d18c unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xc2bd7e9e bio_split +EXPORT_SYMBOL vmlinux 0xc2ca6672 dev_close +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f7d6c8 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xc35bb695 sock_create_lite +EXPORT_SYMBOL vmlinux 0xc35ec3a8 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc36e39cf inet_register_protosw +EXPORT_SYMBOL vmlinux 0xc38ba3ec pid_task +EXPORT_SYMBOL vmlinux 0xc393496d dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc43233a7 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4ab33be max8925_reg_write +EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc57346b1 aio_complete +EXPORT_SYMBOL vmlinux 0xc592f3e6 dev_load +EXPORT_SYMBOL vmlinux 0xc5aee8e1 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xc5c3dd58 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xc5c729e6 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5dde6cf of_phy_connect +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc5f84a2d scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xc6074888 get_sb_single +EXPORT_SYMBOL vmlinux 0xc613b164 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc64c3b99 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xc64ea473 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc67baeac blk_make_request +EXPORT_SYMBOL vmlinux 0xc688eb95 vfs_read +EXPORT_SYMBOL vmlinux 0xc6c0e9f8 simple_statfs +EXPORT_SYMBOL vmlinux 0xc6ec1bae unregister_nls +EXPORT_SYMBOL vmlinux 0xc6fa5898 setup_new_exec +EXPORT_SYMBOL vmlinux 0xc70363e6 registered_fb +EXPORT_SYMBOL vmlinux 0xc71ff61f release_firmware +EXPORT_SYMBOL vmlinux 0xc7394d0c sg_miter_stop +EXPORT_SYMBOL vmlinux 0xc76e5323 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7e59f85 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xc7eb6863 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xc7ec5e24 km_new_mapping +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8017db4 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xc830d45b eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc862aa30 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xc86e90de check_disk_change +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc8afa96b uart_get_divisor +EXPORT_SYMBOL vmlinux 0xc8b0cd36 block_sync_page +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8cbc5a7 netdev_state_change +EXPORT_SYMBOL vmlinux 0xc8de67f7 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xc8ec71a3 find_inode_number +EXPORT_SYMBOL vmlinux 0xc8eead95 register_exec_domain +EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible +EXPORT_SYMBOL vmlinux 0xc918f936 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xc933ff13 is_bad_inode +EXPORT_SYMBOL vmlinux 0xc965d6c2 register_gifconf +EXPORT_SYMBOL vmlinux 0xc97392b1 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9adfecb kthread_create +EXPORT_SYMBOL vmlinux 0xc9b8c308 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xc9f2fa3f audit_log_start +EXPORT_SYMBOL vmlinux 0xca1d08d7 vfs_fsync +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6b5bd0 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xca7e07cd redraw_screen +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca9210c1 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xcaa880ea netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xcaaf389d ip_setsockopt +EXPORT_SYMBOL vmlinux 0xcab17181 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcadf9c84 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xcae0b767 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0xcae81441 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xcb0484a8 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xcb11c0cd mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xcb5f7420 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb738384 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xcb87c28b netif_receive_skb +EXPORT_SYMBOL vmlinux 0xcba5db80 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xcbba68ba register_framebuffer +EXPORT_SYMBOL vmlinux 0xcbc7d424 flush_old_exec +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbddd809 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xcbe94b23 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xcbf9aa4c netlink_ack +EXPORT_SYMBOL vmlinux 0xcc095c99 led_blink_set +EXPORT_SYMBOL vmlinux 0xcc35b697 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc5b9f93 posix_test_lock +EXPORT_SYMBOL vmlinux 0xcc5f3698 block_write_full_page +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcccce688 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xccd53760 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xccd633ef write_cache_pages +EXPORT_SYMBOL vmlinux 0xcce37885 dma_spin_lock +EXPORT_SYMBOL vmlinux 0xccf0e5fb __lock_buffer +EXPORT_SYMBOL vmlinux 0xcd0c6e29 journal_create +EXPORT_SYMBOL vmlinux 0xcd0ccd67 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd5abb20 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xcd655b50 get_phy_id +EXPORT_SYMBOL vmlinux 0xcd8c215a d_alloc_name +EXPORT_SYMBOL vmlinux 0xcd94eaff pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0xcdad4574 blk_peek_request +EXPORT_SYMBOL vmlinux 0xcdc6a7a9 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xce08eda6 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xce0ab291 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce4dffed __netif_schedule +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce728148 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xce7ce037 of_translate_address +EXPORT_SYMBOL vmlinux 0xce8c2556 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xce8c3b9f blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xce9c5a61 put_io_context +EXPORT_SYMBOL vmlinux 0xceaa2112 down_write +EXPORT_SYMBOL vmlinux 0xcecad3a5 seq_release +EXPORT_SYMBOL vmlinux 0xceccef6d lro_receive_frags +EXPORT_SYMBOL vmlinux 0xced9c276 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefbb69e posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xcf3577ef flush_dcache_page +EXPORT_SYMBOL vmlinux 0xcf49b8fc scsi_register_interface +EXPORT_SYMBOL vmlinux 0xcf65db4e iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xcf755c65 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xcf774ff7 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xcf7776f9 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfc159c3 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01d836a task_nice +EXPORT_SYMBOL vmlinux 0xd0296dfe journal_wipe +EXPORT_SYMBOL vmlinux 0xd02d2222 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xd040d32a max8925_set_bits +EXPORT_SYMBOL vmlinux 0xd052f128 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xd05ea315 sk_stream_error +EXPORT_SYMBOL vmlinux 0xd067df84 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xd08de468 security_file_permission +EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0bc2c07 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xd0c0ed9f ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xd0e57da1 address_space_init_once +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 0xd1067efa insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xd10b2305 wake_up_process +EXPORT_SYMBOL vmlinux 0xd117849a simple_getattr +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd14c8aa7 pci_dev_get +EXPORT_SYMBOL vmlinux 0xd163c4d8 dump_write +EXPORT_SYMBOL vmlinux 0xd1671060 del_timer +EXPORT_SYMBOL vmlinux 0xd16712cf inet6_getname +EXPORT_SYMBOL vmlinux 0xd16d2c31 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xd17585f6 __put_cred +EXPORT_SYMBOL vmlinux 0xd179fef0 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xd1830d12 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xd18fd562 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xd19c5d17 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xd19ec1f9 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0xd1c0641d eth_header +EXPORT_SYMBOL vmlinux 0xd1d33ddb kmem_cache_name +EXPORT_SYMBOL vmlinux 0xd20154b0 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xd210323e netdev_crit +EXPORT_SYMBOL vmlinux 0xd212a78e read_cache_page +EXPORT_SYMBOL vmlinux 0xd21776f6 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd23434f8 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xd2344c09 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xd24b8df7 agp_generic_enable +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 0xd262c258 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xd272573a thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29a9ea5 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2d51180 of_gpio_count +EXPORT_SYMBOL vmlinux 0xd2e111b8 ppc_md +EXPORT_SYMBOL vmlinux 0xd2eac443 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xd2fdd885 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31ca43e udp_poll +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd35c387b register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd387d899 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xd3a54a8f tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xd3b3573c request_key_async +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3c3db02 unload_nls +EXPORT_SYMBOL vmlinux 0xd3d963c8 bdi_unregister +EXPORT_SYMBOL vmlinux 0xd3e2545a macio_register_driver +EXPORT_SYMBOL vmlinux 0xd3ece7ca bdi_register +EXPORT_SYMBOL vmlinux 0xd4014f6e blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xd404aaa6 flush_tlb_page +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd4175211 sg_miter_start +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd428da1c __dquot_transfer +EXPORT_SYMBOL vmlinux 0xd45cb9c1 __getblk +EXPORT_SYMBOL vmlinux 0xd45efb0d dev_add_pack +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd4967790 arp_invalidate +EXPORT_SYMBOL vmlinux 0xd4b8043b rfkill_alloc +EXPORT_SYMBOL vmlinux 0xd4ee0fd6 vfs_getattr +EXPORT_SYMBOL vmlinux 0xd52a77f7 scsi_put_command +EXPORT_SYMBOL vmlinux 0xd52d72a4 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xd52e1561 ip_defrag +EXPORT_SYMBOL vmlinux 0xd53ba2e6 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xd53fa647 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xd5670953 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xd56846b5 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd5710f86 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xd57a0d15 fb_show_logo +EXPORT_SYMBOL vmlinux 0xd5950bfe pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b075da scsi_print_result +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5bcbe15 ide_wait_stat +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5fae3c8 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xd5fc2502 fb_blank +EXPORT_SYMBOL vmlinux 0xd608db2b mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd627d557 get_fs_type +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd62cbd29 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xd6420276 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0xd657e99f noop_fsync +EXPORT_SYMBOL vmlinux 0xd68b634c of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless +EXPORT_SYMBOL vmlinux 0xd6b5a4f3 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xd6b885fd simple_write_end +EXPORT_SYMBOL vmlinux 0xd6b90018 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xd6eb03df d_validate +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f68f47 names_cachep +EXPORT_SYMBOL vmlinux 0xd6f9f495 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xd6fdf409 sock_i_ino +EXPORT_SYMBOL vmlinux 0xd7259458 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xd739293e cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xd74aa9f9 unregister_console +EXPORT_SYMBOL vmlinux 0xd74bc2fb sock_register +EXPORT_SYMBOL vmlinux 0xd756a0c4 dev_printk +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7b1fe3b genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xd7d357a4 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xd7db9a94 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xd7dee752 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd80258cb ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xd8355597 remove_inode_hash +EXPORT_SYMBOL vmlinux 0xd84b2a45 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd85cf3cd mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xd863fff6 input_set_capability +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8ae2b44 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd900f058 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92bfc4a fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xd97450f7 filp_open +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99aa7cd sk_free +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9aaeb1a migrate_page +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9c04496 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9dc1776 tty_check_change +EXPORT_SYMBOL vmlinux 0xd9e696c8 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xd9e6a52c generic_make_request +EXPORT_SYMBOL vmlinux 0xd9eced25 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda7c407f pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda81e5f9 skb_queue_head +EXPORT_SYMBOL vmlinux 0xda87abca test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xda8a569e phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8b82a8 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xdaa1451b jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaa608af scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xdaea2344 dm_table_get +EXPORT_SYMBOL vmlinux 0xdaf45a59 rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0xdaf55db6 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb2a2bea abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xdb3d78ed phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xdb4fd418 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xdb5e4e0d pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb87041e bdi_destroy +EXPORT_SYMBOL vmlinux 0xdb9f5e11 inode_init_once +EXPORT_SYMBOL vmlinux 0xdbb181ad simple_transaction_set +EXPORT_SYMBOL vmlinux 0xdbb2461d netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xdbb5afb5 tty_write_room +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbf4191a agp_find_bridge +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc21f2a9 skb_append +EXPORT_SYMBOL vmlinux 0xdc2a9f97 get_io_context +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc355983 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc61bfe1 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdc97ffa3 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xdca1498a ip_fragment +EXPORT_SYMBOL vmlinux 0xdca32918 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xdca78907 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdd078a01 vfs_readlink +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd123fcd locks_remove_posix +EXPORT_SYMBOL vmlinux 0xdd20a7a4 tty_set_operations +EXPORT_SYMBOL vmlinux 0xdd2660a0 dm_table_put +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd50b454 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xdd5ffcf2 consume_skb +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd8d6c24 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xddba87ab i8042_install_filter +EXPORT_SYMBOL vmlinux 0xdde83211 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xddec1294 rwsem_wake +EXPORT_SYMBOL vmlinux 0xddf829b3 generic_listxattr +EXPORT_SYMBOL vmlinux 0xddfd88cc alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xde1eed41 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde4959c1 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde88055a genl_register_ops +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdef24759 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xdef72ca5 file_permission +EXPORT_SYMBOL vmlinux 0xdf112341 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xdf1ef69f wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf67ccf4 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xdf6de567 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa8103e locks_free_lock +EXPORT_SYMBOL vmlinux 0xdfb219ae send_sig_info +EXPORT_SYMBOL vmlinux 0xdfccbf14 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xdfd085ba nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xe01b8ab8 block_truncate_page +EXPORT_SYMBOL vmlinux 0xe0405879 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0xe052e5b1 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xe05cfbf5 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe09b1d24 __quota_error +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0ba96b5 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xe0d6e996 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe0d80f30 do_munmap +EXPORT_SYMBOL vmlinux 0xe0eac97d mark_info_dirty +EXPORT_SYMBOL vmlinux 0xe0f49562 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11d61c7 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xe12faa50 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xe14b91c1 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xe1535011 read_cache_pages +EXPORT_SYMBOL vmlinux 0xe15db6bd tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe172aa20 mount_nodev +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe184f77c flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xe1854e28 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xe19189e6 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xe1b847a2 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xe1c99afe bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xe1d181ba macio_request_resources +EXPORT_SYMBOL vmlinux 0xe1d1b8fd find_or_create_page +EXPORT_SYMBOL vmlinux 0xe1f603cc pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xe1f6dbb1 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe25f2050 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xe27bd4e3 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xe29c888e jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xe2a0e26b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xe2a487ff mdiobus_free +EXPORT_SYMBOL vmlinux 0xe2b505bb dma_async_device_register +EXPORT_SYMBOL vmlinux 0xe2baabe0 proc_create_data +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2dfd763 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2ee1f41 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xe2f93667 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe3007144 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xe32586a0 d_invalidate +EXPORT_SYMBOL vmlinux 0xe32cf9ba bio_add_page +EXPORT_SYMBOL vmlinux 0xe35e95f5 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xe36c643b pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xe37dc74d locks_copy_lock +EXPORT_SYMBOL vmlinux 0xe3812c37 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3a711a2 arp_tbl +EXPORT_SYMBOL vmlinux 0xe3b23654 scsi_execute_req +EXPORT_SYMBOL vmlinux 0xe3b80a50 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xe3c18817 deactivate_super +EXPORT_SYMBOL vmlinux 0xe3ce4ed7 cdrom_open +EXPORT_SYMBOL vmlinux 0xe3e68cdd simple_rmdir +EXPORT_SYMBOL vmlinux 0xe3eadad9 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xe42f4cce tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xe447cbb0 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xe45cdb40 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xe4835666 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe48b1873 kill_fasync +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe49bd71f dma_pool_create +EXPORT_SYMBOL vmlinux 0xe4b245d7 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xe5016f51 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xe50d3ac9 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xe5105dad tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e916f2 netdev_printk +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5fd89b6 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xe63fafd9 netdev_emerg +EXPORT_SYMBOL vmlinux 0xe64b69e2 create_proc_entry +EXPORT_SYMBOL vmlinux 0xe6779cb7 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6b0c371 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xe6b7e26f agp_free_page_array +EXPORT_SYMBOL vmlinux 0xe6c2c8c8 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xe6d2c2ac filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6e0a1c8 lock_may_write +EXPORT_SYMBOL vmlinux 0xe6e4500a napi_gro_flush +EXPORT_SYMBOL vmlinux 0xe6e80b70 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe774eb79 nobh_writepage +EXPORT_SYMBOL vmlinux 0xe7770eec scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xe7847e5c tcp_check_req +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d2795c pagevec_lookup +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7fce7f3 pci_busdev_to_OF_node +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe80ec5ba netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe884a820 skb_insert +EXPORT_SYMBOL vmlinux 0xe89a66d2 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xe8a15ca9 load_nls +EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape +EXPORT_SYMBOL vmlinux 0xe8c40ae4 __serio_register_port +EXPORT_SYMBOL vmlinux 0xe8cd3044 dump_seek +EXPORT_SYMBOL vmlinux 0xe8d11130 i2c_use_client +EXPORT_SYMBOL vmlinux 0xe8e7fba3 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe9121a14 vfs_symlink +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe920f3fd inet_stream_ops +EXPORT_SYMBOL vmlinux 0xe9279f57 blk_put_request +EXPORT_SYMBOL vmlinux 0xe92d6c8a scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xe9468a4c i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe95e1d14 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xe97985d8 of_dev_get +EXPORT_SYMBOL vmlinux 0xe979e6fe alloc_disk +EXPORT_SYMBOL vmlinux 0xe99f88e0 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xe9c266ba sock_no_getname +EXPORT_SYMBOL vmlinux 0xe9c72d4a tcp_splice_read +EXPORT_SYMBOL vmlinux 0xe9cf553c tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xe9d2b09d phy_connect +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea20ed26 try_to_release_page +EXPORT_SYMBOL vmlinux 0xea2254c0 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xea279186 of_get_parent +EXPORT_SYMBOL vmlinux 0xea32c1e5 sk_common_release +EXPORT_SYMBOL vmlinux 0xea34406d __bread +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xea9fb9df rename_lock +EXPORT_SYMBOL vmlinux 0xeab075d2 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xeabbc17a arp_xmit +EXPORT_SYMBOL vmlinux 0xeacae315 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xeacd6123 journal_start +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xead8467d scsi_dma_map +EXPORT_SYMBOL vmlinux 0xeaeaaf09 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xeb1e98cd set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xeb1f506d i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb3cab6c hex2bin +EXPORT_SYMBOL vmlinux 0xeb4f6466 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xeb8df425 dst_alloc +EXPORT_SYMBOL vmlinux 0xeb96199c splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xeba4324c netdev_err +EXPORT_SYMBOL vmlinux 0xebd57571 register_filesystem +EXPORT_SYMBOL vmlinux 0xebdee5a3 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xec0439bc flex_array_free_parts +EXPORT_SYMBOL vmlinux 0xec08e794 tcp_close +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec17867d __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec438658 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec571755 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xec68fe00 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xec798b58 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xeccceaa4 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xecd424f1 ide_stall_queue +EXPORT_SYMBOL vmlinux 0xecde11c5 up_read +EXPORT_SYMBOL vmlinux 0xece1eaba neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xed11727d sg_miter_next +EXPORT_SYMBOL vmlinux 0xed1e4b61 i2c_transfer +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed5b246b page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xed922db5 ilookup +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc65d43 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xedc8298f inet_stream_connect +EXPORT_SYMBOL vmlinux 0xedd4f55c security_inode_init_security +EXPORT_SYMBOL vmlinux 0xedd564e5 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xedde179e tcf_em_register +EXPORT_SYMBOL vmlinux 0xedf31095 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xedfec442 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xee032475 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xee14db58 blk_start_queue +EXPORT_SYMBOL vmlinux 0xee202eee key_alloc +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee30c719 phy_device_register +EXPORT_SYMBOL vmlinux 0xee36fdeb journal_errno +EXPORT_SYMBOL vmlinux 0xee5082c1 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee7f660b pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xee9239a8 dqput +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xef1d2b41 audit_log_end +EXPORT_SYMBOL vmlinux 0xef1eb7c4 pci_get_slot +EXPORT_SYMBOL vmlinux 0xef62e041 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xef69179d netif_napi_add +EXPORT_SYMBOL vmlinux 0xef88933b pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xefaf3205 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xefc19013 skb_split +EXPORT_SYMBOL vmlinux 0xefc70904 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefe104aa tcp_read_sock +EXPORT_SYMBOL vmlinux 0xeffec0de serio_unregister_port +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00aaa97 macio_release_resources +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06f75fa dst_destroy +EXPORT_SYMBOL vmlinux 0xf07c66b6 of_match_device +EXPORT_SYMBOL vmlinux 0xf09903ce of_device_register +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f0162c blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f715c4 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xf100824f journal_set_features +EXPORT_SYMBOL vmlinux 0xf10106f7 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1147148 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf14c5bd4 ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0xf172b74b qdisc_list_del +EXPORT_SYMBOL vmlinux 0xf19574cd jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1ade874 proto_unregister +EXPORT_SYMBOL vmlinux 0xf1bedc8a grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xf1c925f7 get_agp_version +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf204033b alloc_file +EXPORT_SYMBOL vmlinux 0xf20c6228 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf224d99e scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xf22ad6ba of_device_is_compatible +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24b9afc serio_interrupt +EXPORT_SYMBOL vmlinux 0xf26d440a scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xf2c00359 ps2_init +EXPORT_SYMBOL vmlinux 0xf2c8f9e2 prepare_creds +EXPORT_SYMBOL vmlinux 0xf2cd95f3 input_register_device +EXPORT_SYMBOL vmlinux 0xf2d57251 dm_table_event +EXPORT_SYMBOL vmlinux 0xf2dcf033 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xf2e5a880 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xf2f75617 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xf3131bce max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf335ea96 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34d2510 dev_trans_start +EXPORT_SYMBOL vmlinux 0xf36d130a tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xf36e118a flush_hash_entry +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38b667c of_register_driver +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bcc08 blk_init_tags +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3b73dae of_phy_find_device +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3cf141e scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xf3f0d763 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xf3f2ff28 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf42754b9 generic_fillattr +EXPORT_SYMBOL vmlinux 0xf4351632 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xf43f5adf scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf476d78b alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xf478bd83 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xf49220fb of_find_property +EXPORT_SYMBOL vmlinux 0xf4a8708f scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xf4b6c393 vga_client_register +EXPORT_SYMBOL vmlinux 0xf4c73022 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xf4ce02bf agp_bridge +EXPORT_SYMBOL vmlinux 0xf4d5180d dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xf4f0a0b6 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f5cf8f dm_table_get_md +EXPORT_SYMBOL vmlinux 0xf50a130b swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf555d67c up_write +EXPORT_SYMBOL vmlinux 0xf556ada2 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xf5576a89 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xf55f6540 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xf58f60f3 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xf5a5afe4 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5b022e8 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c0609a contig_page_data +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5fca872 mdiobus_register +EXPORT_SYMBOL vmlinux 0xf6149aa3 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xf6204910 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf63f8d51 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xf657fdc3 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xf65cff2e bio_endio +EXPORT_SYMBOL vmlinux 0xf65e9d72 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xf693a14a skb_copy_expand +EXPORT_SYMBOL vmlinux 0xf693faa1 tty_register_driver +EXPORT_SYMBOL vmlinux 0xf69bf148 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xf6a1e581 kill_anon_super +EXPORT_SYMBOL vmlinux 0xf6b59fa4 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xf6b69d12 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e8233b mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6febda0 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf70cb446 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xf70ebbea dev_mc_init +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf73a2b81 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75a1b70 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xf75bbf93 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78d5837 find_get_page +EXPORT_SYMBOL vmlinux 0xf7d18300 of_get_property +EXPORT_SYMBOL vmlinux 0xf7e7450c dev_uc_del +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf8066aec vlan_gro_receive +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf81f2947 misc_deregister +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82bd76b serio_rescan +EXPORT_SYMBOL vmlinux 0xf8608b01 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xf87622d4 put_disk +EXPORT_SYMBOL vmlinux 0xf889fbcb blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xf8949240 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xf8de74cf __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0xf90a7913 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf957e774 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xf95cdca7 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xf967af6b security_d_instantiate +EXPORT_SYMBOL vmlinux 0xf97d5170 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xf9944ef2 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xf99c4790 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9d0780b dquot_quota_on +EXPORT_SYMBOL vmlinux 0xf9e2ef19 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xf9fe588b filemap_flush +EXPORT_SYMBOL vmlinux 0xfa063e3d cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xfa33789f mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xfa6cd28b __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xfa6d7533 set_irq_chip +EXPORT_SYMBOL vmlinux 0xfa721bb0 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfadd0758 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xfaf30217 inet_release +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfaff300b kick_iocb +EXPORT_SYMBOL vmlinux 0xfb44de40 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xfb61b598 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xfb61d291 pci_save_state +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb6ba1d8 udplite_prot +EXPORT_SYMBOL vmlinux 0xfb7455cb end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb88be8e inet_put_port +EXPORT_SYMBOL vmlinux 0xfba9c278 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb86f7a netpoll_parse_options +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 0xfc145baf xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xfc2ee910 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xfc33c456 elevator_init +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3a27b4 make_EII_client +EXPORT_SYMBOL vmlinux 0xfc42bdec dev_mc_add +EXPORT_SYMBOL vmlinux 0xfc495341 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xfc50b9d7 block_write_begin +EXPORT_SYMBOL vmlinux 0xfc910150 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcde9cf4 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xfce29193 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfccfed blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd20714f blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xfd2c4448 of_dev_put +EXPORT_SYMBOL vmlinux 0xfd3038e1 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xfd3fd85d xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xfd4a6c66 bio_free +EXPORT_SYMBOL vmlinux 0xfd6c4cf3 setattr_copy +EXPORT_SYMBOL vmlinux 0xfd6f01ca uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xfd740c38 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xfd7f6be3 dev_open +EXPORT_SYMBOL vmlinux 0xfd9f15fb sget +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdd3dbca blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xfdd8329a generic_show_options +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdedc625 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe1ad8fa llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xfe2bb2ea get_write_access +EXPORT_SYMBOL vmlinux 0xfe30e537 framebuffer_release +EXPORT_SYMBOL vmlinux 0xfe31048c pci_find_capability +EXPORT_SYMBOL vmlinux 0xfe42775f pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xfe504398 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe983155 seq_read +EXPORT_SYMBOL vmlinux 0xfe9cd50e ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xfea2ace8 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xfebf8169 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed09beb blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff10d555 kfree_skb +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1aa2a4 vlan_gro_frags +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff29210a dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xff46f2d3 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xff4c13c9 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xff4caa55 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xff67e99b sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff76e28d journal_check_used_features +EXPORT_SYMBOL vmlinux 0xff857341 pci_release_region +EXPORT_SYMBOL vmlinux 0xff881b1f xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffc2783e dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffd92588 init_net +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL vmlinux 0xffdeaca4 dev_get_stats +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x061faf6e kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x0ae8788e is_error_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x11e3115a kvm_get_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x19308bbd gfn_to_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x1a7f1af0 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x29820952 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2cf59b84 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x411fcd97 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4384fc20 kvm_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4a5421af kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4b2bb14b kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x50141138 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5c28132c kvm_read_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6c105798 hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6fbdc6b6 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x737800b4 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8afc68e1 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x9a2cb052 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa34b2408 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xabb42098 kvm_resched +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb58d5bf8 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb6382438 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb7c8676f kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc829792e gfn_to_memslot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xcb62f7ef kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd07d77e3 gfn_to_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd2d0ef78 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd70c16e3 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd8ad3601 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xefa8d23f kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xfcf94477 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 0xd758af9c crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/af_alg 0x06658978 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x1ceab6dc af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x53e26542 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0xa325f34a af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xb1608bd8 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xba6e4322 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xc34e7456 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xdf623e43 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd34a74d9 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x58862ae1 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x713df203 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x929a5085 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x96cd76c1 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1965230e __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x3fd43cbf async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6fc069ac async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe6552464 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x48c8b9e3 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x8d005d97 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x180688e1 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x27f6fcb7 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x5ed2a505 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x6a878e75 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xb40d3ae3 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb971757c cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xc2326675 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xc4eb53c6 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xc5906beb cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xcb771d22 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x29613fb5 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x20ab19ab ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2605d14c ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2827f0e9 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2e086737 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3a6e5fa4 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x45933277 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4b51d06a ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x545f2456 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x61b5b6e4 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x813e0f47 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x895902d4 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x98357bf8 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xad8b4b79 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe89ebfd1 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xeba74eae ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf75798be ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xb0f9e8a1 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xb4451b4a __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x3564650f 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 0x0cfa2016 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x537cd479 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xaa625062 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbc1e6989 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcfb04783 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xed58caf4 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf4a8de16 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xff4efe06 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0cecdbf7 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0d8fc389 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x121ae05b tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x19a16b2a tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1e7c0d4f tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1ee750db tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2e64e89b tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x50be6af7 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x59559ed4 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5c0c943f tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6d351914 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x79da17e9 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x80440339 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8f0a4360 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x914753a2 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa394b87a tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa6b693d5 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb0eb2ab1 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc2040fa6 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc9537865 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcff7dbd5 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd824af01 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf15f15ee tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x08c92266 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1c4a5965 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x231f4a9b find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x274b071c edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2a1106c6 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4c86ca6b edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x61c50318 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6fa6532c edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x726ad8df edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x84719196 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8579ff34 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x883e371a edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x88b62ade edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9f554317 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa5b2459b edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa8e7660f edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xac46005a edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaf4f7c92 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb0e1f45a edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb3b2dca9 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xce4a4efc edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdc114d6b edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe6eaa78d edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xed276cc0 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf5fdf7ea edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x132ca4a8 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x167f1594 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x721b10d4 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb143ebf2 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0994b099 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0ef2b783 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19eec854 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1a9af81c hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1ce71b36 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x21aa0191 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bdc0db hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2ce2f3ed hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x391b8ad3 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x46812cd2 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5b6997ba hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x61a00814 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x67acc442 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e954853 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8619b180 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x866bf9e1 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x922dc086 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa8f9b684 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb93439c4 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc2e0d1ab hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc86db882 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcb79e906 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd39a5819 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd8fa2c71 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd02a80f hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf140ab66 hidraw_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 0x78d27c27 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x8062f871 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xd51dada9 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xdef1995a usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xdf2b7759 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x1c5a2f0b lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x41909719 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x4bdfd267 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xf996d949 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xfa5c4910 lis3_dev +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x8eeb224b i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xdc64c3e6 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x29f8db28 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x3689d860 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x40fcd074 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x5302ac55 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x80742631 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe0d1755f adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xf4e00424 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1c065ccf wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x38077114 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3d2a1465 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4399fc6f wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x77ab637b wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8e161915 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8fb3b32c wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa6bf7ebf wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbb0163e5 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc615b9cb wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe51d62a3 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf8428a42 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 0x030974fd gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x09b7e1ac gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1410d707 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x195c85c5 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2ec0815b gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3e899099 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x467f3277 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4fee7935 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x50f3f8ad gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x60f58d9a gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x73a5564b gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7aab3220 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x88b7fb70 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb1f8d69b gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc491a6bd gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd19769c6 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe46c822e gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0e7e2fb2 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x3af70989 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x46ecc5fc wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x5e26c07c wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x624ce66d wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x6e8a2fb6 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xb1c996cc wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xcbdc7ebf wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xd4165693 wf_find_control +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 0xfabad903 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xbd64060c dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xe252bbe0 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x03905cee dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0c38f9e3 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x12520ce5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x30d59f5b dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x316373de dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x34f34f17 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x36b24d95 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3f89656a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x48c8f9da dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4c6a18f1 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5ce86e14 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x69904d81 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7351dfcd dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x794723d7 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa4ec7d0c dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xaa6c0651 dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb2f3c80e dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc3f033df dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xdf262881 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe6192411 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf29d44bc dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x09792bf6 md_run +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x0e251d0b md_rdev_init +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x120444e6 plugger_remove_plug +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x26ae465d md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x2bc95589 mddev_suspend +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x4ec41f6c mddev_resume +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x60d97c44 bitmap_load +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x630c0e31 md_stop +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x80c38a7f plugger_init +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x869335bf bio_alloc_mddev +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x8c633ced bio_clone_mddev +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x8d4d6caa sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x9f197315 plugger_set_plug +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xc92e207e md_stop_writes +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xd8004d82 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xeca6953d mddev_init +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xf27d6716 md_new_event +EXPORT_SYMBOL_GPL drivers/md/raid456 0x63b5e1f9 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xaf06dab0 md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x267d7711 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x30f49836 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3c6ec06f saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6773050a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x686c1e97 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x82a4806d saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x96cc7d85 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xaedaa3bb saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd09751cc saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdb9d85f1 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe44865a1 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x304d416f saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x342a5428 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7a731632 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x91c2005e saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xa1715447 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xac76c58b saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xad179a14 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x756a3a75 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xd452f8b4 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xaada9a73 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xad50c133 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x2dd5ee77 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xe3bba636 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x84c6d41c tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x2a848c09 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xd24d58df tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x999755a2 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x9e15240c tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xf1289edd simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x04884c0b mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x19884cf6 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1d71004c mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2b92290a mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x48c6ea3b mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5121e09c mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x53647797 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6fad3c71 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6fc471f5 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x83e27ec8 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8602d91e mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x982231eb mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa729d957 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb2b0d575 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xeb23d5ae mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf13e42f5 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf5c70e4f mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x23bca6df smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x43622b13 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5d1ce182 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6097b6e7 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x64d541bb smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x72eba964 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x77c9eaed smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x994919da smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb36567d4 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb94f6a3c smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc10c0a62 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc538e02d smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc6d1bc7b smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xce534957 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd165e8ac smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd4268c6e sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd440bd82 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xda1c9df6 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe1d580f1 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2f89a58b 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 0x97d500de ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa06c3732 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd45bdc93 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd9f5d616 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe6750849 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xec3919d9 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x052ab471 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05fb336e rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x07e3ad27 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x323725b7 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3624f695 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x70aac0c1 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x76e6c2c6 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7ac25523 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x84fc67ee rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa5a471ed ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xabbff036 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb3a55e33 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbbc8a053 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbe637080 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc21dd6cb rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe2f55d7e rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xeb7d8b1b rc_map_get +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0418f151 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2080cb52 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x24ec1128 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2d401552 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3d4511e1 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x508729ff cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x55b66481 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x64ce8b6a cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x66270ada cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x662a47cc cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6a4a93fc cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9bb85657 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd041e727 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd65f6eb4 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xddd1a242 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xeb514214 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xed2a7914 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfb4e1866 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfbbb2d8d cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xc5ded348 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x22663826 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4f9d988a em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x6a7ff78f em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x9e9655fc em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa74bf9c1 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc708642f em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x0b4d8d1f saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x56ff5ad6 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5777ec89 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x6cde24f8 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x773ab85c saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/soc_camera 0x6ae10e63 soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4d2caaf1 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x6254bad6 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x8d32ab2a 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 0xc941eeb8 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 0xf2b7a1d5 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xffc281e0 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6bf5cab4 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7c5a61e2 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x9a2466c6 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 0xff288f0a v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1847172c v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2669aaee v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4ef8a5c4 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x502fbcf9 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x561acf8b v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x56e06824 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5f669f8d v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7b989702 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x82e084f7 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x84fddbe0 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9c303158 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa04e0582 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xbcc71929 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc3b75ff1 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x015323f8 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x027347f6 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0cf2ba99 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0f9c86e8 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1e29d1fb videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x28369821 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2b250f7a videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x49ddfa9f videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x68c3d592 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6e0ed62e videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6f7c7f15 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x73fc7b75 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x78992089 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7e3e0563 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x802cc6e7 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x83ac52ac videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8dfe403e videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9a47aec7 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa40758fb videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc1f7661a videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc6798003 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc6820671 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfec92a94 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xffb35f63 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x1d14c4f8 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x56d22779 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x5ecaf946 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x04a25947 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1ccbd657 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x35ee1d8d videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5913bf8a videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x608e0e40 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6ea20db1 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x73e85a3c videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x82f3282b videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8acb878b videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x0d14ec42 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x0f6493c2 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x36875756 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x052a320d v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x08d8856d v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0b6684c3 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x142269cc v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x28ea9c3d v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x479b0451 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5b555073 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6adbcc5d v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x99b53472 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9a83c1f2 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9ce3bc45 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb1bd4159 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbe5c25ff v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcbf345b5 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdc817787 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf09555f0 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf413bef0 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf75ede20 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x670abf76 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x839a8e3d i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8783d8b7 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa684e2c5 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xbad1ea92 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xbe9be1a8 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xde5e6a0f i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf4edb109 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xbcde7d8b mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0a7e3fa4 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2b3a388c pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3c30a942 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4e66e36d pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x727d3861 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8b889501 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x988be3bd pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa46fb4eb pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc4ecc5cc pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xec92f8a4 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfea2a9bd pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x00472c2a pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x763f0672 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x37d85437 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x94c36fd1 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd26d8b6e pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xed47163e pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xf6f68050 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1c8c3a0e sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4d1cb503 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8cbb1356 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd319c8d9 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe1b33eeb sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x519ea3e5 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x4fcdf0fa wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x69f24b93 wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xae379319 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xe7be2c11 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x08fb2116 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x446bfe0e cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x530d3e4c cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xd484e219 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 0x069d4bdb enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x218b367b enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x616665bc enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x75f9c720 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x86b29a31 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbd3bc87c enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbfc20ec1 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x2c99a286 st_register +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x00b13c32 sdio_writeb_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x03f0a664 sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1819f4c1 sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x47920344 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4b8a6ce2 sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5e9276de sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x673cbe07 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6a175040 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7a39409d sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7fa34e67 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x978eb3c3 sdio_align_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xaa4a9ce4 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xac759870 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb138ed43 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb1558f46 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb34719e0 sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb68585c5 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc0941772 sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc68bf844 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xce3036f0 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xcf1215d0 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xdcca15a3 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xee860a78 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xeeea7f9f sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfb216489 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x001799b7 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0b93d3a7 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x25dc520f sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3541d6ca sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xaae91ec7 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbcaad1cf sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xfbc958c8 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x0c2f80ea cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x25357b49 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x7345681c cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x5828bd36 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xa72f895d cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xf51a7e1b cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x93f66d11 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x3dd3028a cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x5d13fdd4 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xdb7004d5 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xf47d9b43 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x0c91eb3b DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xb21b74c8 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x10c42821 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x15090439 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1ce23e06 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x426d638c kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4d420b47 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5f67afcf mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x775dcf10 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x870c294a mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8be53652 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8e3644ff del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x995b38b2 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9e2c8722 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa4810eb2 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa7ab4ee8 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd0035997 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd2b04d31 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdb68d4d8 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe009f329 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe2cbb525 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe98fd599 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf8505c2c mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x1f137dff add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x64711b42 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x64ae80b6 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xfcc6570a deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xaeca791c nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xed74ca28 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xf07be3ce sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x2a9cbf32 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xd4bb55bf onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0650db52 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1ae8476e ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1b100f99 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x28d2411a ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x36df06ec ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42f5cbb0 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8c8a0424 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xafb58a87 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xafbf7112 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb2373199 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc187d907 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc3f297f0 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5f603a8 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x05bc2c24 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1fe04040 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3fe141be can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x58b006bb alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x909baf5f open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x945d6e44 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9e1c7cf2 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xad413772 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb9852123 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd499044c can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd9f0984a can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf2fad249 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x35ef772c alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x6fe3f4c3 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa0180fda free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa72c6255 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x010fca69 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x40cd1091 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4a95c766 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8b0f7a8d macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa7b1ef5f macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x07fbe9b1 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x145b8d29 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x227d6fc6 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2a906466 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2b4706f4 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x323a10f6 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3403c29e mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ec36f5c mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3fac8de9 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x43251dfc mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x451f04e0 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x481dbb1b mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4f8affda mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5031c54c mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x53f151a8 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5997c6e3 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e4230f9 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6052db7a mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x68bdc0d0 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6dc872fd mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x72358955 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7c39ab3a mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d980edb mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x814a1bf8 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x893defd6 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89dd2d9f mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8e0df2a3 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8f7c6066 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8ffa4089 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x902d4674 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9a7f384e mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa7c9e6fc mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa7d605a2 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xae5c9722 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaec862c7 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaf30bd6c mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xafa400f5 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb295890c mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb7356bf3 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xba8f1938 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbaa0f16d mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc08c6f56 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc47f9cef mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4eb795b mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd064e3ea mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd122d2a6 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd1c2f017 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd37e8269 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd68e5d92 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd94918d5 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xda57abc3 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe1ab38c6 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf99eb64f mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb136384 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xff9a7f15 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x79ff17cd usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xbb363726 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5375e3e0 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9b06a628 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xa4736510 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xba01cbf1 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd19f6040 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe782461d rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x13ca7389 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3638f23a usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3cd3d6e4 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x449d965a usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4bb97b76 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x553488e5 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x55c3ae58 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5b842cb7 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x62ea09dc usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6c945dbd usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x99bac5a9 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9a89ab70 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9bea0553 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa65a6a92 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa689b380 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe00aa8d usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbef70854 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc3a8ebfd usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc81ad7ca usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd6335cfe usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd733ae8a usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe2403142 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeb1c6997 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf873039f usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1932e08c i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2a2cc218 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x36ce564e i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3dac1a84 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3e4466da i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x58565628 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x609e5cb0 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6317b810 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6e4ce52e i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x88e9611d i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8e5fad47 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbfff2577 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc7143816 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc7539415 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe2c8ed6b i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe30fe167 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x3710a83b libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x29db2204 iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x3b950616 iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5310add3 iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xf206b882 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0731fbb2 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x13bd0ccd lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1c39f2b0 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2207a081 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x35130443 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3624fb93 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x66345106 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x74d0b82d lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa0883174 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb481624e lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xca675502 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcce3e325 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdb8c2404 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf7fc8013 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf9f0ee47 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0a50f279 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x2ffd9fc3 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x365dc590 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7662e0f6 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9f1bbcb4 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xaf015a47 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xeaf62894 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf5bcb30c lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xe44998c6 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xfe6f8b04 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1ac1a0b3 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x206ed2f2 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x25e98eed p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x347569a0 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x60dd9bd5 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7a1f65e5 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdf051818 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf4039519 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfc48e3d4 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x028fea00 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x074ab6bd rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x165b955f rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x35f4131b rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3fb46787 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ff13268 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x64fb5b93 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x79ce24b4 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7cb12bc4 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x85923998 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9258a41b rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x97f53d28 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9de35f31 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa11742bf rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa130434e rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa2245a65 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa40b2c3f rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa0adc2c rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xac04639d rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xac140643 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae9f4e6c rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb041b4d1 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb515a778 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb7270d68 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb9db2271 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd8c8cb9 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc035ace0 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc9b206d4 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcfc59fc0 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd7422911 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe29def8a rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe7c50b62 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf6981016 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe0b5840 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0a9c79c5 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0d2bada4 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0d917ac8 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x14cc59fb rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x202542e7 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x207b6c54 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2b7adf00 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2dd36ddf rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32dd558d rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35a18731 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x386ba421 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c17eb82 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x410a6a07 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4dd75053 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4f005046 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5495dd1c rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x597d78c9 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x59960c8f rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x614fca1b rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x690dd583 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x70608a1e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x72891cfe rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7bef0745 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7dabac3a rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x80519f79 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8395ad03 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x857a3109 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x86d6095f rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8ab814c9 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x91c40453 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94163f75 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94a9a7e4 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xae92ab50 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb7172dc2 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb8cdb8af rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc06a68de rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc8c8b5e6 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc8c9afd7 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd1690908 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdb5b5dbb rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x05e15a60 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x22f0d3cd rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x290c8437 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3b819c8a rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x84a63ef8 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb220919e rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbef89a72 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdc59c1a3 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x090c9f23 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x26b64463 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3395748e rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x61b71d5b rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x653c1b43 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8309f0c3 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x875db988 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x89803eef rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x95104e09 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa0dc0c18 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb576fb53 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbdf42910 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc05410ad rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc18c9fcc rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xee2a40af rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x2d3dd75f wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x809b8bd6 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xe7feabe8 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x3151059a wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x3c29d26e wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x77c7cc1f wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x89f35ac0 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x9fdd7b70 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xbce7eb97 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe32b5551 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x17b6786b pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x49a8407f pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x7e2d7914 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x0741a339 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xa3cace40 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xacdc8cdc mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xaf0d20ed mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb8508bb0 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xebcb0739 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xfb1ecd43 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x30ecc9e1 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x443b8b83 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6512db26 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x671891f5 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8489e7a1 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd0501199 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x2de79703 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00a80e62 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0a172fdc cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x149c0418 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x18d4d8de cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2cb4167d cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e26598b cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x32b612d8 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x58817458 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x58d8820e cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x59f2e91e cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5f8df9e1 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6c3e6a80 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6dbdf423 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x71f4a794 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7aa14636 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c4949b3 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fc9b64d cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x80b04ef5 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x85120a05 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8fd097d2 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa4c3c816 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb0adb4da cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb38e6659 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb85a4a3f cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb991ec2e cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xba4e88ad cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbfa4bb9e cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc023dba7 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc0e5f544 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc3a7cab4 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc7152aa5 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcefb19b4 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd2cd1996 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd5b356e1 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd5cc0577 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd85a6629 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdbec0f99 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdcb099cd cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdcfc86d7 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdd0390c1 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe27a2d27 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeb6335b2 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xecc8991e cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xff263333 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x41b00dcf scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x6a8356e7 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x8c3d5074 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xfe04758d scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xff02eb9f scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xffe2a151 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7b5c9007 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x30008043 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x3468cb2f iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x4e9286c4 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x863ca18b iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xaa9627dc iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe79cce56 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0702c47d iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0881a3b0 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c9d5b7e iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x14a8581c iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1531a885 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1660536d iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1792c0c6 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17c756fc iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19f6496e iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d16da9e iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d9c92e2 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3278135d iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x341b2729 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4336fa56 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x483906a9 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b1612a7 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x526840cf iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x566282b3 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6139a045 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x67ba399c __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x68be13e7 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x713d3b4a iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7889a585 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x791f7756 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f32bf08 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84696344 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84f749c0 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8cf86d21 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d0c60d2 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x981c3a32 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab2d7f6f iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab876661 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb1319984 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb38e6f09 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb84bba14 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xba89eeaf iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc5ee5b41 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcae45c5b __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcbd3f04b iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd3941bed iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf180218d iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf2c3de37 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf929ff71 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x044fd311 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0cc0ca76 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1788944a iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1dde15ef iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2637798e iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3fd8a7a2 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x473028a4 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4adb3481 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5aa9bf21 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x64d197cd iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x69ed4a50 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x72d84547 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbc0a1d61 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd5230dd9 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe8d6a1e6 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfc6eb60d iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0e597a4a sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3762c950 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3ea04755 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x52782b40 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5c551323 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7344f6ee sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x74982c7f sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x78e6cab0 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7f215e47 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x86f618cc sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x948101c7 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xad68ec5a sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc0b7ac1e sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc10decae sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc42229fe sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc67c5a78 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc75eb540 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc764cd90 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb76e2be sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe4eefd94 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xea73a4f6 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf3101a10 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf5771121 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x049bcf67 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x373a0eb0 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9b473a17 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa505d55a srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa671d6f0 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb5baac8e srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x06e10bae scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x21d4f58b scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2345a7c6 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x69fd11f8 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6bf82c93 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x79c1a65e scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd2d3b683 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe5810ecd scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe63ba997 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0771cdfd iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0b1da83e iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ff1b744 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x10a5f4f5 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x18b8a252 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b39d93f iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2b9f37f8 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2f7139ea iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x352bf7bb iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x37ca8b90 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3d62f151 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x53c50d74 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x643cab25 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x668ab9cd iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6aa29e36 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x92c9b606 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x975309e3 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa93d9788 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab87c6b6 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc3b28f7a iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc8bb49e1 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf43b70b8 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9f4e0df iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4e0960af sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa3734108 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xabc76683 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd114bae0 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x09f99265 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0f6774f9 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x34f2ac5f srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x61367f25 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x725e444b srp_attach_transport +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x701a1e39 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x80c5fe65 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x84f26019 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x95778413 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfdbb14db spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfe99e058 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2d727de8 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x3f9c8f56 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x62f7cea3 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x63f92aaf spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x669d7b04 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x811f3431 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8905e8b3 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x92b58924 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a7c7ed4 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb28eb4a7 serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc324625b synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xdac09839 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x12ec0fe3 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x74a599b7 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xed1cbba7 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x62e62f0a pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x89ef6521 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0xc9d5f6c4 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0xf89c3d80 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x004de194 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x0cc74bc5 max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x28749984 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x319d889c max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x691f75b2 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xc1784699 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2440a839 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x43417b6a uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa39c00f8 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x3178415a usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xe3bdae6b usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0b0aad80 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x21e132c7 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x397fb857 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x522c8871 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6fd042ed usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xaa9bcf89 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcf24803b ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf67e8010 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfc26a02a usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0e2f32f3 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x11232136 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x32fc94e1 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x33607389 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x356eaffc usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x44ddfd7a usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5539b4d9 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6561f21c usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x65b94f7e usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x688d82fa usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x73ce76e2 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7e1d3c98 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8af65508 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x90bb4ead usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaca3e990 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb8954ba1 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbaba33ab ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcb00a791 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd230b577 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe29e57d7 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf40ef4c5 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0c8700d8 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x156870e4 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1b36929e 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 0x2a1dd004 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2eaef1c7 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3223e898 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3257eb38 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x358382e7 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x54ad5c6e usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x59839a2f usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5dd87bbb usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6f5b4ab4 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7c8ac2a3 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x85a7359b fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x98561379 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9a06c356 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9be78b7d usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2d60656 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd702316a usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe90d5e1b usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xef44650e usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xef84684f usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfe1158ad usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x00ec2e49 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x29a6b188 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x6406e006 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x710c69c9 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc7bcbcdf 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 0x06b4fc4b __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0a3a0ae4 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0f2bd59f wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1476d513 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x173c2b1e wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x199cdb8f wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x30b46728 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f308e90 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8035cc7e wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8b187b8d wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xaa5fde08 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xaf65a3ef wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb80a8602 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc20e4c17 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcef4f41d wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xeb0f3a36 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 0x09997be5 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x3e46226b i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xd8b6c0d1 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0742fc55 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8940fa6c umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x90d37dbb __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9832b02b umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb366a4e9 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb4139671 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xee10270c umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfbac8fab umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x092a2617 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0de2310c uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0fad8c7f uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1ddc9c2e uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25943dfa uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x32fee1aa uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x52394158 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x54ab94c4 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5d51df7d uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5da9d8ef uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62fa9699 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x67dec2b3 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x68017e15 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x69950b87 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f9ec502 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x702f9a59 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x711e8c29 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7383d140 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8aabda46 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d88843f uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8f9dae61 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x92b90196 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa4f9aa63 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa57a77fd uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa5e4ae1b uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xad708c21 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb6989531 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcbdcf9c4 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcdd7fbe7 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd2f8d6c7 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdb614c4c uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1e4ff35 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xec67b5c4 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf3135002 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf34afbd3 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf8d2bb98 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf95b4b3b uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xb38784f3 whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x26b2eb2a ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x41705889 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x48c2979b ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5fff8fff ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x67c740ad ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xdb6662d0 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe54d7110 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x2e10936b fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x48df1a61 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x7603d981 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xdacb06d1 sis_free_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x2aad9b65 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x5b3b46d1 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x5f24724a register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xa15451db unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xb09e562f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x01341ffa virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x36046e8f vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x530da028 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x9a3aed8c virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x9d3d31ca virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb679c28c virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc9b2d655 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xccb4cd0b vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf5a0a6ac vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2e59cbad w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x34a2a38b w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x91228a0f w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa7d268ba w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xaf9586f8 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xbbdd843b w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc6dc52fa w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf9276342 w1_reset_bus +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x3a3bb9e6 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xb7d085ef dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xd7a88fe3 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x16824ac5 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xf7c586a6 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x0d001193 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x2b36cbf2 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x2e454192 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x303d059a fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x38594664 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x3d99862c fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x3db69c52 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x4199caf3 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x49967744 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x56a57103 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x578ac513 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x654d1cd0 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xa5034478 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xae099747 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xbb926de4 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xc4888aa2 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xe5171028 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xe5c1e6ab fat_add_entries +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +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 0x1e706b77 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x62db5de7 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6eb982d3 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 0xe372e806 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe86c63ca nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75ad472d nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x2bdbd438 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x41f16cf5 nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x027e0cbe o2nm_node_get +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 0x5bde7bec o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x97c9c1d5 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 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 0xaed43559 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc583754f o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc820a0cc o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xda9d3aa1 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x40707aac dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x45db1a61 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x58410446 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5acb841c dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x60928de0 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 0xa777415f 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 0x4f96d8f3 ocfs2_plock +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 0xa1509c3d 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 0xc752a224 ocfs2_stack_glue_register +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/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +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 0x0261ece8 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x3030ff88 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x60290baf garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x89c6670f garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xe4a3c745 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xebffce2e garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x022c84c5 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x899c2195 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x61a27fe6 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xb107e5af p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x960bc39e 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 0x4086ead1 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x070cf982 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0c2a52f1 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x131c7940 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1be84c88 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x25eee767 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33a89f28 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b460496 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3d589f81 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x45238641 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a6976d4 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x52ddba5e dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x53ce4b44 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59a8b5d3 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ebb970f dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x60b60cf8 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x67872f6c dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6e051284 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6fc20436 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x710dc33b dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x729a6365 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x795aaddc dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ad913c1 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x910ed115 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaab84e14 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xba240963 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbbedd0cd dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5af3a05 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc61bee7f dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9303277 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcae747a3 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xde19753a dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe5ac899d dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x28b70c94 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3fee1cc2 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5b97f8f2 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb38e5e5a dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcc589bec dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xeff714e5 dccp_v4_connect +EXPORT_SYMBOL_GPL net/ipv4/gre 0x5138019b gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa74f827f gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xb17e0c2b arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xd8806e6f ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x023dcc81 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 0x34352ad1 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x44dfadf8 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x71d42015 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x85c9e2a7 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 0xf16535d6 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf3dc96fb 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 0x8ea25567 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x978c6339 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x99bfbae8 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xbeacd459 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe43baab6 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xbf41fffd ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2748fbf0 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4cdf0dbe l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5451925f l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8eb9593e l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8ffc6b89 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x98412109 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d6051d1 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb2bcae35 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb3c1fb72 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe890a4ff l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfbb9be86 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xffa210f1 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x0bd07cfc ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2cdb9493 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7b012828 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x86706bed ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe9b01c91 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5ac2d32a ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x6e34a4bf unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x968ff6b8 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe129b243 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x003d7f2e nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04cdcf71 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0de51d14 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f9735e0 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x152207d2 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x171c47c3 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18c636f4 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d64aad5 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1fc21cb0 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23fafc7f nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25abb1ae nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25f680a9 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26b54349 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27616c2c nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2fb89ec6 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3712455d nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3983a683 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bb54280 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3cdfb25e nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d0c7ea3 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e2099c4 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x546f6284 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54dc5a86 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b7372d9 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ffb6408 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60d8fec2 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66590006 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x698ca69e nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a1fa4c1 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d30de55 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d4bca79 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76c35e6c __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a2c74a5 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c3c45ce nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cd67723 nf_ct_expect_init +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 0x93d6014a nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97dee0c7 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x983c1048 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x985b6971 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e4f0403 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa66b0f98 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa921ced6 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa6d0bf3 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xadcedaa1 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb3c6e393 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb0896ab nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbbd8cbfc nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc03fa39 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf2e66f4 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc43c35ce nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc629300b nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf096bb5 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd310cf93 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd540f56f seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7ebc194 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd1ab8eb nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2c72187 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe95425e4 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf02816a4 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfcb360f9 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x8ab98f30 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xfd77271e nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x067bdd4e get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x14d8d37a nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd68396d0 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd8bfafc5 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdc3ed5a7 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe11acfd3 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe5c81318 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe7293bcf set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeb92421a nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xee2b8cea nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xe67978a7 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x346f8509 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x87fb2cf5 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa5835f95 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xcc17acc4 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x07a8740a nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x6e09f313 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x17d49041 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x18fec384 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x24146423 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3d17c6aa ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4031cfb5 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4acbdd32 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5497e952 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x663cde2b ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6ef5044b nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8473034e nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa447ce59 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa48c6aa8 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa58825e5 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xdb442dbf nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x826d0268 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x279e96d6 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x39562aa1 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x58a8d9c2 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6df6aaa8 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x802bf1ad nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa19ddad4 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x263b073c nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x07227672 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x192f0dda xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x37946a69 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4885e65e xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x70cae4f4 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x797312df xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9a05fa75 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9fb4f5b6 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb0bba06e xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc324f1d1 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc5966675 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdd1043e8 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xee90da47 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xef22edfc xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x563d999b xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf6afa81c xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x04fdb634 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x12a0ef96 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x28cdc517 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2efb2834 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x32ff0fa9 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x34e12ea8 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x36c6a4d4 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x4622b59b rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x505e8438 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x59d308dd rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5e7471ed rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7f372ea7 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x85ccbf56 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x8cae4219 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x8fcdd142 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xb79ab6a4 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xb8c32e0c rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xbf198fac rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xbf3e95df rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc5ff9afc rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xcf7978cc rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xd254515d rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xd50a4c4a rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xd90e713f rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xeee904e4 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xf6d6dd21 rds_send_get_message +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x2c302157 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x92da6d3c 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 0x00eb0d68 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x03978316 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1906ed08 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x306c05c1 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3dc9b00b gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x919f0e9f gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb600376c gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd4460955 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xea2bbd7a gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf20fa1a6 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf7cfce08 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0113d03f xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03d1f048 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x047c2af4 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x048b686d rpc_wake_up_next +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 0x087c70ac xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09bae16a xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b1695ff svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ba3d9e2 xdr_shift_buf +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 0x1589d57d rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x177c7c27 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17a3247c rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a98669b auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1afdcb4e rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ca6e3e4 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f8a0129 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fb92e8a rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21b3e47f rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22f9bbc6 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bee40f0 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c578a4b unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30a6cecc rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x318e372d rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31bac653 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31bce541 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32de107a rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33974770 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33d0ba2a rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34ac2c65 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35367792 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3877403c cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38cb768e svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x390e4dca rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d82a846 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ff20296 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4004c4cd auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x413512fa cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41640ac0 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4600affd rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49a48a30 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49afb0d5 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d83a91d rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f6f2726 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fd68c4f rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50ca5ada __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x513d44fa xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53b97bf2 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a1b3210 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a7ce81d svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b701931 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d820d95 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e649f6a rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f119134 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f77bb75 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6016391b xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x601d2608 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64852aae rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68d904e0 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690ac893 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a146b1e read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d7c7ef2 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e5d7298 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ebd64fe sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x703f2128 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7070aaf7 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x726a5e52 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7292fb42 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74d6e70a rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x757e9ae0 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76635c71 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78c59230 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7972a100 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79c552a3 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b568235 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ba4857d rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80054d89 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x806154d1 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8627ada7 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x862a1cbe cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89839806 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x904cf8e4 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9071ec53 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9454cbdf rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95276c62 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x962ce489 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96cb610e svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9823c261 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bbd9c77 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c81f6d7 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e564daa rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0cc7d69 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa157a84d rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa27a5fad xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5c389a0 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa65d94cd svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa71fe77c svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7b8da84 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa8268b7 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab4e1490 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad7d1f4b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf27a192 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0b80adb svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2819e40 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb446613d svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb58f47da rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5a4c3d6 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6696376 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb80f4b1f rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaf6b2d9 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcf7a72e cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe14913d rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe1a7634 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfdc0e54 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc05cec6c svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1e58722 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc276e244 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc27e86d5 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4cd7152 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc74522cb rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9016664 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc447388 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd28b65d rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce9ae28d rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0a2421c svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1235f64 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5d670dc rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd81f74eb svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd95fa1f7 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbcd8096 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd8c903d rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xddc64358 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde01d22a svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xded8ebb5 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4c61a18 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecccc4a0 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed863954 svc_create_xprt +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 0xf05fb9e7 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1128f46 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6230dd0 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8540b30 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc337e96 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc8697ad xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff0d09e5 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0383d9dd wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x07b76c69 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0c522766 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2a65dc06 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3adb430a wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x46a3af39 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x572a6f90 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x67ec76bf wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x91134524 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9be295c2 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb869863e wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xece0b40d wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xefe2b501 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0fa54d0a cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x126dfafb cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x144efc37 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1dcfed8f cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x22461b05 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2533aff1 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2bebbfc8 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x33004d15 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x371b1c5f cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x39a04125 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3dbd66d8 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x49f99307 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x520af372 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x52407f7d cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5cfd54b0 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x614eb25d cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x623428d9 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x663b06a9 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x66e4d87a cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x738c40d4 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x783c3ce0 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8024a71c cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x85a9b4b8 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x939557c5 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x94bb05b0 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa124f9a0 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb05f26b1 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb2d397eb cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb64a548e cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdb515ea2 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe4e986d0 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf3578fe9 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfa8edadb cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x2543e92a ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x8ee26e96 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xccd5b9f2 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf107d097 ipcomp_input +EXPORT_SYMBOL_GPL security/keys/encrypted 0xd4f48d8f key_type_encrypted +EXPORT_SYMBOL_GPL security/keys/trusted 0x5b0f6299 key_type_trusted +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x23bac14a aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x33c731d0 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x453e1e68 aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x7f885331 aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x8dd07839 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xa266d804 aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xb69977c3 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xbdfb0efe aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf3be93da ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf52de1e8 aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x4bfdf21f soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x7366a993 soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x89f5a36f soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x8e16b35d soundbus_remove_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xb4dc8df6 soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xe100a9dd soundbus_add_one +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x1040b954 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x21435706 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x447ddec9 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9b6c4ac2 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc2da7807 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd3561342 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0391cf84 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03ad1155 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06da3c5d snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0760f449 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x08e4a538 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10c40f75 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11ac2b39 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1558a5ff snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x199cf650 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a6a9cc1 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1bf80bff snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c5a183d snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f4585be snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2242ff58 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24baf182 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x255a1765 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x287c10ff snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ba29b2f snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2cc0bacd snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2de8c526 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x322c0001 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x323c7753 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3327a605 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3551071e snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x420b0c86 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x426ba08e snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49ba641c snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d1ddd7f snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f3bc567 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x51664746 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x533a407c snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5450cffa snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x569e6837 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5704b843 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b04030b snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x693631e7 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c376ed9 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e60846a snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70ba6b44 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70c84bad snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71ae6712 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x746f102d snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x770e1e3b snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c6dcd52 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d4c5840 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f418dc3 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83a028b0 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84b3040c snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x884103e4 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x884d13ef snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x938e4108 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95393e55 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x973535fe snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x992452b0 hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a29130e snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ab81917 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b633212 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e882be9 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ec22958 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ff82068 snd_hda_check_board_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 0xa3b9d40b snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6bc998a snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad335840 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb19a1b45 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5e9dc11 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb64c3df3 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb650ce30 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbac7d509 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1134917 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc200029e snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc37c9233 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5360ae7 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6d43be3 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc75265e5 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca67cfbb snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf07017b snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5d84156 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8bc9b85 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9dc8d17 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda232180 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2b8e479 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2de0562 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe9d69594 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 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6df28aa snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6e0e572 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb6494c2 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfeabdf8d snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x19617879 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xe531d931 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0xf70fdeed v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x90169eb1 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x68df44ca aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9b22e36a aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa6f7a620 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb7d24843 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc989806a aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x59f38d1f tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xd6ebfc30 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x31115084 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x6611783a wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x0070766b 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 0x8b9f5b8b wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xbb38c6d6 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x40495a57 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xc1a8f3d3 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xf51a941c wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xf85947de wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xdbc738da wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x125663a1 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xb1f26918 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x004d8584 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x081b710a snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a8441e8 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c5f0411 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15127837 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17b0d329 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ba43933 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c728fb3 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20da2239 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23116eb0 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x246b4d38 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 0x278e36ed snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27ad77c1 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x28a574f7 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ba6bf1d snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e78d14b snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31d3db7f snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3306caa4 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35f79a48 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a58abcc snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ebb3e16 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f015b46 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42d50b53 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4340a2c4 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45054ed1 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46f978bb snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46fad1fe snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4747ffb4 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48118900 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c8f3203 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4efd1287 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x557aeda4 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58c35335 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b128e69 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ca0b9a7 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6092210f snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64b6d062 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x680f5dfa snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69eeb0e6 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7488b70a snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x764b210e snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c10de84 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e6c7eec snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f48b245 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fbe7e97 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81a3b2cc snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8513bcb6 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x920f2689 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92db4c29 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93f51416 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a040b5f snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c89f85b snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f1ce1be snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3b1e319 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4bee935 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6ddd792 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb049d2ea snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb249c149 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3a05b2b snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb431422d snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb25929f snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc8e5590 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc63da2a6 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd39cf89 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0754532 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd1f71a0b snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda60aeee snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd5d44ac snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdebab558 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe261f607 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe703d147 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe846d0f5 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8ccadbf snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec4240fc snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee2f74be snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf35fa5f7 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4524aa6 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf556ccb9 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5e418c1 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf940ff1a snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9bbd72d snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd1c7dc8 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfda9984f snd_soc_dapm_new_control +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 0x000c0a6d rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x002abe5b attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x002b8f99 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0066cb0e ide_dma_sff_timer_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x006bc447 cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x007acb3d dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ce5ed7 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01556d8a ide_pci_init_one +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 0x01ddfa0a usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x020b1222 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x02745a6f crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x02a7ddf5 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x02f117b1 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x03370784 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x0339544a wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x033d544a simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0386ec45 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x03c91b6b sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x03ca1f02 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x040c6d12 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x04df3d7e usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055af64a sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x0581ab29 ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x05a211e3 kvmppc_rmcall +EXPORT_SYMBOL_GPL vmlinux 0x05a5681e driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x05c20e72 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x066cbe80 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x0671c17a ide_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x0684936f map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0693ebf2 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x06b83dbc ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x06c3f9fd ide_dma_host_set +EXPORT_SYMBOL_GPL vmlinux 0x06c82978 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x06d978d1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x0734dbbc wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x0787096b pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x0791a10e wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x079cbfc1 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c2e30c __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x07e0fc07 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0810dca4 pmac_backlight_mutex +EXPORT_SYMBOL_GPL vmlinux 0x0883cd9d register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x08fc39de __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092cc083 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x094b09ef ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x09bc9103 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x09c7c219 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x0a0b704c tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a95f87e ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x0af8b15d ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0b035e17 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19869d ide_host_remove +EXPORT_SYMBOL_GPL vmlinux 0x0b1e7dc8 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x0b2e4a17 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x0b364529 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0b3f09b3 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x0ba143c2 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x0c03aff6 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c382591 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c606e97 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0c60bd6c flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x0c6b1ec9 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x0cc6449a device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cf23adf ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x0d0c109d of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x0d10eaf7 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x0d1cf931 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x0d8c35ed ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x0dc473ff led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x0de15e02 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0df938f3 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0dfb4752 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x0e018de1 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x0e1b717b blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x0e349b88 input_class +EXPORT_SYMBOL_GPL vmlinux 0x0e486b97 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x0e61e94b wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x0e9960cf __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x0ea7d03e blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x0eabfe26 ide_pci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0ed0050a ide_set_media_lock +EXPORT_SYMBOL_GPL vmlinux 0x0f21a232 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x0fafa291 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0fbc4011 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x0fbe1786 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101ab6d3 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x104a4cc9 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x104cca62 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1053891f crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x10938a07 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x10be456e regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init +EXPORT_SYMBOL_GPL vmlinux 0x1130addb register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x116eadc1 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x118594f8 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x11aaac3d __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x11ad65ad da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x11ae08b1 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x11cf23c3 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x1239344c ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x127b26ac init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x12a35d08 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x12a67c7a inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x12add860 __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x12cee1c6 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x12f9e6b7 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x139d482f flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x13a0485e __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13ff8f23 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x140d661c mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x1427720d __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x1477d17b ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x14a71b38 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x14d58c30 ide_prep_sense +EXPORT_SYMBOL_GPL vmlinux 0x14d5945d of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x14f0032a crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x150ac5e1 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x155ef644 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15d6de5b crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x15e12954 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x15ec80aa fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x16097a90 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x161aa5f4 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x1688e999 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x168f5d9a blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1724e822 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x17342d1b scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x175da59d crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x1773ec20 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x17c4600b ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x17ffcb7c tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x18509906 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x187b33a5 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x18a9ce31 ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0x18aba764 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x19116327 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x193706de inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x193cd780 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1940098c bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x19636052 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x19679210 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x19993021 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19c396e8 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x19d0d859 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x19e3c7fe relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a98983d device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x1aa7219c tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x1b2a1dff devres_get +EXPORT_SYMBOL_GPL vmlinux 0x1b8bf055 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x1b995bac ide_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bab249b rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x1baffc26 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1ca1e58f ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x1cb13559 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1cf590f0 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x1d6f1fb7 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3f0698 fuse_conn_put +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 0x1ee9814e irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1ef8af13 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x1f42ee8c led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x2017e0a6 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x2036a8ec relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x2049bab8 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x205345f0 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x206268b8 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x20b2096f sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c2257e blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x20f7cd40 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20fe9627 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x21a24dd0 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x21ac309e ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0x21b17129 ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x21e83a88 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x22110dc0 dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0x221716f5 ide_input_data +EXPORT_SYMBOL_GPL vmlinux 0x2229b7ca spi_async +EXPORT_SYMBOL_GPL vmlinux 0x223e7f42 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x225a11b3 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22dfe6a7 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x22ed8337 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x231d9e83 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2370654c relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23943261 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x23eeec5f crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk +EXPORT_SYMBOL_GPL vmlinux 0x24df8941 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x24e10b83 ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24e18b14 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24eac5eb tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x2518480b ide_read_error +EXPORT_SYMBOL_GPL vmlinux 0x25466c7b swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x25747958 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x25d56a2c zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x25e09b4c blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x2622772f bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x263fec4f adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x264a010c debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x26869022 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26f4defe blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x273616f3 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x2736e8a6 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x275ced53 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x278dfb72 device_register +EXPORT_SYMBOL_GPL vmlinux 0x2792efcb seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27b1aa5a blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x27b9b05c seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x27f83eb1 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x2805d973 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x2814c7ae ide_do_test_unit_ready +EXPORT_SYMBOL_GPL vmlinux 0x289325ca ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28eb4ac9 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x290987a8 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x295830b1 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x2971f6e4 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x29ba2614 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x29c245ef pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x29ce2ee1 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x29d3c0d7 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2a3575db pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a86e48b sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x2aa252bd tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2b4af3bc spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x2b4fbb3c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2b5ae66b gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b824736 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x2bce0f33 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x2bcefb3f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c4b9d86 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x2c5edd83 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x2c64b473 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c8424fd transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x2cba3851 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2da1cb3d nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x2dff1ce3 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e4d5f48 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x2e715e83 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x2e84f4ea hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x2eb9161d pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2f021938 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x2f2aa116 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f526e27 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x2f60264a scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f97cdcb adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x2fa1387a sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x2fc020e4 ide_dma_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x2fc4ad01 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fdc3382 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x303c7689 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x303e1f15 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x30518beb cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x30672189 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x307a6cbc usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x307d5233 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30954027 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30ad1059 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x30b3f19a invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x30d3d4c6 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x3110a094 ide_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3137e372 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x3150ac20 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x31582f65 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x3169689c i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x316fcf38 css_id +EXPORT_SYMBOL_GPL vmlinux 0x3191eb72 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x31c29a36 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x31fcc59e ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x321521e3 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x325ecea5 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x328bc629 ide_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x32ab1019 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x32d5d6ca ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3336a4d5 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x33edec3c device_attach +EXPORT_SYMBOL_GPL vmlinux 0x340eb4b4 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3471a04b crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x349b6bd4 ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0x34aa4f3c unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x34b4d76f scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x34e25038 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x34e5a7c1 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x35152f13 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x35357139 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x35618a03 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x35cdc48a ide_no_data_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x36264532 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x362abf48 ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0x362c7fc5 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36ba06fb sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x36cb8a16 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x36d75861 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x372886a1 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x374eb039 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x37b0a96c securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x37e9e143 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x37fbe4c6 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x3855d341 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x385d3d8b page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x386cc6c8 ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0x3878955d xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x38946fc4 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38cf2df3 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x38decaf7 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x38ff14cc put_driver +EXPORT_SYMBOL_GPL vmlinux 0x390c0e21 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x39269f9b sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x39676db4 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x39982d7f tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x399939be css_depth +EXPORT_SYMBOL_GPL vmlinux 0x399de217 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x39bb95b4 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x39c93984 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39f56a95 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x39f707fc filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x3a24181a unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a64b840 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x3ab0f008 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3b15e900 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x3b33a2aa wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x3b6240d7 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3ba58a6b fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x3bc86c43 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c09df9a crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x3c147569 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x3c198033 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x3c434dfa vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x3c53f88b inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3c57603c platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x3c7d9bf0 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c9df191 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cacbe0c unlock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x3ccc9d4e __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd130b1 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x3cd247ba transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d8339ca class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3d9806bb sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3e0e0037 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x3e7e0c93 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3ef9111a crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x3f08eb7b hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f7499db kvmppc_trampoline_enter +EXPORT_SYMBOL_GPL vmlinux 0x3f7c5cbf ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x3f9273cb da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x3faa94c8 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x4037d1cd rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4043cc97 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40e8641e ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0x40f366be tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x40f7ea8a netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x410a47d5 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x41739211 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x417aa0de tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x41970351 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x41b2b752 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x41ec199c ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42c2c4bd blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x4310ebc4 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x4364d495 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x43691d54 pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x43d2bee7 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x43d88c6b ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4460f04c ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0x44655df8 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x4474ff3a anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44cd702f ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x45303f6e blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x453a1467 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x456875dc rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x4573a7aa irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4576e359 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45cea641 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x45ebcaa4 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x46276807 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46a0f4be macio_find +EXPORT_SYMBOL_GPL vmlinux 0x46a5bf14 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x46c79250 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x46caf89b locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x4703d3e7 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x4707ff39 ide_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47288592 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0x479908d7 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x47e4c047 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x481b75ed i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x4827fd18 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x482fc8b5 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x484651f5 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x4871b848 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x48870142 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x4906524a crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x4907dfb0 ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0x49085ad3 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x4931a8f6 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x4943a338 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x497c854b regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49daa82b raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x4a711b10 system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x4aa8762a bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4aac75a2 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ab7b398 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0x4b1157dc ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x4b18b418 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x4b400927 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x4b51785e perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x4b8879d7 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x4b9c76e8 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x4bda53e8 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x4bdf7d9a platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x4be0f0dc raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x4c1db18e ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x4c4a1af9 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x4c714781 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4ca3b6dc dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x4cc718d8 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x4cc8f77a input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d6e468a ide_check_atapi_device +EXPORT_SYMBOL_GPL vmlinux 0x4d9be7e7 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4db4ea0c pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4dba409f ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4dbe839c class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4dd8d236 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x4defbd42 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x4e1269aa xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x4e5b4293 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4e8a5e23 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4eb07f70 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4ebf144b swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x4ec27f77 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x4eca04ff __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x4ed76451 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x4ee27f66 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x4ef017d1 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4ef53bda usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f6db844 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x4f82896f rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x4f881b16 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x4fa0cfea crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x4fda384c tty_prepare_flip_string +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 0x4ff91e2f vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x5078a2ba led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50aa0b1e regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x50c6aea6 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e654b7 pmac_i2c_open +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 0x51213517 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x5151eb01 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x51809063 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x5198c162 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x519c02c5 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x51a572c4 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x51af7f83 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x51ff310e stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x52149807 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x5232608e usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x5232d1b0 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x526b2ec1 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x527d785a ide_read_altstatus +EXPORT_SYMBOL_GPL vmlinux 0x52bac5ff usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x52dc4da6 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x5312c6ec ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x5349d155 of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a932cb sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x53b25faf blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x53d3ee70 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x53e94a00 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x541404e4 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x541b018f crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54ab4528 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x54cb099e ide_read_status +EXPORT_SYMBOL_GPL vmlinux 0x54f6e7e0 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x550fdfb8 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x55119060 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x5525cb0b ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x554f356d device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x55e09e33 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x55e74041 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x561f59f8 led_trigger_set_default +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 0x56540da3 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56728164 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x567c582c class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x56a15a6e ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56b78580 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x56df6e56 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x56e28f46 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x570619b2 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x57069d61 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0x572922fb ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x575005ea fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x576ce220 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x57797ab4 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5795fc4e regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57be87aa pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x5883cd65 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x58948949 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x58a2e91e device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x58e1f22f ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0x590d0484 ide_host_free +EXPORT_SYMBOL_GPL vmlinux 0x592c988b ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x59b63f64 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x59f77f73 cpu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x5a05e45c ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x5a215585 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x5a4b4ddb con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x5a7b4a7c ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a9811bf pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0x5aaa4ac7 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x5b1fc905 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x5b6a3c10 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5bd152d0 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5bfcd620 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5c0112b3 ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5c3f8008 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5c41e2b7 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x5c85470e sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5cbd9102 ide_cd_get_xferlen +EXPORT_SYMBOL_GPL vmlinux 0x5ccc3187 ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x5cd4d69d ide_error +EXPORT_SYMBOL_GPL vmlinux 0x5cdab01f i2c_unlock_adapter +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 0x5d893131 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x5da96680 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x5dd663e5 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e2062f5 ide_port_scan +EXPORT_SYMBOL_GPL vmlinux 0x5e236a9d ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x5e37716a tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x5eb5a163 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x5ecfa8c4 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5eef0025 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5ef92e4e pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x5f46d244 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x5f82a558 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x5f93cc48 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fdc972a xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x5fe74d18 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x60176119 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x603f04a8 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6049c750 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x609c370c usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60c338f8 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x60e68abe lock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x610b904f ide_create_request_sense_cmd +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x617eed93 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x61d9c990 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x6220171a regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x62791552 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x627cca5e sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x63122b99 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63d09152 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x63f548d8 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x6415e676 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x64277ff8 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type +EXPORT_SYMBOL_GPL vmlinux 0x646fee00 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x64742805 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x649666c1 unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x64a41755 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x64b21b64 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x652446ac sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x65489110 device_add +EXPORT_SYMBOL_GPL vmlinux 0x6549121f debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x6549124a locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x65519999 pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6587d1cd input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x65b7c724 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x66008c2b adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x6602d4f9 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x66037bc9 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x660e44c3 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66acf498 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66d9281e cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x670678fb wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67c22957 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x67e33eeb device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x67fa3211 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x682f4f72 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x68608295 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68c58b20 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x68efb720 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x6963dd00 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x6979c126 ide_pad_transfer +EXPORT_SYMBOL_GPL vmlinux 0x69dbd165 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a559116 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x6aa0805a ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x6abb40a8 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x6ad008da regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x6adabbd7 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x6ae4ceab __css_put +EXPORT_SYMBOL_GPL vmlinux 0x6af13373 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x6b1f182f hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b5b3e04 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x6b5fe4df __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x6b6c88ac find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x6b8d3ddc shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x6bae25b7 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x6bb38471 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x6bfe1203 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x6c0e6bea ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x6c1729db simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x6c332cfa ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4e3166 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cb73fb9 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x6cfed9aa led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d47bc4d pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6dcda7b2 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x6dd6b96c crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6df0dc3d root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6e082f67 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x6e173751 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e7e2587 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0x6efe9b66 ide_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f50d5c0 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x6fb8f9d9 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x6fbc719c pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x6fe4b21a ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x702bfae8 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x70716d17 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x708ade1a udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x70913863 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x70ccbed7 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x70e9510e file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x70f4a0df cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x710ebe6d scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x710f7ae8 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x71124510 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x715ef039 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7165b365 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x716ec823 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x71800b18 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x719098cd eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x71bc6951 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x71c2baaa kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x71fba35a blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x720277f2 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x721550fb ide_setting_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x721920da stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7225d7db bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x722c50f6 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x7232546f security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x726c98cf ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72aa1870 user_update +EXPORT_SYMBOL_GPL vmlinux 0x72ee5c38 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x72f62283 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x73110bf6 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x7354aa0e ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x73564277 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73ac7fe2 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x73d2b195 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x73e2cf26 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x746c1859 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x747708be regulator_get +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 0x74e0ee2b cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x752d7ac7 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x760ac9b9 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7619df6a usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x7625dfdd dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x7626b273 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7632bf12 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x763ace9c fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x763b3133 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x764d1df4 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x769af5ba spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x76b9833d hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x76cf59b5 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x76e99d29 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x76ed3913 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x77004d2f sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7735ec84 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x775b15ab ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x77747da3 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x781c4af4 ide_get_lba_addr +EXPORT_SYMBOL_GPL vmlinux 0x783cf074 kvmppc_trampoline_lowmem +EXPORT_SYMBOL_GPL vmlinux 0x78417390 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x789cdcd6 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x78dfb1af get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x78ea0f57 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79d078c9 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x79d67cf1 ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0x7a00ffe4 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x7a10f6d3 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x7a2c7b27 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x7a535cc0 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a7fbb4c ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x7a9d42ce perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b518b65 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x7b817639 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x7b8ee3b5 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x7bd4fa0d ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x7bea0cae disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7c176e03 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7c58fdbf register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x7ccb07c6 check_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x7ce54711 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x7ceb4dd4 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x7d10ea35 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x7d1f6481 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d23ff8a ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x7d400eea pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d7389db fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x7d74eb84 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x7d7545ac ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x7d8328c8 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dcab0c7 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x7dd18543 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7ddde8c0 device_move +EXPORT_SYMBOL_GPL vmlinux 0x7df00142 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x7e034bda sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x7e09e864 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e2d29ec ide_pci_clk +EXPORT_SYMBOL_GPL vmlinux 0x7e5c2584 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e78fc18 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7e84c34f task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7eb0f1c3 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ec420b9 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x7ed268c3 edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x7ed83676 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x7f14aa02 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x7f2fad1c usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x7f3cecc4 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x7f488145 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x7fcba0a2 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fe1302b __blk_put_request +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 0x8021cf7e tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x8051a181 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x8071e53e inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x80855679 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80dde0b8 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x80f6e8bc inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x81141a50 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x81224f56 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81892a65 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x819e4a71 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x81c3b6c5 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x81d41666 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x81fa96b2 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x822d1f68 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x8268f168 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x829f3173 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x82a427e8 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x82a48f9e pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x82be1ea0 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x82cf3d34 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x82d66897 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e6472c ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8329ce81 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x83bdbebb device_del +EXPORT_SYMBOL_GPL vmlinux 0x83cc9136 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x83d9e003 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x842c6618 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x8467e86a pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0x846f5a00 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x84ecb7cb timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x853d5334 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x854c95b7 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x8560aded pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x85bb3b4b ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x85f4b3e5 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x860c4183 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x861260d9 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x861f19b1 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86896e65 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x8691d1e9 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x869f2b98 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x86acb959 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x86cb3a0a setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x86d59998 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x86e67b65 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87b8af69 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x87dea420 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x87f812da disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x880defd4 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x880f4aa2 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x882a8600 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x886a72fc fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x886bb06d ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88bbf33c ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x88be2090 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8913d7b6 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x891fd6f7 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x8925eed1 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x896109d7 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x896930c4 pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0x898d25f8 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x89b0e3a1 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x89b4ca39 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x89d0f251 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x89deb9ba dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x89e350bb ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x8a16b797 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a2daf18 ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0x8a3305fa ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8a909848 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x8a928561 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x8a92bf1a wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad53ab1 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8aea4fb2 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8af14f1e pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x8afcc4be usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b9ee9d7 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x8bdf7a80 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x8c1274bb usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x8c39109a ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x8c4edb63 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8cac8a39 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x8cbacdcb rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8cbbceee inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x8d5909e8 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8d9814a5 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8dad55e8 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x8dafb7c4 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x8db2917a attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8dc4ead4 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x8eec94b6 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x8f22e11f crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x8f3d3ae2 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f980d51 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x8f9c46cb blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fc0554c power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8fc3e89f rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x8fcb096f sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x9088e12e pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a1bafe tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x90bca8a5 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x90e3f3f5 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x9125c19d spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x915efc79 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x9167c6d3 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x917850c6 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x921d5bc4 ide_host_register +EXPORT_SYMBOL_GPL vmlinux 0x923120a7 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x92398ee8 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x9244f80e ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x92828a53 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x928a7a1e device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x92998c10 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92f65994 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92fdafee device_create +EXPORT_SYMBOL_GPL vmlinux 0x930538e5 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9316ced7 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x9327a262 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x933c62ab sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93fdeea5 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x94404472 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x94a219c4 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94b93811 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x94d31043 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x950e7da6 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9528a477 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x953ebf5f hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x9543df68 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x954c5e03 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x955a88bd __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x957e8f06 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x95b403a2 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x95e65f79 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x95e6ad6a uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x96179134 ide_release_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0x96190817 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9625086d apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x969a34b8 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96d658a9 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x96d70dcd scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x96db600e i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x96f2e48b usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x970568af proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x972ae015 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x9731b1fe blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x973598de ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x974da1a2 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x9787c195 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x97a295df sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x97c94799 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x97e0ee4f ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x97e45118 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x97ef17d5 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x98006730 ide_pio_bytes +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98704f2a sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x989c6cf2 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x98a720af pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x98fbd623 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x992d2694 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9977a076 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x99828d11 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x998b7cc4 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x999d17cb pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x99a1fc8d __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x99ef14e0 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x9a06e9f8 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a1fe306 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x9a3c8f6e pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x9a672938 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x9a729cdc ide_read_bcount_and_ireason +EXPORT_SYMBOL_GPL vmlinux 0x9a91a9fa crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x9aa0d816 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ad75ff8 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x9addd59a inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x9ae3ce2f usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9b8012d0 ide_pci_resume +EXPORT_SYMBOL_GPL vmlinux 0x9b947786 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x9b9c944f device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bb8cf7f inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x9bd5b1aa da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x9bd5d6dd tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x9bd5e669 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x9bed85d9 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9c1df704 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x9c67538b key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x9c973d0e blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x9ca907cd mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cdd6894 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x9cf33b03 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x9d00d3d3 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x9d0ff532 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9d888dcd tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x9d9a6e06 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x9d9fa038 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9dd297ec tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x9e116ef4 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x9e25381c edac_class +EXPORT_SYMBOL_GPL vmlinux 0x9e5e38b5 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9e636d21 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x9e7a9f22 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x9e83966b n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x9e86cb04 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x9eb6156b ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ee3bc6d ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x9f2136e1 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9f34943d ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f44209e set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x9f47fd9a unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x9f83ccf9 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x9f8fc8a3 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x9f959db4 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x9f9671b4 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x9f9702c3 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x9fae8c7c single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x9fc0a597 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9ff417b0 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xa040cbbe usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xa046e23e ide_end_rq +EXPORT_SYMBOL_GPL vmlinux 0xa06a7b11 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xa07f6fcd ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa0d550de __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa0e911c1 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xa0e9ed5c mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xa0ec4ef5 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xa1015dac get_driver +EXPORT_SYMBOL_GPL vmlinux 0xa114e49d find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xa123c33f debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xa139eda7 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xa13c4274 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0xa16452ca transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa174c4da tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa1969c7a ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xa1a8433a usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xa1d916b9 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xa1eaac80 dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0xa209b455 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xa27f7fb8 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa28404d2 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa2b63f83 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa2bbb0b9 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa3911c82 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xa39d9220 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3afa4dc ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xa3ef5f0d tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa436af42 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xa4644213 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xa466f9a7 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa488373d ide_dma_lost_irq +EXPORT_SYMBOL_GPL vmlinux 0xa49f4a80 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xa4a45b0e crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xa4bd82af pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa565b929 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa5866cea wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa59a08e0 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f7ce00 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xa615c1ef usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa633a872 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xa69353e9 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xa727e335 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xa75354e3 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0xa76f67e5 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xa819a77c __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xa83055a8 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa8318e95 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xa832e784 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8728d6c usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa8abdb0b kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xa8afa0a2 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa901f23c pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xa9024e00 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa90da508 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xa9184ffc netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xa9217603 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xa93ac716 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xa9559e0c ide_pci_init_two +EXPORT_SYMBOL_GPL vmlinux 0xa96e1558 tty_find_polling_driver +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 0xaa3a435c regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xaa82b567 put_device +EXPORT_SYMBOL_GPL vmlinux 0xaabbcb18 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xab0c6cc1 ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0xab5ba324 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab75ebd5 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xab7e9932 ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0xab8481f1 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xac21e55a rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xac3023de blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xac327927 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xac60b52b ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xaca1969f platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xaca680eb crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfa4620 devres_find +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad01aa4a aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xad024b55 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xad17d9d0 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xad4a54f5 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad6ca6f4 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xad8a3963 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xad8b3eaa device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadf84815 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xadff4dbd pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae25e072 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xae28eaeb tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xae6d217d unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xae965172 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xaedc754a dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xaeed2250 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xaf206503 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf4e7919 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xaf672e14 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xaf8fe18e cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb021ac6b tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xb06001b3 mmput +EXPORT_SYMBOL_GPL vmlinux 0xb08aeda1 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xb0f96a7b device_rename +EXPORT_SYMBOL_GPL vmlinux 0xb0fccd98 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb15b5e33 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb1735369 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xb174dbfc usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a26469 ide_device_put +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1d3c323 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xb2194741 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xb2cbf03d find_module +EXPORT_SYMBOL_GPL vmlinux 0xb2eb8922 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xb2ee039a bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb30d85c0 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xb3a50d75 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb3d458be usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xb3fe9347 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xb46835db disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xb48fb1e5 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb4a401bb dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51f155c user_read +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb59077a8 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xb5a20132 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb61e63af hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xb6457f24 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xb64ea395 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c900f1 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xb73da624 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7b4206f pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xb7d1fe55 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xb7d3a557 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xb7ea2b6d driver_find +EXPORT_SYMBOL_GPL vmlinux 0xb884fa5a crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb8c19ddd bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xb8eb9d0b ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xb9075dba ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xb93f3ad5 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xb958f60a crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xb9aa5ffa sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xb9c5d435 ide_output_data +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba2d1869 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xba43b15d ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xba4b5e57 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xba59f959 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xbab608de uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xbab7eae6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbae6cba1 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb205311 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xbb265cd9 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xbb42f04c vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xbb68d6c5 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbb812d04 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xbb87489c led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xbba0a3ca bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbc166a77 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xbc1cc860 ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0xbc9560a8 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xbca018e7 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xbcb1bf53 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbd186896 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xbd23adb0 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xbd390818 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0xbd8a5c8c ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdea77f9 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xbdecbe65 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe13e44c inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xbe664a79 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xbe6f72c8 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xbec215e3 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xbec9c46d inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xbee1c78d pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xbeea71aa dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf4252bb driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xbf6fcb8f transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xbfd7a9ce usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xc02f6297 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xc041b24d platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc0a8340d ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0e0c4d5 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11968df usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc144f258 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xc155b82c crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xc1577b1c of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc176462f stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc17cf731 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xc1819de1 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc19fdf96 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xc1aa53d4 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc2720d03 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2a28bfe sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xc2c6b105 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xc31f8cbc usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xc343f93a kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35eca34 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc373fdd6 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xc379234b disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc38131e1 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xc3969df9 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3e77010 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xc40d16a6 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xc4185f94 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc4511dbf pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a6a946 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xc4db992e kvmppc_load_up_fpu +EXPORT_SYMBOL_GPL vmlinux 0xc4e78d61 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xc506e502 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xc54183d9 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xc546f7df sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xc5745719 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xc5a79fab unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xc5b1d204 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc6023bc6 skb_pull_rcsum +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 0xc635485a ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xc63bad9b do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc644fe0c inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xc687cd6f usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc773faf8 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xc77425c4 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xc77e9a1b blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xc7ae0cec ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xc7b4bdb9 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xc81e3950 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc827d1e9 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xc83f673e bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xc83fdc35 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8df98d2 attribute_container_find_class_device +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 0xc93e6255 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca079943 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xca50e026 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca97b480 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xcad25483 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcad816da register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xcb269ee9 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb288472 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xcb647b7a user_describe +EXPORT_SYMBOL_GPL vmlinux 0xcb847f5d tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xcb97f47f dm_put +EXPORT_SYMBOL_GPL vmlinux 0xcbc074db ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xcbd48cf6 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xcbe06d8c xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc32be3e ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xcc9a1cce rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd2fb77 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd284a71 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xcd3b5a9c crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xcd739ac4 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdb87881 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdd91d49 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xcdf117a9 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0xce0f037c cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xce10a591 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xce5f8664 ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfa52986 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfe2ecc8 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xcff5315e kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xcffd68c7 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xd00652f3 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd06b6412 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0xd0ae3df6 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0ceac03 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xd0da2e65 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xd1014759 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xd145a3d4 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1be2ad7 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xd1e2375e aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2712e59 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xd273478a inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2b0e8a1 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd36c5783 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xd381c73d usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xd38b768d vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xd3bdbcf2 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xd3bdc440 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd3df0a70 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xd3f08c20 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd4315767 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xd4404e38 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd4415684 ide_host_add +EXPORT_SYMBOL_GPL vmlinux 0xd4529c1a blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xd4b07ebc platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xd4b9906d sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xd4d2e524 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xd53b8329 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xd53cc044 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xd574db71 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd5860749 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5c1eb1e __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5d8b3b8 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xd637b288 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xd67284a8 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xd673d4c1 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xd6cd3431 get_device +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd70c91a9 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xd71a9a34 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xd7265a16 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd74ed71b flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77655a2 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7823c2c usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xd791612e ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0xd80a81a2 pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0xd820eeb0 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xd8270ba9 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xd8711622 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xd8819acb ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0xd8822c26 ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xd93776b2 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xd94194a2 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xd9ba07e4 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xd9f75340 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda35d009 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xda65dfe2 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xda816280 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xdaa04d83 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xdadccafd ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafc9c53 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb0c0bcb sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb4c2fb9 user_match +EXPORT_SYMBOL_GPL vmlinux 0xdb76fbbf fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xdb7f5d46 ide_write_devctl +EXPORT_SYMBOL_GPL vmlinux 0xdbf96aac ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xdc1b6692 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xdc4e550c nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xdc60fef3 __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0xdcd2b264 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xdcdd8d1c usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xdcfd8d55 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xdd7222b6 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xdd72bf42 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xdd7bb87e ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xddba1aa9 sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xdde0bc60 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xde0f20c8 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xde1b72c0 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xde32d602 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde4cd304 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xded5c46a dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf9e57d7 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xdfdc3488 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe08c47e7 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xe091b344 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xe09705bd led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0dce1e9 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xe116b490 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xe186133d __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xe20bfa5d pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe250f197 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xe259f2c6 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xe25f41d6 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xe295c1ed pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3b17fc9 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xe3e0794e ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xe3e75a53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xe3ee9dc1 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xe45d6383 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xe465935b nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xe4920c21 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xe4d73587 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe5208362 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xe531ae94 do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0xe542f5dd ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xe56e0ad5 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0xe570c5e3 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xe574f4cc ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xe5d081da ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xe5d0d154 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xe5dc0600 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe5ed686e unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe5f5e6ba bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe650789b __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xe6511d61 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6eb6acb eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xe72b8e02 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe82ccd01 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xe8457c91 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8ba11b1 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xe8bfb2e9 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xe8d31b52 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xe8e875df ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe8ec18bd ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe8f725b2 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe96179aa led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xe97673bf tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xe99e1445 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xe9a753c1 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xe9af7d1f devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xe9dd640c fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe9e06c5a cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xea04ea3e pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea10255a class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea1db295 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xea226993 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xea2b4b37 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xea2cfa24 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea4702da system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xea551882 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xea66ced5 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xea695ed2 kvmppc_load_up_altivec +EXPORT_SYMBOL_GPL vmlinux 0xeaa4afdf system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeaeda2ce crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xeb35db60 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xeb4e6fa6 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xeb56360e usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xeb9b777f pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xeb9e8be1 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xebb75faf regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xebd9fe73 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec1cde1c kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec80a4c2 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xec8571a2 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xec8a3e00 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xece2591b rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xecea75d0 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xed00d033 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xed20a1c0 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xed470519 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xed6b7d40 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xed98b3e4 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xeddd32fa ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0xedfdc7d8 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xee1ec5cc crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xee4cd13a blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xee741886 disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0xeeb661e0 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xeeb72cef register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xeed9421b sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xef457fd4 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef9d4d09 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xef9e85dd blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xefafe882 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xefb6dc85 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe1225c platform_device_register_resndata +EXPORT_SYMBOL_GPL vmlinux 0xeff0ee0f rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xeff58a27 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf003c86c ide_cd_expiry +EXPORT_SYMBOL_GPL vmlinux 0xf018a522 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xf0354e49 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xf04a29c6 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xf04d3214 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xf09fac6c ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xf0c838a4 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf0c8b9e2 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xf0d66a17 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xf0e99838 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0xf1376386 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xf1702be5 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1a5f918 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1ab5cb0 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xf2017279 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xf20692f8 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf20be6c6 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xf221db0d fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xf26b1f53 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xf2701016 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xf28a3748 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf29245bb fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xf294b2da swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xf2d9bd0f debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xf2dc09d8 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf3440037 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf36a1195 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xf39791f5 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xf39a0a32 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3ea3298 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xf3f0010a regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xf40f7c3d cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xf46290bf usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xf46c8d5d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4d566b8 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xf52febf0 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xf5340039 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf56a47cd unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xf576b00a ide_dma_test_irq +EXPORT_SYMBOL_GPL vmlinux 0xf58ba4cc usb_string +EXPORT_SYMBOL_GPL vmlinux 0xf59866b5 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c5afc3 ide_issue_pc +EXPORT_SYMBOL_GPL vmlinux 0xf5db4681 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xf5fa3b4e crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xf61138f8 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xf6377639 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xf63af6ba perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xf6984040 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xf6d37306 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7019c01 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf7029b29 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xf706d52e ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xf75e0cde pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xf774a1c5 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf810726b hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf854fd02 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xf857265c tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xf86576ab pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf880c212 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xf8a17800 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf8a29302 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xf8a87e3c raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xf8dc06ff transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9091ce7 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0xf92fdef7 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xf93941a5 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xf94c179d crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xf951eac0 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xf975f196 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xf98bc0c1 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xf9d5e279 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa217cb7 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xfa2e2620 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfa9dd504 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xfad5094f __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xfb10ac1b tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xfb17e275 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0xfb1dd0a4 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xfb1e525a pmac_backlight +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb608369 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb7c822b sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xfbda4497 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xfbf55351 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xfbf9058b inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc0422ad stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xfc137aef da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xfc2a4e80 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xfc3cffae pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0xfca03cd9 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xfd0c2c5f get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xfd12d623 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfd232aac rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xfd414974 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xfd6cb1bc tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xfd8f0c03 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xfdc3cc04 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe20922a sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xfe283fa9 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xfe340ebd spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe9de3db spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xfeabe6f7 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xfeb3056c crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xfeb9d3c0 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xfeb9daeb pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed23cfa anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xfee75cc7 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff4572a2 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffb0870a dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xffba347c blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xffe5eb0e crypto_mod_put --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/powerpc/powerpc-smp.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/powerpc/powerpc-smp.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/powerpc/powerpc64-smp +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/powerpc/powerpc64-smp @@ -0,0 +1,11184 @@ +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 0xe0410756 suni_init +EXPORT_SYMBOL drivers/block/paride/paride 0x001d8268 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x34ec25fb pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x3586c0c4 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x446cf5a0 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x5e611ac4 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x8a38e0d0 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x96934b05 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x96c8cef5 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x9f14e4bc pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xca8d878f pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xcc1128cf pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xfa881e28 paride_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x03d813ae ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x088f28a9 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0904cc1c ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0f473c9b ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x22df3726 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3f02b189 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x48b7f185 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4b8e83b4 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x54a238fb ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x639c9e4b ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x694d76a2 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6a4abec4 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8a4e715d ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa1acd1bf ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2b6d744 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xab9aa183 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb06e0cc2 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb4d59a81 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc021fa6d ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc128f78d ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe8bb7f91 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe986474e ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xee592f5c ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf8f9ec0a ipmi_smi_msg_received +EXPORT_SYMBOL drivers/edac/edac_core 0x1bea9c27 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x1c903c59 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xe3bae35c edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0a3e8910 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x23ee8585 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2e32f81c fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2fe1c476 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x33dfe25a fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x42975186 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49406fda fw_iso_context_queue +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 0x50748d6c fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5761aac3 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5a05a41e fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6afdc715 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x81f145db fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x870b0428 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8948c59c fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa6ecd10d fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xafaf8786 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb0feb126 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb353149d fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb738cd3e fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcfceba72 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd80a4d30 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe2dc6d8e fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfae4aaef fw_iso_buffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01017b16 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05e959a8 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0606665d drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x074c54d0 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08ee135a drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x097893d0 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x117d2475 drm_core_reclaim_buffers +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 0x16245004 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x186a9b5f drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d5766ac drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e305dea drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e684694 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f267e81 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b5c6d1 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x227657e8 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x242136c3 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26232090 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2624fe96 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27496f51 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27bb3e83 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27e2ec3f drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a22031e drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c652ba6 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cfd40c7 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e6ac5eb drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fb665b6 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30433330 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30a73050 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32af5037 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3411e4e5 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x349c992f drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3505c3a8 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x362faa60 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37d21287 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3848455c drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38868e2c drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a6a528 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c474105 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c535e48 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cd5c909 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x401b84b8 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x417c753b drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41a97a29 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42dca163 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x467e3f23 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46e5ca23 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x482fecd4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a9aecb8 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bc09a98 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d565d0f drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e4e7d2 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53064577 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x559cdc57 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55bffa5a drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57234404 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5db5191f drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x625341df drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63ce7f0c drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67b6d261 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a8aaed7 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ab52155 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e189ead drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f4aa7dd drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74076130 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74a5f720 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76b2ce5a drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77d84030 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79378896 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x799868e6 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d971822 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7dbc38c8 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x819a2a46 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x842e5092 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x854ec48c drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8662b19f drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88b8ecc4 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c7dee67 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d5d50c0 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92b5d2ea drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x982bb810 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99aaa62a drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99ff59f1 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b413ebd drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce3c7e9 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d01e814 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ffb2460 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa64cc794 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac2017b9 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaee90ddb drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb50dbb05 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8186c24 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8eb48a0 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbe5f7e8 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf2f8241 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf9f628b drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc148ad95 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1e70bb7 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc367ce34 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3afef25 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6f41d07 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6fea414 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca0ba4f2 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcac99c05 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd205a1c drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce7742e1 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcea24172 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1dd76ca drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd20662c6 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2b821dc drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2f03291 drm_framebuffer_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 0xd4f10666 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd55cf29c drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5ccd131 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd4aeadb drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde649921 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe083e7c5 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1ff3f5f drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3a5a6a6 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4d106c0 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe56a1ca1 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6e05ed1 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7b4179a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7e4de50 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9a4c670 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea3efef9 drm_mode_create_tv_properties +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 0xf1714180 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4901c97 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4c797b3 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf74489b6 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf88e5a08 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf97d8f0f drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb5a4af8 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcb6141e drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd22f58b drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe7b21a4 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe8e5fe4 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x056422a4 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a3bd1e6 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1b90db24 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c00b277 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e3701ab drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2185dd74 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2aa9bcd1 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x35135a68 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x439342b7 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5927187a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a9cdc4d drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6bea4dd1 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f4c6ec3 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x818c68d1 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x865be9df drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e942eee drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x92f29424 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b0252d9 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 0xa47da1f9 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb1e71b2b drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb3ad0fe1 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc19fbf5e drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc3fcabcc drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc602eec8 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdcdc97f9 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdeb537fd drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe100eb37 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4dcf23b drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeee91055 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf8c16473 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x028de3c5 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0c821f03 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1010aa43 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12b6eba5 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x15a1aa5a ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1820b4ff ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c108de1 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d89df73 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2220907d ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a57c4a4 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2e19d351 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fd155ed ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x41532597 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4285d83f ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46627f79 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x497649ab ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4f00188c ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4ffd2f7e ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x517c2f2a ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53d96ae4 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5d792def ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x65620e33 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6c3e2b6e ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6d160e03 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7160495a ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x760b5b32 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x79423f98 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x798d9fdd ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7dcb1e64 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x809e52d6 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x832855ab ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85869250 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8700aa8e ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d90b4ae ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e29981f ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x91852f40 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x92154d06 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x940438e7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x989a7454 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9ae1c6c2 ttm_tt_populate +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 0xaa6b892b ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaad3dbdb ttm_agp_backend_init +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 0xb1a0def1 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a78d92 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb70484eb ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb98d3011 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbb3d876d ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd0eef761 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3c92f5d ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda417a63 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe27c60af ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf11ec3db ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfaf7774b ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfed27aa4 ttm_bo_mem_space +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 0x37f57581 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xdea7df75 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x47cddff6 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa09fad33 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa2e35797 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3a92f4b3 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4d165ce1 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x559b82fa ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5ca0c410 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69ddab30 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x70091a3d ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7491524a ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7b326ca9 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x85728c08 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa8285d08 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbd2f38c5 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc1f3754e cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd0afa921 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdd0d47bf ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe79c7384 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf270e48c ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfb149903 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x049410ef ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08a6ba45 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a43829c ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0dfd3e1f ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x148c79c6 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16b3d8fa ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18b9bae7 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20639c4c ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x277a9463 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ab30b3a ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2aced0c1 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b580a59 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3398bf05 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3480ac22 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3534e7db ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ad9cdde ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bfc92e6 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e69c8b8 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x436a76e6 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a9dd1fb ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ce23fb6 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55e36b49 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a9dc46f ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x63fe2590 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6594b4b1 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b9be4ed ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d75bbec ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7127d57e ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x793b1269 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x799e6ebc ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7afef075 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b09ddf6 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x80c4ab2c ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8716f2a1 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87578b1d ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87ae30b7 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d4aa2e8 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ecca491 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fc0ef6f ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92bd5d04 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9701b5ed ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x979d587a ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b4d642c ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c5cdc6f ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9eaad963 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa19672c6 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa4745771 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaec43ae4 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf2e82a3 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf3afc22 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xafe086bd ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3fe0458 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5667427 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0639e35 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca7dcca8 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb1865b6 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd4d1445 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1124eb1 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd35db819 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9c1023f ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb58ef2c ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe12dc1f4 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7296988 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7f10510 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1301fb8 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8c44428 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfd831be9 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x194a2b42 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2e9bfdc6 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3f079155 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 0x8b731faa ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb3791d2e ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xccabf78b ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe361254a ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe93ab1b2 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf01397aa ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf04f56d2 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf8f36072 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf9d84d8a ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x004fa9dc ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x50673ee9 ib_init_ah_from_path +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 0x58beb6f0 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x820155d7 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9fd1b4a9 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc7ef6cf2 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xca23719d ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x176f6bc1 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1f73e83c iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3ab9a5f3 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4c7976ec iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5e6e7157 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x62bf50f3 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x72490a46 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x79e2784f iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x01bb127c rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1d4cce42 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2575cefc rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2ec575ac rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3fde25c8 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x401512f3 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4cf8a2af rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x56736300 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5bed4dd5 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6219be09 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x66fae684 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7c4e752f rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8d7ba98a rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc15de639 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xde88e453 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe4968892 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe82496ce rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf65e25a9 rdma_set_ib_paths +EXPORT_SYMBOL drivers/input/gameport/gameport 0x145aeb82 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x24f9fb4f gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4cad9144 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4eee3621 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5005077d gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x91134da1 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9c5a4c3a __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xafed2964 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb3d37fa8 gameport_start_polling +EXPORT_SYMBOL drivers/input/input-polldev 0x5f9e1fac input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x980cea8e input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xe2e4ab18 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xee438cea input_allocate_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x0fa06480 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb6c574e3 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xe29f7f62 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xed636568 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x547eb091 cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x79908f0d cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x80cd9179 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xf0621bb3 cma3000_resume +EXPORT_SYMBOL drivers/input/sparse-keymap 0x24bb9990 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x6525b120 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x69c74d3a sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7ed58a44 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xabb6bfe4 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf25226ed sparse_keymap_free +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x61f9e864 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x7cc73ffb ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x8115d348 ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x981b7408 ad7879_probe +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x0eeea451 capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x63e07e6e capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0a865cb6 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 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 0x534ce417 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x56a06254 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5a443f98 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6810f1c8 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x69cb2807 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8d5a86a3 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x96363aa3 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc42f26c4 capi_ctr_down +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 0xfd34017b capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0002abc1 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x12b2b41d b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x14056e36 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x227bce10 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x28b21d3b b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x51f55cb5 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7c08b1be avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8227602b b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x872c4c73 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x876a1822 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8b4eb864 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x99e8e0be avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb3316366 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcf09298a b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe888cd9b b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x06be14d8 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0efb39c8 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x130e6a36 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5a3952c0 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x71764276 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x74dd50ff b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x88371b8f b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8b187755 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbf150ebf b1dma_release_appl +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 0xa2aefb2d proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb6f79b37 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc74b6edd mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc7f3b3c0 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcd3b1f38 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xae126cbe mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xd3f3e626 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 0x40f838cb hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x01bf9625 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x989c35c0 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xe21bebfc isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xe8cff484 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xfa57082f isacsx_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7af25cf8 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x8390fb4a isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfda96f8a register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0699e071 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0f5cf2cb confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1035ea68 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x10419b22 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x45d77dd0 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4f3b04cb l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x55efe6be create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x568acbff get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5798eb77 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5e2e6015 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6546897a queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x664089aa mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x66713f69 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7b00b597 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x87807fc0 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x92fecf27 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa43834c7 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa65da928 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb34c9ca5 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xce67d2e1 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd2907919 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe2efdc1c mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +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_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/dm-log 0x04d5a8c9 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x0e0f85c5 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xccc7893f dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xcd6910d2 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x44ed28e4 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x4928cb61 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x4d076077 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x90e18569 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb17a1cff dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb732fb8a dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/md-mod 0x08778753 md_integrity_register +EXPORT_SYMBOL drivers/md/md-mod 0x1db24c96 md_set_array_sectors +EXPORT_SYMBOL drivers/md/md-mod 0x28775f9d md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x2d66dde4 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x4574879f md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x481fa347 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x492b7cb7 md_integrity_add_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x4cc5603e bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x510e663c md_flush_request +EXPORT_SYMBOL drivers/md/md-mod 0x77fa80be md_error +EXPORT_SYMBOL drivers/md/md-mod 0x86fad969 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x896d712c bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xa2fa7751 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0xa4c5a97b bitmap_cond_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xa774267b bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xab78f8c1 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xbc361565 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xc30103b8 md_check_no_bitmap +EXPORT_SYMBOL drivers/md/md-mod 0xcf859872 mddev_congested +EXPORT_SYMBOL drivers/md/md-mod 0xd002ab23 md_wait_for_blocked_rdev +EXPORT_SYMBOL drivers/md/md-mod 0xe878c330 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xede944b6 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xf00d9e79 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0xf2e5a0e8 unregister_md_personality +EXPORT_SYMBOL drivers/md/raid456 0xe894feff raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xfdfad05e max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xb7f97336 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xb621490b mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x02f90ef3 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xa35c342e mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x9da72bad mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xcccd6acd qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xf523a4e6 tda18218_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 0x77678730 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xc6f60f83 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x02106e90 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x06882566 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x24e4cc37 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x25e32fb3 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x27e416b0 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2983fb08 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x51071a83 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7ce792a4 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x86d09b87 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8e3f2dd5 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9d02ef9e flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa86d6a5c flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb5714d33 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbe5f7865 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcb709579 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xce65442f flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe317a220 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeed2eddc flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf8f45e7a flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf91e7dc3 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x07ee919e bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x34f94300 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x9c1ae965 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xe8338c30 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x06f0620c write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x3914e083 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4c0303a2 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x91c04119 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x99e5f59c rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xabc3e9e2 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xae9ca6a3 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xcdec63e7 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd6c503d3 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x439e9e91 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x04d34020 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x095c4c37 dvb_generic_ioctl +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 0x0c4eb94d dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0cfb2ff4 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1001f390 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x101c0ec7 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x144bf24e dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1748dd57 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x192c9982 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1c4001c9 dvb_ca_en50221_frda_irq +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 0x34e8d147 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40662fc9 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4687c5da dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x46908717 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4e8a327d dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5a986dd0 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x60d25254 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x61033737 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x678382f6 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6e1626db dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7b2098c3 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9a14a310 dvb_generic_release +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 0xb097eba5 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb59547b5 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb5a98e0e dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb793caec dvb_ca_en50221_camchange_irq +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 0xd9dd0d37 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe59ea3b7 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfeb0ae2b dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2a74ea91 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6e107e3f dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x755001f8 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8688a465 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb5be16ec usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xed051075 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xedaa807f dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x05ff3a95 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x113cad6a dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x26bf017a dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x26ddcda3 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x57b5b393 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5fe03a09 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc4a0b225 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd33e142e dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd8923ad9 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xde648ca1 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe564df34 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf361fb27 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xb972d15b af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x07534212 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x582a1c6f au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x34a9bbee bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x6c195566 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x4ac438e2 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xcffc4039 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x361718fe cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x98820d1f cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xd56008ec cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x1f590aa6 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x636d1c42 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x6d35864b dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xa7ff907b dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xb834135f dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf0f2fbbd dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xff1c1e32 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1d415a07 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x321a3759 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4f905466 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8262f780 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb9385851 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc86ede04 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xd2b932a3 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfacdf116 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xfc6a6535 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x1d0ec122 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x529fa3b2 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcc501a44 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcd3ccdb7 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd29ef780 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xda171d6a dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x3c9d467a dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x67c1fa65 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xb2b70f62 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xed875ea8 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1e3b77ef dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x41e1709c dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x45a8e478 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa6f122ed dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xacc3563d dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc3bd9752 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc99d50e9 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf9d5c3a4 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x15e83bf5 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1ef5ee1e dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1f7561ed dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2e513822 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x55742774 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5ac5678d dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5d8ba8b2 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x62fcb62f dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc3f2f985 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc54bc162 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe72e8bd8 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x773aa4b9 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x9204f2cb dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xaa1be2ca dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xdbd00ce1 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x13429935 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x8b5da00b dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xb7473325 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x7f473350 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x775e4387 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x2cfd0adf itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x9f2b91ff ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x2a6822f9 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xab23430d lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x826e65f7 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x959d08b4 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xcbb5125d lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xdaaee32c lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xb9920f3c mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x79e3e587 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xecaab9c8 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xb91d515f mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x8333b270 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x07e79b97 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x35b486f5 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xd39066b4 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x85f21615 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x66df06d2 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x70295370 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x978e687f s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0xeb6a23e4 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xde3c53f0 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x131ec8d4 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xc97281e3 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x03550653 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x0ace810c stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xb5a3352b stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x98d49114 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xbd0bb0dd stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x2af143c4 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x9b561763 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xa93c8ed3 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xb58ef61c stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xfa8d04a1 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xe7784b27 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x9672902f tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x9492547c tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x71ba8d4f tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x7b032051 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x6f826ddd tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x503c4fef tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xa67bc3f9 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xa8c209d8 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x8679d889 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xbaf65b08 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x8277d6b6 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xb5e0b6db ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0xacbbd8bb zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x6d43b0f7 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x2f8cdef1 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc96c6953 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xc83a1ce4 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xe3fd1d2e ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x0cbc22d6 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x417d5181 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x69c89ec2 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x6a38ba10 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8e48f9a4 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc0b15967 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc7e3d49a lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xfd1ee32a lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/rc-core 0xbb21886d ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xef131026 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0eb55953 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x6fd0c3f4 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 0xe296fb78 bttv_get_pcidev +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 0xbb506229 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xf5f0f083 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x1e6d2d4d cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x213f29d0 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x281b59c9 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4ba9b99f cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xa165f745 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x389ecc12 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xf22debe5 cx231xx_register_extension +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 0x53895e6c cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xa2b01266 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0xb3b2159d cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc0e38bf8 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +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 0x5aa017c0 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xe8a505ae vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0ad661f2 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x52179dff cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5d5a69cd cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x6406ab49 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8be8afab cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x9825c3df cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x0bee0fc3 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x11bb815c cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x38301b31 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5636d316 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xbaf2d6a3 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd82a72c3 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x108ae6aa cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1542e642 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x15c6c072 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x18c90783 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x32282abb cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x414e0171 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4b17de4f cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5687f6c3 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5a40fe02 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5e47e6ce cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x70ae6927 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7a7d4146 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x89ec7aa3 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa8c37a0e cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xad843fc1 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xafec1170 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb02db18b cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbb557629 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe44cb15b cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf0d880bb cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf20e63d0 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfcd159ac cx88_shutdown +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xe15e9f85 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xfc6fd3e4 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x098fe50b gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x09a9accf gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x16bfdd64 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x210a796e gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x88e0ede0 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x99752e44 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xb13bdcd0 gspca_suspend +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x084707c4 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x09f2181b ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x1f2c43a6 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3f192bac ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x68e2111f ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x907e59dc ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x991cd854 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb2b97477 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc0190f68 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd7580f37 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xdd48cb4b ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe6c86424 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x075744ee 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 0x29e140fd saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3cf5b074 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x43246f83 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5c10fc30 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5f1dc8fd saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x90530dd8 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x91294e7a saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x97c02994 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xaad89c0f saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd3727d15 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe3ef4492 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/soc_camera 0x0491b31b soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x1821811b soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x1d27b523 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x38235681 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 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x66065160 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf85c661f tveeprom_hauppauge_analog +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 0x1abb5fd2 v4l2_ctrl_check +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 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 0x6477ad64 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x7a396d8b v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa4bf0ba4 v4l2_ctrl_query_menu +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-mem2mem 0x557a7e97 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x6a7d875f v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xa0f59c7e v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xde2beaf8 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x2d1bbf6c videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3dacb07e videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x51da1b97 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x83469c0b videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x93830401 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xfb7dfaee videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x096b8b94 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x118b6fc3 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x1b4dbd21 v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x20497a8d v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x2321d4f4 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x30438776 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x3767136a v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3d2109c5 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x482d24d4 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x499abf38 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x4b15c1cd v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x4b4dd696 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x4d67e36b v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x53ad1143 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x57b7430c v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0x5dced93f video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x5dcf521c v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x61043ab7 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x65ee82fc v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x67bae233 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x6ac0dfbe v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x7939729a video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7c0d5b2b v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x7fa95078 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0x819b79b4 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x85c1b447 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x916c0f7b video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x9ab6f336 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0x9be37e3d video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xb5a1435b video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xb8fef37b v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xbb246613 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0xcde4bd0c video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xcf8d91b0 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0xd25490d6 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xd7c06f58 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xeb2ecb8a v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf457ee1d v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/memstick/core/memstick 0x153effbd memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3d55d1db memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3ea86f18 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x49e6827c memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4eb5cae4 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x805d2b72 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa0878bba memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb4045b1e memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc74d70f1 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd36afc82 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd3817128 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdbbc640f memstick_alloc_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x12841202 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x16393dab mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c983da3 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1fa055b2 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x21412b9d mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2d48a716 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x34704f6d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x37737191 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x38976e24 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3f5110b8 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6e45711a mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x73b7ef8b mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x793da9e2 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7963f5cf mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x882c93f4 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8f8aed80 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x929a631c mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9e02f1ef mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa740560d mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xab693e2d mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb100f697 mpt_clear_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 0xd6b2de93 mpt_verify_adapter +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 0xe3c21f30 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe56059e2 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xec36345a mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf349a0a6 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf8ab4803 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfa1fdd6f mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfc0a5440 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x04b05145 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x089a9f76 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0c76c707 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x11a8c2e0 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x13226b2f mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x25135d0a mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x262b1d37 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30116a02 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x471dd01d mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4cbac979 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4d19c539 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4f73ba28 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x55e67dd6 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5ad1ce18 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x615f9506 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x63a691f2 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f1cddb4 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x723db28e mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x759cef7a mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9291b7a4 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x989610a6 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa0d6fe51 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb393f290 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd121854b mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd1dd7d5f mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfd4319ff mptscsih_info +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x02a4c210 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x061ff423 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x11cab7a1 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x15354135 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x25500876 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x27ff73f1 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x335f8c0f i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3d15f3a8 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x48f52de8 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4fed0139 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x66acc7b3 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6ef46c36 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7b0f3d44 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8d9556bf i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x966c440b i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9afbd993 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa73276af i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xadcc414e i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdb48c2cd i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe051dc50 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe554b066 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf93bfec2 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x58531da0 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x938ae631 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x101d9b8c mc13783_to_mc13xxx +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x21a8a619 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x37af7260 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3d826428 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5a4f892f mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x88273d00 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8b8e15e2 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8e4acc48 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb14de765 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd391a6f3 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdcf84442 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe25bffde mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe2dca9d7 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf88d332d mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x0c23f5b9 pwm_config +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x24ba6d1e pwm_free +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x9d09808d pwm_enable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xb0493b18 pwm_disable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xc1f4ec93 pwm_request +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x492a46e7 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xa1024a04 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x016f8e13 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x282b29d1 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0xd580e807 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xdc1f59b5 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x5b140cd1 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x811a1e7e tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x8244b2d4 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x82d02d43 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x84118115 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa3ac0357 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xc4a1814a tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xe598fc75 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe8987f04 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xf4c43f7a tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xf7270cc0 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xf84970d7 tifm_alloc_device +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xc360b7c8 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x093855f7 mmc_can_secure_erase_trim +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0c6451ec mmc_power_save_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x123aa312 mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1606c517 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1b498303 mmc_card_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x22104a76 mmc_power_restore_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x27f10ab6 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x314bb277 mmc_host_enable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x395aa1b4 mmc_set_blocklen +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4ce3c42b mmc_can_erase +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x545403e9 mmc_host_lazy_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x58d3ce81 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x60481512 mmc_erase_group_aligned +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x636b8178 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6f4f814b mmc_card_can_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7c7e6077 __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x831f48ff mmc_can_trim +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x86f97412 mmc_card_awake +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9c3013ba mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9cd666ae mmc_regulator_set_ocr +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xab7f2ac7 mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xac78ffec mmc_align_data_size +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbad9faca mmc_host_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbba3ac69 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbc0a8568 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc1019ed3 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc52d24fc mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xcad79206 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe6a0c42d mmc_erase +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xed7291c8 mmc_try_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf06ddf9d mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf30778bd mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf360b5f6 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x181dc0d0 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xefff8e08 mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x64b45a34 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xcf6b8389 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xcfd62076 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x12a64593 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x1471a562 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x90b43004 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x99d0d669 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xa4d924de mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x16bc0586 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xf9531538 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x359cb105 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xe4f764ce of_mtd_parse_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xf495c2ab del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x63b67968 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x9d41b046 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x4ee3d91b nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x5d93a5d1 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x7306865a nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x7309613a nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb49c16ff nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe1deb04b nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xee5c3fd6 nand_scan_tail +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 0xcd169973 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xecacda0c 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 0x0a1b526c onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x27116fc4 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5352593e flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xabe9205f onenand_addr +EXPORT_SYMBOL drivers/net/8390 0x01666174 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x13bf3275 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x1890982b ei_poll +EXPORT_SYMBOL drivers/net/8390 0x31a3a886 ei_open +EXPORT_SYMBOL drivers/net/8390 0x33e41e74 ei_close +EXPORT_SYMBOL drivers/net/8390 0x45140a5b ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0x45b7bf12 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0x60dca010 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x7d062fae ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xb5252a18 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 0x3b215359 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x58f3be64 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6053e8de arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8885e2ff arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa373e19f arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xab6076a1 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb020f5bc arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb43143c2 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xca557f5f arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf861a8e1 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x001f67ab com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1844a83c com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x9434a9e7 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/bnx2 0x2990d3e2 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0x78bab92f bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x3e35ee18 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0c86aab6 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x219a8207 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x24066370 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x34ea9690 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x36ecfc74 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4591617a cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x48dca2c1 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4acde2c8 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x768ff971 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7770ef74 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x89f24628 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x908154fd dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc57e7bba cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xcaba11c2 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xcb973f32 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfc07e826 cxgb3_alloc_atid +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 0x139f5ccc cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x14d2ccc2 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x196f2f78 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x22f52a66 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5f547cbc cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x72ecdd42 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7794b818 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x81a33184 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8283fd45 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x866618f1 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x86956310 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa6979383 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa6bc6712 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb1c35694 cxgb4_l2t_release +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 0xd821d8e2 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0120532e hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0b00b535 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6231e0d9 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb2e28024 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb36fd7e3 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x091d31b4 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x257c678b sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3755f52b sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x79063609 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x866c967a sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x93be1e0b irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9eb99670 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xba41f822 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdef098be sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfffd0a3e sirdev_raw_read +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mlx4/mlx4_core 0x3fedf615 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x1b221f2f alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xaf415451 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp_generic 0x0789f6ed ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x1ba69ccc ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x33c16730 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x4627b896 ppp_register_net_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x831c19b0 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x84f70be1 ppp_dev_name +EXPORT_SYMBOL drivers/net/ppp_generic 0x89f6377d ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x8b99f8f7 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x8d9c5eeb ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xdf5cbf62 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xfd3a90aa ppp_input +EXPORT_SYMBOL drivers/net/pppox 0x1d2ec4a1 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x7fbd4e9e register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xf4b4b68f pppox_ioctl +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 0x7c028691 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x16bcccfc tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4693209a tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x728df58a tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x83139932 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc01a9525 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 0x4a0d7322 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x56d14d24 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5b50b8ba hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x62b696f8 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x67c8df7e attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9f9d3181 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa8c2d0a6 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc1bc221b alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcdd373f9 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf8eb9bb2 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf976b256 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xcab29052 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x1ffedeb2 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xad59b20b init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xfc2aa0e8 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x21c9c57e ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3730f295 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x37a485e5 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e5160f1 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8cf36609 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb81c1e99 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc5c483c6 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd0be45f1 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe10dcb96 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf8295b8e ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x08efeddd ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2a88314 ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf05646ff 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 0x001ef1b0 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x048d75c7 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06f00f07 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09d36e60 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1040fde4 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10edf532 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16e0a46d ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1abc18c3 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b530179 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1dec4140 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x253d0bc4 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26b334e8 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a3510b9 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2baafe8f ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cf41ddf ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d27824f ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32cfbf20 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x376ce681 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a0343c5 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f739511 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fc343ab ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42c37b0b ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43ce0e5f ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4480081a ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47a4d3cd ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48dc312b ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49f5a780 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a7d8391 ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fed6329 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6705bd58 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b4f9ccf ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6bf97e4b ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x706bf791 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70fef464 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71d33ef4 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a8bf56f ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d4e948f ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f11f2da ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8268bf54 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x842da852 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8713c9b7 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x873ede39 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c4eee7d ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91d8e136 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9249808d ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9346778f ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9770c2e0 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x990d1958 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa056b34e ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0d4c37e ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2a6c7f5 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3e389a4 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa448ddb7 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5234c1c ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa73f67a2 ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8986cb1 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad162b91 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf7adf91 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0f5160a ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb27c0192 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb60d0e5e ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb89b5b12 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8c63cc4 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9856535 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9e0b691 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc556b9c4 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfbafe0f ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfe7d66a ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd168bb6b ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1df84fd ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd23c8f68 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2c2d51e ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3e4779b ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd74ebc01 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1ac3864 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe255d41e ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe652d229 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7a0a9d7 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8b9c839 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe92df7a0 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed6b4212 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee6b0e53 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4154bda ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7434686 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbf17aa6 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd2efafd ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/atmel 0x3f0749fa atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x5c441d97 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xaa59bb0e init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x04482c85 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x085b84d7 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ec85212 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x163b56d9 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x17a706b4 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1a0f3562 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2bdd547f hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x49733aaf hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4b9032d7 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x53f2e85c hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x541dd1cd hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x59013e1a hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6caf3942 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6d369805 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x78e5675d hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7a619387 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x83040ba8 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x84212487 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ac08730 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9a4f4994 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2b380c3 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb3b156c4 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd375dcbe hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdaed302d hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe33ade8a hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x034a3b72 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x121e9471 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x150b79d5 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x15a57047 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x286741c1 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2a09c2a2 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2a2b7ce7 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2e6a6cfd libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3a8a061f libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4be4a51c free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x81d134a9 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x83e8fb38 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8948133a libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb12a733c libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xce2d1ed4 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd5663887 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe109d93d libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe36240b7 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeed54e6f libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf2bb831c libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf3349ec9 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01c17f15 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c1081fa iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0d39c8d2 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1335a474 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x190307ad iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19b0f009 iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19b0f02a iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1b132638 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1e4fbd47 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1f973585 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20e0b2a9 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21a6c686 iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21dc4d6b iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x238a2db8 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23e07d80 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24fc6c40 iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x25a3e784 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x297ce6c8 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2a5060bc iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2c8fe62c iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31857a91 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32a6504b iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33e814ea iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3496bdc5 iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3597318b iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x381ac928 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x388d10f0 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x399b1c43 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x425b4951 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42ab364f iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45639303 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4623de9c iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x467d0fa8 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b1be6b3 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50b9b9d3 iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50d776cc iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x521a8cf5 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x54a4bfd6 iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5bf56415 iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d0df3a5 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x60774702 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x61a114a0 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x655db32b iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x656f98ed iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6627fce5 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x66b1617e iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x69637bff iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6bb642c2 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6dbef8ac iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6df7f324 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71cc8128 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7851e91a iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7af456e6 iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8507d057 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89e2dbe0 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8c7c20b7 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8d0e4add iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8d81f590 iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8e029fca iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x971752cd iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x993fd47a iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9b09da63 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9c1927ab iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9df3baaf iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9ff77950 iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5fb4902 iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xabe7ba98 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad877a22 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb00ace45 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb4245403 iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbb050672 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbe2110b1 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbe77133a iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf2844d9 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc0f0e9d8 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc5c0e692 iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc7a0dd13 iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc95a2210 iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca9d8df5 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcc4113a5 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd255a9e iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd09597bb iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd21b5388 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2eb45c0 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd59d6f6c iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdac7c441 iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd7de963 iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde9ce3c0 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdec183c2 iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdf8b1726 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe29df49b iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe2e77f72 iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7130642 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7132448 iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe71ea99e iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf1998c6e iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf768f932 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf829249a iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc4339e2 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff42e34b iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x01e3c710 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x08a70c11 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2eeb8f82 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2fdfea2d __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x54cddc5b orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x616c593f free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x738e9c3a orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x870d76fe orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8b11110e orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8dfee77a orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9b420a65 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa2fad039 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb06cf017 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc4f9a44c __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd2d8964c alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdefc2ea8 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xee0eeeb9 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x27d08ab0 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x36606f0e rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4890239c rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4df09c5a rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5b14d2d1 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5c9e6be6 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x639de588 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6af7db88 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x829c73b4 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9ed51ec6 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb1109a20 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe1570583 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe56bcf35 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe69a56a4 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xea27ddc4 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/parport/parport 0x01739b28 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x03afc1e3 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x1291903f parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x19e115cb parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x19e5340a parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x1de4c3df parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x23674d2b parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x391ab714 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x39620d8f parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x3bc70dee parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x3e819d92 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5dd7e6f9 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x76ff091e parport_write +EXPORT_SYMBOL drivers/parport/parport 0x8b65e9eb parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x8d2eb8e9 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x8fe1dec8 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x991b28a2 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x9f53e965 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xa1afa6f1 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xb10d4c25 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xb6634a07 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xd886f8e7 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xed284a2a parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xed3bb4ef parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xee427d26 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xee89bd72 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xefc3b83c parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xf2405ff0 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xf3d8b3ec parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xf9455184 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport_pc 0x36af5469 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xd725aefb parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x02e4cad2 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0f429f67 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x23e812a4 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x39a86c0a pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x47876504 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4ba4b75f pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4e4a1f87 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4ed7bdcf pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x68afc6d7 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x71807752 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x82fe67c2 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x836feb26 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa2990dcf pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa369f6bd pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa680992e pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc4e87d7a pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd96e190e __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xee0c4e3d pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf2268108 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0612ce0d pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x10158011 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3631bf65 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3dd2c36c pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x426e2890 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4410158d pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x63179e95 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fe974a1 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8761a924 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb654b76f pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbed43b89 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x13c05f42 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x2428f56e pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x9bc8ae5e pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xdfad4933 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xf025bca4 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2c5645a6 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x59fe8265 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6b507da6 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x758cc965 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa7866a70 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbc19659c fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfb4ebedb fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x019704c4 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x01de2a46 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x031828eb fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07e6fb93 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ef0e7b6 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0f84dfce fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1047033f fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1254d5bd fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1304dca8 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2246c9ed fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x27bf85fa fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2ad78cd6 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3aa45513 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ecf7a99 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f2c974c fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fe23caa fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e5b8d1e fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x657abb81 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x679b61a2 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67d291e5 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c348610 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6df532d8 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a811b77 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x80a2d2d0 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85f2c42c fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8814700a fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8b1f2c38 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8f31d90b fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x900e35d3 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98822b34 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a663127 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac5ee705 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb5854a7d fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3b56bfd fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcf3a1899 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5acc5bc fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde0a244e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdefd6dbe fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0b5911e fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0c00174 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe1f6deee fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2724806 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe307857b fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe3a0f57b fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef7f3cf3 fc_eh_device_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 0xb5a315bc mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0416536a osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0bdb0a40 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10f0dbec osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1c0da0df osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x22a2a727 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x28a3600b osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2d552aee osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ea94d71 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x32cbddab osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3416b1f9 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4a6e6135 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4fb1b25c osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x51b1348a osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x577e82ba osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x62514b17 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x63ea6b84 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x827b9a38 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x888853e6 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8ad6afcb osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x95f7bc62 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa6bba27e osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xacd63d18 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaf6b7608 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb0326b9b osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb22855e5 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbb352493 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc1f3f943 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc557d407 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc593da8d osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc628204b osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcfdf0ee9 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd07f6a91 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd1d9307e osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda13474e osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe58154fb osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfc7b379c osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/osd 0x28f9485c osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x31cc1fd8 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x99b566a2 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb9658fb6 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xd1621d09 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe4596d60 osduld_device_same +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x17147d14 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xabdfc83a qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd44de27a qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf1f20343 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf6352518 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf946c4a9 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/raid_class 0x0a017d8b raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x193e4ca1 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xac0db91d raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x162b53b4 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2b55e4a3 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2e9eed58 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3922924c fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6e182712 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x86f04b71 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x956560fe fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa72130a0 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb42035b9 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc5c10a01 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdb73c3d7 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf1ebb3a3 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf889160f fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x11268ff1 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1600c87e sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1772f075 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x19e705e9 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x264afa65 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38443ee7 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38fd653a sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x433638d5 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5cf0da1e sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7013ae3b sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x707f196c sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7ad2ee9e sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83773193 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x888c371b sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x91665986 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x93180fc0 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9444b6c7 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9828f063 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ceed04e sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0c9e7ad sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc955f3e7 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd45346c7 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd87d37f6 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe2afc24e sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe9a26ffb sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xee796ca4 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x128e2c62 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7edf180e spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8102f021 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x841c4f4f spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe3c02b57 spi_schedule_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x11a3e29e ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x307d3b4b ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x321f7d31 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x48b26732 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4ca4ed86 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x5107e0b2 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x58e3a585 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x5bb781a1 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x6ae426c4 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x6afcfee8 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x6b2dca3b ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x6ec4f2d4 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x8f8f4646 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xa04941bb ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xccb25699 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xced0f8b1 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd68c1c49 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xd817fb69 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xe3b56ba6 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xf1e38fcc ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0029f2ef ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08ef5cf3 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1390b4b8 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x258c69a4 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a074305 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x302446f7 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x318c225c IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x33ccfb72 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3521e884 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x37dba3ac notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3905b4bb ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3db482fd ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x48c69717 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4d931523 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x511b2050 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5269ec45 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x53544ca4 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x545ea380 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b30d62e ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5d3aa658 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6428748f HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c7c3cae ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ce6c910 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ddceb31 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7112f154 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7465341b ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x79e14754 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x88a200ce ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89be07c9 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x94f3e05c ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x95a2e2c9 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9602d581 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a03c6fb ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c2923ff ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9e780014 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb423e4b9 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7bc222f ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7ed00ae ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbd594f02 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc033b0ff ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc650b9dc Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc7568d8b ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfb59dc2 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd00ba142 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd7795f0a ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb761a5b Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd7ce9ad ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xddcdd1c3 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe95b6bf5 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xee00e98d ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf13a0958 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf14984d0 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf2ae074c ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf758d1c0 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x2d023315 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x9ce96b9b tm6000_register_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xc3684728 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x04401a3a RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x1a26ad15 RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x2bed417a usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x6d61f341 usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x727ec68e usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x78e2a0e1 usbvideo_register +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xc17a6108 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xdd1e517e usbvideo_TestPattern +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xe63fb6e9 RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xfb3c39e0 RingQueue_Flush +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x00f429ff transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x025743aa transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0473d915 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x066c04cc transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x17a367d1 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x18d848e5 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x1bc7c009 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x216f7919 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x2233fb3a transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0x2656f4ff core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2db10a66 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x34d9989c transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/target/target_core_mod 0x36b7c901 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x39cbaf21 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d40de31 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x42b91e70 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x44d35913 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x457b0b18 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x4e36d9c4 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x5112f7d8 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x5393b8eb target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x567826ab sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x58ff73bc transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x5fc29f10 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x648e1687 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x69dfe67e core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x6bb3a0da transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f5bd71d transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x6ff7b50b iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x70360ac3 transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7499f41f transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7ea76e54 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x860356a6 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x86f018c9 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x8d1ad68d transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x92b1c99a fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x9af53f0d transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9c1dc3b4 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9ec151e6 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa46aa0e8 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa3227d0 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xad8cc880 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0xbabf76b9 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xbfc1b8cc core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xd1168881 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xd3a92eee __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xdcd17511 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xddd52da6 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xe1d30bfc core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xe9ad072b transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xec1db090 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf52b9a86 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0xf6a9d4af target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xf824ea59 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xfc675eb4 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/telephony/ixj 0xbd7155e2 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0xa27a3d66 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xcd72d2e1 phone_unregister_device +EXPORT_SYMBOL drivers/tty/serial/8250 0x23c11b61 serial8250_register_port +EXPORT_SYMBOL drivers/tty/serial/8250 0x3bae8c9d serial8250_do_pm +EXPORT_SYMBOL drivers/tty/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xd25f6f2a serial8250_do_set_termios +EXPORT_SYMBOL drivers/tty/serial/8250 0xdd46445e serial8250_set_isa_configurator +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x06b76561 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x8414423a usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xa680f9ee usb_gadget_probe_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xeecc0c9f 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 0x26ef31b5 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3642cbbe usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3d517bd7 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4825273c usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x593879ae usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x59dd1e3f usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5d4a0697 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x734b8d89 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x75a24fd7 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x896d1669 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa4701dbf usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb4b30a1a usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xccaf9f81 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xce01ddcb usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd5b06c5f usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x3855ec6e usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x9343c58b usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x74a614f3 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xa73cb518 lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x2a27279d cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xbfcf384f cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xc3dec834 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xfdca637a cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x6ef070a8 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x9df3f0cc display_device_register +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x35f8f6c8 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x83524b6c matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xb575cffc g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1f2c7601 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x3268ef65 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6b46614d DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x868ed46b matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x546b0c6e matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xa52ff68a matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x9d83a5e7 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd7988c7b matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xda72d822 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe134779c matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x21a1aadc matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xc0d49a59 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x31ae91cc matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x96e9ce36 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb16c6074 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xeb8aaa46 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xfde71902 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xb41e28d3 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x266c628e video_output_register +EXPORT_SYMBOL drivers/video/output 0x6d5e31cb 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 0x1dd73d12 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x1fe8febb svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x5b28bb11 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x5bf38430 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x78e1d15c svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x9b678d11 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xc76ee481 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/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x5eef6313 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xf927b06e w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x0757e4e8 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x5599ebd9 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x816411b1 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x83a6042e w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/wire 0x4553eabf w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xb5624a87 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xbef2d0fb w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xd9e16894 w1_register_family +EXPORT_SYMBOL fs/configfs/configfs 0x7389a648 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x8556aa9f configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x8d5e22c2 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xba371e78 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xbe47ec2a configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xcbd2ac6c config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xd6c08c80 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd7da3b9c config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xde61b051 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xf0d296dd configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xf79ccfb5 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xfc29b03e config_group_init +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0996eacb fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x0aed0c22 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x10995efb __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x169cd7f1 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x2b896420 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x2f05a1b7 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x3a6e0f45 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x3a71dd98 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x3bd354d2 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x6ec58af1 fscache_check_aux +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 0x7a4bd824 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x7a81d8d7 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7d509fa0 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x85b7843d fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8a4494fa fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x9deeee19 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x9ee39d09 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xa0c5aa1c fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa16f681c __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xa820015e __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc57e8c4d __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xcceb3c43 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xeaf8182f fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xee646960 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xf3bcb640 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xf9a0d55b __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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x3c25f23a qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x8d32f3b9 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x96329264 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xc138fa11 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xddeaad59 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/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0x2a1061aa destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xa789dcb0 make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x01016d6f p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x01a026dc p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x09ad9ae2 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0x0d402b80 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1442bb21 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x1efd5a77 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x21c7c00f p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x22e89aaa p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x242e6444 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x2563e590 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x26586f23 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x2d2ead18 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x2f4875bb p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x2fb2eee1 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x384e13b4 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x38811188 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x390f738c p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x40b94c55 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x464d8605 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x469cd3f3 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x4aaf8604 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x5b509883 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x5bc8b06a p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x6099ace3 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x703f1067 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x74d9ec0c p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x886f569f p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x898f3df4 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x96d2694a p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9d1cfe82 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x9dc9b0cf p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xa462b1f0 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xa911d848 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xb39b6aaa p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xb4be7368 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xbd96259e p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xbdb7ed60 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xbfe38ac7 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd7b20167 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xe4a7a626 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf4748bf0 v9fs_get_default_trans +EXPORT_SYMBOL net/appletalk/appletalk 0x5cad4539 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x6134c019 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x74c24fbc atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xc0f8dccc aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x08631d38 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x088fd068 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3576f2e3 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x38aec508 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x7692e3c2 atm_charge +EXPORT_SYMBOL net/atm/atm 0x79b923f2 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa50c6850 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xa88005b0 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xaf4f1438 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xc2baa5c9 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xdc2e69c5 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xdeed262d deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf1ae11a1 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x01186842 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0e55c3e1 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x22d54ab6 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x409c7698 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x7d5e4764 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8cdbb5a6 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc601654e ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xc83f8b2d ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xcf55afa2 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1cf1aff8 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2663548f hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2806e98c bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2dd0e9c0 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3f6c833f bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x40d09ae6 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x429b457b hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x45b3ad92 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b1c2380 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x500b1ca0 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x512413f8 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x543eeccb bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x58305993 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x643deea2 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6e3e39db hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f5ab675 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x71691a5e hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x836d8571 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ee3d9e5 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa467d086 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa7e5877a bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb21a2e7d hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc46ce40f bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc205c36 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcf68128b hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd58875b9 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdb722beb bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xec37dbf6 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xee36b06c hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf0a642a7 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf46329e3 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf519f5c3 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7515ba0 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7748b79 hci_free_dev +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x38085b73 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x790bf93c ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd0695813 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd98a85e7 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x01fed052 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x05118cf5 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x16178a56 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x19722811 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x1b21fcb7 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x2829e735 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x43adacb3 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x47fff630 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x4db9f1d6 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x6217b255 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x68f8bab7 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x7022ecd8 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x7df983b1 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x9426d1cd cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x977bebcd cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x98ccb9a2 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x9cd1190b cfpkt_create +EXPORT_SYMBOL net/caif/caif 0xa418b639 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0xade4b02a cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0xb9af4be4 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xba367be0 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xc309c376 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xc5163214 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xce96b81f cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0xd281c4a2 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xd36a5627 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xdfbe6aca cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xe391e528 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0xeb2b3739 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0xef2f24c5 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0xf3ffd853 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/can/can 0x380d0a37 can_rx_register +EXPORT_SYMBOL net/can/can 0x91ca10f5 can_send +EXPORT_SYMBOL net/can/can 0xb2043481 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xc99dcbe9 can_proto_register +EXPORT_SYMBOL net/can/can 0xf8b8bb28 can_proto_unregister +EXPORT_SYMBOL net/ceph/libceph 0x03878e16 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0bf777fd ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x0d495c3e ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x15b34391 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x181431fe ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1a70095d ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x2151de41 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x26344782 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x26cf4324 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x2b69e5ef ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x2d4e80c1 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x30d1048b ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x3242ed06 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x32a11fe0 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3c884c40 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x3cc6cfc1 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x45d6e8a0 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x484ceb77 ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x5339a6c6 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5cd578cf ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x602663bb ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x6092ab34 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x61f46faf ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6af06f67 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6d9e1077 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7a84810d ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x7fa4d6f7 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x81fffdbe ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x868cc475 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x88507cc0 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x8c52bb72 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x91742005 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x936169ea __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x97a2ef55 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xab227500 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb6913cf0 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xb8093958 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xbe90bbb4 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc90ea382 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xc930981a ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xca750ccf ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xcb41a07a ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xd64bec4b ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0xd8577970 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xe66da465 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xe68e4e64 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0xe891b649 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xf7938b47 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf909cc20 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xfff4a8cb ceph_monc_do_statfs +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0914f29f ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x09bd4460 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0fbe406a wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2aface1a ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x61ab2358 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7db97a5e ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x84b4f838 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x99f9e248 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9aa8d413 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xcab70abb wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd5589a60 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xeeb2d5e3 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xff4569b0 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x85cccda3 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xba95fa79 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc787f644 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x019695e7 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9731cf78 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf802c411 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x412432b8 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x447fe082 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8ad18514 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xaa127c9e nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xadd07a56 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd2076f45 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe7750757 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x7fc5e18c xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xaecf30ce xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x53a6b5ae ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa1850ab8 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa7604732 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd4654a56 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x1c1e27bd xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x98d8f7c4 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x1375a1d9 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xf5b37ac0 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4568606a ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5637c7b6 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x600a4dfa ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6ffe1c77 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9aeb8cca ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xaac3f487 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xdb2e714e ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf2dbea0b ircomm_flow_request +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x0094d792 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x01fdb73a irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x0789a7af alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x07f135bf irlap_close +EXPORT_SYMBOL net/irda/irda 0x0fb87f96 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x13a1f160 irttp_connect_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 0x32d5e344 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x4583b0e7 irlap_open +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x52abfcc8 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x57a410ad proc_irda +EXPORT_SYMBOL net/irda/irda 0x59851409 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x69e85976 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x78819c1d irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x7892c29b irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x8f416de3 iriap_open +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x93192310 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x986fa31f irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa1c9f342 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa28cb67c iriap_close +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xaab30c93 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xb303254e async_unwrap_char +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 0xbfb34a7f irttp_disconnect_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 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd900f16d irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xdb1aceef async_wrap_skb +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 0xe9bdb581 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xea1e3de4 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/l2tp/l2tp_core 0xc4a03700 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0b775d93 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x1f3eb08e lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x67c9f957 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x721f9075 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x7feeb444 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xad652793 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xcaf3510e lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xfda9c63e lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x014d3c43 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x0f608395 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1115215c ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x13d78a10 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x14d36ca4 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x1c0382e7 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x1d0b1ba2 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x244f9ded ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3669341c __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x418187ef ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x492ff7bd __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4e32e1ea __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5281ad84 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x5865eb56 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x58ed8046 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x64048460 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x6541bc31 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x66f9b185 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7ce617ba ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x8aeea77f ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x9c4c5aa9 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa00e6fa2 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xa3484fdb wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xab7d2083 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xb1ceae45 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb5df1bad ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xb805618e ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xba509eaf ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xbfc4de19 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xd4f20f4b ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd573af97 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xdcb9629a ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xdcd3fb42 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xde349088 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xe0c1d542 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xe1f2bd83 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe6e53446 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xe8c6d7a0 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe9b69aff ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xeab2681d __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf5ee543d ieee80211_probereq_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1a3e732b ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x26f6382d ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2dee2f61 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x410a2ada unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x56d85c68 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8b279d1e unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8cd5bb4e register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb771afff register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdeb33335 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe7abc3bb ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xeda63831 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf7fce30c ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x0f545ad1 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x6b2dfcbd __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x9e1d8d79 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x93beebe2 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x12b409a1 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x145b03e2 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x1be7c6e5 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x33d9934d xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x38dacffc xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5362de40 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x8519ec27 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xcb864586 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xf1d86cee xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xff22de6f xt_find_match +EXPORT_SYMBOL net/phonet/phonet 0x06c019ab phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x07f57571 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x0ea2a111 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x141e6820 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x2ee4e37a phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x589b557f pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x802e1374 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x9ada7577 pn_sock_hash +EXPORT_SYMBOL net/rds/rds 0x1c9be661 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0137d882 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x05f1edd3 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09f5fefe rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0bd95665 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0c1ca780 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0ded56b1 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1f55271b rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x52bf27ae rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5c683465 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9fb0d64c rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa0afb2c0 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb97d29a3 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc00dd3b8 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd8ddeb0b rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf19d3862 key_type_rxrpc +EXPORT_SYMBOL net/sunrpc/sunrpc 0x97b21acc xdr_terminate_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbe93e29b svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x5a717199 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x293ca55d wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xbad388ca wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0ddfcd67 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x0ff96efe cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x1c70476d cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x1e2da15c cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x1f4e5bea cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x1fe25831 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x2433b00a wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x39a34e0f cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x46b9731f cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x533e1b72 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x5a23f069 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x5a2fc20e cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6a2c2015 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x6c1a119d cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x6dc53003 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fa6f147 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x84b99221 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x87c5664e freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x8b0e934a ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x8e14c4fe wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x94af9448 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x951d1c6c __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x959bf9e9 cfg80211_ibss_joined +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 0x9ce5f3f1 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x9f7430c9 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xa1937f3b cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xa21ce979 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xa4e6f38d cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xa8434e28 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xabad3b92 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xb0685d72 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xbe012d8e cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xc277ca83 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0xc3edff88 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xc533be04 cfg80211_remain_on_channel_expired +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 0xd0302de0 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xd6d93252 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xdc29a3e9 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xde14ac7f wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xe98cde47 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xeef19c6a cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf1925963 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf41b27be cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf56eb977 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xfc9abd44 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x33f1e24e lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x35a83602 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x380905de lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x5567b7d5 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x66e00508 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xc04aff36 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xd444145e lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0xe9958b33 lib80211_crypt_info_init +EXPORT_SYMBOL sound/ac97_bus 0x32c73d3f ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x4c2a58f9 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 0x7390102c snd_seq_event_port_attach +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 0x85a68142 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xa6545bda snd_seq_kernel_client_enqueue_blocking +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 0x24bd640a 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 0x95717ce3 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 0x359897e3 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0968a776 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x0d6f405f snd_device_free +EXPORT_SYMBOL sound/core/snd 0x144d7285 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x16778116 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x17c6dd16 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x18166d63 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1b1d93ff snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x1ee167f5 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x22ed368f snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2bff20e1 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x2c115503 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x31c68034 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x4813584d snd_device_register +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x55f180ab snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x561580ca snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x59a1ccf9 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x5bdcee49 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x6142e3fb snd_cards +EXPORT_SYMBOL sound/core/snd 0x641349bb snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x658b8766 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7a382b6c snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x7d4aae3d snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x7d865a17 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x82b044bf snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x82f64249 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x8d6feeff snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x923b2bcb snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x9a3e2402 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x9b6bfff6 snd_ctl_free_one +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 0xa84e0ef7 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xaf08248c snd_component_add +EXPORT_SYMBOL sound/core/snd 0xaf5b91a2 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xaffa3b37 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xb212875b snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xc0173703 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xcaa33002 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xcac54491 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xcf07b4f8 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xd7f8f179 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xe34b6e79 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xe39e9097 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xe4aa653e snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xe702c621 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xf76b16d7 snd_info_register +EXPORT_SYMBOL sound/core/snd 0xfeb0292f snd_card_file_remove +EXPORT_SYMBOL sound/core/snd-hwdep 0x14f05889 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x25ec889f snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2bc890c3 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x306a9136 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x9135f01b snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xa0686ac1 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x017421a9 snd_pcm_hw_constraint_integer +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 0x0bc903a9 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x15508e75 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x18a5a3f9 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x19473cf7 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x308f2845 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x3651e2ba snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x38e1c95b snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3b7116dc snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x42e79c2d snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x4a8d4746 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x4cfbbc03 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x4d14e54e snd_pcm_lib_preallocate_pages +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 0x54a913e7 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x56edcbe0 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x62f53aa8 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x682c3e13 snd_pcm_lib_writev +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 0x73135cba snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x7910d7a2 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x7ba0e250 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x85d99475 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x8d723b5f snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x917bcf99 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x95608d09 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x9e4ee3b8 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xa21b31f1 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xacb17289 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xb35cf0ea snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xb6c33881 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xb8ce0eb6 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbc46213c snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xc277f888 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xc8f135d8 snd_pcm_suspend_all +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 0xe2c4f7c7 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe54360e8 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe8f382b9 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xec516fac snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xed3086bb snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xeee2ec5f snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf9f4000d snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-rawmidi 0x217c6c96 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2abccd64 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2e259376 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x30414513 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x352b4693 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3b9f2a3f snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3cf8e0fd snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x643776fe snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8b30401b snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x91cd3d32 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x99fff3ff snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa3420aa9 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa55f0371 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb5481f1e snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xba8855bf snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf646ee11 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf820c414 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-timer 0x090b93dc snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x196d89b1 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x1b80ea32 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x35a072fc snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x4b7fa5a3 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x4b91db68 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x8242217b snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xa0f0f42e snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xa3a28ca9 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xb2dc897b snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xc8c06bd6 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xd983ee77 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xff4710e4 snd_timer_global_register +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xd00bf04b snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0ce5bebc snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0dd55562 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x219f2fd3 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x293d3adc snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x52506652 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x577a468e snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9e5fc283 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xba56f872 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd9ac9db6 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0267a43c snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4912d230 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5f0cc51a snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x97579f4d 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 0x9e6dcc8d snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd20020cc snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe7571990 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xebf3f715 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf5fb05eb snd_vx_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2a49ed06 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x39b44743 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9914bd10 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa8eea9ba snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcdf41507 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xce063597 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0a16f200 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x1110ddd1 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x2879e63c snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x58ec35fb snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe4a69d9d snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xfe180870 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1f16589b snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4589d632 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6daad422 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xd2d9a9a3 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x4383ff76 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xfbe8f21c snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x41dabcfa snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xf7a3583a snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x06e06477 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x6e632261 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x78556eaa snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa3630d59 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf0f0b5df snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-i2c 0x07998e20 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x503c3006 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x70d3b7ca snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x9b492ef0 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa270f5b6 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xb15c8545 snd_i2c_sendbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x276c5fb0 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4326bbe2 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8240452a snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb73aa1b3 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc57cb964 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd2869cb4 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdd259680 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xde887ac3 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe76f8e05 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xebed9576 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x1c86b920 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc101a424 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 0xd71c9228 snd_sb16dsp_configure +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x01be822e snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0254fe4d snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0440d718 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x338b5c42 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x34841884 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x39dedf0b snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x630c7c22 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x75d2297e snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7bfa271e snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8a98a541 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9f315041 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa16d9072 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa36660ba snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa5d70f82 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc7bb5253 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcd44c14c snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe0724125 snd_ac97_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x18fe4eb6 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x48fb1119 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4da3d8ac snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5c735e38 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x63d877f6 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6ec7e0d3 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe2a6cbf1 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xea0d0502 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf916f9f9 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x141d1e49 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x3b63b620 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x9464493a snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xbc7e39fb snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0757973d oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1de3b7bd oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x20536a82 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x27a48466 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3c28ef44 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3ede5488 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x44edd028 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x53659eaa oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x63bce2d3 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x82085791 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8265d597 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8549eecc oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x96ae1069 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x99993cdf oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa970d56c oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb58300e9 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd4410b17 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdf8f8f9e oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xecae4020 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef2aa34c oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfbd0b86f oxygen_read32 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x0a9d6499 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x97381965 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xa510839e snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb519b4de snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb8efab39 snd_trident_stop_voice +EXPORT_SYMBOL sound/soundcore 0x7257295b sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1b0444f3 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x41462cd1 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x544c9762 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x659727b5 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x86798e28 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xffbf76cc snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0ef98081 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x150b4ea6 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1758585f snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x69e7bd99 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xa2a7f36e __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc819bd50 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xef681069 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xfa6b4d28 __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 0xbefcc1c7 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00111e1b agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x005a4975 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x005d011d sk_release_kernel +EXPORT_SYMBOL vmlinux 0x005f964e inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x0064864d pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x0070e1f4 generic_file_open +EXPORT_SYMBOL vmlinux 0x0079cdc6 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x007c2772 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0093a575 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01195353 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x011b9f9f __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x0122f95e _lv1_get_spe_irq_outlet +EXPORT_SYMBOL vmlinux 0x013f798b security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x0147df55 dma_set_mask +EXPORT_SYMBOL vmlinux 0x01597ab0 vfs_read +EXPORT_SYMBOL vmlinux 0x018d9919 _lv1_set_lpm_interrupt_mask +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x0191e340 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x01a10521 tcp_close +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01ac5717 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x01cbb861 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x01cd1d3c nobh_writepage +EXPORT_SYMBOL vmlinux 0x01e90c02 dm_register_target +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x020d18d7 _lv1_set_lpm_debug_bus_control +EXPORT_SYMBOL vmlinux 0x0210fa53 tcp_check_req +EXPORT_SYMBOL vmlinux 0x0245752a end_page_writeback +EXPORT_SYMBOL vmlinux 0x02613c48 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027d5499 _lv1_did_update_interrupt_mask +EXPORT_SYMBOL vmlinux 0x02914734 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a18fc6 netdev_crit +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02c7a0a5 wireless_send_event +EXPORT_SYMBOL vmlinux 0x02cd5304 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02dcae49 sk_wait_data +EXPORT_SYMBOL vmlinux 0x02fbc25c skb_pad +EXPORT_SYMBOL vmlinux 0x03083c39 udp_ioctl +EXPORT_SYMBOL vmlinux 0x030d9de5 inode_init_owner +EXPORT_SYMBOL vmlinux 0x031dc65e pasemi_dma_free_chan +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0360d43e dentry_open +EXPORT_SYMBOL vmlinux 0x0369211e jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0380739c blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x038af979 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x039297bf netif_carrier_off +EXPORT_SYMBOL vmlinux 0x03975d68 idr_find +EXPORT_SYMBOL vmlinux 0x039e41ab swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x03a2ee09 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c4c322 journal_errno +EXPORT_SYMBOL vmlinux 0x03e1abc9 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x03f2827e scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04074f48 ioremap +EXPORT_SYMBOL vmlinux 0x040d6fb3 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x04112b6e xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04328ef1 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x0432b18c dev_get_by_name +EXPORT_SYMBOL vmlinux 0x04374dba __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x0438737d hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x043a55da skb_pull +EXPORT_SYMBOL vmlinux 0x044005c6 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x0440a533 _lv1_net_remove_multicast_address +EXPORT_SYMBOL vmlinux 0x0461f15e inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04965438 d_add_ci +EXPORT_SYMBOL vmlinux 0x04a1f2ed create_mnt_ns +EXPORT_SYMBOL vmlinux 0x04c1721c dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x04c2ced1 install_exec_creds +EXPORT_SYMBOL vmlinux 0x04da78cb pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x04e68f5e pci_disable_msix +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ef8c4a generic_file_mmap +EXPORT_SYMBOL vmlinux 0x04fa93f2 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x0540b32a cpu_core_map +EXPORT_SYMBOL vmlinux 0x0563ce39 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x056c686a journal_wipe +EXPORT_SYMBOL vmlinux 0x057ce8fa neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x05a1e50a blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05acc352 i2c_transfer +EXPORT_SYMBOL vmlinux 0x060c1eb6 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x06145593 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x064f3be7 d_alloc +EXPORT_SYMBOL vmlinux 0x0663f24b serio_rescan +EXPORT_SYMBOL vmlinux 0x067b7d8f mount_nodev +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0687293f backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06af9d86 netlink_set_err +EXPORT_SYMBOL vmlinux 0x06b9d9d1 poll_freewait +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06de89a8 cdev_del +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x071dff48 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0738f962 console_stop +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x073b5f5b elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x07430110 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x074d942a nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x07953465 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x0795e9d2 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a26cb7 iterate_mounts +EXPORT_SYMBOL vmlinux 0x07a346d2 kernel_accept +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b17b3b icmpv6_send +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cd1b27 input_allocate_device +EXPORT_SYMBOL vmlinux 0x07d0bcbe bdev_read_only +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07ebb94f vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x07ef213a pasemi_dma_free_fun +EXPORT_SYMBOL vmlinux 0x07f8ee15 _lv1_unmap_device_dma_region +EXPORT_SYMBOL vmlinux 0x0803ca36 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0872a193 __put_cred +EXPORT_SYMBOL vmlinux 0x088aad62 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x088aaf4b find_get_page +EXPORT_SYMBOL vmlinux 0x088f91e6 giveup_altivec +EXPORT_SYMBOL vmlinux 0x0892f517 dev_alert +EXPORT_SYMBOL vmlinux 0x089c1270 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x08afb01e sock_release +EXPORT_SYMBOL vmlinux 0x08e24fa9 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x08e36f6a audit_log_end +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x0924a0bd pci_fixup_device +EXPORT_SYMBOL vmlinux 0x092b58a6 ip_defrag +EXPORT_SYMBOL vmlinux 0x0930db07 generic_removexattr +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x0955f9b1 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x0956ded8 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0x096341c2 _lv1_connect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x09825ba9 is_bad_inode +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0993a3e8 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x09b2f53a check_disk_change +EXPORT_SYMBOL vmlinux 0x09c0f863 netlink_unicast +EXPORT_SYMBOL vmlinux 0x09c46d9e vfs_follow_link +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d189f2 sk_free +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d94e56 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x09f9be8d load_nls +EXPORT_SYMBOL vmlinux 0x09fb3996 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2a840f call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x0a3419ad neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x0a3d0644 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x0a5155ec set_binfmt +EXPORT_SYMBOL vmlinux 0x0a74bb15 ip_fragment +EXPORT_SYMBOL vmlinux 0x0a994f3a ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x0aa0eaae unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x0aacd352 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x0ab041b8 ide_dma_off +EXPORT_SYMBOL vmlinux 0x0ab4be4f scsi_register_interface +EXPORT_SYMBOL vmlinux 0x0ab7949e up +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0f0a65 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0ba2886a dquot_file_open +EXPORT_SYMBOL vmlinux 0x0ba322d5 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x0bd553ae tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x0c1a99af request_key_async +EXPORT_SYMBOL vmlinux 0x0c1ad162 _lv1_net_start_rx_dma +EXPORT_SYMBOL vmlinux 0x0c1cea14 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x0c378515 pci_bus_type +EXPORT_SYMBOL vmlinux 0x0c39fafb phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x0c43b5c1 clocksource_register +EXPORT_SYMBOL vmlinux 0x0c62995f dmam_pool_create +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7ec8a3 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x0c85cd4b cdev_init +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0ccfa0f4 set_blocksize +EXPORT_SYMBOL vmlinux 0x0ce83b07 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x0d114b4e textsearch_unregister +EXPORT_SYMBOL vmlinux 0x0d1c1661 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x0d28c9d8 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x0d3139b1 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x0d368ba3 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x0d3fb6c5 napi_get_frags +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d561a78 netdev_err +EXPORT_SYMBOL vmlinux 0x0d5d2536 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d84b1d9 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x0d85efdb pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db2a574 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x0e351397 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x0e3bff27 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x0e460c82 dentry_unhash +EXPORT_SYMBOL vmlinux 0x0e51c6a6 genl_register_family +EXPORT_SYMBOL vmlinux 0x0e5258f5 flex_array_get +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e559a9c dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x0e834cbc dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0ea2eec6 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x0eb81450 __lock_page +EXPORT_SYMBOL vmlinux 0x0ee3a11c mii_check_link +EXPORT_SYMBOL vmlinux 0x0ef91f18 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x0f1f604c simple_rmdir +EXPORT_SYMBOL vmlinux 0x0f3270e7 dev_add_pack +EXPORT_SYMBOL vmlinux 0x0f399154 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x0f4002fd generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x0f6e55fd compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x0faa272d dev_gro_receive +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fdc0b8c skb_queue_head +EXPORT_SYMBOL vmlinux 0x0fdcf503 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x101f2465 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x102c66ad mount_single +EXPORT_SYMBOL vmlinux 0x103c6d8b get_super +EXPORT_SYMBOL vmlinux 0x1042c7dd skb_unlink +EXPORT_SYMBOL vmlinux 0x104979ac dquot_drop +EXPORT_SYMBOL vmlinux 0x106881c4 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x107be46e set_user_nice +EXPORT_SYMBOL vmlinux 0x108ff894 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x10a74018 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10da83f5 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x10e367ea __dst_free +EXPORT_SYMBOL vmlinux 0x10e59aeb dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x10ec4fb9 of_find_property +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10eefaa6 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x10f43b6b block_truncate_page +EXPORT_SYMBOL vmlinux 0x10fa852c sys_copyarea +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x1125c223 complete_request_key +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1126ab46 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x112a9830 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x112ed48a pci_remove_bus +EXPORT_SYMBOL vmlinux 0x1134d8c3 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x1147fee5 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x115919c4 misc_deregister +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 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1192be40 fsync_bdev +EXPORT_SYMBOL vmlinux 0x1196b431 skb_insert +EXPORT_SYMBOL vmlinux 0x11aa1a5b dev_disable_lro +EXPORT_SYMBOL vmlinux 0x11cdc437 neigh_destroy +EXPORT_SYMBOL vmlinux 0x11ce5be9 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x11d20b4e block_write_end +EXPORT_SYMBOL vmlinux 0x11e3cbaf skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x11f2d736 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120531ab ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x12277b20 elv_rb_find +EXPORT_SYMBOL vmlinux 0x12302c26 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x12751f7a sock_rfree +EXPORT_SYMBOL vmlinux 0x128cb161 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x128e41ad blk_remove_plug +EXPORT_SYMBOL vmlinux 0x129db5a8 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12aa9aba skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x12b002f4 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x12cb6622 _lv1_map_device_dma_region +EXPORT_SYMBOL vmlinux 0x12d5d050 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x12dafa7e dev_trans_start +EXPORT_SYMBOL vmlinux 0x12e48dd6 del_timer_sync +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13080849 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x132dfeb4 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x13434984 pci_disable_device +EXPORT_SYMBOL vmlinux 0x1350ef7e __lru_cache_add +EXPORT_SYMBOL vmlinux 0x13663852 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x13b3c607 journal_ack_err +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d9cdb3 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x13dba415 of_match_node +EXPORT_SYMBOL vmlinux 0x13ebc408 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f53da6 CMO_PageSize +EXPORT_SYMBOL vmlinux 0x13f586cc tty_devnum +EXPORT_SYMBOL vmlinux 0x141fe5fd pasemi_read_iob_reg +EXPORT_SYMBOL vmlinux 0x142bc25d lookup_bdev +EXPORT_SYMBOL vmlinux 0x144ea7c7 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x1456f7ae remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x145cdfa5 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x149ff1ec drop_super +EXPORT_SYMBOL vmlinux 0x14c18881 lock_may_read +EXPORT_SYMBOL vmlinux 0x14c757e8 dquot_enable +EXPORT_SYMBOL vmlinux 0x14cd92f3 journal_extend +EXPORT_SYMBOL vmlinux 0x14ebec58 __bforget +EXPORT_SYMBOL vmlinux 0x14f04052 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x150836fa unlock_new_inode +EXPORT_SYMBOL vmlinux 0x151592c4 _lv1_invalidate_htab_entries +EXPORT_SYMBOL vmlinux 0x1518ac0c __serio_register_port +EXPORT_SYMBOL vmlinux 0x151d10a7 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x1524516b nf_ct_attach +EXPORT_SYMBOL vmlinux 0x15325b4a iget_failed +EXPORT_SYMBOL vmlinux 0x153368d7 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x15355702 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15610b21 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x158ba9b9 skb_clone +EXPORT_SYMBOL vmlinux 0x15a87cd4 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x15bcdbaf __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x15d4970c udp_sendmsg +EXPORT_SYMBOL vmlinux 0x15defaa2 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x1619e388 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x16264759 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x1649381b __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x16780823 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x168511dc arp_xmit +EXPORT_SYMBOL vmlinux 0x168848ef ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x16954a5f ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x16aa5de7 ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0x16ad2a37 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x16bba80a lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x16e0b62c ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1723e204 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x1726331b netif_device_attach +EXPORT_SYMBOL vmlinux 0x173995dd nf_register_hooks +EXPORT_SYMBOL vmlinux 0x1743414f __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x17613882 dm_get_device +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x1774f153 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x177641dc mach_pseries +EXPORT_SYMBOL vmlinux 0x177e8c33 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x17b1b667 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x17cb8c79 _lv1_read_htab_entries +EXPORT_SYMBOL vmlinux 0x17d39e2e scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x182389d7 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x182f50af _lv1_open_device +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184ba3f0 note_scsi_host +EXPORT_SYMBOL vmlinux 0x18577fde pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x185b7dd6 _lv1_modify_repository_node_value +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x1883b1db dm_table_get +EXPORT_SYMBOL vmlinux 0x188db5e2 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18c98205 _lv1_destruct_virtual_address_space +EXPORT_SYMBOL vmlinux 0x18d1ea4b follow_down_one +EXPORT_SYMBOL vmlinux 0x1904b30a inet_bind +EXPORT_SYMBOL vmlinux 0x1934f708 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x19450e45 do_SAK +EXPORT_SYMBOL vmlinux 0x19458df3 mutex_lock +EXPORT_SYMBOL vmlinux 0x1953acd7 path_put +EXPORT_SYMBOL vmlinux 0x196e68a7 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x1985e6f5 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x199ec4fb arch_spin_unlock_wait +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a09385 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x19a23840 sock_i_ino +EXPORT_SYMBOL vmlinux 0x19a94ef1 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x19b90ac4 llc_sap_open +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c968d1 pasemi_dma_start_chan +EXPORT_SYMBOL vmlinux 0x19d38aa5 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x19d42109 dm_table_put +EXPORT_SYMBOL vmlinux 0x19d720b7 journal_flush +EXPORT_SYMBOL vmlinux 0x19e60823 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x19f0f13a pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19f72394 __alloc_skb +EXPORT_SYMBOL vmlinux 0x1a0cafdc kernel_connect +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a2442be fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x1a2f6945 __next_cpu +EXPORT_SYMBOL vmlinux 0x1a3de938 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x1a4faef8 backlight_force_update +EXPORT_SYMBOL vmlinux 0x1a6459c8 log_wait_commit +EXPORT_SYMBOL vmlinux 0x1a6eb0da prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x1a91663d pasemi_dma_free_buf +EXPORT_SYMBOL vmlinux 0x1acd53ec ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae3f07e i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0a0e09 bdi_destroy +EXPORT_SYMBOL vmlinux 0x1b45ac0d blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x1b4a62db macio_enable_devres +EXPORT_SYMBOL vmlinux 0x1b4dc08b ps3_dma_region_init +EXPORT_SYMBOL vmlinux 0x1b4f7940 fb_pan_display +EXPORT_SYMBOL vmlinux 0x1b578911 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b69671a kfree_skb +EXPORT_SYMBOL vmlinux 0x1b7112b1 hex2bin +EXPORT_SYMBOL vmlinux 0x1b85062c blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b8caf21 end_writeback +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba3209b __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bce1462 journal_start +EXPORT_SYMBOL vmlinux 0x1bd073e7 led_brightness_set +EXPORT_SYMBOL vmlinux 0x1bfec830 __iounmap_at +EXPORT_SYMBOL vmlinux 0x1c14b997 mount_pseudo +EXPORT_SYMBOL vmlinux 0x1c19ac0e journal_revoke +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c1b5fce dm_get_mapinfo +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 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c9e77e4 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x1ca81d57 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x1cb1d4fd dm_table_get_md +EXPORT_SYMBOL vmlinux 0x1cc254da hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce31eab cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x1ce613a7 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x1ceba8a8 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x1cf1cd38 pci_get_device +EXPORT_SYMBOL vmlinux 0x1cf60067 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x1d0de306 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x1d142ca3 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d350be8 input_event +EXPORT_SYMBOL vmlinux 0x1d3eeb7d compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x1d44c7fc blk_run_queue +EXPORT_SYMBOL vmlinux 0x1d46b160 dev_get_stats +EXPORT_SYMBOL vmlinux 0x1d4750bc _lv1_stop_lpm +EXPORT_SYMBOL vmlinux 0x1d9b7571 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x1d9c85d8 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x1d9ef1d0 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x1da08eed revalidate_disk +EXPORT_SYMBOL vmlinux 0x1db4da80 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dcae05e pci_read_vpd +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd9d3a2 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x1def5854 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x1df153d6 fb_get_mode +EXPORT_SYMBOL vmlinux 0x1df2e5cb register_gifconf +EXPORT_SYMBOL vmlinux 0x1e23dafb of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x1e2d5ba6 kobject_put +EXPORT_SYMBOL vmlinux 0x1e314b8b bio_split +EXPORT_SYMBOL vmlinux 0x1e34608b radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x1e4625b7 follow_up +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6fe6f1 idr_init +EXPORT_SYMBOL vmlinux 0x1e84f023 scsi_init_io +EXPORT_SYMBOL vmlinux 0x1e9809f3 inet6_bind +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1edc2907 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f05e066 simple_write_begin +EXPORT_SYMBOL vmlinux 0x1f2816dc genl_register_ops +EXPORT_SYMBOL vmlinux 0x1f296d33 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x1f2ce63b flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1f31993c security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x1f47bda3 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x1f66fcb6 journal_init_inode +EXPORT_SYMBOL vmlinux 0x1f6758d9 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x1f8725d0 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x1fa34180 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x1faf3c1d i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x1fc8155c vmap +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe7b4ab pasemi_write_dma_reg +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20075781 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x201494ee _lv1_net_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0x202c9a48 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x203cddc2 lock_fb_info +EXPORT_SYMBOL vmlinux 0x203f1e04 of_parse_phandle +EXPORT_SYMBOL vmlinux 0x206ab935 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x206b3484 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x2070be6e alloc_trdev +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208d6ee4 security_path_rename +EXPORT_SYMBOL vmlinux 0x20bebf80 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x20d5953d bio_copy_kern +EXPORT_SYMBOL vmlinux 0x21346a5d blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x213603bf pasemi_dma_free_ring +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21835f40 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x21a52532 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x21bb5cf5 phy_disconnect +EXPORT_SYMBOL vmlinux 0x21d966fa bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x21e6df7e unregister_binfmt +EXPORT_SYMBOL vmlinux 0x21fb317b ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x220368a9 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x2209c59f elv_rb_del +EXPORT_SYMBOL vmlinux 0x2217306a find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x221a28b5 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2225b9f7 take_over_console +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2244744c add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x225ebee6 _lv1_destruct_lpm +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x22832087 generic_writepages +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228af1a0 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x228bc5f7 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22bccd9d proc_create_data +EXPORT_SYMBOL vmlinux 0x22e2a12e xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x22e8e450 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x22f83b68 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x230c3722 idr_for_each +EXPORT_SYMBOL vmlinux 0x23117d5c genphy_resume +EXPORT_SYMBOL vmlinux 0x231ababb tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x231b201e radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x237580a8 generic_write_sync +EXPORT_SYMBOL vmlinux 0x2392b27c key_put +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23bdb241 llc_sap_find +EXPORT_SYMBOL vmlinux 0x23c4f392 seq_lseek +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241a5c85 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x242ec1a9 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x2449a430 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x244a2411 __first_cpu +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x246b8e2e sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x24967395 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x249c87fc rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x24c33764 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x24cfd438 _lv1_copy_lpm_trace_buffer +EXPORT_SYMBOL vmlinux 0x24e26b95 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x24f8e092 ps2_command +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x24fea858 path_lookup +EXPORT_SYMBOL vmlinux 0x25027a8c blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x2517c2a9 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x251a7f5e inode_get_bytes +EXPORT_SYMBOL vmlinux 0x253c530e bmap +EXPORT_SYMBOL vmlinux 0x2553afc8 mapping_tagged +EXPORT_SYMBOL vmlinux 0x2577f092 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x257843c4 dquot_resume +EXPORT_SYMBOL vmlinux 0x257c5ee9 neigh_lookup +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x25834406 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25904ff8 macio_release_resource +EXPORT_SYMBOL vmlinux 0x259445c7 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x259fbaef pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x25a461e0 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x25ab86aa __register_binfmt +EXPORT_SYMBOL vmlinux 0x25b6b8f7 _lv1_set_spe_transition_notifier +EXPORT_SYMBOL vmlinux 0x25bdfb56 ilookup +EXPORT_SYMBOL vmlinux 0x261181a1 input_reset_device +EXPORT_SYMBOL vmlinux 0x26337152 get_io_context +EXPORT_SYMBOL vmlinux 0x2636ed67 node_data +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x264db2e1 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x266e358f mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x2671902d bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26933a03 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x26a4ad39 put_disk +EXPORT_SYMBOL vmlinux 0x26a68448 lease_modify +EXPORT_SYMBOL vmlinux 0x26c5c7d4 submit_bio +EXPORT_SYMBOL vmlinux 0x26c8ef8a bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26ec081a skb_free_datagram +EXPORT_SYMBOL vmlinux 0x26f1082b tty_unregister_device +EXPORT_SYMBOL vmlinux 0x2745ee37 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x27485f45 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x27646df3 start_thread +EXPORT_SYMBOL vmlinux 0x278546e0 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2789cb79 flex_array_put +EXPORT_SYMBOL vmlinux 0x279a5397 set_disk_ro +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27d36ecc scsi_target_resume +EXPORT_SYMBOL vmlinux 0x27da2038 ether_setup +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27fbc95e input_inject_event +EXPORT_SYMBOL vmlinux 0x2805bf7b find_or_create_page +EXPORT_SYMBOL vmlinux 0x28085cbe iunique +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x28198581 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x281baf8f generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x281cd337 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x282047db bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x2820fa1d fasync_helper +EXPORT_SYMBOL vmlinux 0x2848fe7a ipv4_specific +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x2892f2a9 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28c903fb tcp_disconnect +EXPORT_SYMBOL vmlinux 0x28cacfd9 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x28cfc619 kthread_create +EXPORT_SYMBOL vmlinux 0x28d4af2b simple_set_mnt +EXPORT_SYMBOL vmlinux 0x28e32e0c pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x2940ae57 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2960019b eeh_check_failure +EXPORT_SYMBOL vmlinux 0x29614cd3 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x2961f615 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x29aa35c1 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x29aa8664 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29c16a4c bio_init +EXPORT_SYMBOL vmlinux 0x29d73d03 ida_init +EXPORT_SYMBOL vmlinux 0x29f02fac agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x29fac747 vio_unregister_driver +EXPORT_SYMBOL vmlinux 0x2a28381e freeze_super +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a50fed9 noop_llseek +EXPORT_SYMBOL vmlinux 0x2a6c8276 vio_enable_interrupts +EXPORT_SYMBOL vmlinux 0x2a713e09 brioctl_set +EXPORT_SYMBOL vmlinux 0x2a81e6e4 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x2a8a785b journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x2a9403f9 simple_rename +EXPORT_SYMBOL vmlinux 0x2abd9093 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x2ac1d70a input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x2adb364f serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x2ae0b950 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b3b0761 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x2b5e6c69 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x2b993a40 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bbdb9a5 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x2c1cd4a4 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2c2091f0 get_agp_version +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c40f3b2 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x2c4c7997 _lv1_construct_lpm +EXPORT_SYMBOL vmlinux 0x2c7766ca bdget_disk +EXPORT_SYMBOL vmlinux 0x2c8282a3 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2c9285ac neigh_create +EXPORT_SYMBOL vmlinux 0x2cf9db12 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x2cfaa4e7 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1665f7 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x2d189b77 __scm_send +EXPORT_SYMBOL vmlinux 0x2d4c5bec padata_add_cpu +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d6488f1 vfs_mknod +EXPORT_SYMBOL vmlinux 0x2d71879e dst_destroy +EXPORT_SYMBOL vmlinux 0x2d7d2767 _lv1_set_lpm_group_control +EXPORT_SYMBOL vmlinux 0x2d833e93 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d93dfff jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x2daa08bc dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x2daebd6e sk_stream_error +EXPORT_SYMBOL vmlinux 0x2db4c99b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x2dbb1198 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x2ddc665d radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2df77c77 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x2dfcadbd bio_endio +EXPORT_SYMBOL vmlinux 0x2dfe6b7a blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x2e0607c9 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x2e0f5198 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x2e1bef92 eeh_subsystem_enabled +EXPORT_SYMBOL vmlinux 0x2e1ec170 __bio_clone +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e2fd9c0 down_read +EXPORT_SYMBOL vmlinux 0x2e59f315 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x2e619c76 should_remove_suid +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e78d32e ppc_md +EXPORT_SYMBOL vmlinux 0x2e7bab49 write_one_page +EXPORT_SYMBOL vmlinux 0x2e871d4c agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x2e93495e _lv1_write_htab_entry +EXPORT_SYMBOL vmlinux 0x2e9761a8 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x2ee1f956 idr_pre_get +EXPORT_SYMBOL vmlinux 0x2ee4337f smu_queue_cmd +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f44eb8b compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x2f538992 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x2f7a61a3 ide_do_reset +EXPORT_SYMBOL vmlinux 0x2f800281 scsi_unregister +EXPORT_SYMBOL vmlinux 0x2fa1eace ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb57f98 scsi_device_get +EXPORT_SYMBOL vmlinux 0x2fcc1e12 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x2fcf740d idr_get_new_above +EXPORT_SYMBOL vmlinux 0x2fe539f8 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x2fee8b51 key_validate +EXPORT_SYMBOL vmlinux 0x2ff00015 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x2ffe353d iput +EXPORT_SYMBOL vmlinux 0x3001848a mntput +EXPORT_SYMBOL vmlinux 0x302142dd netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x30559e25 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x306a47cd __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x30707f44 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x307a636f scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x3085bffb sock_no_accept +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30d25ed7 fb_blank +EXPORT_SYMBOL vmlinux 0x30d70fa9 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x30e67cbe inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x30ecebca pci_disable_msi +EXPORT_SYMBOL vmlinux 0x30f08dc6 start_tty +EXPORT_SYMBOL vmlinux 0x30fa3cc5 vfs_rename +EXPORT_SYMBOL vmlinux 0x311e65c8 dev_notice +EXPORT_SYMBOL vmlinux 0x312cfaf2 _lv1_disable_logical_spe +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3148af39 security_inode_permission +EXPORT_SYMBOL vmlinux 0x31603c91 agp_free_page_array +EXPORT_SYMBOL vmlinux 0x316cd9fe down +EXPORT_SYMBOL vmlinux 0x31a93df8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x31b232a6 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x31b7f300 _lv1_set_lpm_signal +EXPORT_SYMBOL vmlinux 0x31c60750 d_instantiate +EXPORT_SYMBOL vmlinux 0x31cd509a _lv1_net_control +EXPORT_SYMBOL vmlinux 0x31e339bf pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x31ed1707 down_timeout +EXPORT_SYMBOL vmlinux 0x31fc8acc __register_chrdev +EXPORT_SYMBOL vmlinux 0x3205e062 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x3207a256 netdev_warn +EXPORT_SYMBOL vmlinux 0x3207a616 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x320f9130 vfs_write +EXPORT_SYMBOL vmlinux 0x32131e94 have_submounts +EXPORT_SYMBOL vmlinux 0x321b792c kthread_bind +EXPORT_SYMBOL vmlinux 0x323e12ba release_pages +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x32463507 netif_napi_del +EXPORT_SYMBOL vmlinux 0x3248cecf udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x3274b985 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x327695f4 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x32a8a824 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x333615ba flush_signals +EXPORT_SYMBOL vmlinux 0x333b4bbe fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x3362ce18 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x33668e89 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x337cd367 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x3382bfe6 sock_no_listen +EXPORT_SYMBOL vmlinux 0x338e7921 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x33b2e457 dev_mc_init +EXPORT_SYMBOL vmlinux 0x33c6420d dev_get_by_index +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33dec29d pipe_to_file +EXPORT_SYMBOL vmlinux 0x33e4645a grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x343de4ab __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a07f0e tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x34a206f0 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x34c09b82 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x34d91f71 lro_flush_all +EXPORT_SYMBOL vmlinux 0x34eea38c mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x35170350 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x351c2930 __rta_fill +EXPORT_SYMBOL vmlinux 0x353e9047 names_cachep +EXPORT_SYMBOL vmlinux 0x3556c43b bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x3559d6b0 bioset_free +EXPORT_SYMBOL vmlinux 0x3591a669 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x3594bc97 tcf_em_register +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35cb378c blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x35e4f86b serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x35e8d420 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x35ec19ce kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x35ff20db security_path_truncate +EXPORT_SYMBOL vmlinux 0x3609b7f1 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x360b9357 give_up_console +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x364f2b9a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x3672f9d9 of_device_alloc +EXPORT_SYMBOL vmlinux 0x36783c02 bio_copy_user +EXPORT_SYMBOL vmlinux 0x369d9d39 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36b5a4cc rfkill_unregister +EXPORT_SYMBOL vmlinux 0x36ceb873 machine_id +EXPORT_SYMBOL vmlinux 0x36d73eb2 keyring_clear +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36edd6b8 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x36f1b245 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x3718391c __dquot_transfer +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 0x374a492e tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x375b3d2f neigh_connected_output +EXPORT_SYMBOL vmlinux 0x37791384 datagram_poll +EXPORT_SYMBOL vmlinux 0x37800188 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x37a28c06 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x37bd8754 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e55132 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x37e5ebe1 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x3800cb2e padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381cdc87 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x382777ab _lv1_gpu_context_allocate +EXPORT_SYMBOL vmlinux 0x384171a2 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x38440600 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x385534d8 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x385ce355 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x386b3940 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x388959b5 _lv1_net_stop_tx_dma +EXPORT_SYMBOL vmlinux 0x388aa387 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x388fff07 register_snap_client +EXPORT_SYMBOL vmlinux 0x389e3c1f journal_abort +EXPORT_SYMBOL vmlinux 0x38a79871 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x38ab1579 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c9f340 serio_close +EXPORT_SYMBOL vmlinux 0x38dfd429 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0x38f717f1 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x38f7a136 dump_seek +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x391c0185 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x3929edeb pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x393af942 cad_pid +EXPORT_SYMBOL vmlinux 0x39760d43 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x3976244d simple_unlink +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39d82335 dqget +EXPORT_SYMBOL vmlinux 0x3a0765d8 __netif_schedule +EXPORT_SYMBOL vmlinux 0x3a0c7399 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x3a0dbb4e input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x3a0ef3e8 of_node_get +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a22b6f3 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x3a24d150 genphy_update_link +EXPORT_SYMBOL vmlinux 0x3a33b472 address_space_init_once +EXPORT_SYMBOL vmlinux 0x3a3bd750 nla_append +EXPORT_SYMBOL vmlinux 0x3a46b806 pskb_copy +EXPORT_SYMBOL vmlinux 0x3a5010ab blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x3a609c6c input_close_device +EXPORT_SYMBOL vmlinux 0x3a6fe869 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a9a989c xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3abc68b5 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x3ad52f42 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x3b14d843 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x3b2d8ed9 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b51dfac lookup_one_len +EXPORT_SYMBOL vmlinux 0x3b5f23c9 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3ba1f768 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bfd4b32 mnt_pin +EXPORT_SYMBOL vmlinux 0x3c0b4eee __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb732e3 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d067d4c eth_mac_addr +EXPORT_SYMBOL vmlinux 0x3d0d2072 release_firmware +EXPORT_SYMBOL vmlinux 0x3d41f550 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x3d427799 d_splice_alias +EXPORT_SYMBOL vmlinux 0x3d54ac01 _lv1_net_stop_rx_dma +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3daa1bfe seq_release_private +EXPORT_SYMBOL vmlinux 0x3dc8f204 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x3dcb543a xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e27ec07 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x3e286dca _lv1_get_rtc +EXPORT_SYMBOL vmlinux 0x3e28e203 inode_change_ok +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e50678b netdev_info +EXPORT_SYMBOL vmlinux 0x3e54e0ca sync_blockdev +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e9adfc2 filemap_flush +EXPORT_SYMBOL vmlinux 0x3eb26ef4 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eeba412 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x3efbdc50 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x3f019c72 sock_no_getname +EXPORT_SYMBOL vmlinux 0x3f026ba7 iget5_locked +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f06a656 _lv1_construct_event_receive_port +EXPORT_SYMBOL vmlinux 0x3f29afb2 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x3f2c735c noop_fsync +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f49e150 bdevname +EXPORT_SYMBOL vmlinux 0x3fa03a97 memset +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fb0b623 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x3fbfd6ed _lv1_gpu_open +EXPORT_SYMBOL vmlinux 0x3fdeba68 da903x_query_status +EXPORT_SYMBOL vmlinux 0x3fe1ebce inode_needs_sync +EXPORT_SYMBOL vmlinux 0x3fe440dd bdi_register_dev +EXPORT_SYMBOL vmlinux 0x3feb66a6 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffea8e3 blk_peek_request +EXPORT_SYMBOL vmlinux 0x4030d374 posix_lock_file +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406d4007 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x406f8c2d generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a98905 backlight_device_register +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40ac8293 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40ef68ee eth_header +EXPORT_SYMBOL vmlinux 0x40f22a10 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x40f5fbfe thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4110576c blk_plug_device +EXPORT_SYMBOL vmlinux 0x4126c789 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x41321ede textsearch_register +EXPORT_SYMBOL vmlinux 0x41361807 _lv1_get_logical_ppe_id +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414cfefe redraw_screen +EXPORT_SYMBOL vmlinux 0x415b8064 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x41779437 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4190ebec tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x41acdade seq_open +EXPORT_SYMBOL vmlinux 0x41b3782b skb_append +EXPORT_SYMBOL vmlinux 0x41d0a393 generic_write_checks +EXPORT_SYMBOL vmlinux 0x41dbf4de _lv1_start_lpm +EXPORT_SYMBOL vmlinux 0x41f570d9 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421f5506 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a2948d console_start +EXPORT_SYMBOL vmlinux 0x42b0cfbd key_revoke +EXPORT_SYMBOL vmlinux 0x42ccd715 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x42d7c6c8 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x42ea31e8 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x42fabd8b load_nls_default +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4340a57f of_match_device +EXPORT_SYMBOL vmlinux 0x434d0cf9 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x434d0eef llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x435d39f3 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4373a889 arp_send +EXPORT_SYMBOL vmlinux 0x437a294b __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x438bce1e init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x4391ccf3 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x439bc76f max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43ba7c55 free_netdev +EXPORT_SYMBOL vmlinux 0x43c6591b inode_init_always +EXPORT_SYMBOL vmlinux 0x43cd705a netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x43d0b9bd sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x441d2c29 netdev_set_master +EXPORT_SYMBOL vmlinux 0x4429a8e6 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x44673717 generic_setxattr +EXPORT_SYMBOL vmlinux 0x447bcd11 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x4486c28e ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x44947a01 locks_free_lock +EXPORT_SYMBOL vmlinux 0x44b5d6a6 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44de5d99 inet_frags_init +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x44f21b4d sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x45004c5a neigh_for_each +EXPORT_SYMBOL vmlinux 0x45230507 inet_getname +EXPORT_SYMBOL vmlinux 0x452ebe86 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x453a85f7 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4564459b _lv1_set_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x4583ecb7 sk_dst_check +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45c3f8b8 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x45cfe80b pasemi_dma_free_flag +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x463bae09 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x4657c76b sk_receive_skb +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467e3f05 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x4686d538 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x469f53bd scsi_prep_return +EXPORT_SYMBOL vmlinux 0x46a7ecd8 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46f2ef4b jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x47066d60 ps2_init +EXPORT_SYMBOL vmlinux 0x47154462 seq_path +EXPORT_SYMBOL vmlinux 0x47415b4e macio_register_driver +EXPORT_SYMBOL vmlinux 0x47496d33 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x4795941a generic_listxattr +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b67a5a generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x47f0be5d page_follow_link_light +EXPORT_SYMBOL vmlinux 0x47fae4ce netif_rx +EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node +EXPORT_SYMBOL vmlinux 0x480ab42a __next_cpu_nr +EXPORT_SYMBOL vmlinux 0x48212c00 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x484424c2 security_path_chmod +EXPORT_SYMBOL vmlinux 0x484d6afd of_n_size_cells +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x487bac79 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x487c08ea sys_imageblit +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x4886fb9b fb_find_mode +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x489e3936 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x48ad7e05 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x48af03dc blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x491a3eef padata_start +EXPORT_SYMBOL vmlinux 0x493397bc bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x4948c0a9 gen_pool_add +EXPORT_SYMBOL vmlinux 0x49510c73 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x495ec6eb pasemi_dma_alloc_buf +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x496beb90 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x49993ad3 ip6_route_output +EXPORT_SYMBOL vmlinux 0x499f28d6 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b13d09 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x49ceb2c0 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a51f8aa journal_get_write_access +EXPORT_SYMBOL vmlinux 0x4a68640b splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ac5ddd6 thaw_bdev +EXPORT_SYMBOL vmlinux 0x4ac64da4 _lv1_select_virtual_address_space +EXPORT_SYMBOL vmlinux 0x4ac924d5 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4af7c64a pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b18d815 simple_statfs +EXPORT_SYMBOL vmlinux 0x4b3293cc xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x4b3cb349 _lv1_destruct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0x4b4a4858 scsi_device_put +EXPORT_SYMBOL vmlinux 0x4b52fea8 vmtruncate +EXPORT_SYMBOL vmlinux 0x4b5814ef kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x4b6ac86e tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x4b6fcddc _lv1_set_spe_interrupt_mask +EXPORT_SYMBOL vmlinux 0x4b7b69a0 register_framebuffer +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b878b9e tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x4b886d77 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x4b92a3b4 skb_trim +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4be2d016 giveup_vsx +EXPORT_SYMBOL vmlinux 0x4bed9b16 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c215da2 seq_open_private +EXPORT_SYMBOL vmlinux 0x4c25a2fa bd_set_size +EXPORT_SYMBOL vmlinux 0x4c3e8ae5 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c6a16a0 macio_request_resources +EXPORT_SYMBOL vmlinux 0x4c844daf remove_proc_entry +EXPORT_SYMBOL vmlinux 0x4cb13d3f skb_store_bits +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4d12943f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x4d356588 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x4d5fb544 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x4d651914 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x4d8b6906 inet_select_addr +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4db5d9e1 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x4dbb0eac inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dc77ead neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df96547 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e13842c agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e7848e1 netdev_state_change +EXPORT_SYMBOL vmlinux 0x4e8cfcaa journal_check_used_features +EXPORT_SYMBOL vmlinux 0x4e9ab3ff mutex_unlock +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4eb2f593 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x4ed3bf3e jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f02e0fc clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x4f0cfcd3 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x4f13b30a agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2448a2 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f3af2d8 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x4f4fe158 netlink_ack +EXPORT_SYMBOL vmlinux 0x4f664db6 _lv1_insert_htab_entry +EXPORT_SYMBOL vmlinux 0x4fa1519e zero_fill_bio +EXPORT_SYMBOL vmlinux 0x4fc5c226 vfs_stat +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50061fe1 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x507fb8d9 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x508f44cd of_node_put +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50ae32c0 ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0x50ae3c54 _lv1_gpu_attribute +EXPORT_SYMBOL vmlinux 0x50b0fcbb get_write_access +EXPORT_SYMBOL vmlinux 0x50b76efd kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x50c2854f tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x50d580a6 seq_bitmap +EXPORT_SYMBOL vmlinux 0x50d8fc23 aio_complete +EXPORT_SYMBOL vmlinux 0x50ece48d agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x510c2535 xz_dec_run +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5124bbbe napi_frags_finish +EXPORT_SYMBOL vmlinux 0x512c2fff destroy_EII_client +EXPORT_SYMBOL vmlinux 0x512f5fbe __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51ad50db alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5248bab3 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b18bf4 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x52cbc26b __ps2_command +EXPORT_SYMBOL vmlinux 0x52cbfd26 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52e3fa05 _lv1_allocate_memory +EXPORT_SYMBOL vmlinux 0x52efdae6 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x52faf7c6 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x52fec23c dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53352434 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x5339f5f8 _lv1_read_virtual_uart +EXPORT_SYMBOL vmlinux 0x53570982 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x536a272a inet_stream_ops +EXPORT_SYMBOL vmlinux 0x5375e463 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53a874f8 input_unregister_device +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c116fb scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53f04062 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x54122b5f netdev_notice +EXPORT_SYMBOL vmlinux 0x54198f89 input_register_device +EXPORT_SYMBOL vmlinux 0x543b39f1 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54405795 request_firmware +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x5462f8bc serio_interrupt +EXPORT_SYMBOL vmlinux 0x546bf377 register_qdisc +EXPORT_SYMBOL vmlinux 0x54813cea dev_change_flags +EXPORT_SYMBOL vmlinux 0x54899311 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x548f6b16 copy_4K_page +EXPORT_SYMBOL vmlinux 0x5496539f register_exec_domain +EXPORT_SYMBOL vmlinux 0x54a7168b flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54c0c158 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ec1c93 get_phy_device +EXPORT_SYMBOL vmlinux 0x550eb1b6 save_mount_options +EXPORT_SYMBOL vmlinux 0x55187426 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x551b790c generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x551e105a mpage_readpage +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x55425292 sget +EXPORT_SYMBOL vmlinux 0x555fda9d blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x557b3dd8 _lv1_gpu_close +EXPORT_SYMBOL vmlinux 0x5593bd13 ide_set_handler +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55c588ad pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x55c8c097 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x55dd53e5 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x55fc7b87 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5608452b con_is_bound +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x561d3fb2 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56420417 tty_vhangup +EXPORT_SYMBOL vmlinux 0x567d5fde rfkill_destroy +EXPORT_SYMBOL vmlinux 0x568804ee _lv1_destruct_event_receive_port +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c5d7dc write_cache_pages +EXPORT_SYMBOL vmlinux 0x56c6d253 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56ddd997 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x5704dc4b scm_fp_dup +EXPORT_SYMBOL vmlinux 0x57096f8f generic_file_llseek +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57768e3a devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x57835011 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x579a4920 pci_release_region +EXPORT_SYMBOL vmlinux 0x579bab50 _lv1_gpu_memory_free +EXPORT_SYMBOL vmlinux 0x57a63917 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x58335d19 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x58528d9d pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x5854f35d bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x585a1030 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x58662acb misc_register +EXPORT_SYMBOL vmlinux 0x5892a01e of_get_mac_address +EXPORT_SYMBOL vmlinux 0x5892a218 kill_pid +EXPORT_SYMBOL vmlinux 0x58a507fb blk_init_queue +EXPORT_SYMBOL vmlinux 0x58a93c51 generic_make_request +EXPORT_SYMBOL vmlinux 0x58f640dc seq_escape +EXPORT_SYMBOL vmlinux 0x591f837b llc_sap_close +EXPORT_SYMBOL vmlinux 0x592d6da7 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5958e122 lock_may_write +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x5984c66e sock_i_uid +EXPORT_SYMBOL vmlinux 0x598b6078 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x598ebe81 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59bf9ddd vfs_readv +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d6c609 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x59f25d36 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x5a025f7b arch_local_irq_restore +EXPORT_SYMBOL vmlinux 0x5a0263ef kobject_get +EXPORT_SYMBOL vmlinux 0x5a0f987d input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x5a1d0c3c tty_hangup +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a9bcf1a xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x5aad625e get_phy_id +EXPORT_SYMBOL vmlinux 0x5ac684f9 netif_device_detach +EXPORT_SYMBOL vmlinux 0x5b0aac70 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x5b0f77a7 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x5b33da07 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b594e46 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x5b84ec45 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x5b899ab6 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5b9e94a5 vio_get_attribute +EXPORT_SYMBOL vmlinux 0x5bef5d11 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x5c1bd8d6 seq_write +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c44dd25 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c4f89ff block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x5c505a91 prepare_binprm +EXPORT_SYMBOL vmlinux 0x5c6cfa3e scsi_print_result +EXPORT_SYMBOL vmlinux 0x5c8702e0 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x5ca394df tty_shutdown +EXPORT_SYMBOL vmlinux 0x5cc580b8 dev_warn +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ccc9045 _lv1_close_device +EXPORT_SYMBOL vmlinux 0x5ccd6b6b security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x5cddaa14 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x5ce8e53b tty_port_close_end +EXPORT_SYMBOL vmlinux 0x5cf30e10 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d17952d tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x5d28de52 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x5d3f01cb swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x5d816439 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x5d9814be input_grab_device +EXPORT_SYMBOL vmlinux 0x5d9ee108 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x5db7687a do_splice_to +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5de33198 make_bad_inode +EXPORT_SYMBOL vmlinux 0x5deaae08 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x5dead0ec of_get_gpio_flags +EXPORT_SYMBOL vmlinux 0x5deda6f1 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x5e302616 send_sig +EXPORT_SYMBOL vmlinux 0x5e37ac42 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e578861 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x5e57b253 dst_discard +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee86e35 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x5ef336ce ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x5ef6ee66 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x5effdd68 dst_release +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f08d5f3 pipe_lock +EXPORT_SYMBOL vmlinux 0x5f72d126 init_buffer +EXPORT_SYMBOL vmlinux 0x5f85a06a down_write_trylock +EXPORT_SYMBOL vmlinux 0x5f896949 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fbd90cb consume_skb +EXPORT_SYMBOL vmlinux 0x5fbe99ff dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x5fc26989 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x5fc5727f tr_type_trans +EXPORT_SYMBOL vmlinux 0x5fcaaab1 inet_frag_find +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fde766c __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x5fec717e nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x6000733a agp_put_bridge +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601b5ad1 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x6048af32 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x606d913c bio_map_user +EXPORT_SYMBOL vmlinux 0x6075ea92 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x607e829a input_register_handler +EXPORT_SYMBOL vmlinux 0x6080c716 aio_put_req +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60ab495a d_set_d_op +EXPORT_SYMBOL vmlinux 0x60f66530 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x61229b10 node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6147e9de gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x619de86e vfs_llseek +EXPORT_SYMBOL vmlinux 0x61a4487c _lv1_gpu_device_unmap +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c98c25 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x61cfc528 agp_backend_release +EXPORT_SYMBOL vmlinux 0x61dcdcd3 _lv1_pause +EXPORT_SYMBOL vmlinux 0x61dfdf3f sk_stop_timer +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x620992fc blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x6228330a dev_uc_del +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6258ff7a panic_notifier_list +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x627300df tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627ca046 block_write_begin +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x6284edab put_mnt_ns +EXPORT_SYMBOL vmlinux 0x6288cd20 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x62a05612 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x62bb2e15 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x62c426f5 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x62e628ea blk_rq_init +EXPORT_SYMBOL vmlinux 0x62fa46c5 module_refcount +EXPORT_SYMBOL vmlinux 0x62fd26d7 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x63006494 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x630c03db xfrm_lookup +EXPORT_SYMBOL vmlinux 0x630d1b84 up_read +EXPORT_SYMBOL vmlinux 0x6313903e clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631a9d1d scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x631c16b8 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x6336e767 find_vma +EXPORT_SYMBOL vmlinux 0x6360d639 cpu_all_bits +EXPORT_SYMBOL vmlinux 0x6364dc08 set_page_dirty +EXPORT_SYMBOL vmlinux 0x6365761b udplite_prot +EXPORT_SYMBOL vmlinux 0x6375e0bd textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6375eb35 udp_poll +EXPORT_SYMBOL vmlinux 0x6376d17a block_commit_write +EXPORT_SYMBOL vmlinux 0x638b886b xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x638c172e vfs_fstat +EXPORT_SYMBOL vmlinux 0x63a0fb9f i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x63a7c060 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x63b5bff3 dma_find_channel +EXPORT_SYMBOL vmlinux 0x63c3d6dc percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x63d8aada ip_setsockopt +EXPORT_SYMBOL vmlinux 0x63df9f20 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +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 0x6401ca3f pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x641cf481 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x6426e9c7 init_task +EXPORT_SYMBOL vmlinux 0x643679b9 lock_rename +EXPORT_SYMBOL vmlinux 0x644cda01 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x644e0385 fb_show_logo +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64519f41 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x6453aca4 d_invalidate +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649b5b8e security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x64c59acc rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x64c9e7a3 pci_iounmap +EXPORT_SYMBOL vmlinux 0x6517a7e1 sync_inode +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651bcfe7 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x652644a3 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6542c5ab vio_find_node +EXPORT_SYMBOL vmlinux 0x6547bea5 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x65709bad unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x6583d670 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x658702e3 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x660b88a4 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x661d1c47 unlock_rename +EXPORT_SYMBOL vmlinux 0x663f0d50 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x664589c1 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x6673ffc7 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a256b3 ida_pre_get +EXPORT_SYMBOL vmlinux 0x66ad1cb3 _lv1_set_lpm_general_control +EXPORT_SYMBOL vmlinux 0x66bb4eef pci_domain_nr +EXPORT_SYMBOL vmlinux 0x66c5c2c1 input_release_device +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66faeea1 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x67245b7e jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x673b2759 of_device_is_available +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x673fe075 __devm_release_region +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +EXPORT_SYMBOL vmlinux 0x67839cb3 send_sig_info +EXPORT_SYMBOL vmlinux 0x679adcc2 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67cb75d0 touch_atime +EXPORT_SYMBOL vmlinux 0x68319c67 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x6832a005 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x6837e5e1 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x686cdd1a generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x6870e78a dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68a4f069 vio_disable_interrupts +EXPORT_SYMBOL vmlinux 0x68c3fb76 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x68e1ef51 smu_present +EXPORT_SYMBOL vmlinux 0x68e9216c pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x690bb33e tcp_splice_read +EXPORT_SYMBOL vmlinux 0x69417a58 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x694d6174 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x696df9dc dcache_readdir +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x699ccbf8 _lv1_deconfigure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f32610 __cputime_msec_factor +EXPORT_SYMBOL vmlinux 0x69f3af71 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a187fca __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x6a2a0be0 sock_no_bind +EXPORT_SYMBOL vmlinux 0x6a55f01b __quota_error +EXPORT_SYMBOL vmlinux 0x6a5a7fbe elevator_exit +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a673c2e of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a79f616 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x6a8ba33e kset_unregister +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6adfa6b4 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x6ae8472a sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x6ae928bd pci_save_state +EXPORT_SYMBOL vmlinux 0x6ae9e3d4 tty_port_open +EXPORT_SYMBOL vmlinux 0x6aeeb8dd ide_dump_status +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1ecec0 tty_check_change +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b387694 _lv1_end_of_interrupt_ext +EXPORT_SYMBOL vmlinux 0x6b589a6e _lv1_net_add_multicast_address +EXPORT_SYMBOL vmlinux 0x6b5dfe73 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x6b6d7da6 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x6b6f0c4b _lv1_create_repository_node +EXPORT_SYMBOL vmlinux 0x6ba91c6f kill_litter_super +EXPORT_SYMBOL vmlinux 0x6baefcb8 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x6bb86b21 dev_addr_del +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6c09fe26 pcibus_to_node +EXPORT_SYMBOL vmlinux 0x6c3ebcbd neigh_table_init +EXPORT_SYMBOL vmlinux 0x6c530e3f scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6a83fd tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x6c6d8ef2 simple_getattr +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c9043c4 get_disk +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6ce7727e jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x6ceede5a pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +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 0x6d303122 ps2_end_command +EXPORT_SYMBOL vmlinux 0x6d50c715 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x6d53419f input_register_handle +EXPORT_SYMBOL vmlinux 0x6d6c44cd scsi_execute +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dd61a2b pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x6ddc8c83 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e004f45 unregister_netdev +EXPORT_SYMBOL vmlinux 0x6e1bbd9c tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x6e2427c3 skb_find_text +EXPORT_SYMBOL vmlinux 0x6e3faf86 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x6e41d36e __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x6e525e93 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e87a819 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6e9f2095 tty_write_room +EXPORT_SYMBOL vmlinux 0x6ebc3b8c of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x6efd9519 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x6f067a56 input_set_capability +EXPORT_SYMBOL vmlinux 0x6f3a85e0 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x6f3aea3c dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x6f58fec2 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x6f5c1aad udp_proc_register +EXPORT_SYMBOL vmlinux 0x6f694fbb __invalidate_device +EXPORT_SYMBOL vmlinux 0x6f721644 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fa331ed _lv1_construct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0x6fc55723 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x6fd7297d devm_free_irq +EXPORT_SYMBOL vmlinux 0x6fe2194c directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x700edca8 dquot_destroy +EXPORT_SYMBOL vmlinux 0x701699b2 _lv1_set_spe_privilege_state_area_1_register +EXPORT_SYMBOL vmlinux 0x701c01db pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x70299a45 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x704c4365 __cputime_sec_factor +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705764c1 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x705c57b2 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x706a1e8e agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x70808abc tcf_hash_check +EXPORT_SYMBOL vmlinux 0x70a6e83f cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70bd74da kobject_del +EXPORT_SYMBOL vmlinux 0x70c2094b mb_cache_create +EXPORT_SYMBOL vmlinux 0x70c7f0e3 tty_free_termios +EXPORT_SYMBOL vmlinux 0x70f3a2b4 _dev_info +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x71286581 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x712a8c51 bio_free +EXPORT_SYMBOL vmlinux 0x714c2724 set_device_ro +EXPORT_SYMBOL vmlinux 0x716eb2b3 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x7176ce32 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x718d8f8d abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x718fcc71 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x71934838 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x7195cb14 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a9546b xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x71aafc49 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x71ac7db2 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x71be2560 simple_readpage +EXPORT_SYMBOL vmlinux 0x71f124e0 stop_tty +EXPORT_SYMBOL vmlinux 0x71f24fab security_path_chown +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x720f4cd9 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x724431e9 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x729b4a83 _lv1_get_spe_all_interrupt_statuses +EXPORT_SYMBOL vmlinux 0x72a17aff vfs_writev +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72c98139 __arch_hweight64 +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ecc00f flex_array_shrink +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base +EXPORT_SYMBOL vmlinux 0x7326a1de security_path_mknod +EXPORT_SYMBOL vmlinux 0x732e0f40 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7339aa3a cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x734ef893 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x735280f6 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x7362ace9 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x73749620 __page_symlink +EXPORT_SYMBOL vmlinux 0x7387bd24 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x7387cc79 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x73888fb4 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73b992dc idr_remove_all +EXPORT_SYMBOL vmlinux 0x73e05753 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x74181735 register_quota_format +EXPORT_SYMBOL vmlinux 0x74439e3a tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x74579be7 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x746bc500 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x74844157 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x749911be vio_cmo_set_dev_desired +EXPORT_SYMBOL vmlinux 0x749d4a35 blk_insert_request +EXPORT_SYMBOL vmlinux 0x74ad5595 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x74b4648e netif_carrier_on +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x7514ee12 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x75230449 blk_complete_request +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x754a4760 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x755046fd unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x75575e71 skb_gso_segment +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 0x75793eca read_cache_page_gfp +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 0x75c84668 __blk_end_request +EXPORT_SYMBOL vmlinux 0x75e4f5aa pasemi_read_mac_reg +EXPORT_SYMBOL vmlinux 0x75eb4d7e rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76339d65 init_net +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x764bf865 nonseekable_open +EXPORT_SYMBOL vmlinux 0x764e2224 _lv1_disconnect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x765ddd42 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x769b25d2 _lv1_get_version_info +EXPORT_SYMBOL vmlinux 0x769f397c sock_create_kern +EXPORT_SYMBOL vmlinux 0x76a6107f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76df8db9 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x76f43349 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x770286a4 path_is_under +EXPORT_SYMBOL vmlinux 0x770b6ce1 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x771233eb nf_reinject +EXPORT_SYMBOL vmlinux 0x77144936 _lv1_disconnect_irq_plug +EXPORT_SYMBOL vmlinux 0x7715aae8 __nla_put +EXPORT_SYMBOL vmlinux 0x772121f3 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x772af285 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7748d13c nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x77567aa3 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x77583805 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x7780eec9 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a621b8 pci_find_capability +EXPORT_SYMBOL vmlinux 0x77a6cfda user_path_at +EXPORT_SYMBOL vmlinux 0x77b862be thermal_zone_device_update +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 0x77fef4e5 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x77ff642e dm_table_event +EXPORT_SYMBOL vmlinux 0x7829c8b8 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x783bbb98 dns_query +EXPORT_SYMBOL vmlinux 0x786dcea7 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x788ee17d kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x789a17f7 _lv1_destruct_logical_spe +EXPORT_SYMBOL vmlinux 0x78a1a02a dma_pool_create +EXPORT_SYMBOL vmlinux 0x78a7e114 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x78a8166b cfb_copyarea +EXPORT_SYMBOL vmlinux 0x78d0afe4 do_sync_write +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 0x79114e8d alloc_file +EXPORT_SYMBOL vmlinux 0x794d1eab dget_parent +EXPORT_SYMBOL vmlinux 0x7963747e tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7993a4e8 dcb_getapp +EXPORT_SYMBOL vmlinux 0x799b4a51 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79ace7fd elv_queue_empty +EXPORT_SYMBOL vmlinux 0x79d061b2 d_move +EXPORT_SYMBOL vmlinux 0x79d79425 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x79d8e17f blk_stop_queue +EXPORT_SYMBOL vmlinux 0x79f5c77c bdi_register +EXPORT_SYMBOL vmlinux 0x7a0ca93b ihold +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3a0b90 mntget +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7aa6938b inet_ioctl +EXPORT_SYMBOL vmlinux 0x7aa9e259 _lv1_map_htab +EXPORT_SYMBOL vmlinux 0x7ac5fdb9 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x7ad761d2 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x7ae26da3 vfs_getattr +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7b0673b3 skb_split +EXPORT_SYMBOL vmlinux 0x7b12ae6c arp_create +EXPORT_SYMBOL vmlinux 0x7b317ebc tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x7b410178 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x7b411c9f single_open +EXPORT_SYMBOL vmlinux 0x7b5da57f tty_register_driver +EXPORT_SYMBOL vmlinux 0x7b622a45 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x7b718228 ida_destroy +EXPORT_SYMBOL vmlinux 0x7b77c35b ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x7b8d1ef2 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b904d23 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x7b953a4d bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x7bccd995 elevator_init +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bf3b523 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x7bf6a746 dm_io +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c02004a check_disk_size_change +EXPORT_SYMBOL vmlinux 0x7c039687 sg_miter_start +EXPORT_SYMBOL vmlinux 0x7c067b0b __pagevec_release +EXPORT_SYMBOL vmlinux 0x7c2a14bf blk_integrity_register +EXPORT_SYMBOL vmlinux 0x7c2a8cb9 dma_iommu_ops +EXPORT_SYMBOL vmlinux 0x7c30d617 inet_addr_type +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +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 0x7ca549d1 vfs_symlink +EXPORT_SYMBOL vmlinux 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7ccfb119 sock_wfree +EXPORT_SYMBOL vmlinux 0x7ce0f5bf alloc_disk_node +EXPORT_SYMBOL vmlinux 0x7cec6f0a iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x7cf70e10 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x7cf89dbb sock_wmalloc +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d145483 block_write_full_page +EXPORT_SYMBOL vmlinux 0x7d36ea33 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x7d53c9bf i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x7d60fec9 agp_copy_info +EXPORT_SYMBOL vmlinux 0x7d704850 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x7d912c25 ide_complete_rq +EXPORT_SYMBOL vmlinux 0x7da3141b d_validate +EXPORT_SYMBOL vmlinux 0x7dab2d0e simple_link +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dcf8fca compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x7dfc8afb blk_register_region +EXPORT_SYMBOL vmlinux 0x7e1e0e38 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x7e2f98de abort_creds +EXPORT_SYMBOL vmlinux 0x7e33cdbc generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e5bf19a inet_del_protocol +EXPORT_SYMBOL vmlinux 0x7e668547 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x7e67069a ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x7e76d8a3 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x7e92551f inet_recvmsg +EXPORT_SYMBOL vmlinux 0x7eae89ad bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x7eb5ee3a kset_register +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7ebebb5a fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ed45881 journal_force_commit +EXPORT_SYMBOL vmlinux 0x7ed8169f scsi_scan_host +EXPORT_SYMBOL vmlinux 0x7ef09f7c pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x7f1edb57 pci_select_bars +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f3f1dbc ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x7f40399f __nla_reserve +EXPORT_SYMBOL vmlinux 0x7f5bc466 dev_mc_add +EXPORT_SYMBOL vmlinux 0x7f69334e sock_update_classid +EXPORT_SYMBOL vmlinux 0x7f6b71a4 netdev_printk +EXPORT_SYMBOL vmlinux 0x7f73778e of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x7f7b7110 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x7f89b0c9 ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0x7f8f9a17 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x7f9f8841 idr_remove +EXPORT_SYMBOL vmlinux 0x7fb5b7f2 pci_request_regions +EXPORT_SYMBOL vmlinux 0x7fc530cc tty_port_init +EXPORT_SYMBOL vmlinux 0x7fda9a8b thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x8025d2fb dquot_initialize +EXPORT_SYMBOL vmlinux 0x8032f2ae inode_add_bytes +EXPORT_SYMBOL vmlinux 0x804a05f9 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x805485ab __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x807cf2fc may_umount +EXPORT_SYMBOL vmlinux 0x809a717f blk_fetch_request +EXPORT_SYMBOL vmlinux 0x80b1ad79 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x80d22910 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x811d786e pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x8125ee53 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x81419331 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x819e37be netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81b56f9f __bread +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81cff456 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x81d2ce10 bdget +EXPORT_SYMBOL vmlinux 0x81d9f7f2 _lv1_put_iopte +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e5b43d ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x81f5aa6f bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x81f8596e vfs_lstat +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82148971 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x8236f851 pci_release_regions +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8269fc42 register_cdrom +EXPORT_SYMBOL vmlinux 0x82716049 dqstats +EXPORT_SYMBOL vmlinux 0x829396b7 fetch_dev_dn +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b3dad1 dev_printk +EXPORT_SYMBOL vmlinux 0x82b6fc84 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x82c50a52 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82fc286d xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x831f3fbc follow_pfn +EXPORT_SYMBOL vmlinux 0x83222cb7 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x834c3fa2 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x83538425 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x8353b807 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x8393c40c update_region +EXPORT_SYMBOL vmlinux 0x8396eb01 key_alloc +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83aaf6a4 tcp_poll +EXPORT_SYMBOL vmlinux 0x83f75024 mach_maple +EXPORT_SYMBOL vmlinux 0x83f969f5 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x84026234 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x8419b484 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x84305cc9 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x84403956 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x845124e0 ps3_mm_phys_to_lpar +EXPORT_SYMBOL vmlinux 0x84526b0e sock_sendmsg +EXPORT_SYMBOL vmlinux 0x84638b32 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x84880689 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x849fe807 csum_and_copy_from_user +EXPORT_SYMBOL vmlinux 0x84ab15d8 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x84b782fd d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84d37ba4 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x84e1c99e register_8022_client +EXPORT_SYMBOL vmlinux 0x84fc4f7a sock_no_connect +EXPORT_SYMBOL vmlinux 0x851a04cb xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x851edeeb fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x853f0dc8 replace_mount_options +EXPORT_SYMBOL vmlinux 0x85639c32 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8573044a devm_ioremap +EXPORT_SYMBOL vmlinux 0x858689fc inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x85920f11 generic_show_options +EXPORT_SYMBOL vmlinux 0x8597eb47 plpar_hcall +EXPORT_SYMBOL vmlinux 0x85a3cc41 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85d077dd pci_set_power_state +EXPORT_SYMBOL vmlinux 0x85dd90e6 flex_array_clear +EXPORT_SYMBOL vmlinux 0x85df3340 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85f75817 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x862f4d10 phy_attach +EXPORT_SYMBOL vmlinux 0x8632926c blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x8648efe7 of_register_platform_driver +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8663bbf7 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x867475dd bio_clone +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86955d77 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x86b64788 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86f03287 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870547f5 km_query +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8727038c pci_dev_get +EXPORT_SYMBOL vmlinux 0x87316965 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x873a53ea __arch_hweight8 +EXPORT_SYMBOL vmlinux 0x87566fcd simple_empty +EXPORT_SYMBOL vmlinux 0x875b2cf6 register_filesystem +EXPORT_SYMBOL vmlinux 0x87658ddd rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x8769163f scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x8782c56b rfkill_alloc +EXPORT_SYMBOL vmlinux 0x8784abde __getblk +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878b8293 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x87a6ca56 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x87e401cd sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x88031e0c i2c_release_client +EXPORT_SYMBOL vmlinux 0x880da1b1 _lv1_get_logical_partition_id +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8815c331 elevator_change +EXPORT_SYMBOL vmlinux 0x8833bc7e __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x887afb4d dcache_dir_close +EXPORT_SYMBOL vmlinux 0x88801e61 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x88870d13 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x8887dd5a unregister_key_type +EXPORT_SYMBOL vmlinux 0x8895bd95 filp_open +EXPORT_SYMBOL vmlinux 0x8903312d dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x8936fc92 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table +EXPORT_SYMBOL vmlinux 0x895d2f52 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x8967cf3a unregister_con_driver +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x8998978c __devm_request_region +EXPORT_SYMBOL vmlinux 0x89a81557 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x89af8a8c default_llseek +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +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 0x89da4432 of_iomap +EXPORT_SYMBOL vmlinux 0x89e23075 of_get_property +EXPORT_SYMBOL vmlinux 0x89ec030c up_write +EXPORT_SYMBOL vmlinux 0x89fbda09 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x89fd0e66 inet_release +EXPORT_SYMBOL vmlinux 0x8a228fe4 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x8a4c8993 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x8a514bd4 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a932a66 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9bf68e cdrom_open +EXPORT_SYMBOL vmlinux 0x8a9cef2a _lv1_allocate_device_dma_region +EXPORT_SYMBOL vmlinux 0x8abda1ca pci_get_slot +EXPORT_SYMBOL vmlinux 0x8abeba2e blk_start_queue +EXPORT_SYMBOL vmlinux 0x8ac363a5 input_free_device +EXPORT_SYMBOL vmlinux 0x8ad3708e xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x8adbe1f6 agp_free_memory +EXPORT_SYMBOL vmlinux 0x8ae3046a skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x8b024ef4 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x8b13a36f nobh_write_end +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b6c55f8 module_layout +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b81bdef dev_addr_add +EXPORT_SYMBOL vmlinux 0x8b9e820e alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x8bd818ce pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x8c10ed36 inode_permission +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c762951 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x8c8d79c0 _lv1_gpu_context_iomap +EXPORT_SYMBOL vmlinux 0x8cc42f31 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x8cc4e3a0 log_start_commit +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8d0752af tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x8d160710 d_rehash +EXPORT_SYMBOL vmlinux 0x8d1d82de bio_kmalloc +EXPORT_SYMBOL vmlinux 0x8d1ec39d pci_set_mwi +EXPORT_SYMBOL vmlinux 0x8d46844e blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x8d4affed input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x8d7cfbb8 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user +EXPORT_SYMBOL vmlinux 0x8d979a93 cont_write_begin +EXPORT_SYMBOL vmlinux 0x8da0a2a2 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8de2fbc5 _lv1_get_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x8df772da i2c_use_client +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e1c7301 pci_target_state +EXPORT_SYMBOL vmlinux 0x8e21e2f0 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x8e2cdaf6 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x8e4a97ee bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x8e81ad23 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x8ebe98a2 sk_alloc +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ed72f95 f_setown +EXPORT_SYMBOL vmlinux 0x8ede1d6d noop_qdisc +EXPORT_SYMBOL vmlinux 0x8ee35ad9 of_unregister_driver +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8eea1bc9 smu_poll +EXPORT_SYMBOL vmlinux 0x8ef230b4 bio_map_kern +EXPORT_SYMBOL vmlinux 0x8ef30516 mpage_readpages +EXPORT_SYMBOL vmlinux 0x8ef5be55 find_inode_number +EXPORT_SYMBOL vmlinux 0x8ef8e71a may_umount_tree +EXPORT_SYMBOL vmlinux 0x8f02a4e2 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x8f1eccba inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x8f267732 phy_device_register +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f589e48 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x8f58b491 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x8f63758f bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f7924c9 mac_find_mode +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8f86e2e1 agp_bridge +EXPORT_SYMBOL vmlinux 0x8f8dabe4 of_phy_connect +EXPORT_SYMBOL vmlinux 0x8fb12bd9 macio_release_resources +EXPORT_SYMBOL vmlinux 0x8fdadfae inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900834bc lro_receive_frags +EXPORT_SYMBOL vmlinux 0x9013725c phy_register_fixup +EXPORT_SYMBOL vmlinux 0x90145826 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x9060e9db gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x906821a0 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x907017a2 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x907c49c8 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x90a24ac2 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x90a90665 bio_add_page +EXPORT_SYMBOL vmlinux 0x90aa6a71 kernel_listen +EXPORT_SYMBOL vmlinux 0x90c0b8b3 thaw_process +EXPORT_SYMBOL vmlinux 0x90c64529 dev_close +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90e79aa4 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x91201cef _lv1_enable_logical_spe +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x912afb11 search_binary_handler +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9147c987 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91630f22 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x916458f5 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x917f4306 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x919a93e1 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91bcfcc9 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x91bfda55 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x91c4feca _lv1_unmap_htab +EXPORT_SYMBOL vmlinux 0x91d08bfe i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x922c0d42 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x9235d18a __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923c54cf idr_destroy +EXPORT_SYMBOL vmlinux 0x923ecf2d abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x9270e18a tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x928dc8b5 rename_lock +EXPORT_SYMBOL vmlinux 0x92c5c3d8 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x92f3deea __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x92ff2df0 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x9301ebcc jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930b1127 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x930e83c8 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x93507f1c _lv1_gpu_memory_allocate +EXPORT_SYMBOL vmlinux 0x93610605 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x93621074 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x9372c90b inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x93a276e5 netpoll_setup +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93aa74bb tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x93af7e88 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x93b27295 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x93c27e69 phy_driver_register +EXPORT_SYMBOL vmlinux 0x93ccb75d sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x93d9da87 input_open_device +EXPORT_SYMBOL vmlinux 0x93debec4 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x94007baf redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x94192362 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x943bc885 bh_submit_read +EXPORT_SYMBOL vmlinux 0x943dc80f csum_and_copy_to_user +EXPORT_SYMBOL vmlinux 0x94467edf blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x946b12fd nf_hook_slow +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a7a656 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x94b1537c audit_log_start +EXPORT_SYMBOL vmlinux 0x94ca49eb scsi_print_sense +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94dac4ef macio_dev_get +EXPORT_SYMBOL vmlinux 0x94e37d19 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x94e74beb vfs_link +EXPORT_SYMBOL vmlinux 0x950157eb seq_release +EXPORT_SYMBOL vmlinux 0x950ffe81 cdrom_mode_sense +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 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95562144 elv_add_request +EXPORT_SYMBOL vmlinux 0x956f4c3b posix_test_lock +EXPORT_SYMBOL vmlinux 0x957fe3f9 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x95c768f2 sk_common_release +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x962efbde macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x96479a67 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x965cac27 vc_resize +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x96687b96 napi_complete +EXPORT_SYMBOL vmlinux 0x96a51694 rfkill_register +EXPORT_SYMBOL vmlinux 0x96c946e5 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x97037dea __find_get_block +EXPORT_SYMBOL vmlinux 0x9725bdaf of_platform_device_create +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976e014f _lv1_map_device_mmio_region +EXPORT_SYMBOL vmlinux 0x9794a51a agp_enable +EXPORT_SYMBOL vmlinux 0x97a27f65 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x97aa8fec fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x97d8f03c arp_tbl +EXPORT_SYMBOL vmlinux 0x97f614a0 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x98177648 _lv1_set_lpm_interval +EXPORT_SYMBOL vmlinux 0x9831e9e4 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x983d8b69 del_timer +EXPORT_SYMBOL vmlinux 0x983e09f5 irq_stat +EXPORT_SYMBOL vmlinux 0x98451492 notify_change +EXPORT_SYMBOL vmlinux 0x98622717 giveup_fpu +EXPORT_SYMBOL vmlinux 0x98646215 mii_check_media +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988126df mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x989587a7 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x98cda68d default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x98d46e78 pid_task +EXPORT_SYMBOL vmlinux 0x98e5641e netif_rx_ni +EXPORT_SYMBOL vmlinux 0x98f6cedc mdiobus_scan +EXPORT_SYMBOL vmlinux 0x98fa4cfd ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x99462799 unlock_super +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x997547da generic_fillattr +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9995c7dd journal_stop +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c24cfe _lv1_free_device_dma_region +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e1489a cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x99e94efa pcim_pin_device +EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1ffb92 _lv1_clear_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0x9a278236 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a6c2531 pasemi_dma_init +EXPORT_SYMBOL vmlinux 0x9a944a62 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x9a97354d inode_init_once +EXPORT_SYMBOL vmlinux 0x9aa2d266 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x9aaa1353 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9abd8708 mpage_writepages +EXPORT_SYMBOL vmlinux 0x9b052aa2 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x9b0fede0 skb_copy +EXPORT_SYMBOL vmlinux 0x9b387fee __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b3af09f tty_port_put +EXPORT_SYMBOL vmlinux 0x9b4bde0a pci_pme_active +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b5ac1a2 flush_old_exec +EXPORT_SYMBOL vmlinux 0x9b761a48 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x9b7ada1a jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x9b8bf866 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x9b9df9a7 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bfd4f7e nla_put +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c25daed filemap_fault +EXPORT_SYMBOL vmlinux 0x9c28451b max8925_reg_write +EXPORT_SYMBOL vmlinux 0x9c4065ca pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x9c461585 kill_block_super +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c8f4639 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x9c900217 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x9ca78e94 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc2370e jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce7a4f6 init_timer_key +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d068e51 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0x9d0eccf4 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d55836d tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x9d786943 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d819448 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x9da0017a dev_remove_pack +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dc1e604 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x9dcc5218 dump_write +EXPORT_SYMBOL vmlinux 0x9de212af __lookup_one_len +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e1acf9e pci_read_irq_line +EXPORT_SYMBOL vmlinux 0x9e24c533 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x9e7e6851 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eac6d2a d_alloc_root +EXPORT_SYMBOL vmlinux 0x9eb51991 fget +EXPORT_SYMBOL vmlinux 0x9eb68cd3 iget_locked +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ed6bf86 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x9edbecae snprintf +EXPORT_SYMBOL vmlinux 0x9ee78669 _lv1_write_virtual_uart +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f13aa0a user_revoke +EXPORT_SYMBOL vmlinux 0x9f1e594a override_creds +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f33805f powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4fb74c tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x9f51ca11 scsi_put_command +EXPORT_SYMBOL vmlinux 0x9f68602f kmem_cache_free +EXPORT_SYMBOL vmlinux 0x9f6a37b7 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9f866276 devm_iounmap +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fafe632 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x9fc3ca84 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0x9ff879a6 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xa005e044 radix_tree_delete +EXPORT_SYMBOL vmlinux 0xa02b41c7 open_exec +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04a6b66 sock_init_data +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0729925 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0801778 simple_fill_super +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b9244d tty_name +EXPORT_SYMBOL vmlinux 0xa0c65c16 dquot_commit +EXPORT_SYMBOL vmlinux 0xa0cb4d36 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0d485ea udp_prot +EXPORT_SYMBOL vmlinux 0xa0e57ef4 sg_miter_next +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa11b50ee genl_register_mc_group +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa149bed0 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1881b2a ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xa1a5e789 file_update_time +EXPORT_SYMBOL vmlinux 0xa1b750d2 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c4b6d2 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xa1c538fb sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c8a509 add_timer +EXPORT_SYMBOL vmlinux 0xa1e35297 proto_unregister +EXPORT_SYMBOL vmlinux 0xa1ec8f1c __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa1f1bb34 pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa20bcaeb skb_set_dev +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2127cdc pasemi_dma_alloc_flag +EXPORT_SYMBOL vmlinux 0xa224f8c2 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xa26fe52c mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xa281cfb5 setattr_copy +EXPORT_SYMBOL vmlinux 0xa29ba5be sock_register +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2a94150 wake_up_process +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c21e15 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xa2c69f9b ide_stall_queue +EXPORT_SYMBOL vmlinux 0xa2c6dc59 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xa2cf28d7 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xa2dc5981 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2fa8dd9 journal_update_format +EXPORT_SYMBOL vmlinux 0xa307d1b2 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xa3091aad ide_wait_stat +EXPORT_SYMBOL vmlinux 0xa30e8035 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xa317f38e tty_set_operations +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa32d1bf2 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa35eb73a __lock_buffer +EXPORT_SYMBOL vmlinux 0xa36c59c0 vc_cons +EXPORT_SYMBOL vmlinux 0xa3918334 scsi_get_command +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3c4620f i2c_del_driver +EXPORT_SYMBOL vmlinux 0xa3cb9a1c devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xa3db99f0 blkdev_get +EXPORT_SYMBOL vmlinux 0xa3f31d81 dquot_transfer +EXPORT_SYMBOL vmlinux 0xa42476d8 d_lookup +EXPORT_SYMBOL vmlinux 0xa4263356 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xa43be78a blkdev_put +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa480c04b _lv1_gpu_context_attribute +EXPORT_SYMBOL vmlinux 0xa48606ed of_dev_get +EXPORT_SYMBOL vmlinux 0xa48879a2 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xa4ac7b10 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bdd447 __cputime_clockt_factor +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4fec5f5 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xa5010c0d scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xa5153867 eth_header_parse +EXPORT_SYMBOL vmlinux 0xa51fe729 bdi_unregister +EXPORT_SYMBOL vmlinux 0xa544df6c jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xa558108a mpage_writepage +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa5729176 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59b7a39 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xa5b03770 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xa5e7b04b netdev_emerg +EXPORT_SYMBOL vmlinux 0xa60e73f1 generic_readlink +EXPORT_SYMBOL vmlinux 0xa6190ec5 mdiobus_free +EXPORT_SYMBOL vmlinux 0xa63b35ab security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xa63d1790 elv_rb_add +EXPORT_SYMBOL vmlinux 0xa6576657 current_fs_time +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa659d3ba do_sync_read +EXPORT_SYMBOL vmlinux 0xa65c7205 bio_put +EXPORT_SYMBOL vmlinux 0xa6731bc0 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xa673a1d9 eth_change_mtu +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a6176f blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xa6a83c85 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xa6cbf764 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6f689eb migrate_page +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa73178c1 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0xa746ea8f of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xa7608e03 phy_find_first +EXPORT_SYMBOL vmlinux 0xa7898fca tty_port_close +EXPORT_SYMBOL vmlinux 0xa79e89ee fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xa7b272e5 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xa7bef773 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8286bbc bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xa839a106 key_task_permission +EXPORT_SYMBOL vmlinux 0xa87311f1 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8ceb99f inet6_getname +EXPORT_SYMBOL vmlinux 0xa8ced546 _lv1_net_set_interrupt_status_indicator +EXPORT_SYMBOL vmlinux 0xa8deffde blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xa8e5c053 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xa8ea2c87 vm_map_ram +EXPORT_SYMBOL vmlinux 0xa8f2ec5f pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa907528a set_anon_super +EXPORT_SYMBOL vmlinux 0xa90c7718 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa91c77b6 _lv1_end_of_interrupt +EXPORT_SYMBOL vmlinux 0xa921c0fe tcf_hash_release +EXPORT_SYMBOL vmlinux 0xa92a4a62 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xa94266f0 down_trylock +EXPORT_SYMBOL vmlinux 0xa9799a21 journal_forget +EXPORT_SYMBOL vmlinux 0xa98a6770 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xa9be70a4 padata_do_serial +EXPORT_SYMBOL vmlinux 0xa9ce4b9e dev_open +EXPORT_SYMBOL vmlinux 0xa9e0ecfd macio_dev_put +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa9f24e06 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xaa0d890d dev_uc_init +EXPORT_SYMBOL vmlinux 0xaa0edca8 pasemi_dma_alloc_fun +EXPORT_SYMBOL vmlinux 0xaa165a00 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xaa2be2d3 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xaa549651 dev_uc_add +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa722fc9 dev_crit +EXPORT_SYMBOL vmlinux 0xaa775c2b tcf_exts_change +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaaa9ebfa ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xaab31a6a paca +EXPORT_SYMBOL vmlinux 0xaacd38d0 bio_pair_release +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab1731c8 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0xab1bff7f padata_free +EXPORT_SYMBOL vmlinux 0xab1c3bf1 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xab2bd8bb of_get_next_child +EXPORT_SYMBOL vmlinux 0xab464f63 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xab4fbd01 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xab61ef3e set_create_files_as +EXPORT_SYMBOL vmlinux 0xab66f611 _lv1_set_lpm_trigger_control +EXPORT_SYMBOL vmlinux 0xab697ec6 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab7f2887 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xabc2d547 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xabcd56e4 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabdea639 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xabee52aa gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac20097e blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac3676d8 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xac441583 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xac4f10e3 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac76cf3b pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xac9bde39 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xacb2c9bb scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd14ab8 _lv1_construct_logical_spe +EXPORT_SYMBOL vmlinux 0xace98f9e genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xacf1cecf journal_start_commit +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0d4638 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xad2097a6 kernel_read +EXPORT_SYMBOL vmlinux 0xad25139e filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad4bcd0e bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xad5f9d2a abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xad7b7787 try_to_release_page +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb464bc ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xadbfd419 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadeffe25 _lv1_gpu_context_intr +EXPORT_SYMBOL vmlinux 0xae17ef3a flex_array_free +EXPORT_SYMBOL vmlinux 0xae1f513d jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xae46a267 kmem_cache_name +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae62f4c5 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xae7646f1 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xae8d5458 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xae91d30e seq_printf +EXPORT_SYMBOL vmlinux 0xaeaa598f page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xaeb78af4 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xaec6abaf keyring_search +EXPORT_SYMBOL vmlinux 0xaede84dd read_cache_page +EXPORT_SYMBOL vmlinux 0xaee8d3ad tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf29050a framebuffer_release +EXPORT_SYMBOL vmlinux 0xaf2d1acc journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf36d3b8 task_nice +EXPORT_SYMBOL vmlinux 0xaf396727 vga_tryget +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf3ff68c create_empty_buffers +EXPORT_SYMBOL vmlinux 0xaf438d65 _lv1_get_repository_node_value +EXPORT_SYMBOL vmlinux 0xaf4679b3 __break_lease +EXPORT_SYMBOL vmlinux 0xaf5bb102 simple_release_fs +EXPORT_SYMBOL vmlinux 0xaf62e52b dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xaf6ca761 generic_setlease +EXPORT_SYMBOL vmlinux 0xaf8859f4 input_flush_device +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafc9991a cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xafcb4a0a phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xafcff091 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xafd4a6f9 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xafd9ef79 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb03a7abb phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xb03e5eb6 kobject_init +EXPORT_SYMBOL vmlinux 0xb08ad009 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xb0a3b6aa register_key_type +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0c4f8c0 sock_create_lite +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e9c5f9 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb14caae7 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xb151b34b ps3_sb_event_receive_port_destroy +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb165ef45 __irq_regs +EXPORT_SYMBOL vmlinux 0xb1664dd9 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xb18abc18 dev_addr_init +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19dfa1d vio_register_driver +EXPORT_SYMBOL vmlinux 0xb1a16685 register_console +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1f877bf dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xb20ccf46 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb238a228 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xb245f416 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xb25a0fc7 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2b0d772 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0xb2bcb47b create_proc_entry +EXPORT_SYMBOL vmlinux 0xb2cbe9bc of_register_driver +EXPORT_SYMBOL vmlinux 0xb2d8840c pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb34b5953 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xb3642a5a of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3bc412d tcp_prot +EXPORT_SYMBOL vmlinux 0xb3bd3b70 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xb3bf73df cpu_active_mask +EXPORT_SYMBOL vmlinux 0xb3d1b771 d_drop +EXPORT_SYMBOL vmlinux 0xb3fba828 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb4141858 module_put +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb434fe80 bioset_create +EXPORT_SYMBOL vmlinux 0xb46859b1 neigh_update +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4716211 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xb47d85fa padata_alloc +EXPORT_SYMBOL vmlinux 0xb48f8efe kobject_set_name +EXPORT_SYMBOL vmlinux 0xb493620f neigh_ifdown +EXPORT_SYMBOL vmlinux 0xb4b6a86c generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0xb4d8e6a6 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb51f8637 read_dev_sector +EXPORT_SYMBOL vmlinux 0xb52dffb4 __sock_create +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb56111ce jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xb56bfd9e smu_spinwait_cmd +EXPORT_SYMBOL vmlinux 0xb56efd02 ip6_xmit +EXPORT_SYMBOL vmlinux 0xb574af1a serio_reconnect +EXPORT_SYMBOL vmlinux 0xb57f7892 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5d37a61 kstat +EXPORT_SYMBOL vmlinux 0xb5e7d241 kobject_add +EXPORT_SYMBOL vmlinux 0xb5e90724 mutex_trylock +EXPORT_SYMBOL vmlinux 0xb5f26c73 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb642ca6d agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xb65f1b2c down_interruptible +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a657ab pci_enable_device +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d12bd8 km_report +EXPORT_SYMBOL vmlinux 0xb6d83f97 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xb6e37611 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xb6ec00c8 rt6_lookup +EXPORT_SYMBOL vmlinux 0xb702dae2 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xb727613d dev_mc_del +EXPORT_SYMBOL vmlinux 0xb7443853 proto_register +EXPORT_SYMBOL vmlinux 0xb7551776 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xb760402c dev_mc_sync +EXPORT_SYMBOL vmlinux 0xb78e0388 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xb7a29f45 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xb7ad149c mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7dc2b2e journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xb7eebc12 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xb809a4d7 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xb82a1808 dev_err +EXPORT_SYMBOL vmlinux 0xb83d27e0 unlock_page +EXPORT_SYMBOL vmlinux 0xb8666fc8 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb88b8855 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8a30c7e _lv1_add_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0xb8ad573e agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xb8cb82d1 tty_mutex +EXPORT_SYMBOL vmlinux 0xb8da2813 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xb8ee4aeb block_read_full_page +EXPORT_SYMBOL vmlinux 0xb8f21b5d gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xb908f8e2 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb91eeb8f uart_match_port +EXPORT_SYMBOL vmlinux 0xb91efe47 pci_find_bus +EXPORT_SYMBOL vmlinux 0xb92b9a90 is_container_init +EXPORT_SYMBOL vmlinux 0xb930ea68 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xb937c15e page_readlink +EXPORT_SYMBOL vmlinux 0xb93b9cb2 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xb9735fd1 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb991fc29 skb_make_writable +EXPORT_SYMBOL vmlinux 0xb9ae4b9b skb_put +EXPORT_SYMBOL vmlinux 0xb9b4794f seq_read +EXPORT_SYMBOL vmlinux 0xb9d00ae4 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xb9e4dc54 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xba013461 node_states +EXPORT_SYMBOL vmlinux 0xba122a2c smu_done_complete +EXPORT_SYMBOL vmlinux 0xba34795d simple_setattr +EXPORT_SYMBOL vmlinux 0xba3d69df dcache_dir_open +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5d8c70 of_phy_find_device +EXPORT_SYMBOL vmlinux 0xba603f04 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xbaa0e607 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaaee4c4 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xbae7b7be d_path +EXPORT_SYMBOL vmlinux 0xbae84816 skb_push +EXPORT_SYMBOL vmlinux 0xbb035575 kdb_current_task +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb2a9656 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xbb3ace84 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0xbb596adf cdev_add +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb5eaa49 kick_iocb +EXPORT_SYMBOL vmlinux 0xbb6be50f inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xbb777c12 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb86be4e sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xbb97d3eb jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbba83443 fb_class +EXPORT_SYMBOL vmlinux 0xbbb18f9f swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbcb8dbb pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xbc0647da pci_restore_state +EXPORT_SYMBOL vmlinux 0xbc12e897 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xbc13f053 arp_find +EXPORT_SYMBOL vmlinux 0xbc2b76f3 ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc37b856 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xbc3f19f1 gen_pool_free +EXPORT_SYMBOL vmlinux 0xbc417216 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xbc48073e unregister_quota_format +EXPORT_SYMBOL vmlinux 0xbc53fcf2 __seq_open_private +EXPORT_SYMBOL vmlinux 0xbc5e7e05 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xbca99a00 do_truncate +EXPORT_SYMBOL vmlinux 0xbcab0b64 of_register_spi_devices +EXPORT_SYMBOL vmlinux 0xbcb112a8 sock_create +EXPORT_SYMBOL vmlinux 0xbcbb346a kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xbcc2c620 blk_free_tags +EXPORT_SYMBOL vmlinux 0xbcfe855e inet_listen +EXPORT_SYMBOL vmlinux 0xbd06c00d mark_info_dirty +EXPORT_SYMBOL vmlinux 0xbd126317 __free_pages +EXPORT_SYMBOL vmlinux 0xbd1379ee skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xbd263c13 file_remove_suid +EXPORT_SYMBOL vmlinux 0xbd2c0d24 security_path_unlink +EXPORT_SYMBOL vmlinux 0xbd42fc26 alloc_disk +EXPORT_SYMBOL vmlinux 0xbd4b2ba7 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xbd4daa21 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xbd6c4cf1 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xbd7f8c9b idr_get_next +EXPORT_SYMBOL vmlinux 0xbd823fc7 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xbd8cfa15 pasemi_write_mac_reg +EXPORT_SYMBOL vmlinux 0xbd9e0e31 d_delete +EXPORT_SYMBOL vmlinux 0xbdb63f59 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc76dc2 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xbdc9652a scsi_remove_host +EXPORT_SYMBOL vmlinux 0xbdde934a dev_get_flags +EXPORT_SYMBOL vmlinux 0xbde5ace8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xbdf369fe sockfd_lookup +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdf98aed pci_claim_resource +EXPORT_SYMBOL vmlinux 0xbe17938a dev_load +EXPORT_SYMBOL vmlinux 0xbe1aeb27 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xbe1d7980 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xbe222c9e seq_putc +EXPORT_SYMBOL vmlinux 0xbe2626c6 nf_log_packet +EXPORT_SYMBOL vmlinux 0xbe3bbbdc key_type_keyring +EXPORT_SYMBOL vmlinux 0xbe47372a dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xbe814159 ida_remove +EXPORT_SYMBOL vmlinux 0xbe8c3ac6 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xbebe76ee seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xbef161a8 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbf9fb483 pipe_unlock +EXPORT_SYMBOL vmlinux 0xbfabfe59 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xbfb20630 account_page_writeback +EXPORT_SYMBOL vmlinux 0xbfb72457 skb_seq_read +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd72e79 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xbfdff814 of_get_address +EXPORT_SYMBOL vmlinux 0xbfe1f969 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff8182c plpar_hcall_norets +EXPORT_SYMBOL vmlinux 0xc00c808f netdev_alert +EXPORT_SYMBOL vmlinux 0xc01c70ba journal_set_features +EXPORT_SYMBOL vmlinux 0xc0245e09 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05db902 gen_pool_create +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0842325 fb_set_var +EXPORT_SYMBOL vmlinux 0xc089e473 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0c41911 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xc0d93e15 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xc0edcb75 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xc1120b97 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xc13511d7 cpumask_next_and +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc1b25e22 do_splice_from +EXPORT_SYMBOL vmlinux 0xc1b52eef __sk_dst_check +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d7d179 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc1da1875 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xc1ea4a1c force_sig +EXPORT_SYMBOL vmlinux 0xc215cd77 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xc2192cf0 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xc21cfe4f simple_write_end +EXPORT_SYMBOL vmlinux 0xc21fd48b skb_copy_expand +EXPORT_SYMBOL vmlinux 0xc223e868 generic_write_end +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc244eb39 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25938f1 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xc28daf44 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xc2908437 xfrm_input +EXPORT_SYMBOL vmlinux 0xc2b733d2 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fb9ee1 _lv1_shutdown_logical_partition +EXPORT_SYMBOL vmlinux 0xc2fcb51e scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xc3002678 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xc314c3d2 __cputime_jiffies_factor +EXPORT_SYMBOL vmlinux 0xc322e849 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xc382e421 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xc3bb7cd6 led_blink_set +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3cfcdbc inet_sendpage +EXPORT_SYMBOL vmlinux 0xc3dc0004 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xc3e139f2 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xc41f1696 _lv1_configure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0xc43f0681 scsi_free_command +EXPORT_SYMBOL vmlinux 0xc474a211 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc4862f36 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a33ba9 ilookup5 +EXPORT_SYMBOL vmlinux 0xc5089620 _lv1_stop_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xc50ee211 journal_clear_err +EXPORT_SYMBOL vmlinux 0xc52e624c prepare_creds +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5452922 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc59c41c8 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xc5b37c93 dquot_release +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc5f5825a tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xc5fed66f inet_frags_fini +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc644f830 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xc64842f2 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xc64f8148 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap +EXPORT_SYMBOL vmlinux 0xc69d2edc pci_choose_state +EXPORT_SYMBOL vmlinux 0xc6c51137 block_sync_page +EXPORT_SYMBOL vmlinux 0xc6d4dd73 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xc6e09a8f inet_accept +EXPORT_SYMBOL vmlinux 0xc6fe987f file_sb_list_del +EXPORT_SYMBOL vmlinux 0xc713492e sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xc72ed01c kthread_stop +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc742b2de key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xc74606cd filp_close +EXPORT_SYMBOL vmlinux 0xc7477d6a blk_get_request +EXPORT_SYMBOL vmlinux 0xc75335a9 lookup_hash +EXPORT_SYMBOL vmlinux 0xc756bec1 sock_no_poll +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7bd2f58 agp_create_memory +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc808d674 del_gendisk +EXPORT_SYMBOL vmlinux 0xc8138879 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc815b794 sock_map_fd +EXPORT_SYMBOL vmlinux 0xc83039ae __page_cache_alloc +EXPORT_SYMBOL vmlinux 0xc83c5216 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8573fa9 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xc86a6174 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc896720e genphy_read_status +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a4bacf idr_replace +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8cd68c6 mdiobus_register +EXPORT_SYMBOL vmlinux 0xc8da1c59 blk_end_request +EXPORT_SYMBOL vmlinux 0xc8e31d75 _lv1_configure_irq_state_bitmap +EXPORT_SYMBOL vmlinux 0xc8e8521f sock_wake_async +EXPORT_SYMBOL vmlinux 0xc8e90559 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xc8f696c3 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xc9035afa bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xc914bc4c km_policy_notify +EXPORT_SYMBOL vmlinux 0xc948fcd4 vfs_readlink +EXPORT_SYMBOL vmlinux 0xc95c545a no_llseek +EXPORT_SYMBOL vmlinux 0xc96ad5e8 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xc98d1d69 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xc98d2253 security_path_link +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9c40aa2 tty_kref_put +EXPORT_SYMBOL vmlinux 0xc9efff87 input_set_keycode +EXPORT_SYMBOL vmlinux 0xc9fc598d pasemi_read_dma_reg +EXPORT_SYMBOL vmlinux 0xca1feb22 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xca517b0b simple_lookup +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6256a5 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xca75006c nf_register_hook +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca8d21ed d_find_alias +EXPORT_SYMBOL vmlinux 0xcaabf3f9 pasemi_write_iob_reg +EXPORT_SYMBOL vmlinux 0xcab031aa qdisc_reset +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcac7ca39 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xcac83f5f phy_print_status +EXPORT_SYMBOL vmlinux 0xcae0b767 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0xcb22eea8 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xcb37cd77 rwsem_wake +EXPORT_SYMBOL vmlinux 0xcb6df8b2 tc_classify +EXPORT_SYMBOL vmlinux 0xcb6e19b7 mdiobus_read +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb79fb66 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xcb8247e0 pcim_iomap +EXPORT_SYMBOL vmlinux 0xcb9d80e0 tcf_register_action +EXPORT_SYMBOL vmlinux 0xcbc003ed phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbe8b038 _lv1_configure_execution_time_variable +EXPORT_SYMBOL vmlinux 0xcc040ff1 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xcc061e44 vio_unregister_device +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc22f48c clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xcc238ed5 journal_restart +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc3b6c3e downgrade_write +EXPORT_SYMBOL vmlinux 0xcc3fd4b4 vm_insert_page +EXPORT_SYMBOL vmlinux 0xcc417444 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xcc47bd29 security_path_symlink +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc5fa284 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xcc6be08f setup_arg_pages +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc89c246 pasemi_dma_alloc_chan +EXPORT_SYMBOL vmlinux 0xcc8e79e8 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0xccaee180 register_netdev +EXPORT_SYMBOL vmlinux 0xccbf448f bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xcccce710 cdrom_release +EXPORT_SYMBOL vmlinux 0xccd63d0f __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xccd81936 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xccd9f80d splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xcceb78d3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd0b7d5a pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xcd20ec2f ps3_dma_region_free +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd3bbe56 llc_add_pack +EXPORT_SYMBOL vmlinux 0xcd4692b1 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcd5bea61 set_bh_page +EXPORT_SYMBOL vmlinux 0xcd769f62 _lv1_gpu_device_map +EXPORT_SYMBOL vmlinux 0xcd81a44c freeze_bdev +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcdbadbfb journal_init_dev +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce1b3d40 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xce2778e9 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xce2cdea1 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xce3b3f09 profile_pc +EXPORT_SYMBOL vmlinux 0xce3d39f0 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5f151b blk_init_tags +EXPORT_SYMBOL vmlinux 0xce7ce037 of_translate_address +EXPORT_SYMBOL vmlinux 0xce8a9246 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xceb34ee8 mdiobus_write +EXPORT_SYMBOL vmlinux 0xcec2eaed blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xced977df scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xcede5e67 key_link +EXPORT_SYMBOL vmlinux 0xcee7ed11 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcf12c3c1 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xcf4f9827 unregister_nls +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcfa46cc7 ll_rw_block +EXPORT_SYMBOL vmlinux 0xcfb7667e xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xcfb7d5a0 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfba00d1 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xcfc288de serio_open +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcff0661a blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xcffa6c1b xfrm_register_km +EXPORT_SYMBOL vmlinux 0xd007b66b filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xd0167381 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd032186d mach_powermac +EXPORT_SYMBOL vmlinux 0xd05931ec _lv1_set_lpm_counter_control +EXPORT_SYMBOL vmlinux 0xd05e77e3 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xd077f644 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xd07b12e6 unregister_console +EXPORT_SYMBOL vmlinux 0xd08701fd __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xd0883a1f __scm_destroy +EXPORT_SYMBOL vmlinux 0xd0883ba6 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xd08dcf27 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xd09dee82 vga_get +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0acc6aa register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd0b72f41 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd0b79387 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xd0c07415 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xd0d91eb0 qdisc_destroy +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 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd128f56f write_inode_now +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd141d5b6 register_netdevice +EXPORT_SYMBOL vmlinux 0xd1505d4f truncate_pagecache +EXPORT_SYMBOL vmlinux 0xd15154b5 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xd1520244 revert_creds +EXPORT_SYMBOL vmlinux 0xd16d7b2c generic_getxattr +EXPORT_SYMBOL vmlinux 0xd1764ad6 release_sock +EXPORT_SYMBOL vmlinux 0xd1771428 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xd1b81372 udp_disconnect +EXPORT_SYMBOL vmlinux 0xd1e403b3 mach_ps3 +EXPORT_SYMBOL vmlinux 0xd1ece546 i2c_master_send +EXPORT_SYMBOL vmlinux 0xd1f02626 d_alloc_name +EXPORT_SYMBOL vmlinux 0xd1fe8ebb _lv1_get_spe_interrupt_status +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 0xd276afc6 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a6470e proc_symlink +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2d51180 of_gpio_count +EXPORT_SYMBOL vmlinux 0xd2dd4f8b mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xd2ea718c tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xd2ef2638 smu_cmdbuf_abs +EXPORT_SYMBOL vmlinux 0xd2f12223 phy_connect +EXPORT_SYMBOL vmlinux 0xd2fd775c of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xd315b949 make_EII_client +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd32031a5 put_page +EXPORT_SYMBOL vmlinux 0xd33bc69d bdput +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd34db81d audit_log_format +EXPORT_SYMBOL vmlinux 0xd3729050 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xd376d56e sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd38c492d __napi_schedule +EXPORT_SYMBOL vmlinux 0xd3988cf6 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xd3ad80f8 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3e714e4 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xd3e77e79 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd419e322 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xd423c88e inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xd4300670 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xd44afd8d max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xd46d0968 ioremap_flags +EXPORT_SYMBOL vmlinux 0xd4738c0d blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd498cb0a uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xd4dab2ec journal_destroy +EXPORT_SYMBOL vmlinux 0xd4fcdc55 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xd5048510 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xd52674d3 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xd531c0d3 submit_bh +EXPORT_SYMBOL vmlinux 0xd540ec45 km_new_mapping +EXPORT_SYMBOL vmlinux 0xd54e741d pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0xd55a15bd __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xd55f3209 _lv1_remove_repository_node +EXPORT_SYMBOL vmlinux 0xd56b954d blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xd59775ad __breadahead +EXPORT_SYMBOL vmlinux 0xd59bad10 netif_napi_add +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5cecc9c ip_options_compile +EXPORT_SYMBOL vmlinux 0xd5d5ee0d proc_mkdir +EXPORT_SYMBOL vmlinux 0xd5dc18b5 pci_match_id +EXPORT_SYMBOL vmlinux 0xd5e1d719 _lv1_set_ppe_periodic_tracer_frequency +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6308430 icmp_send +EXPORT_SYMBOL vmlinux 0xd63bb483 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xd66465c4 deny_write_access +EXPORT_SYMBOL vmlinux 0xd67a3cfc kill_anon_super +EXPORT_SYMBOL vmlinux 0xd6b7a776 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xd6d2b9aa scsi_host_get +EXPORT_SYMBOL vmlinux 0xd6edf811 _lv1_release_memory +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6fd4053 __arch_hweight32 +EXPORT_SYMBOL vmlinux 0xd7048bf6 of_device_register +EXPORT_SYMBOL vmlinux 0xd7085ce2 page_symlink +EXPORT_SYMBOL vmlinux 0xd70ac4d9 key_unlink +EXPORT_SYMBOL vmlinux 0xd723a656 of_find_matching_node +EXPORT_SYMBOL vmlinux 0xd726c291 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xd7283917 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xd72e1cfc _lv1_set_lpm_spr_trigger +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd786c0ea plpar_hcall9 +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7b9c07e elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xd7bc638b netif_skb_features +EXPORT_SYMBOL vmlinux 0xd7cf85cf fput +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd8063ab5 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xd82fc3b8 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xd844ee3e skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xd849ecea blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xd872dc8d inet_put_port +EXPORT_SYMBOL vmlinux 0xd87b90b1 seq_puts +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8d31619 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9152137 security_file_permission +EXPORT_SYMBOL vmlinux 0xd91a75d3 inode_lock +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd96620c0 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9b7c4f7 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9d4d09d _lv1_release_io_segment +EXPORT_SYMBOL vmlinux 0xd9dbf161 pci_get_class +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda1e56d4 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xda311c2d agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xda37cb27 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xda496e13 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xda5aab1b ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa3163b scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xdac364fb pskb_expand_head +EXPORT_SYMBOL vmlinux 0xdad19eff bio_alloc +EXPORT_SYMBOL vmlinux 0xdad75092 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb0a062d skb_copy_bits +EXPORT_SYMBOL vmlinux 0xdb17a484 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xdb185e7b __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xdb243807 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xdb4b1f79 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xdb4c3b26 thaw_super +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb656a22 security_file_mmap +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb984005 secpath_dup +EXPORT_SYMBOL vmlinux 0xdbaa6ab1 nf_log_register +EXPORT_SYMBOL vmlinux 0xdbab749d mii_nway_restart +EXPORT_SYMBOL vmlinux 0xdbac839f __napi_complete +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe01e35 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xdbea0699 ps3_dma_region_create +EXPORT_SYMBOL vmlinux 0xdbfb487a dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xdbfe9def softnet_data +EXPORT_SYMBOL vmlinux 0xdc0206b7 add_disk +EXPORT_SYMBOL vmlinux 0xdc026140 dev_emerg +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc127dfd skb_checksum +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1ecce4 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3979a3 __f_setown +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc434b88 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc727289 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0xdc8c77fe radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb5671d strlen +EXPORT_SYMBOL vmlinux 0xdcc78708 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdd28a1b1 vfs_statfs +EXPORT_SYMBOL vmlinux 0xdd3a9fd4 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xdd739a97 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd955144 __debugger +EXPORT_SYMBOL vmlinux 0xde0887c8 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xde37a701 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea2e988 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xdecacf54 vfs_unlink +EXPORT_SYMBOL vmlinux 0xdef8dcc9 alloc_pages_current +EXPORT_SYMBOL vmlinux 0xdf0fe8f2 of_device_unregister +EXPORT_SYMBOL vmlinux 0xdf212e4e phy_detach +EXPORT_SYMBOL vmlinux 0xdf2c165d ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xdf2d1946 init_special_inode +EXPORT_SYMBOL vmlinux 0xdf38fb5a scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf51b679 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xdf546a1a swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf60fc83 _lv1_net_start_tx_dma +EXPORT_SYMBOL vmlinux 0xdf679ea1 find_lock_page +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf94195e km_policy_expired +EXPORT_SYMBOL vmlinux 0xdf983652 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xdf9cca06 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xdfd37c39 register_con_driver +EXPORT_SYMBOL vmlinux 0xdfdc9da0 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xe0002085 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xe010de6a tcp_make_synack +EXPORT_SYMBOL vmlinux 0xe029edd8 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xe04b6097 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xe05a6b8a ___pskb_trim +EXPORT_SYMBOL vmlinux 0xe068873b ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xe06d5799 rtnl_notify +EXPORT_SYMBOL vmlinux 0xe072b192 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe093ce3e inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xe0b00c9f cdev_alloc +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b3fee3 __mutex_init +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0d4f72f soft_cursor +EXPORT_SYMBOL vmlinux 0xe0e40672 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe129f3cb generic_permission +EXPORT_SYMBOL vmlinux 0xe135a9ee get_fs_type +EXPORT_SYMBOL vmlinux 0xe16a0713 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe184f77c flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xe1cbb1b6 input_get_keycode +EXPORT_SYMBOL vmlinux 0xe1cda025 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xe1d15ecf kern_path +EXPORT_SYMBOL vmlinux 0xe1f0bdbc __inet6_hash +EXPORT_SYMBOL vmlinux 0xe200410f __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xe20c63e7 _lv1_unmap_device_mmio_region +EXPORT_SYMBOL vmlinux 0xe20d44a7 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0xe220ceb8 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe234d922 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d2677 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe28c2d53 scsi_host_put +EXPORT_SYMBOL vmlinux 0xe295896a dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xe2a0e26b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xe2a31478 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xe2ac9de5 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xe2b95c27 dquot_disable +EXPORT_SYMBOL vmlinux 0xe2c19401 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2da12d8 follow_down +EXPORT_SYMBOL vmlinux 0xe2de8423 vfs_readdir +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe2f000ed dput +EXPORT_SYMBOL vmlinux 0xe3022f12 unload_nls +EXPORT_SYMBOL vmlinux 0xe3169be0 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xe3192d90 tcp_connect +EXPORT_SYMBOL vmlinux 0xe31c9f84 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xe3440f32 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xe34c7e42 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xe3558ab2 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0xe35dd63a __kfree_skb +EXPORT_SYMBOL vmlinux 0xe3612de4 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xe362293a i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3a82938 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xe3ad969e kmalloc_caches +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3b76af4 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xe407c438 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xe41ac360 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xe47fa078 file_permission +EXPORT_SYMBOL vmlinux 0xe47fd3d8 mount_ns +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4870910 inet6_release +EXPORT_SYMBOL vmlinux 0xe497ac1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xe4bec35a wireless_spy_update +EXPORT_SYMBOL vmlinux 0xe4ce9804 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xe4fc5fca blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe50044ed blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xe51077bd truncate_setsize +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5428d90 register_nls +EXPORT_SYMBOL vmlinux 0xe558a7f6 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xe577c7b8 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a92637 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xe5af3e89 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f4a7a4 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xe6011b05 netpoll_poll +EXPORT_SYMBOL vmlinux 0xe60988ac _lv1_query_logical_partition_address_region_info +EXPORT_SYMBOL vmlinux 0xe657bd29 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xe68abc8b genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xe68db93e dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fe33e4 down_killable +EXPORT_SYMBOL vmlinux 0xe703abbf sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xe70c5200 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xe723dbf8 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xe730d357 bdi_init +EXPORT_SYMBOL vmlinux 0xe738efe0 dquot_operations +EXPORT_SYMBOL vmlinux 0xe74aa406 _lv1_set_dabr +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe76179f2 I_BDEV +EXPORT_SYMBOL vmlinux 0xe79bc6e5 ps3_sb_event_receive_port_setup +EXPORT_SYMBOL vmlinux 0xe7a35f2d mod_timer +EXPORT_SYMBOL vmlinux 0xe7b6c095 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xe7cd5361 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xe7cd99b7 smu_queue_simple +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe826d56b simple_transaction_get +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe8566a7b __d_drop +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe86c5a87 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xe87b2b0b journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xe883f058 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xe88e8e3d alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xe8a85eb3 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xe8b6cb62 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xe8b81643 rtas +EXPORT_SYMBOL vmlinux 0xe8b84dd3 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xe9015519 vfs_fsync +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe92e9a45 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xe936cb8b uart_suspend_port +EXPORT_SYMBOL vmlinux 0xe94a32c0 scsi_print_command +EXPORT_SYMBOL vmlinux 0xe94cdd1c blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe994ab86 pci_iomap +EXPORT_SYMBOL vmlinux 0xe99bcbd4 __elv_add_request +EXPORT_SYMBOL vmlinux 0xe99f1209 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xe9a28735 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xe9abffab uart_resume_port +EXPORT_SYMBOL vmlinux 0xe9dc8fc0 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xe9eb44b7 dma_direct_ops +EXPORT_SYMBOL vmlinux 0xe9f4e9ab pci_map_rom +EXPORT_SYMBOL vmlinux 0xe9f9ea43 d_genocide +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea08cf7a nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea2967c5 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xea3fb903 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xea42e94b padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xea546c33 set_security_override +EXPORT_SYMBOL vmlinux 0xea64f792 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xea6e079f new_inode +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeadb9bad lock_sock_nested +EXPORT_SYMBOL vmlinux 0xeae00a89 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xeae51976 inet_shutdown +EXPORT_SYMBOL vmlinux 0xeaf762fe validate_sp +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb5e0746 fd_install +EXPORT_SYMBOL vmlinux 0xeb70bff0 sys_fillrect +EXPORT_SYMBOL vmlinux 0xeb74e685 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xeb7bb5b1 put_io_context +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebd58ea9 sk_filter +EXPORT_SYMBOL vmlinux 0xebdce75b phy_stop +EXPORT_SYMBOL vmlinux 0xebed5561 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xebed93f0 uart_register_driver +EXPORT_SYMBOL vmlinux 0xebf4b63a jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xebf62dab compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xec0439bc flex_array_free_parts +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec30765a _lv1_allocate_io_segment +EXPORT_SYMBOL vmlinux 0xec366e62 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec8a89fb scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xeca63b99 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xecbdafe6 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xecc94729 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xecc9f005 do_munmap +EXPORT_SYMBOL vmlinux 0xeccb148f scsi_finish_command +EXPORT_SYMBOL vmlinux 0xecd5a7a9 cap_file_mmap +EXPORT_SYMBOL vmlinux 0xed1bf6bf elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xed1c90bc scsi_add_device +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed4eb8e0 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xed50ca24 ps2_drain +EXPORT_SYMBOL vmlinux 0xed532664 get_sb_single +EXPORT_SYMBOL vmlinux 0xed5a4d07 kill_pgrp +EXPORT_SYMBOL vmlinux 0xed652427 _lv1_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0xed6e6dd9 dcb_setapp +EXPORT_SYMBOL vmlinux 0xed805800 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xed86b3b7 ___ratelimit +EXPORT_SYMBOL vmlinux 0xed8939af km_state_expired +EXPORT_SYMBOL vmlinux 0xed8f63a9 of_unregister_platform_driver +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xede73345 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0xedf0b48c _lv1_storage_get_async_status +EXPORT_SYMBOL vmlinux 0xedf88373 pci_dev_put +EXPORT_SYMBOL vmlinux 0xee117aa2 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xee14eca0 radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xee15e727 dm_put_device +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3047ea clear_user_page +EXPORT_SYMBOL vmlinux 0xee471fcf agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xee5bb20b _lv1_panic +EXPORT_SYMBOL vmlinux 0xee6fddb6 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xee8074ef block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xee90bc42 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xee9174c5 _lv1_storage_read +EXPORT_SYMBOL vmlinux 0xee991ef3 tty_throttle +EXPORT_SYMBOL vmlinux 0xeea5f805 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeaf6138 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xeec135f2 __block_write_begin +EXPORT_SYMBOL vmlinux 0xeecf7ff2 skb_dequeue +EXPORT_SYMBOL vmlinux 0xeed62a60 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xeee62c89 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xeef36bb9 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xeef78216 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xef078e92 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xef0a961a blk_unplug +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef14c091 scsi_register +EXPORT_SYMBOL vmlinux 0xef2f8881 free_task +EXPORT_SYMBOL vmlinux 0xef332366 kill_fasync +EXPORT_SYMBOL vmlinux 0xef341343 blk_make_request +EXPORT_SYMBOL vmlinux 0xef35479d journal_load +EXPORT_SYMBOL vmlinux 0xef45d32c __kfifo_init +EXPORT_SYMBOL vmlinux 0xef469d04 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xef4add7b mach_pasemi +EXPORT_SYMBOL vmlinux 0xef6dbcbe xrlim_allow +EXPORT_SYMBOL vmlinux 0xef839e43 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xef94d3b4 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xefc2e54d _lv1_storage_send_device_command +EXPORT_SYMBOL vmlinux 0xefc67687 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xefcb404b registered_fb +EXPORT_SYMBOL vmlinux 0xefcbecb7 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefded6c1 __init_rwsem +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf03d54e3 __brelse +EXPORT_SYMBOL vmlinux 0xf05313bc put_tty_driver +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06a3cfd path_get +EXPORT_SYMBOL vmlinux 0xf0708993 __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0xf077e701 vga_put +EXPORT_SYMBOL vmlinux 0xf08b9a1b fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xf0981576 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf09b8478 dst_alloc +EXPORT_SYMBOL vmlinux 0xf0d1837b ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xf0d2f84a _lv1_gpu_context_free +EXPORT_SYMBOL vmlinux 0xf0d9d59a eth_type_trans +EXPORT_SYMBOL vmlinux 0xf0e25756 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f6416d sk_run_filter +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf1014e59 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf140f89e bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xf16e1a0c jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xf183189b __ioremap_at +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a8a846 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0xf1bea6f1 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xf1c8b416 phy_device_free +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e4df7b of_get_parent +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f58eb0 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xf206d467 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xf20d303f blk_end_request_all +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf20f91a7 pci_clear_master +EXPORT_SYMBOL vmlinux 0xf22b14d8 idr_get_new +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2495691 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xf24a7865 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xf24f9653 vga_client_register +EXPORT_SYMBOL vmlinux 0xf250f1e3 padata_stop +EXPORT_SYMBOL vmlinux 0xf27492a7 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xf2bd6952 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xf2ef7996 mii_link_ok +EXPORT_SYMBOL vmlinux 0xf309e9ee cur_cpu_spec +EXPORT_SYMBOL vmlinux 0xf30b6412 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xf30d1036 _lv1_start_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf317303b mount_bdev +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 0xf34025ac mem_section +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf357db8d pasemi_dma_set_flag +EXPORT_SYMBOL vmlinux 0xf3705d3d tcp_read_sock +EXPORT_SYMBOL vmlinux 0xf37746af jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xf3858f8e fb_validate_mode +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396754e scsi_ioctl +EXPORT_SYMBOL vmlinux 0xf396ea9e sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xf39a5222 _lv1_get_virtual_address_space_id_of_ppe +EXPORT_SYMBOL vmlinux 0xf39e7e15 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xf3a3a36d poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xf3af39ec nla_reserve +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e0eafd genphy_suspend +EXPORT_SYMBOL vmlinux 0xf3eec376 tcp_child_process +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf4354a76 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf44e7d1e __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf49efef3 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xf4bbc567 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xf4c84818 journal_create +EXPORT_SYMBOL vmlinux 0xf4cb1c37 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xf4cf6d19 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xf4d36cf6 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xf4d5f89d invalidate_partition +EXPORT_SYMBOL vmlinux 0xf4de0d8b pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xf4e7deb3 deactivate_super +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f1d73f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xf5156b37 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xf5180162 get_user_pages +EXPORT_SYMBOL vmlinux 0xf51e462d i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf5339ddc alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xf53525ac of_dev_put +EXPORT_SYMBOL vmlinux 0xf538e292 vio_register_device_node +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5540775 arp_invalidate +EXPORT_SYMBOL vmlinux 0xf55b3b3d __arch_hweight16 +EXPORT_SYMBOL vmlinux 0xf574ef8e pci_request_region +EXPORT_SYMBOL vmlinux 0xf58417c1 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xf588973a mfd_add_devices +EXPORT_SYMBOL vmlinux 0xf594f80d ida_get_new +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5a731c8 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xf5c14ec8 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f15c2b eth_header_cache +EXPORT_SYMBOL vmlinux 0xf60c3c8e simple_dir_operations +EXPORT_SYMBOL vmlinux 0xf6123e05 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xf614b9a7 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xf61984c9 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xf6213e12 pasemi_dma_clear_flag +EXPORT_SYMBOL vmlinux 0xf626b4a6 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xf62b6b42 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xf6321f16 dquot_alloc +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf666bca3 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xf67aac2a igrab +EXPORT_SYMBOL vmlinux 0xf685b227 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xf6938fe8 get_gendisk +EXPORT_SYMBOL vmlinux 0xf69a09ba page_put_link +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c89950 __destroy_inode +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ecb763 _lv1_send_event_locally +EXPORT_SYMBOL vmlinux 0xf70aa55c mnt_unpin +EXPORT_SYMBOL vmlinux 0xf7162833 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xf73ef454 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf759e8cc free_buffer_head +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7a04dcc blk_start_request +EXPORT_SYMBOL vmlinux 0xf7bac0ec _lv1_set_lpm_counter +EXPORT_SYMBOL vmlinux 0xf7c0dcd4 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xf7d71918 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0xf7ef9403 km_state_notify +EXPORT_SYMBOL vmlinux 0xf7f67272 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xf8004bfd _lv1_disconnect_interrupt_event_receive_port +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf810a447 down_write +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf83b913f jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xf855db85 set_irq_chip +EXPORT_SYMBOL vmlinux 0xf86b8026 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xf8833117 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xf8886288 vfs_create +EXPORT_SYMBOL vmlinux 0xf88bc243 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xf8906870 vio_cmo_entitlement_update +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8affc86 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xf8c7723d remove_inode_hash +EXPORT_SYMBOL vmlinux 0xf8dbf10a abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xf8e4d201 lock_super +EXPORT_SYMBOL vmlinux 0xf904a72f nf_afinfo +EXPORT_SYMBOL vmlinux 0xf9077ef3 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xf91b1378 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xf954f6ee qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xf95f088a i2c_master_recv +EXPORT_SYMBOL vmlinux 0xf969a03f macio_request_resource +EXPORT_SYMBOL vmlinux 0xf995e786 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xf99e1e82 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9be8ff0 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xf9eab4c2 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xf9f62b4c read_cache_pages +EXPORT_SYMBOL vmlinux 0xf9ffad03 journal_check_available_features +EXPORT_SYMBOL vmlinux 0xfa34057f tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xfa3fbbe1 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xfa64de62 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xfa97a14a dqput +EXPORT_SYMBOL vmlinux 0xfab279ee con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfae5daf1 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xfae647f6 generic_read_dir +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfaffae3e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xfb004101 netdev_features_change +EXPORT_SYMBOL vmlinux 0xfb3bf2a7 dquot_acquire +EXPORT_SYMBOL vmlinux 0xfb59538c xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xfb5f846a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7aa905 phy_start +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb82e57c __ip_dev_find +EXPORT_SYMBOL vmlinux 0xfb87e2dd single_release +EXPORT_SYMBOL vmlinux 0xfb8d7d20 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd55f38 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc03dab2 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xfc1b64b9 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc52b6cf llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xfc69347f tty_register_device +EXPORT_SYMBOL vmlinux 0xfc813dbb elv_register_queue +EXPORT_SYMBOL vmlinux 0xfc8d9fb5 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc0e16f poll_initwait +EXPORT_SYMBOL vmlinux 0xfcc19553 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc47ab0 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd10b56b unlock_buffer +EXPORT_SYMBOL vmlinux 0xfd31c468 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xfd3a12c1 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xfd536ec5 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xfd6a20a6 flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfd9453a6 locks_init_lock +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb3e34f security_inode_init_security +EXPORT_SYMBOL vmlinux 0xfdb41338 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc57898 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xfde819c1 commit_creds +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe219602 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe2f28bc pci_set_master +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe4371fd posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xfe47f1aa cdrom_check_events +EXPORT_SYMBOL vmlinux 0xfe4cb4b5 _lv1_storage_write +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe80553e sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xfeb309f8 scsi_bios_ptable +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 0xfefe44a9 set_groups +EXPORT_SYMBOL vmlinux 0xff0cd093 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff58b837 vlan_gro_frags +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff81d2c5 __debugger_dabr_match +EXPORT_SYMBOL vmlinux 0xff8fea84 blk_put_request +EXPORT_SYMBOL vmlinux 0xff9c4215 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffab1d81 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffd84763 kernel_bind +EXPORT_SYMBOL vmlinux 0xffd8657a dev_driver_string +EXPORT_SYMBOL vmlinux 0xffe2154c setup_new_exec +EXPORT_SYMBOL vmlinux 0xffee4534 request_key +EXPORT_SYMBOL vmlinux 0xfff3f360 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xfffc8474 __skb_checksum_complete_head +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x2043717b spu_save +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x3e53f7c3 spu_restore +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0xb08c803e spufs_context_fops +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 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 0xe3f2e77e crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/af_alg 0x0689fa8a af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x1c027fa1 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x1d35b276 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x2ec3cef2 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x493fe68e af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x63aba7d7 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xcdf326da af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xfe67db1f af_alg_release +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x517bab88 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x21520f4a async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x23642514 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x903abe70 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xfd0617e0 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x58cc3074 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9077e86b __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd887463a async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xda432d1d async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xaecfc539 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xd1b94cbe async_xor_val +EXPORT_SYMBOL_GPL crypto/cryptd 0x1f08603b cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x3f8af35c cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x6c98966e cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7319c6a6 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x80ba0ea9 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xcab32f59 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xdd1c1dc1 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xde8a0170 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xeff96f7f cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xfc316f13 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x4af1dfe3 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x12b25510 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x12cbebd2 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1d177fee ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x29546909 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2b5ed0b4 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x311c14d8 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4a21a388 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4e83d4b6 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6f9317cd ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x90a847be ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9e0e16dd ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc287f656 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc7f050eb ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xda6cbef1 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe27a5a81 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6a5f5b8 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xe8e310cd __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xfc50d975 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x4faff46e 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 0x141a251f btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x474051dc btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4e05b2e8 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x678a935a btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x68c6afd1 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8cfe74ca btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9f616451 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa406c7d4 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x26e10ac1 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x33378d80 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3a4500b0 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4713ed3c tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4d33695f tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x658c9887 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x65a91819 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x77289789 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8a3e67db tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8c3ac36d tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x94d1091e tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x988ffcc3 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9b660a63 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa03aab4f tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaa8a7103 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc556bc26 tpm_send +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcb03e5a5 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd0f5fa07 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd5d636d4 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd61514d4 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd685a34f tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe8062d2c tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe8814738 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf44ee817 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x02251654 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x06c58527 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0b8640ed edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x22ae6801 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2b8be5c9 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2b993d9d edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2c3d93d9 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3015dbcd edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4249c6a4 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4d472cc3 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x50650073 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x51970025 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6524939d edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x75188980 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7a491ba8 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7fc98cd2 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x88b4dceb edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa10de857 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xade3af6c edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb361fbae edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbe9446fa edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc4a10f31 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe9e12bac edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xef9b1926 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf71b873e edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x20aa6ace __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xeca47a9c __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x0042487e drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe9b302e1 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x37d405cf hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3ab6a4c2 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x401c3097 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4537a183 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x46961b81 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x47d9f8d5 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x49af6e2e hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5a8768c3 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x66cee6f7 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6771cd99 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x811171d2 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x87949198 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8f37ee70 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa2a2c68a hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa31bf4c6 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa4b8e98e hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xacb4a84a __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb47227b6 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb5574b59 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd33e5fc5 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd39f9552 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd3da651c hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd7f0a0b9 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd9bd683d hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xedfbfeb1 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf68ef0c5 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 0xc332beae roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x095312aa hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0befa4b1 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x71171181 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xfa78823f usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x2f859828 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x4a267f3d lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x5d42be67 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x73107861 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xb8a26398 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x86b6bf39 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x987860a8 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x1dd95311 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xc22496c0 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x1a350b9a input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x1af58f50 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x2ab4bc69 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x836f2534 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xf1732f1f adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x024fbc8d wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x058d62b9 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x20c1c821 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x21f39709 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6c5b2521 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x753f8557 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb9c6773d wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe1b7331c wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe503c686 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xec6bc8bf wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf1d5d5e5 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf502d4eb wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0e7bae2e gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1acab528 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1daa5ca0 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x28e2fd76 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x296e124a gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x39f1063f gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x59f6dd58 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7ae00260 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa2500d66 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xac90214c gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb44ce5c9 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb9d25baf gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbde8f3ab gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc20d3989 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc2d977af gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc3ea1af8 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xce047dc1 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xffde337f gigaset_initcs +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x09b6a0b1 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x179da124 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x247797dc wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x4a3f2e16 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x6b8713fd wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x8ae2bcd5 wf_get_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 0xb58b3dcd wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xd9d95d32 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xec9d6ae2 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf50459e9 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 0x0396f9bf dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xdcff2560 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x06f1ce5c dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x07341d85 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0bde6888 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x1704b438 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x194fa7d7 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x213598d0 dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3ec2fb50 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7227ad2c dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7478b32c dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7646f483 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9cc251a3 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa3286ec2 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb056cef9 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbf8ed302 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc6eb2787 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xce0da582 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd3ee3068 dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe5820625 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xebc91ec7 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf2ac99c3 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf3258137 dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x14fa677c bio_clone_mddev +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x2a25c164 md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x356ffdee sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x56e519ae mddev_suspend +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x5d62074d mddev_init +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x676b6b9c plugger_init +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x768a3335 bitmap_load +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x84c82ed5 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x91e49755 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x928ac84f bio_alloc_mddev +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x9342c953 md_stop_writes +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x9b6343e9 md_stop +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xa2bf1793 plugger_set_plug +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xb0b0b0a2 mddev_resume +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xbdd57f94 md_run +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xd93352fd md_rdev_init +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xe63c167a plugger_remove_plug +EXPORT_SYMBOL_GPL drivers/md/raid456 0x4078e501 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x6a7f7104 md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0d67d6f3 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4080f6ec saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6f266561 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7014a542 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x82675e57 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8f34259b saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x92a8b93d saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xace28831 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd5cb9527 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdda17134 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe5a01a91 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x11e3820b saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x17e018cf saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x20947207 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x37885574 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x43b6aa11 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x85ff5b58 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf60999ec saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xc16511cc microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x5aaf2071 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x9aaaf663 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x940600e9 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x37173dbb tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xa82f3d01 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x6802f0d1 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x642c658f tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x9cd299ad tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xd0bdcd8a tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xec6a950c tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x95a3b6ec simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x01067e32 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x339e75c5 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x369f0b11 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4a1b33ca mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6aeeb116 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6c39842d mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7aacde4c mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8e03bbdd mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x93129971 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9896e1bc mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb63b85d1 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc2306e80 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc38865a5 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xce97632e mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe16ccb1c mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xef317fd1 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf91029a1 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0d8cb06a smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x210b8519 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x23b9d5f2 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x252896e7 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x262938c2 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x356481f8 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3cbd3c76 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x44427ee4 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5d47d02a smscore_get_device_mode +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 0x8d21c80e sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x93456bb0 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9e4edca6 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb70f26a5 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb9f8f6bf smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc7cb661d smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd7396ad4 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xed658d6c sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf3831cbc smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf9cc60ed smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x0426dba2 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x29e76835 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x53f722ad ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x90825983 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xdc3bf6f3 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe1bfbf22 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf6314867 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x174a47b8 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x19110ea3 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x19434959 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x19b00628 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x24e102cb rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x31072c3d ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x54ccf703 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6282e87a ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6a08f33e ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6afdc56b ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x735b3c84 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7b9783c0 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9732dd3d rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xda872dda rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xecf3b746 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf6d41131 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf9923c8b rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x096a8f36 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0bbeb137 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0bc19e7b cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x30a3406a cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4b0d75c2 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5f0398d4 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5f6f39f7 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6d85c395 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x78806904 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x810102b2 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9e386ec9 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa41f76e5 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xaecd86b6 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb225e976 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbd105ed2 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xccec89ef cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcd6b38a5 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd98d6df7 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf48efb5b cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x0b733c49 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x262f8309 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x67d32312 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x75eea60c em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x9429b3ac em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa7e1ada1 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf977837f em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x57016071 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x68cecda5 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb6385269 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xdc6e1c64 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xfffd6080 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/soc_camera 0xcbe8544e soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x04dbd65a v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x106d0d10 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x3bca6fd2 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x86316af4 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 0x98fb5b0d v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc83ed1fc 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-compat-ioctl32 0x0d458458 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x07462b5f v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc1b8ed01 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc6b1f4ac v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xcc638831 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x005867ce v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x113f0c74 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x552524f2 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5ebf0e88 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x65ee5d70 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x70df1ee7 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x82b98b00 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa0fd3e5d v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa54a2c75 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb765c883 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xcc033764 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf6e9cafd v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xff11e4cb v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xffbc38d3 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x048290e2 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0e7a6ec0 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1ac76273 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x241f0fc6 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2d012217 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x331c9c83 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x44a24359 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x45130e9b videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x478fe87c videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x529513fc videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5be29dec videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x747e06a4 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7d7e6f17 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7e555e4a videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7fb02cb0 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8ba510b5 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8cba1ad1 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x95b90523 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaab9a929 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb7626111 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd2ebdba3 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xeb6cfaa6 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf99e2b24 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfdb62160 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x1afad9c5 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x559c070a videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xe8a73e51 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x50a28b62 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6a06ca3c videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x831aab4e videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x98feb9b7 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 0xb83c0271 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xcdeb4278 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd466c09d videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf9859247 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfa2ad2a4 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x003fb534 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x694ebf3a videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x711d9ee8 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x12eac2c8 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1e71a532 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1f0d7937 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2bd76db8 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x371164fa v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4c929af3 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4ebd8e30 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6f86f4cd v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7026136a v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8e1244ec v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9a4e1052 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa8faf875 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xad97698f v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb1164285 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb36c69cd v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdf76e36b v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf0fb2050 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfb039e2c v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0e00e765 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5d1c2159 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x82af24bd i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8b929b7b i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa93f396c i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xae5716d6 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc2e6e33a i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xe8f82a22 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xeb7b8dab mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3980918b pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3e1dd2b5 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x57901948 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x69708def pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x76f75336 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7a5889f2 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc329541a pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc79b6e26 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xca9129d9 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd6320a43 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf5cb2613 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x988cc879 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xceb40298 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x210b5f9e pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2a2a103c pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x43d6ddac pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x62c42a97 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe340f184 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x36cea1d4 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x38652185 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x796e76c6 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x99b6b4d0 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xdd665d78 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xbae18c2f ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x0f038ed4 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x5699bfe1 wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x578d0bec wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xaa55c8f5 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x425e4d75 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa8746f2b cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xae587f0e cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xbe1e42d1 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 0x370e2bc8 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3c02c0ab enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4230f992 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x5e17d65a enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7efd9c92 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xa93b189a enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf25c4fe1 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x3396e5b8 st_register +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1065f004 sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x10b735af sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x120533f9 sdio_writeb_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x159cf4f9 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x20cf7152 sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2eb8effb sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x328aa1af sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x407cf9ae sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x50431cba sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x50cbcf8c sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x61bb2306 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6b7179c3 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7ddb9610 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7ef5e214 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8abec57a sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8b289634 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x97056e2a sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9c413ea4 sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa629fa53 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa80ccd4a sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb657a79c sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc899829c sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd5caecbf sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xee23d0f8 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf0152089 sdio_align_size +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0c30522f sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0dae0e99 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x14cfd427 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9f7cd119 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xaf467746 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbe9a0e1b sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf69601d3 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x98a4e3c5 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xb1be1866 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xced4f090 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x1abe11d1 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x488be697 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe5b925ba cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x2e67f59d cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x37ed731e cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x5ccc1c9f cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xfb1b7464 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x3127e074 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xc0208eb9 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x10840458 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1c12a03f del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x302de29d mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x313e32f3 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x33b8ca2e deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x36a6582b kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3b6c8b61 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x40ecf63e register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x633a865d __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6bcd9b3d mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6f93a240 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x75b51ff3 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7c754152 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x91ff6a07 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x99bd460c parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb327d154 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc7de5e4e mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xce5ed8a5 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd4f83ba6 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdfcc8aa8 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe21c9af7 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfb92c8c9 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x0f106885 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x28fa60f3 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x4b565c39 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa2e7ae94 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0d7542c1 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x769cdc4e nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xe4088959 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x4d0bd536 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xfb7a2ffc onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x185aea98 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1c75f61b ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x39430d49 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5f6452c1 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6fe4af48 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7226050a ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x793d7700 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x87ec4924 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x890c744e ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9ef302ce ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa62a0228 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb21f71e3 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdd049aaa ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x082db066 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0a0ee8df alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0a54b3c2 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0a73bf00 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x58a2ce1e can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x888a3213 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9092f152 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9b1cf29b register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9e4c4498 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbd5e4d39 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc961ec39 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf1e23716 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x9ae2bee4 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xb8537ddb register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc1dac9b6 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xecd269a6 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x397774c8 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xab7eaea9 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb19f58b9 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf16d5209 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf63ad7ee macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01237d65 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x060f06c0 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x11a63705 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x12ec559f mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x18208bb5 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1a313637 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1aa89ac7 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1fcfa4cb mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2147e975 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x23b7f50f mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x285fd7a3 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2d3f1b5f mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2d54f969 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x30c28d01 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x36ad0e33 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3a623724 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ae705c4 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3bc1f000 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ceafd12 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3d2fa110 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4232d996 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4589ab2f mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x45ec6367 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x48dc6d00 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x59f4e595 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5bd7958a mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5c703b9b mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x60a05c4c mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x60b45294 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x60b73d96 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6a416b97 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6a7ee512 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7644d7cf mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x786beec8 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x85eda62e mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8948885f mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x93cae112 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa3cbe662 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaeb51194 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb08d5d0f mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb362808b mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb67b0d30 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbdd5630b mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc1dd47c1 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc8e31d3a mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd2fabccd mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd87352c2 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdb560d74 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdbf71716 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xde814611 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe5ffd2f0 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeb83f487 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf3cdb267 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf671c445 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfbf4d933 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4228ecc5 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xf45208ce usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x388c7220 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4a1725ed rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x83985c36 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd05e081c rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe09ce2f1 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf0e7017e rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0099be09 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x111a6e95 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x14667ccd usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1474d8f0 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x21c659e2 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x266c4a2e usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2ca01522 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x475dda3b usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x585005fb usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x63c81ed8 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6435b24f usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7219b4cd usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9df4f1bb usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa1f24b6c usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa6b879ff usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb60d5e56 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc3a78e7e usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd3f84c99 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd672e3b2 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdc155974 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xde5765f1 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf1e7e104 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf2e2a506 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf3badede usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1ef3482b i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3677df3c i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4ef8d381 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6ffa3e56 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x90c2a56e i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x927a250a i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x93e519f7 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9c8c3f2d i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaad39d6b i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc4690a4d i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcbec7c2d i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd2f74e00 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdf3a9b50 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe4cf5547 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe8ebd9db i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfaef744f i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xdce38cda libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x3d65cfa7 iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x9fe8dfb8 iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xd725f6e9 iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xff52c83d iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2936af11 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x37352fb3 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x41b130d4 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x44208205 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x656540fe lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7d3efea7 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x81abd45a __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x86d36d97 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x92703d75 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x98551359 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb687d2a8 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc35b351a lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcc6d8eeb lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd2470c31 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xea388878 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x027ca7b4 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0fb1872f __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x342816ff lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3804edef lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8caa3814 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9200de4e lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa55fc805 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe1b3d7f2 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x4175dc45 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xc2201d94 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x13f51a03 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x24f14e01 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x541a0d01 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x76b8cc6a p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x77f6587f p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x96607f5e p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x98ccf413 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xaffa110c p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfdef932c p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x02e2aa74 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x06a1a8af rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0dcfe4bd rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x16c268fb rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1b89d382 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25538e00 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x45e36c44 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x471835af rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x500b980c rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6d5b17d6 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x713fdbbd rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x74441226 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7abd39d7 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8253ae25 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8269cd6f rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8ca5574a rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x90dffa0c rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa05ad605 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xad7e5c05 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaee16c15 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb32264c4 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb81608ee rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb9386986 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc75ff7e2 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd0474599 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd74d55e6 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd81239f0 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd9aadee6 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe6d5b810 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xee229816 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf39d73f4 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf3ef6198 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf68af89b rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf9d524f9 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0257ae5c rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0450aa72 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x07480d95 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0bcdec4c rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1169fcc2 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x134d66ca rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x16434680 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18c065f7 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2299f30d rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2b6ae7f8 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3f0a020d rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3fe82d11 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x49fee3a5 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4a1eac23 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5228e6d1 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5c06870e rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x61a3209a rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x626e6d56 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69a26e84 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a2fb47b rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d2dbe95 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6fb668ed rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x746dc3fd rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b7b51e2 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81629f00 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5807dfc rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb0fdd359 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb236825e rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb85102d8 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba8c8e83 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbbac438e rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbeade183 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf2e2853 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcba0de16 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdc530c8b rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe0f98317 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe16636f2 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe7b8d94f rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf9c2e65e rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfa5c1901 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0eff21aa rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4b043168 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x68138158 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6e8d8fcd rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x830966d4 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xcf330b7e rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe311c5f7 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe832407a rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2f3a767f rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3b40cf7e rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4120e9b1 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x50e9c124 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6e0ea0e2 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7c17a48a rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x81a99eb4 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x936a1bcb rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x96c1cbf8 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc517f90c rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd7f85d9c rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdc8a274c rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe773a333 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf1d9c196 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf88a2c94 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x4e8f56fe wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xbadc6c3a wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xd771379a wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x148a116b wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x33bf04f4 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x5a0334cd wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x76cff51a wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x8fd35aed wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xd0d227e5 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xd53b809f wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xd8de2d5e pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xdf027af5 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe8ec2bc5 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x003998ab ps3_write_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0bdf50c4 ps3_disable_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0e622920 ps3_write_pm07_control +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x181e55ab ps3_read_phys_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x1bcb88c1 ps3_write_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2abf1471 ps3_get_hw_thread_id +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2b339635 ps3_disable_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x3c71a6b2 ps3_set_ctr_size +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x4a24996f ps3_lpm_copy_tb_to_user +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x50488f64 ps3_lpm_close +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x58e642c1 ps3_lpm_copy_tb +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x59c54782 ps3_set_bookmark +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x5eca6711 ps3_get_ctr_size +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x60e3f0d7 ps3_read_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x6702a28c ps3_get_and_clear_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x69010c19 ps3_set_signal +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x70177200 ps3_write_phys_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xa76ee01d ps3_read_pm07_control +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xaa190bc1 ps3_read_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xbb72a01c ps3_enable_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xce72c9c0 ps3_lpm_open +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xdddfc980 ps3_set_pm_bookmark +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xfae0ab68 ps3_enable_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x35e76ac1 ps3stor_read_write_sectors +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x866b0968 ps3stor_teardown +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xc08f81a0 ps3stor_send_command +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xd0a5f57f ps3stor_setup +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x592a7ef4 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x5bd23cda mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x76c13cd3 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x8aa56c2b mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xdcff852a mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xed7fa7f5 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xf6c308c4 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0ca179c4 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x39170156 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x89fb885c wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa6414099 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xaf2a40ce wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe86320df wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xee2bd7c6 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x049da0e0 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x05480e5b cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x07258694 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x077300eb cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x28cb9626 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3018ce9f cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x31ab576d cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3bcc7f8f cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3c2cefe0 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4151026a cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x41e4b35b cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x44429df5 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4778cb16 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b44b227 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4bce0df7 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x50d7099e cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x598bfbaf cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5c35917a cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5c96b4d3 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x60bd67a2 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x69845a08 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x71c0af11 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x754b6b72 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c5037d2 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x88d42e1e cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x89c2c55f cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x96d74ac6 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9b47018b cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9b611a74 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa621a77c cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaae779dc cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xad7b8dda cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xae12c174 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbf426cf6 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc324cb28 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd3ea614c cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd8eb7862 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xda91378d cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe5f960de cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeaf5ffae cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xecb5b2a5 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf42771c2 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf5805009 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfd32a0e9 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x4b689f14 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x65fa670c scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x896dff54 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xbbe3db7c scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xd51a37dd scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xf6869297 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa6c587c8 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x3ba48506 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8d84a555 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x9846aa99 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xbd7efe15 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xdb57e816 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xfc66b6d7 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0420dd37 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0d9e5ec3 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f72573f iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0fd2e4e4 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b8b329 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x154596f7 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17a177ea iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20fb902d iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x22b75aa0 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x24e02f8f iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x29fb447b iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2c7da71b iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3acdff1f iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x404558c1 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4150da71 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x417370f1 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47422c87 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4e7742d8 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53359f58 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53d109d5 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x57818fba iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d75714d iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x686bdb72 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6ae08334 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6eb68a1a iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e9540a6 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x870eb5a4 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8bda6109 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x98da1ccb iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b291ee7 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9bd31898 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d59b2e7 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa637318e iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8f14615 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xad4d56d8 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd978b3e5 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdda2901d iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3eb537a iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7aba425 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0a72dbb iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf691cef4 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8fa7915 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb107089 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x18e5aa81 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x39e16ad8 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x480b6bec iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5c9ecc4b iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5f3aca64 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x71843ebe iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9418ab09 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa7035134 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaedec71c iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb024068e iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb1429737 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb3b45db8 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb5dacb1c iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd939d872 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfedbf09c iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xff275f09 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x04040aec sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0b532487 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1232d48a sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x236885c5 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x298a1fa9 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2ece510f sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x441b8c89 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x50da1489 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x56f24cf4 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x68a46e5c sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x733e29bf sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x88446f70 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x93390a88 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa0ef93b0 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xad714b96 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc495369d sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcdc5c722 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd13e2bfc sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd8618f84 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd8cb27c1 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe3644bc8 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xec474884 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee7659cc sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0b39f650 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x5e26d030 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x795ade65 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7e253f2d srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa8223dd6 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb765f79a srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00dfcb48 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0f86522f scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x35f02099 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x816e560b scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa6a0b51f scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbb2a3d11 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xcec87fa7 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd96dfaa8 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xeea0d0eb scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x11645215 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13229ccd iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1fdde9d9 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x29f64e70 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4596d9ce iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x548a0e9f iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x601d50d6 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69b8c666 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x72a78d1d iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7855675a iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8a3a1bb6 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8e6bcf85 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x922b6460 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x94365a47 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x945bf087 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9cce0f28 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9fc51897 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa636ae9a iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xba686b41 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcbc4d443 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe68dc589 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe68eb0f3 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf8040341 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2a41ba4d sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x38250ee7 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7d86c949 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x81bad6d7 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 0x0c9beeec srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1d43e485 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x50386e16 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7dc9429c srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa748c559 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1d532008 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x21b32f82 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2ed5aba1 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x744f53ce spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xb66620cf spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xf7a2f684 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x400c8cef spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6054c1c9 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6a492af4 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x831633bd spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x988e60ce spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa33a4142 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb35aaab9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xdb2a5c54 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xdbd4acd5 serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf22a2ebe spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xfd7b71f6 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x5d0443a5 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x6afc808b tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x87fb3c5f tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x0786e165 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x158bb9e2 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x3249dfab pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x392bcb54 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x2bfeb3c2 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x9ce0b972 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xc1e62141 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xc9ace698 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xe7618099 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xf939c04d max3107_suspend +EXPORT_SYMBOL_GPL drivers/uio/uio 0x02d46c4e uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa5b9a5ee __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc44694b6 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x198cc0c9 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x46f36e5b usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x030082f8 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x45844a7f usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x60411fbc usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6b66ecd4 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7017f0f8 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x945e49c9 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb028d089 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd0a4039d ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf470630e usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x130fddad usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1916fcdd ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x35283174 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3553a6dd usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3a4f8d92 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4112e886 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x43bd4cb5 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x55c07057 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6d713b81 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x727fd4d3 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x80b4a779 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x816fcb63 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x84f8a105 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8c77c71c usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9f870d68 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd4852c56 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xde3c29d6 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe937dcdb usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xea375e4d usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xef3eab0f usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf7616c6a usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0cd37731 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0e490ef2 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1c41279a usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1f8f76bf usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x41cba13e usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x469eb597 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4c0e411c usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6926f5ba usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x996d9f2f fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2ae9a1d usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa3d52fc4 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa3e54c1b usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa79701ad usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa83a1485 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xba4fc9a3 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc00f9da4 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdcf370f4 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xde555cde usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdf76580d usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe1cb4a1c usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf56ecc6a usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfa6db07e usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfb4e585c usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x02cbf0c7 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x1508a84e wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x578066da wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x7a40387e __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb0dd063c rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0143513a wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0a5a49dd wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1b64ff09 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1e378b44 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x24e2a6ad wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x295693eb wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x34981750 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x764748b4 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x777e4916 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7817ee6d wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x83e9a780 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x91991fb0 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xba6d53d4 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe376eb59 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xee9cefb5 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf73998e9 wusbhc_reset_all +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 0x191d715c i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x73e6e277 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xd2506a50 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0ed2187a umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x37b4562b umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4c233d78 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4d16613c umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x90762fc4 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9848ec2f umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa61b49a9 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc59e8f49 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00b81fdc uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0f5297aa uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x11225976 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x176495d4 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1b7a496c uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1cba87c3 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2254ec7b uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x23802d38 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x28fb4524 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x351e295f uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x36036544 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x40375bec uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x42eb01c6 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x49110137 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5a9454cc uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5af3c6d7 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6aad3df3 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x71f34114 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x725fc146 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8a465a4e uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8aa2b03d uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x93e28efb uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa4a32a28 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa7f4aa95 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac92fd93 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xad4a30fe uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaf0b24c1 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb4e192b1 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc3aaf1d2 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1320263 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdb82ecf0 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdcb16c79 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdd91ff50 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdea7e5fb uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdecd670e uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf284bbc1 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf851ec5b uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xdeea2a0e whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3f26c1e7 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7cea64db ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7d6ef614 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa936f47c ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xeae4fbe4 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf77848e6 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf78c7603 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x2163700d sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x6c9b352f sis_free_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x8fa689ef register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x900158d7 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x99ee8244 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xa357a6f8 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xc5ca1e58 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0f540312 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x1ec2dad7 vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x221308a6 virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x48dd4484 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x76a67214 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb1e42b9a vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb39823b8 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd4fe2033 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xdb61dcab virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2a73dbdd w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6e3b99cb w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x70976340 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcdb6c2df w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcf69ed2f w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe8031877 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf0966987 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfecbac2c w1_read_8 +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xb735fd5c dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbc364de4 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 0xe18f822e dlm_posix_get +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x6d8ed226 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xdd1356b8 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x0f6f91a7 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x1c63f5f3 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x1e143e9d fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x4c3eaada fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x4d4af825 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x653dcc4e __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x70f8e3fa fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x73dabec1 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x752940de fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x7a32e896 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x9465a187 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xc462870b fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xd554e99f fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xd97e8b97 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xdf07923b fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xe09e1518 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xe327a946 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xe4c5a660 fat_setattr +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x052bda8f 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 0x41dd0a86 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7a548a48 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 0xc85a112e nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xd0a0fa4a nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57b28451 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x3c2f2183 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7990d326 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 0x39e3db72 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5e5a9a5a o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6fe937ae o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x79e400ae o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x908ee0b1 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa142dac7 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa49ee6bb o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +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 0x05201251 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x250f0c35 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x30fbea9e dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x50abe958 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd3679448 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 0xe9d10817 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x01ab2ddd ocfs2_stack_glue_unregister +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 0x7f58427c ocfs2_plock +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 0xcca740b8 ocfs2_stack_glue_register +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/raid6/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xdbab0c01 raid6_datap_recov +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 0x0b751591 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x17055ac2 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x2ccbccba garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x8c5fc88c garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xc8ef0933 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xeb3df268 garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x1234891c stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xfc809abf stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x3c4251d1 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xd3bfcf2a p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x4115bf8d 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 0x83c43798 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x137d36a3 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2cec6c2a dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3583620a dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x38c66d36 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4b6085fb dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4f756e90 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x519de41b inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ed43dec dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x610a862a dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x645c1187 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6a03ed5d dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6a936cea dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d12db03 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6df52eed dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f00f40b dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x744565c3 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75420c19 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x77a3fe57 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c6acce8 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f17a2b7 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 0x8b7faf51 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa24bcc30 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa64d5de1 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad021694 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb8c80263 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb9e0a7da dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xba0d2518 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc62bd1b0 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xca045de1 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcaa6d916 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcfdd80e4 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd501ae58 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdd2972bf dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8d1f97e dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfc581b27 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x07c34af0 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0e6e09c3 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1ac31e2e dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x89a00a3f dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x927f2649 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf5c098c4 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ipv4/gre 0x5221102e gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x9b8c4b25 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x82f8067f arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xc60d66b3 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 0xe60f0b2a 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 0x2f848303 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x70d0a771 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 0xbc207205 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd5962341 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf6f30ce8 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf730947c 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 0x573c7a83 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x70b86a65 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa1e3ca35 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xba18bc79 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc3f84ee1 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xa18a0f23 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0eda6491 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1afa9472 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2af8ac99 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2ef7dcf8 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x82dfcdc9 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa32064c3 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa9429069 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb8a4ce81 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd13e8823 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd7855551 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xddda6f92 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xea4c2204 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x28ea7174 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x70fc8a2b ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x739e2b94 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8a85ba19 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa52d6709 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x27dc45a3 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8e3f5cab unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xb20b39be ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe7b151ff ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04fee3ae nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05626163 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06ed91a9 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a0282c4 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a270dff __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bb36027 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2029f5a1 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x243459c0 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ac68135 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3843abd4 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39628c4e nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4082ce46 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x415d196c nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x444a65f3 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ae052d1 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c3db1ce __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5053a2f2 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5844e363 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882036f nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d87b971 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f200240 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61599388 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x651081ec nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x69d4d60d nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a7281e1 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6beac518 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c7d05b5 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e79eee0 nf_ct_l3protos +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 0x7d3877ce __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7dd9154a nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81c97415 nf_conntrack_alloc +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 0x92ea2da6 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93342e12 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94811967 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x967393b5 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96b81425 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97352b3c nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0280b44 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa2a1e7e1 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa445f137 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaccd9613 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1a9e40f nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4fb61e7 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 0xbaa7ffb0 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd76b4b1 nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbda69c5c nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbef62e7f __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc38080d3 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc55d8c67 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xceaf7c04 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf966fff nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3e5c7e0 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9fdcd45 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe69bd0aa nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe915da32 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea0f8d60 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeca0e4e0 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfab9f14c nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbefda0f nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfdaea7ea nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x135f6639 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x94ec9a19 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0865c842 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1b4a6e32 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1c34235a nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1e2a7b92 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1e70e8b5 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2a9befda set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4c997564 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x59302e1a set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7db153ac nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8b31ef5a nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x95bb0b22 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x32aa849e nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7e3cbf14 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd2778887 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xdad2b3d7 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x00e4d917 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x18001d32 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x048c8f46 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x09eca3a8 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0b5db6a5 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x18049b06 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2ed66518 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x34c4d8eb ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8f131112 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8fe6eaf9 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xaa43664b nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc2ff134b nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd865597d nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe9f2b50b nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe9fadc7e ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xf4a589a3 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xd9f93963 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x57f48344 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6b32186e nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x736aa395 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x80d822de nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x86d42c29 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfb947595 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xe0199369 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x109c2c69 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x21f56b23 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x25f1edf1 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f96ba9e xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3c917566 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3f60d8df xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x53530c4b xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5d9fba22 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x64dd50e3 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6f8fc50d xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x74ae73e1 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x866e7b98 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9b4ce9bb xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb841e9fe xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbe248642 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc7a20fd8 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe41514e8 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe65989ab xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe7d4ac0b xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfa482b54 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x3e1dd4ab xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x9a303feb xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x09527d53 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x11f7968e rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x1e56bb1b rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x1ee5328b rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4af52b07 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5db8da71 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x5ff81024 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x65373a76 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x68dd1176 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x70a2f5ba rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7b602e7e rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x8c8b9b18 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x901dd332 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x98c634ef rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x9dcde4b7 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xa318bc43 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xadb07425 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb0fbeade rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xb68e9847 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xbde0075f rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xc1d28dcc rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xd728e1c0 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xe7052588 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xfb2e26d1 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x924bcdd9 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xf3d31110 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 0x01e8bb9a gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3fd84bcf svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x477c4ca3 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7d304da3 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x80686054 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8a51b009 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8cfeaae8 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 0xc758ba21 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xded7e65f gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe50e444a gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfab39e69 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0169001e svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x018b5cb5 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04b096be put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05af2dc3 xprt_wake_pending_tasks +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 0x073d9a21 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08c7024c svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ab9c42a svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ebe2b50 rpc_call_null +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 0x104af593 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x133f3cc5 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13e49141 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1508bb3e auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16708633 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x174a107b rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e584daf rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20b89cd1 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21f70964 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x265468ef auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c286330 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d7fc014 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eab1ac7 xdr_init_encode +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 0x31d8b6b3 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32b8aa67 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3363bd29 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x351464cf rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3bb9a3b5 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fe5c59e svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40144b57 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4025f4a8 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x409e7be0 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42253849 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4436d674 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x468b4588 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ba06f7c svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f4a53fc svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f83ce19 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x528fb73b unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53de3783 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54fc4239 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57a30478 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5abeaaa4 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bdf8361 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c47c27a rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d13288a svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d171e3e xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x616d00ba rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61d12343 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x627c2b41 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x645c6550 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6526b9ea xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67fe1826 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x687a0217 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6aa1a222 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bca8807 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c86b839 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cb60d59 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d76f70d svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ddbe20b rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f94a962 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x718ac88b sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71ab6b2e xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72814a80 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73bafc7b svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74c297f4 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75dcd11d rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x766de169 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a22fcd1 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7afebccf svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c2169f1 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d8f65cf svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7eae088d xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f0a69e9 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8073fc34 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80f79c0c sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8439e91a xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87a0753b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x897f3453 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a02df04 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a3f3b4b rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8eff969f xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f275935 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94d92fa8 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95d3602f rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9891a120 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98dd7bfb sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c4c3df1 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c8e595f rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1c40243 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2898c3f svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8a64bb8 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaee8d69 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaafb788a rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaed7b8de rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafdfe09c svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb02ce811 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb14898f6 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4aaa36b svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb67c33bd xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6e768bd svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8010656 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb87e85dd xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9b9f45e xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9eb85b9 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc72f8af rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd64829a svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd6c77d1 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd6d58e3 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfa271f5 xdr_encode_array2 +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 0xc43c94eb xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7a737b8 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc839238c xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e1a78c rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcca86354 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0859ebd rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1a8e0f2 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd250bcb3 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7021126 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7e9120d xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbe53c0a xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf712305 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ae2482 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2e28f81 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2f98d54 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe647b207 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ffad3a rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe934bdc0 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9edf74b rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea2fec35 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeba81d7a rpc_malloc +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 0xf06f20cb rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf18fd931 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1952fc8 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2069220 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf35d171f sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf47c896c cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf51c909b xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf637f9c2 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7cb7363 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa27602a rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfae81acd sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc0ce43e xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc36816c auth_domain_lookup +EXPORT_SYMBOL_GPL net/wimax/wimax 0x127d8e5a wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3d20d9b1 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4464519f wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5ba7bfb4 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6e8bc964 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6f38de4f wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x705f0a71 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x715051c2 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x77fb2e00 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x793d141a wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8e82d080 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xade19757 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xca5d437d wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0088e394 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00bd22df cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x038d8034 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x06fcb2cc cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1eb564fd cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1fcab343 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2ee77d33 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2ef3118b cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x37f9f7f9 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3c867e1b cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4380ad0c cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4ecd8a42 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x53784c93 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5eaf73f1 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5f5fe61f cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6f431057 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x703481cb cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x88c781c3 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8977f6f3 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x906acc37 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x91724627 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9cf17170 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xadb3be1e cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb28687b8 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc01fff98 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc6b606f6 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc89d7411 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd0a50b47 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd2b418a6 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd4f502d9 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xde2fa5e1 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe0448af6 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfc7a27f4 cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x287b1eff ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xce376210 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd95e54ec ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xfcf7602a ipcomp_output +EXPORT_SYMBOL_GPL security/keys/encrypted 0x1c27777f key_type_encrypted +EXPORT_SYMBOL_GPL security/keys/trusted 0x2b59451f key_type_trusted +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x0e99064b aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x3cd725e7 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x4268ec56 ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x584b8f27 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x88c848f3 aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc8a8e65d aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xd961297e pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xdbc3ca47 aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xe6258591 aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xfda68049 aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x2433715f soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x74630375 soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xaee850d6 soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xce2bf88f soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xcf845540 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xea141b0f soundbus_add_one +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x269faa7a snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x2828e932 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x507beeea snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7e780b0f snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x85cd3a4b snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf32a2798 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0037254a snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01807f3e snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03292a02 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07949873 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x098fcdfb snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c526722 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e445e15 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12853639 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12964312 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13e66c09 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14862e69 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x192c0a46 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19a836da snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1dd166b8 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26c39156 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28b4abad snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b081687 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2cc2581c snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32e8f9e5 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34fccfe7 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c4fa770 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42c31437 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x455956a2 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x455f2bda snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b1ef69f snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4bc4e1cc snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d9f1964 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f1eb4a5 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50ae54f7 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x51a57249 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52d1046e snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x537c1c36 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56fafa17 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5718b1d5 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57af8331 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58485dbe snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5be2972b snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c086031 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c3f5c14 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d3565fa snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d89031e snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e531796 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x613c4818 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x675d6ae1 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x679e7da6 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d2abe1f snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d80ed7f snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74807d66 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74e06655 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78d977fd snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f0b6736 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f2832d9 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80a96452 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8202caa5 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89f3d86b snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c0c0516 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d332df4 hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x937473d5 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9515512c 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 0xa1ec359c snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2d03358 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa43d58f7 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa828544a snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa95a2eff snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9c0f224 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab9d6d65 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac9573df snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf7d5e37 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafcf245a snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb615e12d snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7c69d72 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbac16b49 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc28e2f8d snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc58d356b snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6efdc84 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc72e4377 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc809c671 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc958093e snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf1c36d4 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf829fd2 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3ac213c snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9ff787c snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfda79f9 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe6a03c0a snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8672228 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8a65a65 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc87d39f snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x0b958fe3 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xa694fef1 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x8625299f v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xcabac5ae max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x7c4cb981 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x810e98cd aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x99b309c3 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9a6bbd0d aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd711beb7 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x3c6fb39c tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x7c72a2b7 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xba2da834 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x882dfc00 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x022087fa wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x29254388 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x2a0793e6 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xf90859e7 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x714a82f5 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xcf3999a8 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x41417ccf wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xd10e1544 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe775aad7 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe958db33 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01e47954 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05f39316 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c30c88c snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1020bdd7 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10f061c8 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11ecaad9 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15aed90a snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x163482ed snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f52fa46 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24dc456b snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x301dd606 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34475989 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35c4fa13 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x366537f9 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x379c1a3f snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3946c335 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c05feb6 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3db5eeca snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48cba646 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cbd88d6 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d7f4afd snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f1869c0 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58f72ca0 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a72c444 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5de0c3a9 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e2b020f snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65ee8435 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6782e4e1 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6848d1fe snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x691215a8 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c2c9879 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x79165828 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bbefa88 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e9d6d5b snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ff473ef snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x82c74b49 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87894a90 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89353cb7 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x898cf7ff snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89f1bd97 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8fc667c9 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ffefc0d snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91748f8e snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9203faa1 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x974d436f snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x982afe55 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d25c467 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9e8c938f snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2877134 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4e54cf6 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4fbf409 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa84eabe7 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8b2985c snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaafc12bf snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab540bb1 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacb44d66 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0dd7d20 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1bd0890 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2c867b5 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5136bd0 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb81257ba snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9d31b14 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc2ed301 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc55cb239 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5796857 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7865a20 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc867fec1 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc95d5299 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb4ec690 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd5fb372 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7364d43 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc3eea49 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdf95048e snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfd102dd snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe23b7266 snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2a18d57 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec2ee757 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee1ed85c snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee5d7362 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef2bdb0e snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0d4a1aa snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf7a1aba1 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8011dd8 snd_soc_test_bits +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 0x00045b3c single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x005367d7 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00c38c29 regulator_get_drvdata +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 0x0102a187 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x011304aa ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x01263c33 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x015db535 crypto_enqueue_request +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 0x01e9aa83 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x020024f4 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x027ed746 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x029d5414 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x02a21106 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x02a5620d i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x02ff10a4 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x030d4d7b ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0x0312dc72 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x0323dcbd ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0349cd22 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x035ee65e nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x03a3bdf5 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x03b6ab1a register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x03d6fae0 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x03d89f9d edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04288b33 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x04bd623f devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x04da6b40 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x050e2295 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x052e0e5e ps3_system_bus_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0537488a ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x054981a6 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05a691b4 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x05ef5cf9 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x05f6c50e alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x0615c54c ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06a80cb4 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x06fc6546 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x071a8cdd kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x07223c0f sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x0750cc15 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x076174b2 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x076e9420 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x081b2a2a __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x081f204e usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x083465cf handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x08751117 ide_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08a5b2c4 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x08d28f93 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0965160c ide_pad_transfer +EXPORT_SYMBOL_GPL vmlinux 0x09667b61 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x096a1d3a eeh_add_device_tree_early +EXPORT_SYMBOL_GPL vmlinux 0x09ab7b26 pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x09bf6ee5 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x09f978d3 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x0a288348 flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a5c7f0f sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0ab93486 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x0ae56030 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x0aec8efc rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0af1dc55 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b0c10fa crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x0b10e751 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x0b42af48 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x0b45a03e usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x0b6d393e ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c2d8711 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x0c370292 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x0c7a078e da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0c99f302 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x0cc71683 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd10a4e work_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0d1391ad simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x0d1db07c swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0d9349ed ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0e013ef8 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x0e03a2ec cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x0e071d4b wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0e37fed4 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x0e3de529 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x0e51d578 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x0eb6b279 ide_error +EXPORT_SYMBOL_GPL vmlinux 0x0eb99562 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0ece3e85 spu_get_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0x0f17822d kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x0f2d471f usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x0f87d97f __put_net +EXPORT_SYMBOL_GPL vmlinux 0x0fc6762f ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x0fcfec5c inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10974877 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x10bba844 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x10c9c994 ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0x10ea45c2 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x111f8642 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x112b049d tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x1143a870 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11c99e9b ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12728a47 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x12fcc031 remove_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x13170823 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x132c9158 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x132f408c usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x1333d8b3 ps3av_video_mode2res +EXPORT_SYMBOL_GPL vmlinux 0x134b99a5 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1389ae06 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x13f9130f ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x143226ce anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x146230bb pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x14935e11 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x14c03de4 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x14c531e4 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x14c54801 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x14d5945d of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x1500903c disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x15106ea7 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x153cb99b __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x159abb63 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x159b8122 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x15d4a3ab blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x15f7a17a dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x16112aff __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x164e2fef ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x167beaf9 spu_priv1_ops +EXPORT_SYMBOL_GPL vmlinux 0x1688c395 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x169c81a1 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x16a29d75 css_id +EXPORT_SYMBOL_GPL vmlinux 0x16eb5a35 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x16f00529 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1725d50b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x176ed084 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x17b7290b __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x183d9ce6 user_read +EXPORT_SYMBOL_GPL vmlinux 0x185eb019 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x18722cfc pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1886c3a0 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x190005d7 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x1907ef29 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x192d28ac ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x19358478 spu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194a29ec regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x19839e9a get_device +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b82955 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x19be925f cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x19df89dd driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1a24e6ee devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x1a2e8518 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a3b0d29 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x1a466ad2 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1ab730d1 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x1ac717e3 ps3_os_area_get_rtc_diff +EXPORT_SYMBOL_GPL vmlinux 0x1ae78381 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x1af5b04b ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x1b21b75e tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x1b416171 ide_host_free +EXPORT_SYMBOL_GPL vmlinux 0x1b48e656 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x1b560825 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x1b9664d1 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c1b2c9f ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0x1c435b73 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cbee6b4 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x1cd39493 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x1ce69b68 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x1d19d661 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x1d28724f stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1db1302a __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x1de7ad99 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x1df73adc driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1e0bd205 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e51bca6 pcibios_remove_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x1e7aea9b __blkdev_driver_ioctl +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 0x1ee8daec __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x1ee9814e irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1ef67dd8 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x1f3b9a85 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x1f44be94 register_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0x1f81a0f5 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f9c743b ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1fba953f ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x1fc80f85 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fdb1826 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x1fdf2992 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x1fe970cb ps3_io_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x202ce335 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x207c3f1d dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20e728f5 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x20f81049 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x210c9433 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x211850f5 htab_hash_mask +EXPORT_SYMBOL_GPL vmlinux 0x211b20db spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x2134a291 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x21975ce7 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x220973b3 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x22415fc2 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x228b03f1 ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22db41c1 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x22e1be9b ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x22e7c773 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x22f9977b wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x2359c701 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23a7e7f1 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x23baa256 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x24272c4d inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x242c7d74 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x249a9fed ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x24b35738 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x24c103b8 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x250f69d2 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x251f819b __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x254e310c ps3_os_area_flash_register +EXPORT_SYMBOL_GPL vmlinux 0x25a5d720 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x25dac881 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x260d96ab ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2647d27a usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x26525a8e sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x26a38c46 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26ef3a72 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x27144d69 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x274ff9bf regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x2767afc4 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x278bfaec i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27ba7f7e crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x27bcd01c pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x282443a0 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2888a782 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x288f9340 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x28b84b21 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28e7b0e1 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x28f5abe3 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x294607ed i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x2961aaa4 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x296fc064 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x29816f8b xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x2986f876 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x29d2508d srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x29d3b9b2 ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0x29d9e1f3 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x29dfc000 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x2a113de7 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a3cdf07 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a84b068 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x2a8b6e0b fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2b1e570c ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b7efd04 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2b890b26 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x2b91f42c sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2b9f1af2 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x2bef9f99 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x2bf321ce regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x2bfa4a27 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x2c0164fc ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c661c1e pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2cb16827 ide_dma_host_set +EXPORT_SYMBOL_GPL vmlinux 0x2cb38024 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cecbf8c ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x2d0bae77 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x2d24557f blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d922aec ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2dac5a8b fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x2ddee4bb usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x2e07f731 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e687e4c xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x2e778be6 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x2e941226 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x2e9a21ff console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x2eafe514 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2f00fbaf attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x2f01f3d2 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x2f281556 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f5495bc da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x2f55d3d1 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f7e5970 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x2f94b80b cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x2fc8aea3 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fd696cb fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x30028869 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x30609652 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x307bd3be save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30a49af0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x30ed341e crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x30ef058b init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x311679e9 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x311b78c2 ps3_get_spe_id +EXPORT_SYMBOL_GPL vmlinux 0x311e7040 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x312bb54e get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x31306e04 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x319418ab skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x31a8d3b6 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x31ceb864 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x320886d5 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32e0bf5d pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x3309ea64 ps3av_audio_mute +EXPORT_SYMBOL_GPL vmlinux 0x3332ac65 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x3337ec41 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x335b6f6d devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x336aca68 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x338de889 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x33dc8ec2 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3417e4a5 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x344a579b transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x34843532 spu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x34cc5075 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x34e3faea pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x34fe8570 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x351723de pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x35225629 ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0x3535f143 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x3557ae8b pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x357f81ca crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x35c6c3c4 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35eeaa88 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x3608ec1c pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3641a849 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x3660b039 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x367b5004 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36e38370 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x37233b4b tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x37b8f9a6 ide_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x37dbd10e input_class +EXPORT_SYMBOL_GPL vmlinux 0x37f2dae7 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x37f72855 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x3830b204 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x38e5336e device_del +EXPORT_SYMBOL_GPL vmlinux 0x38f2690c fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x390b12ae ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x3955f965 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x39601503 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x39676db4 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x39a15012 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x39ad6b36 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x39c47617 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e6eff5 ide_setting_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x39e82a0f ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x39fd7fc0 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x3a0b7caa crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x3a202dd5 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3a25e83f usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a3081b2 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x3a744d0f crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x3ac05b70 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x3ae681e1 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3b1486ec regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x3b1c5afc ps3_vuart_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x3b2a2453 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x3be53e80 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c0e0650 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x3c10b7ca single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x3c15dfcc crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3c6d34e1 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x3c86a5a3 ide_dma_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c970682 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd04626 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ce145cd __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x3cfebe78 user_update +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d003c0b led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x3d04cd33 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x3d0e4ba3 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x3d35c448 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d547042 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x3d8a1ca8 ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0x3d90f398 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x3d92f0ff sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x3d959545 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3dc512cc rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x3ddcc929 init_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x3e350d02 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x3e3c3a74 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x3e52276c platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x3e54500e ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x3e8712d9 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x3ec9df58 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x3ee136d2 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x3ee77b56 cbe_spu_info +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0d0b00 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f992f2d ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x3fb869ab crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x3ff12be7 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x405df584 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x407a8488 ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c54fcd enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x411da4d6 device_create +EXPORT_SYMBOL_GPL vmlinux 0x412722cf __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x412c9002 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x417da921 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x41af05a9 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x41b1420e ide_host_remove +EXPORT_SYMBOL_GPL vmlinux 0x4215fb97 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x42292656 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x4240164a rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x4248b6ae ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426bebc7 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42869d5a crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x42aee6c5 ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0x42fd44bd ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x435713bf tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x4382cf6a sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x43970da6 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x43a3e599 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x43e6b28f usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4407afec sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x442c9633 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4450eb61 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x445933aa pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44c51ede spu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x44e87d0b skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x44e9d419 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x45021e60 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x4573a7aa irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x459d4a3e sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x459e9e5c ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45f333f4 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x46438477 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x464dd9d7 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x466ce0f1 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4688226a inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x46ca683f vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x46cc7595 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x46d9f955 ps3_irq_plug_setup +EXPORT_SYMBOL_GPL vmlinux 0x46ee4fe3 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x471eb2fb skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4741db42 ps3av_set_audio_mode +EXPORT_SYMBOL_GPL vmlinux 0x47615df8 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4793ebe8 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x47a57b66 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x47acddea ps3_sys_manager_set_wol +EXPORT_SYMBOL_GPL vmlinux 0x47e26481 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x47efa061 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x47f56992 blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x482b9ed6 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4841b5d9 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x48992624 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48b3552b usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x48c9d7fb hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a5701c ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x49b5c1f2 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x49fc71f7 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x4a44d584 ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x4a7d5a11 of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x4a87fbe2 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x4a996ec2 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4aa079ee register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x4aaebf49 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x4ab80b2c tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x4af2ba02 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x4b0c0dd7 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4b0facad sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x4b8b08e5 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x4b9b44eb ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x4be237f2 ide_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x4bef6482 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x4c18f773 ps3_os_area_set_rtc_diff +EXPORT_SYMBOL_GPL vmlinux 0x4c1f2bd2 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x4c2063ed sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x4c23e787 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4cb212a2 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x4cb465df __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x4cd3c128 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x4cf92464 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x4cfc541e blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x4d5243cb raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x4db4ea0c pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4dc6600f udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4debaa79 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x4e00603c cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x4e029d4b ide_dma_lost_irq +EXPORT_SYMBOL_GPL vmlinux 0x4e256b78 spu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x4e3e7e7a ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4e7a7bb6 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4e867ce2 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x4e8ef49e dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x4ed5e065 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x4ef0459b ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f20144b pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x4f3e545a crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x4f47795d pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x4f5127a0 ps3_vuart_clear_rx_bytes +EXPORT_SYMBOL_GPL vmlinux 0x4f6b3b59 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x4fa31c1c ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x4fae1f2d of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff3becc skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x5012c7c6 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x502eef42 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x503086a8 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50cd5ab7 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x50d41367 crypto_destroy_tfm +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 0x50feae32 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x511eb0de ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51c3bccc ps3_vuart_cancel_async +EXPORT_SYMBOL_GPL vmlinux 0x51e02ba8 ide_do_test_unit_ready +EXPORT_SYMBOL_GPL vmlinux 0x51e5de9c device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x521201c6 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x52149be2 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x52191d51 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x523f8657 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x528ac77a pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x52929903 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x52b1c174 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x52c2b9a2 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x52dd287f regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x52f64b3c blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x52f6b96c aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x5303ba29 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x53058b50 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x53224a0d pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x53524ec8 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x5352aaff usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x539a5ff4 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x53d9178d __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x53de4251 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x53fe5ab4 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x5403075e fb_sys_write +EXPORT_SYMBOL_GPL vmlinux 0x54059ba6 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546c2f24 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x5487801e inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x5487d83b regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x551c14df d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x552079df pcibios_add_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x552b45e4 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x553e055d regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x55651cb3 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x557f78b5 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x55a39df8 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x55f13fe9 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x5607b710 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563932fc usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5659769c cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5679e6b7 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x56e60a9a ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x5742ab73 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x5746a331 ide_end_rq +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x5782315a crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a8eead queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x57aa91d3 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x57c93278 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x57f7660b dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x5806c418 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x5822b6c8 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x582cebeb led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x586b1101 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x588b2e0e __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x58bb7f9d ide_create_request_sense_cmd +EXPORT_SYMBOL_GPL vmlinux 0x58da38de pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x58ea0c71 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x59011b15 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x592a28f0 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x59577507 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5959e8ee alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x59651072 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x5970299d platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x59873fd1 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x59ab7396 disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0x59c72e1c of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x59f5275c blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x5a0729f5 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x5a0bb90d usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x5a2fe36d blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x5a37ed9b stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x5a5e087d inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a7f68c8 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x5a9811bf pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0x5a9dabff destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x5ad1a2b5 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x5ad4d905 ps3_vuart_write +EXPORT_SYMBOL_GPL vmlinux 0x5af0b0eb ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x5ba588cb sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x5bb1902e __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x5bc07f1e raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x5bc94efd drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x5bd0f614 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x5bd28304 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x5be5d8fb ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5bfd09d7 spu_set_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0x5c1e03a3 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x5c903df4 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x5cb3c252 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x5cc84926 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d371f0a usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x5d39a44f power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x5d529e90 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d747720 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x5db5c280 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5defe42f devres_find +EXPORT_SYMBOL_GPL vmlinux 0x5e0def70 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x5e3a4898 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x5e5e61c7 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x5e769986 ps3_os_area_get_av_multi_out +EXPORT_SYMBOL_GPL vmlinux 0x5ee2032a kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x5ee54573 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x5ee7542e reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5f08df53 ide_output_data +EXPORT_SYMBOL_GPL vmlinux 0x5f2cbeea pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x5f46d244 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x5f801585 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x5f944be6 ide_write_devctl +EXPORT_SYMBOL_GPL vmlinux 0x5f9720b1 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x5f99114d shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x5fca2666 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6092d930 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x60997cfa driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x61606201 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x618064b3 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x6221b7b7 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x623127a7 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x6231be6e tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x6234e8b9 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x6253aecf usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x6268a8a6 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x627e3d19 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62afbc82 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x62c4aa56 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x62d5d0be bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x630097ed dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63640130 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x6365a715 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x636fb8bc ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x6371bef5 ps3_system_bus_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6377d40c register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x63a6b829 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x63b72ccf __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x63d57f03 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x63e581ec usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x63fb94d0 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6403e2b7 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x6408d61a device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x641f237a wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x64af0016 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x6538f789 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x656fb3c4 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65ccc895 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x6602f023 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x661f0d2d unregister_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0x662db7d7 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x667a812c ps3av_set_video_mode +EXPORT_SYMBOL_GPL vmlinux 0x6683cc7e wm831x_reg_write +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 0x66f032de crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x66fbfa63 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x673dc820 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x675cc71f inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67d77050 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x67e7dd59 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x67f674ac ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x67faf2d8 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68d08cf0 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x68e6f585 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x69105800 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x691caad9 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x69273a36 sysfs_add_device_to_node +EXPORT_SYMBOL_GPL vmlinux 0x6955cf2b scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x69790ef6 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x69a9caf4 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a3682c7 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a730f0e each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6aa06214 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x6acb8d84 ppc64_caches +EXPORT_SYMBOL_GPL vmlinux 0x6b1f5e06 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b5189c5 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6ba6db09 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x6bbdff00 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x6be5a08f hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x6c2f0671 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4e8773 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x6c739809 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6c983376 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x6caacf97 pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x6cbf2ddd regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x6ccf65db get_driver +EXPORT_SYMBOL_GPL vmlinux 0x6cd8a435 ps3_vuart_port_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6ce70426 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x6cfebcf0 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d4080ac power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6d501250 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x6d5b964e __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d9de3e5 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x6d9e04f1 ide_pci_init_two +EXPORT_SYMBOL_GPL vmlinux 0x6e1c67ec ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0x6e379526 kernstart_addr +EXPORT_SYMBOL_GPL vmlinux 0x6e4c677f tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x6e63e416 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x6e66edca spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6eab276b vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f2b8330 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x6f7d95ac tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x6fb920a6 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x6fbc719c pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffa273f da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7008d459 pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0x70537aae ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x706986e6 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x708c048b spi_async +EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x715428cd relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x718a0cbe device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x71fc19ba sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x72069782 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x721f1b55 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x7224fb03 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x72351ba4 ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727bcf12 eeh_dn_check_failure +EXPORT_SYMBOL_GPL vmlinux 0x72839cb1 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x7288b73f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x72ac487b sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x72b75236 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x72d99797 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x72dc81dd debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7308acd6 ps3_open_hv_device +EXPORT_SYMBOL_GPL vmlinux 0x73714e02 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73f40ec5 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x743153db debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74526edc blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x746d96da task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a71db0 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x74a95ca3 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x74a9cdfd pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74b3bee7 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74f3cd58 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x756b4786 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x757397f5 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x7577c4b7 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7581ec05 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7593bb50 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x75a35fe5 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x75e04307 device_add +EXPORT_SYMBOL_GPL vmlinux 0x75e6e037 hash_page +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75f16396 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x760e517c ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x76237654 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x767252cd perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x7697a3d7 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x76ac0b15 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x76ae21df synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x76b1bc36 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x76d4b74c vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x76ea9253 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x76ebf277 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x772dfefd adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7735712f __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x773e6805 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7740ee81 pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x77850905 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x77a0b708 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x77b33d10 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77ee907d transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x77fe92a9 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x7807803d ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x78401488 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x78cb126b sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x78d5b55a ide_no_data_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x792030d5 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7965fa06 ps3_system_bus_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x799929e7 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x79a7af92 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x7a3a3bb4 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x7a3d0ccc vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x7ab20af2 pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7ab6b26f ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7af855d0 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b4d926f ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0x7b62e202 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7b7356fe ide_host_register +EXPORT_SYMBOL_GPL vmlinux 0x7c563a97 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7c7bd594 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x7c7f81c3 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x7c985e48 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x7cc84f72 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x7cdfcae3 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x7d13f55b da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc59575 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dc872f0 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7ddb337b spi_unregister_master +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 0x7e3f7e6c net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x7e5a2079 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6b946b ide_device_put +EXPORT_SYMBOL_GPL vmlinux 0x7f0ea495 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x7f3c1aac smu_get_ofdev +EXPORT_SYMBOL_GPL vmlinux 0x7f4292c8 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x7f4c7275 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x7f52c522 ps3av_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x80073d2e hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x8008c8a6 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x80507f72 ps3av_audio_mute_analog +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x809f055f usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x80bf7ab0 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x80d937a9 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x81165c41 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x81237f54 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x812bcbbd ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81516770 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8163f0c4 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8165f675 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x817350f9 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x8190656c platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x819f5d61 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x81d8e9ff blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x81deaf98 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x81ed462a pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x81ee14d6 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x822b367b scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x825cf7ef of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x825f46f8 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a48f9e pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x82bdcc69 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82ef1703 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x830cea7b tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x8313452b wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x833e18be uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x8350cbec ide_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x83f2f6de crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x8413b777 cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x8431a1d5 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x8437efaf tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x846a7cc7 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x848d443b pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0x84a914e1 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x84f1b50f spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8567f9a8 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x8574b381 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x85a582cd sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x8608f8a5 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x861260d9 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x861f087a hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8626c2d7 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x8644f29b led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a2d777 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x86c5f47f generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x86d7c524 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86fa042d ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x8703e5da __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x870a2188 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87429d45 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8789173c inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x884436bf blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x886f79b6 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x8870294c class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88a0807c ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88be8fd9 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x88bf5390 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x88dcd79a ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x890e1513 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x891358c4 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89ad1a74 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x89c0ad9e ide_get_lba_addr +EXPORT_SYMBOL_GPL vmlinux 0x89d49dbb elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x89e57c2b usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x8a14fff4 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8a42e688 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8a4788e3 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x8a7124ed driver_find +EXPORT_SYMBOL_GPL vmlinux 0x8a7917ef cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8af0411c hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x8af2eb10 spu_setup_kernel_slbs +EXPORT_SYMBOL_GPL vmlinux 0x8b20c98a uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b8300e6 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x8bb67a90 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x8c00e557 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8c08ecbe dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x8c347b4d attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8c87a0df pcibios_find_pci_bus +EXPORT_SYMBOL_GPL vmlinux 0x8c88169b inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x8caaa334 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x8ccaf954 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x8d1a481f eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d31326e i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x8d786b04 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8d85367f smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x8d92637c unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x8db189c2 ide_read_error +EXPORT_SYMBOL_GPL vmlinux 0x8df1dd6f __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x8e01c0f5 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8e31cbd9 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x8edcfa0f fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x8f4aa25e __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x8f52a0dc get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x8f5f9933 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f74bff5 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x8f9b622d scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fab63cb inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x8ff7cb69 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x900fe77e ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x901860f4 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x90673390 spu_switch_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9079a433 ide_prep_sense +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90c9febc ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x90f1b82f ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x91756058 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9188346d usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x91fe9d39 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x922525dd tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x928aebdd sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x92982f9d free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x92b86bd4 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x930316c4 slice_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x93181b3a crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x9361a4cc i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x938aa510 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x939902b1 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93ddee62 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x9419273b __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x941cd1d4 ps3_gpu_mutex +EXPORT_SYMBOL_GPL vmlinux 0x94472e78 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x94a1482a fb_sys_read +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94afd341 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x94b4a264 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x951478a5 find_module +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95b63838 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x95df5983 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x9610c4d5 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96235b59 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x96305560 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x9634b0f6 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x96688a58 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x966cb38f ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x96764471 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x96940c70 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96df8032 ps3_vuart_read +EXPORT_SYMBOL_GPL vmlinux 0x97190e94 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x9749cf5b locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x974dbeaf __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x975c9b76 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x9761745c ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x9774dffc usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x97842964 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x978f24b1 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x97d33fae sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x97d8eb64 ide_issue_pc +EXPORT_SYMBOL_GPL vmlinux 0x97e983ed wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x97ef974c vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x98012275 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x981a7e67 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9844c5eb event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x9881b7ef rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x988da7d8 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x989effc3 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0x98e9a368 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x98f7a9f6 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99583106 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x997f4109 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x99a1e3ec put_device +EXPORT_SYMBOL_GPL vmlinux 0x99bb1f4e sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x99c0d6a8 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a2f1176 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x9a2f257a kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9a663462 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9aafb09d ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x9abdd1ed scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x9afa25b4 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x9afd035e hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x9b3419a3 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x9b3b737f register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x9b4f01b2 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x9b779236 spu_switch_notify +EXPORT_SYMBOL_GPL vmlinux 0x9b9d085f ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0x9b9f953c ide_read_altstatus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bbe461d rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x9bc86368 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9c381741 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x9c6aae8e srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x9c7f54e3 ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cd2d227 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x9d0ca769 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x9d227825 pcibios_unmap_io_space +EXPORT_SYMBOL_GPL vmlinux 0x9d5382c1 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x9d53cb6a __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0x9d5dc5b1 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x9d8884de fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9df95184 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x9e0d94b8 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x9e2d5771 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x9e2fc9ca register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x9e37596a tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x9e5079c5 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x9e532c5a register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x9e8553f0 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x9f00e531 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x9f359d94 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f60bee9 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x9f75284a pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x9f9392ec blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x9f93ebb9 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x9fa1b63e ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x9fa61976 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9fc35fe2 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x9fcbd9f0 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe9bd5a pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x9fedf1c3 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x9fee4d64 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xa05651b1 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xa09934d1 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa0a27fff pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0xa0b66102 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xa0d12975 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xa1367a9c filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xa1663fa1 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa1b7abe1 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xa1bf4eec crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xa1c0855c led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xa1c2631d pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xa1cc1483 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xa1f9cb64 unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xa27b0ac4 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa2807cba platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xa2917f3a __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xa2b4b539 pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa2c25ec4 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xa2f10701 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xa2f370d8 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3c2def3 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xa3c51da4 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xa3d9ac31 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xa3e73869 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa422d7d3 ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0xa441d4b7 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xa44a6619 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa44b8431 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xa480ad17 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa494efcb regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xa4a35209 spu_invalidate_slbs +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4af2d83 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xa4c562f7 sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0xa4e6fad0 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xa5055fbb ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xa53f41e0 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa5509f58 sysfs_remove_device_from_node +EXPORT_SYMBOL_GPL vmlinux 0xa596d637 ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5be5e35 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa5cf5184 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f00f92 macio_find +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6539fde irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xa692f3e3 __class_create +EXPORT_SYMBOL_GPL vmlinux 0xa6e9b2f9 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xa7009147 ide_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xa72ce7e5 dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0xa7611630 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xa7771a3f ps3_mmio_region_init +EXPORT_SYMBOL_GPL vmlinux 0xa821ad95 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xa82a2066 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xa85156e6 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa875a18e ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xa89afc16 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa8c479a6 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xa8e13f76 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa8fc26fa device_move +EXPORT_SYMBOL_GPL vmlinux 0xa912d445 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xa91d13e3 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xa9778af6 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xa98cdb36 ps3_get_firmware_version +EXPORT_SYMBOL_GPL vmlinux 0xa99ce9b3 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9ca039d usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa71fead wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xaac1371a device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xaaeedfd6 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xab14110a stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xab23b403 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xab2647be pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xab2b243d ps3_irq_plug_destroy +EXPORT_SYMBOL_GPL vmlinux 0xab327bd9 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xab4dda2d rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab61e947 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0xab67bf49 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab6b2c63 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xabe242c0 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xabf0c623 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xac1cafa5 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xac21b42e of_node_to_nid +EXPORT_SYMBOL_GPL vmlinux 0xac2e4f38 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xac54d971 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xac98ea5f device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xacba46e0 ide_pci_suspend +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 0xad09dce8 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xad40a626 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xad40e592 ps3_free_mmio_region +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad7e827c spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xad9975cc get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae17df29 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xae43e365 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xae4f9a49 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xae53dbc3 device_register +EXPORT_SYMBOL_GPL vmlinux 0xaeb061e8 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf5dc85a usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xafb1cc8d __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xafc19d01 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xafdbc1d5 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xafe62e8a securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb0132d9b ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0193bfd tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xb08be403 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xb096192f ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb183f4ac ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb19ae9b3 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1e8186b ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xb1fd5149 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xb1fd6f52 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xb2093310 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xb21b5c07 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xb2775da6 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xb2883f30 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xb28896b1 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xb2978ffe ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xb2a2cf00 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xb2b41cb3 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xb2e0059f unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xb2fb8b95 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xb2fee52f wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb31da2b2 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb32aba94 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xb33adf2c blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb36d70cc dm_put +EXPORT_SYMBOL_GPL vmlinux 0xb3a91b07 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb412f740 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xb432fb1d sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb4707b64 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xb4ba5d11 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xb4c3509e crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xb4dafa0a pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xb4dc1335 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4fc3174 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xb4ff0b57 rdev_get_id +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 0xb5d46e7a ide_read_status +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5fdc0c2 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb61b58f0 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0xb6214ab2 ring_buffer_empty_cpu +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 0xb717d968 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xb717e870 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xb71d5996 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb79c97bc led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xb7a7f845 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xb7db0a5e ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xb7dd1297 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xb7e1f5ec simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb80e6fcf crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xb80e9244 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb8280a7a ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xb83e9f9a usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb844ef62 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xb84b1aae ps3_event_receive_port_setup +EXPORT_SYMBOL_GPL vmlinux 0xb8a19673 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xb8bcec41 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb97b7a9f ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xb982bbc3 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xb985969d driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba19a4fd proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xba68190a workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xba88fb38 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xbab7d40d inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xbac83be0 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xbac89c18 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xbad26090 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbae46b1c ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb2dac81 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xbb49aafe spu_64k_pages_available +EXPORT_SYMBOL_GPL vmlinux 0xbb4d7a9c regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xbb589ab6 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xbb754ac3 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xbbb5105a regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xbbf269b0 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xbbfb5279 ide_cd_expiry +EXPORT_SYMBOL_GPL vmlinux 0xbc40009f rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xbc55a932 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xbc6bc2e8 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xbc7851d3 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xbcbb13c1 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xbd5b6b54 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xbd99fd72 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xbda74b87 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdec8aac device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xbdee5e1c tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2139fe ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xbe3116d4 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xbe700d3b crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xbec15b5a irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbee8196a pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xbef42fa2 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xbef9f53d pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xbf0a3ad0 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf53f9ae user_match +EXPORT_SYMBOL_GPL vmlinux 0xbf8b5c59 mmput +EXPORT_SYMBOL_GPL vmlinux 0xbfca9163 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc01eb2d2 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc09ad647 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xc09bed23 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc0b4fa15 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc1108f49 ide_cd_get_xferlen +EXPORT_SYMBOL_GPL vmlinux 0xc110b011 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc11ed2f6 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xc154f8f2 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc19a130f ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xc19c3bb2 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xc1c12f95 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xc1c150a8 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc1e2700d scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xc1fa4dfb unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc2569639 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc267625a ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xc271da86 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc285fdcd da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc2a3e504 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xc2b59094 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc2bcba43 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xc30b6345 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xc347a219 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3a743cb get_slice_psize +EXPORT_SYMBOL_GPL vmlinux 0xc3af2eac led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xc3c116a4 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc41e8da1 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42dbebb scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xc443563e wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0xc44356dc usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xc4523574 ide_pci_init_one +EXPORT_SYMBOL_GPL vmlinux 0xc4847d44 ide_host_add +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b49549 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xc4db35f5 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xc50303a2 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xc53650f3 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc544a1ee devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xc56ec687 pcibios_map_io_space +EXPORT_SYMBOL_GPL vmlinux 0xc58ede57 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xc5addb4a debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xc5d62b98 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6115b44 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc665ec96 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xc66c2311 ps3_vuart_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc6ab2384 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xc6e93573 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xc71e301a register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xc7452540 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xc74bac5b pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0xc775b23f do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc77fc31c pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0xc828c202 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xc82a9c72 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0xc853d3f2 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc88061d6 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xc88555da crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xc890938d ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8c6a4e8 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xc8d35248 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xc8e24f17 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9b40ac6 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xc9c6a021 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xc9d517fa __giveup_vsx +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9ec8cff inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xca2135b6 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xca32398d ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xca451823 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xca5496af cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0xca7d9c56 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcac0ae49 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xcaf1b51a unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xcaf2b2aa sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xcb00b739 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xcb10634e wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xcb78eb96 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xcb8b69c7 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xcbac6f3e swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xcbb9eede unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xcbc2c8dd atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbd9ba84 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xcbed17c2 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc0f676b transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc5c6c6e ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcc7eb2ed platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xcc84c6ed ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd1e7413 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcd26ea73 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xcd45b78f ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcd566edd dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xcd6d2c9f usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xcd9abc51 spu_associate_mm +EXPORT_SYMBOL_GPL vmlinux 0xcdb2d008 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xcdb50882 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdfa0286 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xce486874 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xce60429b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xcebd72d2 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xcee17407 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf7cf068 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xcf863e52 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xcfa8667f relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xcfc4ac00 bus_find_device_by_name +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 0xd06ead72 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd075c8e4 spu_handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0xd0b5ce7b uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd0f50e23 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xd1206c65 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xd1354e92 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xd14d600e spu_management_ops +EXPORT_SYMBOL_GPL vmlinux 0xd166ea8d blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd18aae34 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xd1950771 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xd1a229dc part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1bdb81c relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xd1d5ca06 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xd1fdc6d8 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd2034fd9 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xd21908be __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd265d6dd rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2991473 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xd2a59165 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2d78292 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xd2e15a1c __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd2f907fa flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xd312f4e3 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd330ea2d eeh_add_device_tree_late +EXPORT_SYMBOL_GPL vmlinux 0xd3928b54 do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0xd3afc29c __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd3b5c1df usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xd3c4a740 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd3e7a704 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd3f49462 ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0xd3f848f7 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xd426cc3e bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd42d81ad devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xd471b6d6 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xd493748d usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd4a58cc7 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xd4f73f17 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xd518fb23 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xd52c8ee0 ide_input_data +EXPORT_SYMBOL_GPL vmlinux 0xd540e9a9 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5b8a3b4 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5f1182f device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xd614a620 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xd632068f driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xd648c709 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xd64f317a crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xd653b7e2 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd6687cea wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd680e8ca fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xd691acfc platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xd692377b rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xd6ac5bcb modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xd6c55837 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0xd6cec6da __css_put +EXPORT_SYMBOL_GPL vmlinux 0xd6e66f9a ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xd6f10f8d vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd7117970 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xd71ae372 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd73fa7df crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xd75efa50 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7a2fedf eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0xd7a6fa65 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xd7b17869 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7e4257d ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd80746ef usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd8263870 mmu_slb_size +EXPORT_SYMBOL_GPL vmlinux 0xd8498f4d ps3av_mode_cs_info +EXPORT_SYMBOL_GPL vmlinux 0xd84d7b12 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xd84e73e1 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd85c32b7 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xd8721c5c tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd8de8be7 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd8e9d7b6 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd8f616b0 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd90a90e5 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xd9169e37 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xd91963ee tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xd95cd50c rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd95d2eb0 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xd96a2a97 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xd9a18f9c ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda1d0eab crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xda2b3ef8 ps3_vuart_read_async +EXPORT_SYMBOL_GPL vmlinux 0xda4e29e7 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xda64a004 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xda988a79 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xdaa898d7 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xdae9411f ata_scsi_queuecmd +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 0xdb152ab1 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xdb201e7a regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdc0ce67b blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xdc0fa6ea crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xdc3af135 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xdcc00618 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xdcdc7a95 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xdcf12590 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xdcffcb1e blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xdd043eea ps3av_get_auto_mode +EXPORT_SYMBOL_GPL vmlinux 0xdd0e9fe2 ide_set_media_lock +EXPORT_SYMBOL_GPL vmlinux 0xdd296843 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xdd361df0 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xdd4ee43a stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xdd601f1f crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xdd60338f class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xdd9f7f8d usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xddf7a02d __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xde3fa52e pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde90dcf2 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xdea5841f __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xdeb38d31 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdebae74d unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xdeea58d0 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xdef919c4 ps3_close_hv_device +EXPORT_SYMBOL_GPL vmlinux 0xdf0f574d edac_class +EXPORT_SYMBOL_GPL vmlinux 0xdf1393d4 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xdf20f837 ide_dma_sff_timer_expiry +EXPORT_SYMBOL_GPL vmlinux 0xdf60b3f2 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xdf6a9c5c br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf8770af root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdf8bd0bd usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xdfcedfc6 ps3_sys_manager_register_ops +EXPORT_SYMBOL_GPL vmlinux 0xdfd7fa0f ata_pci_sff_prepare_host +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 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0c5d035 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0ef0e2d spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe13a8fc1 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xe14f5a96 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xe191f447 ide_check_atapi_device +EXPORT_SYMBOL_GPL vmlinux 0xe19fc092 ps3fb_videomemory +EXPORT_SYMBOL_GPL vmlinux 0xe1ecee7c fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xe2302230 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xe270425b class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe270e8a7 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe28a0146 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xe28aee64 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xe2d25c8b isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0xe2f39c07 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xe2fc64f4 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe3179da4 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xe3507df6 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xe3633d7a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3bb6150 cpu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xe3c4f33f ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xe3c57bbc sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xe3e412ab usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xe4115cc1 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe411ee18 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe44d952f fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe44e7a53 ide_dma_test_irq +EXPORT_SYMBOL_GPL vmlinux 0xe4b53c41 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xe4c8194f __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe4ceb237 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xe5023079 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xe5038658 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe52f3408 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xe56e0ad5 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0xe5a68cbc unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe608784d dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64be319 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe661548c crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe67e2cbb usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe6acba57 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xe6b5ba09 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xe6beda55 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe6c79686 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6f58939 pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0xe6fabaab sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xe72d431a ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xe78ee1b4 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xe7a91196 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7c6976e sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xe7f966b7 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe80d804d securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xe820492a relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xe834f966 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86d8f49 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xe8884b4b usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xe89e8519 dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0xe8bc24ba ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe8c63f59 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe8d174d0 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xe8ea6f00 ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0xe915bf95 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xe933c8b0 ps3_vuart_port_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xe93d8ccc transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe97335dd blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xe9a130e4 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xe9b6bde9 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xe9c7f205 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xe9f87b7d ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xea002056 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xea04ea3e pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea0c292c sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea41e112 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xea6a9749 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xea838ab3 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeab133f6 ide_read_bcount_and_ireason +EXPORT_SYMBOL_GPL vmlinux 0xeacc9083 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xead412c3 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xeadc1726 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb075071 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0xeb269aae usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xeb45b761 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeb921553 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xebdfd36d generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xec018e97 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xec049d95 account_system_vtime +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec21dd82 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec39a6e0 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xec3a6c60 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xec4e2539 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xec68b1e4 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xecb361d9 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xecbeff52 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xecd43a5f ide_pci_resume +EXPORT_SYMBOL_GPL vmlinux 0xece4414e fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0xecf3ff45 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xed51a5f8 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xed6af309 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xede4908f crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xedf1c330 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xee01ff22 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xee0b1edb usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xee510e07 use_mm +EXPORT_SYMBOL_GPL vmlinux 0xeeb06aa0 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xeec4658b scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xeed8f959 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xef017924 force_sig_info +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef80b146 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf045c3a8 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xf07da5b4 spu_init_channels +EXPORT_SYMBOL_GPL vmlinux 0xf098dd15 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xf0cbde4d skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xf1020fe5 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0xf118e0f7 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xf11b6e61 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xf12bc8e5 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf18c9940 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xf19e8a0e platform_device_register_resndata +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1db4b4e ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0xf1ebd9ae ps3_mmio_region_create +EXPORT_SYMBOL_GPL vmlinux 0xf23e9014 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xf252bc07 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xf2c99e23 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35891e8 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xf36d3988 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xf376e1f0 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3e355cc ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0xf3f2f255 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xf462fd51 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xf469c705 ps3_io_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4e8a650 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf539a3bd crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf5a47a0d ide_pio_bytes +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5da7917 ide_release_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xf6203317 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xf644bcae crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xf67f4394 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e68098 eeh_remove_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6f33ffa ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xf71a72d1 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xf7610a70 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xf7abe780 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xf7af09ce ide_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xf7b0661b tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8e398fc memstart_addr +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8f59d2f debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xf8fc7e9d register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xf9230c02 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xf96f98fb map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a05a66 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9fc5722 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa18036e put_pid +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa35c4ed ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xfa8cf8c7 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xfaafe919 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfab830ea tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xfac4baae input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xfad06a5d pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xfb2bd8a0 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb5709a4 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb9d04d7 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xfbc509e3 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xfbecd99f sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xfbf3b630 ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbfcdc2b ps3_sys_manager_get_wol +EXPORT_SYMBOL_GPL vmlinux 0xfc02819d trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xfc3d9b4e ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xfc465cbf pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xfd3cc578 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xfd469154 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xfd91954d sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xfd93a7f3 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xfd955ca1 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0xfd97cf6a sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdf575f3 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xfe11c027 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xfe5597d9 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xfe8fc122 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe9c085d blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xfebd8d43 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed7f866 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff0dacff ps3av_video_mute +EXPORT_SYMBOL_GPL vmlinux 0xff2a9e46 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff7b42d2 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xff7e951f class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffab76ef ide_port_scan +EXPORT_SYMBOL_GPL vmlinux 0xffaf75f8 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xffb58d84 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xffd36a23 led_trigger_show --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/powerpc/powerpc64-smp.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/powerpc/powerpc64-smp.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/powerpc/powerpc.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/powerpc/powerpc.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/powerpc/powerpc.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/powerpc/powerpc.modules @@ -0,0 +1,2747 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +74x164 +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 +ab8500-ponkey +ab8500-usb +abyss +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +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 +ad5398 +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +adcxx +adfs +adi +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 +adv7180 +adv7343 +advansys +adxl34x +adxl34x-i2c +adxl34x-spi +aes_generic +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak881x +alauda +algif_hash +algif_skcipher +ali-ircc +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd8111e +ams +analog +ansi_cprng +ans-lcd +anubis +aoe +apbuart +apds9802als +apds990x +apm_emu +apm-emulation +apm_power +apm-power +appledisplay +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +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 +ath5k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp870u +atxp1 +aty128fb +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +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 +basic_mmio_gpio +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcm63xx +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bmac +bmp085 +bna +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcm80211 +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 +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capi +capidrv +capifs +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cciss +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cicada +cifs +cirrusfb +clearpad_tm1217 +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +configfs +core +cp210x +cpia2 +cpqarray +cpufreq_stats +c-qcam +cramfs +crc7 +crc-ccitt +crc-itu-t +crc-t10dif +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-mfd +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +dabusb +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 +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dm-log +dm-mirror +dm-multipath +dm-queue-length +dm-raid +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 +ds620 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3155v4l +dtl1_cs +dummy +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-lmedm04 +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_midpci +dynapro +e100 +e1000 +e1000e +earth-pt1 +easycap +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 +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +encrypted +eni +enic +epat +epca +epia +epic100 +eql +esd_usb2 +esi-sir +esp4 +esp6 +et1011c +et61x251 +ethoc +evbug +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 +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +g_dbgp +gdth +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_ncm +g_nokia +gpio-addr-flash +gpio-charger +gpio-fan +gpio-i2cmux +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_vbus +g_printer +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_konica +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_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hanwang +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 +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-zpff +hid-zydacron +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpilo +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-dev +i2c-eg20t +i2c-gpio +i2c-hydra +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mpc +i2c-mux +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 +ibmpex +ib_mthca +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igbvf +ili9320 +imm +imon +imx074 +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 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +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_boot_sysfs +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isdnloop +isight_firmware +isl29003 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +istallion +it87 +it8761e_gpio +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jsm +kafs +kaweth +kbic +kbtab +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kyrofb +l1oip +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-lp5521 +leds-lp5523 +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 +libceph +libcrc32c +libcxgbi +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_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 +lp +lp3971 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lrw +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lxt +lzo +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_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max1586 +max1619 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8998 +mb862xxfb +mb862xxfb_accel +mb86a16 +mb86a20s +mc13783-adc +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc33880 +mc44s803 +mceusb +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mesh +metronomefb +mfd +mga +michael_mic +micrel +microtek +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mk712 +mkiss +ml_ioh_gpio +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mmc_core +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mrst_max3110 +msdos +msp3400 +mspro_block +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 +mvsas +mwl8k +mxl5005s +mxl5007t +myri10ge +nand +nand_ecc +nand_ids +nandsim +national +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +net2280 +netconsole +netjet +netrom +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_defrag_ipv6 +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 +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 +nosy +nouveau +nozomi +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 +old_belkin-sir +olympic +omfs +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 +ov2640 +ov6650 +ov7670 +ov772x +ov9640 +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_artop +pata_atiixp +pata_atp867x +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_macio +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc87360 +pc87427 +pca953x +pca9541 +pca954x +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pch_can +pch_dma +pch_gbe +pch_gpio +pch_phub +pch_uart +pci +pci200syn +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 +pmc551 +pmcraid +pmu_battery +pn544 +pn_pep +poseidon +poulsbo +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +ps2mult +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +qt602240_ts +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192u_usb +r852 +r8712u +r8a66597-hcd +rack-meter +radeon +radeonfb +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +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-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +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-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-msi-digivox-ii +rc-msi-digivox-iii +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-002t +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-terratec-slim +rc-tevii-nec +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +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 +rio500 +riscom8 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +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-ds3232 +rtc-ds3234 +rtc-fm3130 +rtc-generic +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +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 +rtl8180 +rtl8187 +rtl8192ce +rtlwifi +rxkad +s1d13xxxfb +s2255drv +s2io +s3fb +s5h1409 +s5h1411 +s5h1420 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +sam-ba +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 +sbe-2t3e3 +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-platform +sdio_uart +sd_mod +sdricoh_cs +se401 +sedlbauer_cs +seed +sep_driver +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +ses +sfc +sg +sha1_generic +sha256_generic +sha512_generic +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_of_platform +sja1000_platform +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slhc +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +smm665 +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-aloop +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-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +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-oxygen +snd-oxygen-lib +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-88pm860x +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-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max98088 +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-wl1273 +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-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +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-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +specialix +spectrum_cs +speedfax +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +spi_topcliff_pch +squashfs +sr030pc30 +sr_mod +ssb +ssfdc +sst25l +ssu100 +st +st1232 +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste10Xp +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +swim3 +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +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 +tda18218 +tda18271 +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +therm_adt746x +therm_windtunnel +thmc50 +ths7303 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tle62x0 +tlv320aic23b +tm6000 +tm6000-alsa +tm6000-dvb +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 +tps6524x-regulator +tps6586x-regulator +trancevibrator +tridentfb +trusted +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030_charger +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twl6030-pwm +twl6030-usb +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +uas +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 +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 +usb_gigaset +usbhid +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vgastate +vgg2432a4 +vhost_net +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +vicam +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 +vivi +vivopay-serial +vlsi_ir +vmac +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vx855 +vx855_gpio +vxge +w1_bq27000 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w6692 +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w9966 +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 +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +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_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/powerpc/powerpc-smp.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/powerpc/powerpc-smp.modules @@ -0,0 +1,2745 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +74x164 +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 +ab8500-ponkey +ab8500-usb +abyss +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +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 +ad5398 +ad714x +ad714x-i2c +ad714x-spi +ad7414 +ad7418 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +adcxx +adfs +adi +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 +adv7180 +adv7343 +advansys +adxl34x +adxl34x-i2c +adxl34x-spi +aes_generic +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak881x +alauda +algif_hash +algif_skcipher +ali-ircc +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd8111e +ams +analog +ansi_cprng +ans-lcd +anubis +aoe +apbuart +apds9802als +apds990x +apm_emu +apm-emulation +apm_power +apm-power +appledisplay +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +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 +ath5k +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_pci +atmtcp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +auth_rpcgss +autofs +autofs4 +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 +basic_mmio_gpio +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcm63xx +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bmac +bmp085 +bna +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcm80211 +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 +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capi +capidrv +capifs +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cciss +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cicada +cifs +cirrusfb +clearpad_tm1217 +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +configfs +core +cp210x +cpia2 +cpqarray +cpufreq_stats +cpu-notifier-error-inject +c-qcam +cramfs +crc7 +crc-ccitt +crc-itu-t +crc-t10dif +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-mfd +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +dabusb +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 +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-crypt +dme1737 +dmfe +dm-log +dm-mirror +dm-multipath +dm-queue-length +dm-raid +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 +ds620 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3155v4l +dtl1_cs +dummy +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-lmedm04 +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_midpci +dynapro +e100 +e1000 +e1000e +earth-pt1 +easycap +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 +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +encrypted +eni +enic +epat +epca +epia +epic100 +eql +esd_usb2 +esi-sir +esp4 +esp6 +et1011c +et61x251 +ethoc +evbug +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 +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +g_dbgp +gdth +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_ncm +g_nokia +goku_udc +gpio-addr-flash +gpio-charger +gpio-fan +gpio-i2cmux +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_vbus +g_printer +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_konica +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_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hanwang +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 +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-zpff +hid-zydacron +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-dev +i2c-eg20t +i2c-gpio +i2c-hydra +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mpc +i2c-mux +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 +ibmpex +ib_mthca +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igbvf +ili9320 +imm +imon +imx074 +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 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +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_boot_sysfs +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +istallion +it87 +it8761e_gpio +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jsm +kafs +kaweth +kbic +kbtab +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kyrofb +l1oip +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-lp5521 +leds-lp5523 +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 +libceph +libcrc32c +libcxgbi +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_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 +lp +lp3971 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lrw +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lxt +lzo +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_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max1586 +max1619 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8998 +mb862xxfb +mb862xxfb_accel +mb86a16 +mb86a20s +mc13783-adc +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc33880 +mc44s803 +mceusb +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mesh +metronomefb +mfd +mga +michael_mic +micrel +microtek +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mk712 +mkiss +ml_ioh_gpio +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mmc_core +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mrst_max3110 +msdos +msp3400 +mspro_block +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 +mvsas +mwl8k +mxl5005s +mxl5007t +myri10ge +nand +nand_ecc +nand_ids +nandsim +national +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +netconsole +netjet +netrom +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_tftp +nf_defrag_ipv4 +nf_defrag_ipv6 +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 +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 +nosy +nouveau +nozomi +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 +old_belkin-sir +olympic +omfs +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 +ov2640 +ov6650 +ov7670 +ov772x +ov9640 +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_artop +pata_atiixp +pata_atp867x +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_macio +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc87360 +pc87427 +pca953x +pca9541 +pca954x +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pch_can +pch_dma +pch_gbe +pch_gpio +pch_phub +pch_uart +pci +pci200syn +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 +pmc551 +pmcraid +pmu_battery +pn544 +pn_pep +poseidon +poulsbo +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +ps2mult +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +qt602240_ts +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192u_usb +r852 +r8712u +r8a66597-hcd +rack-meter +radeon +radeonfb +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +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-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +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-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-msi-digivox-ii +rc-msi-digivox-iii +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-002t +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-terratec-slim +rc-tevii-nec +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +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 +rio500 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +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-ds3232 +rtc-ds3234 +rtc-fm3130 +rtc-generic +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +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 +rtl8180 +rtl8187 +rtl8192ce +rtlwifi +rxkad +s1d13xxxfb +s2255drv +s2io +s3fb +s5h1409 +s5h1411 +s5h1420 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +sam-ba +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 +sbe-2t3e3 +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-platform +sdio_uart +sd_mod +sdricoh_cs +se401 +sedlbauer_cs +seed +sep_driver +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +ses +sfc +sg +sha1_generic +sha256_generic +sha512_generic +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_of_platform +sja1000_platform +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slhc +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +smm665 +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-aloop +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-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +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-oxygen +snd-oxygen-lib +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-88pm860x +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-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max98088 +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-wl1273 +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-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +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-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +specialix +spectrum_cs +speedfax +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +spi_topcliff_pch +squashfs +sr030pc30 +sr_mod +ssb +ssfdc +sst25l +ssu100 +st +st1232 +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste10Xp +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +swim3 +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +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 +tda18218 +tda18271 +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +therm_adt746x +therm_windtunnel +thmc50 +ths7303 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tle62x0 +tlv320aic23b +tm6000 +tm6000-alsa +tm6000-dvb +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 +tps6524x-regulator +tps6586x-regulator +trancevibrator +tridentfb +trusted +ts_bm +tsc2007 +ts_fsm +ts_kmp +tsl2550 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030_charger +twl4030-gpio +twl4030_keypad +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twl6030-pwm +twl6030-usb +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +uas +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 +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 +usb_gigaset +usbhid +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vgastate +vgg2432a4 +vhost_net +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +vicam +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 +vivi +vivopay-serial +vlsi_ir +vmac +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vx855 +vx855_gpio +vxge +w1_bq27000 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w6692 +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w9966 +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 +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +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_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/powerpc/powerpc-smp +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/powerpc/powerpc-smp @@ -0,0 +1,10879 @@ +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 0xc4c30a84 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xe9762473 uPD98402_init +EXPORT_SYMBOL drivers/block/paride/paride 0x24e083cc pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x58d61066 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x7fbf124d pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x9b9b6989 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xa081569b paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xcaa62763 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xceb5a212 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xd0026988 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xd0847a54 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xd51b8b02 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xed25a1d0 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xfdff5647 pi_write_regr +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 0x01a7751f ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x01f72571 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x12bf721d ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1b01e0fc ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x28e09478 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2d44aba4 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x51c015ed ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x556ef735 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x651a6638 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6916f9c3 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x783ef497 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x83c86de3 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x87632253 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8b1a6fb9 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9aeabe23 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9b974d1f ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9c5c5abb ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb1039112 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb57df7aa ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd244d35d ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd42c4401 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xed4ad487 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xee0bff02 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf24b8867 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/edac/edac_core 0x8ea43da5 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xd83065f7 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xea5cbac0 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x12c18a1d fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1d7d6ffd fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x45237f7c fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5332d8cd fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x56049ebe fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x60271a55 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7269693f fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x787cca10 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa248b3f6 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa7925a4c fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa83bcd23 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaacec29a fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbb680389 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc3574e7c fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc47dec31 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc5cb2eb6 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd3f82823 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd4cdea0a fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd877fb07 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdc984bb6 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdf6651bc fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xee0c89d9 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfe874cb9 fw_core_handle_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0096562e drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0196243b drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x023fd587 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04839a19 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04ab5fb2 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04b91b8c drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x094781e9 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12848b4f drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13d4f5e1 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14db4ee3 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x175dd910 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x186a9b5f drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d5fc9c2 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d646c9b drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dd6f7b3 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x202e4803 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b5c6d1 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26a32155 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2716193b drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27e86734 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a4286b4 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ae99572 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2aebe5de drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b06a753 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2dd2959d drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3034d37c drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x310fc402 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32e9fa06 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3411e4e5 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x342840e6 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35527650 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35e599d4 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38d65ad2 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3aa7aeab drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab4cd83 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ad9d5a1 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d689fae drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46e5ca23 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x482fecd4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ba4e148 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c72e40c drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d94dbdd drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53fe2238 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5691f450 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56961d29 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56a56713 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58399e97 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58cee82b drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x598baa02 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b9c92b1 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5da44351 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5db5191f drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61e14015 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61f5ea3f drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63381e98 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6368853f drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x641226e7 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x641fd971 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64c0a8a9 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66b59ffb drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x680f84e6 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6846a00d drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x688c0b6e drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68e2ffb2 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69671c7d drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cd03fb2 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e2b3543 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x753ca908 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75f192d7 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x776cf5f1 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x783d053b drm_mode_duplicate +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 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f6c741f drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x802bd56e drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82c6ffdb drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x842e5092 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x854ec48c drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86146cff drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b714060 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b7c6588 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d5d50c0 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e093f35 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93966578 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95022385 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9599088b drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96bf8fc1 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e91edb1 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fe40ba3 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1fe79a2 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa471e7b2 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4fce7e5 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab881e7e drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabfe4b3c drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaec80f72 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4500bd9 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4ab62c1 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbbc55c4 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbe5f7e8 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1ac924a drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc23b8d2b drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc33a434b drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc377d0d4 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc680430b drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6cdb1f5 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9479ac9 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc97743f0 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca6ab4b5 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca88c90c drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb8be398 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc12ff0a drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc4c9db0 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd688e5d drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdec1e68 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd20662c6 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2b821dc drm_mm_put_block +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 0xd7452fe7 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf8d7c15 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0c6c545 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe21034e0 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe25c632b drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe545b0f3 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe56a1ca1 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6372ba2 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe681d1a7 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7b4179a drm_mm_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 0xef0daac6 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf141ead2 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1f0ef73 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf34be33b drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf580a524 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9068eef drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd9c0481 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe98956f drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfef2eba3 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10a46ba3 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10d4202f drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x29dba92a drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c94c06f drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x495382bd drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x53ac3a85 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ce835a9 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6129fcd2 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x614e29f7 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x70aac233 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x745248cb drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x74bdbce4 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77802e70 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77b6f7a3 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84922b85 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86e5c609 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8710c21b drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x931731f5 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x98295ac4 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa2668965 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaeb35714 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbb8a495d drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc797b04 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbcf69014 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbda10713 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 0xc547ca87 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc5fb2b3 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd03b6300 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdc42c6bc drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe16c6433 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0f831071 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1b995c97 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ca88df8 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d89df73 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x21dfd78a ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x221dda4c ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x248290b6 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24e27ee4 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3063da4e ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3513d551 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3d284719 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3df3e530 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f440179 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fd155ed ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x43c63d40 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4619855d ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x491b28e0 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4a6cbe94 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5242af42 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5c343b52 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5e55f1a3 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61afaec5 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62ea3884 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x64bd64f0 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6aeb37f0 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6bec8461 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6eaeae88 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x77090d32 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7a11e4fa ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7dcb1e64 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8097e3cc ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8714a734 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89bb345c ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8a47693e ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x940438e7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x96ba777b ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b2be07d ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b4da95b ttm_bo_manager_func +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 0xac843717 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb70484eb ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb843d440 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbb29e570 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbfd9b6a1 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc664521a ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcaaa7637 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcf336f25 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd0c01dfd ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7ca4964 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9b87c88 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xddff4ef8 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe8296c96 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xea026421 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xea7f9736 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf6e0f046 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-pca 0x06547166 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x083e8307 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x2a4b4acd amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa09fad33 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xe1c319a6 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x01fa5d97 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x16507524 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1661b913 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x20aff6c0 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x245c6739 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2ccd7840 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2f025462 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x32253cbb ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3a97d834 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4a3a4dab ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4f8cdea1 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7f051310 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x818363b2 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x83a6a3ea ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc3058001 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd4848b28 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd9cadc56 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0017e8ea ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x073c9423 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a1d2edd ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0f3c2bac ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1067b0f0 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10ef2543 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17a7deab ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18d2d5e1 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1bd650b3 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e8ce15a ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25b762da ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x264cb6ee ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f24b345 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38086a9c ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x42a61355 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44e7c86e ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x486f3683 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bb14f30 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4f612fea ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6640c0e2 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ec4038b ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x71f7ca5c ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76010821 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78af118c ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79012c73 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ab8993f ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ee187fc ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x80399b0d ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81060c10 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86b447b4 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8df90384 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e833076 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94abdfed ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9745e1e4 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9952aa45 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9a2bec4d ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ba1e7bd ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9be014aa ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9dc315b4 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3e90c26 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaad99511 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae8e4954 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb17c57b9 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb24cf1dd rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb6dea7fe ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7b3188e ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbccc7f9e ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdcaf92c ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe096554 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2ab84a3 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc42e8f22 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4eb6255 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc65de988 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6903f39 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcac558b4 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda088a4f ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde4bbaa1 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf1c73ef ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe01b1ca9 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe01c5c8d ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4739ade ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4ca844a ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe51df648 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeb254fea ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebf8d07d ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec97dcff ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6d5ec19 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x33c225c5 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 0x7e11f20a ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9194db6e ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa6f1a907 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xadb512a6 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbc0e8c94 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcbdf8d27 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xced711a1 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd2e5025e ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd9204b94 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe44910e2 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xec8b7a0b ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x54aa6d18 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x67e4359a ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x86738f3a ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8b2ba249 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8c162b55 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x99186617 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa419cda5 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 0x1c84b729 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1cc03808 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2f7cdebd iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5155eda5 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x530304a8 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa4cde699 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbfc40858 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc14b29b6 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x085e8d1a rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0e225ed0 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0ee6e41e rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4e42d45d rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x563f118e rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x58668fc9 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x78fd6c00 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x85c0b262 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8744867b rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0b169ef rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa1bd9416 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa2feefb2 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaecbb6e1 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc74b579e rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd1d97e2a rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe6153710 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf3bd5bf1 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf4de1949 rdma_bind_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00c2e3ad __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x02d68aa1 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3f567956 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7c3b56aa gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9a5c45ac gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa90d1b5d gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcb5cc218 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd5bec48a gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe78212f3 gameport_unregister_port +EXPORT_SYMBOL drivers/input/input-polldev 0x21249b65 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x21e2889d input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x66f0ec0c input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xe10c62ac input_register_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x2fa58069 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xa96559df ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd8a4e265 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xfb3c5a7b ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x03bde0bb cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x19d40c3f cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x368d011c cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xcb6edb31 cma3000_init +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0db6f0cb sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x6193b872 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa2a24d41 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb5202284 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xcbd5fce4 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xef79c1ad sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x8ca2ca71 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbfccb273 ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xca7d4600 ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xce9acd39 ad7879_probe +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xc242a992 capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xd054473b capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x122613fd capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1b4d74dc capi_ctr_down +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 0x3abc6f63 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47938847 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50742723 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa76f88ae capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa8d90be9 capi_ctr_suspend_output +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 0xc5895a6f capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xda193cd6 capi20_put_message +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 0xf85ae298 capi20_register +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x05b1d3bf avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1378d595 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2290352d b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x419c9dab b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x46e51743 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7f455e68 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8160b556 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x91270616 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9be24f09 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa55dcf04 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb4cd99f8 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc2254282 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdd424761 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe3621d8b b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa0a4b48 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x19b2e12c t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3be4d9e9 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3ce7d911 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3e464562 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x673b0210 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8d160659 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8fa617b0 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd9e76c10 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf9db4706 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 0xeb220769 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x0cfb6f70 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x296378d9 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x498608aa mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x5dcbb8e9 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x57bc0ba6 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x79ce5447 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 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xd5322c20 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x0e6de97a isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x12a8d98f isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x81f43cfb isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9f3ab3d2 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xd0288a43 isac_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x37129cd9 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7200aa28 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xbb97df36 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x04d39a4f dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x08fb5f4c mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0d2ecb09 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x156b63f7 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2c1a257c recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x376c86a2 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x47cd4a1b mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4aaf2d18 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54e4dd0f mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x59348751 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6a32a709 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6ba6ea91 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8341a827 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8f4aa4b0 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9d08b119 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa3700880 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb2bba21f l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xba59cce9 mISDN_clear_bchannel +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 0xe0d3e73f mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe5cf375c bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8286848 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +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 0xfacaeba5 recv_Echannel +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/dm-log 0x05f89ae3 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x35bc2edf dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xcb2b6389 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xe70cfbae dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x06842c95 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x38e84030 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x4bc9296a dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xbd8697bd dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xc7642d73 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xdbce5b01 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/md-mod 0x011b35af bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x0771ec75 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x0a60c7a5 md_error +EXPORT_SYMBOL drivers/md/md-mod 0x0b186a66 bitmap_cond_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x0f908567 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x19311d38 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x22e743fe bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x2c7ee7f4 md_integrity_add_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x34e15b8e md_integrity_register +EXPORT_SYMBOL drivers/md/md-mod 0x3698821c bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x43c27d1a mddev_congested +EXPORT_SYMBOL drivers/md/md-mod 0x4d4ae002 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x5435cd7e md_flush_request +EXPORT_SYMBOL drivers/md/md-mod 0x5cf85800 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x5d3ea134 md_check_no_bitmap +EXPORT_SYMBOL drivers/md/md-mod 0x73735de1 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x7980087e md_wait_for_blocked_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x931eba14 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xa3d28738 unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xa7b7be37 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xc218e4ff md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xeb9789c3 md_set_array_sectors +EXPORT_SYMBOL drivers/md/md-mod 0xf0cccf1c md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xf2ae8f55 md_write_start +EXPORT_SYMBOL drivers/md/raid456 0x331912c5 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x097fce5c max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x7fc0d852 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x4c735ce6 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xf8ab1b1e mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x7b737cde mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x48a15bfa mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x14e2223d qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x985cc290 tda18218_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 0xf7eeee5d xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x133c1e99 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x09fb2c4d flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x169d915c flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1f9c9033 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x241a81b7 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2e0f6698 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x48941af2 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x496f329d flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4d158e7c flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x674e9512 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6f20393c flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x81798d24 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x85cdc990 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x93954b79 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x95c613a3 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x987ddcfa flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x99d5a953 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9a7fdec9 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb884cc2f flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcb6e1009 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xea290983 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x07a7b694 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x677c1e5c bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xb7a49605 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xc72e34d2 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1f64d61d rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x27c4986c read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x42fde6fe dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x55581b12 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5565e25c dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5604c371 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x91265aa2 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbb74078a dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe043fb2d dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xede27cf2 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 0x14242ca0 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x19591134 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x19a0e9b8 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x22d6ce4a dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x28ee2ae8 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x29f51e82 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c760e83 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x34fb0562 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3f7224d5 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4743c17e dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4d3b9a9c dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x506f3891 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53575d42 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x593fccac dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x64136cb0 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7046d043 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7604fdb9 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x775f0097 dvb_net_init +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 0x84869bc2 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e47dce5 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa558c051 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa574d472 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa5f7f0b3 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa6d2c698 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4bb579 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb1df7dc8 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb9bd108a dvb_dmxdev_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 0xdfe64b0c dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe199ff39 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf9c6c27c dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfdc445c3 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x25d3f9d3 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6e016d85 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8fc63d25 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x951cd469 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x9bb8f843 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa24d955d dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc5ec9e7d dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x90750c82 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0af4e60e dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x132a0af7 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x51d6c06e dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x52333a28 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x67cca00c dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x85e09d80 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa16f397f dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc7f3676d dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd2aac198 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd90460b9 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf1d69d46 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xb3043c48 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xb727ec3a atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xca6ad1b1 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x4dcc71a9 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x9215eadf cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x6c71b3be cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x31f0ff80 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xc5aa8301 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xfc5bcdc5 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xc2cadb01 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x150fbe7b cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x7b4332be cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x617b7bcb dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xb4db79d5 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xcc07a631 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xda28896e dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf13d8d52 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x182b1abc dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x33c00050 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x58298129 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x78b46868 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x86db60c8 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc9fcf09d dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xd672aefd dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf383860a dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x21bd886c dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x527d6e3b dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8abdd2db dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x93f7e000 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xbd89d4b2 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xce53fc2e dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf0924f9e dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x423e541d dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x50b336a7 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x9584c559 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xc40e524b dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0fa6a45c dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1bd1fa61 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2c7a0e02 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x33ea006d dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x388e9da7 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x751b4910 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb2e89e5e dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf82ae2a6 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0dedaac5 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1b07ac26 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x3c798998 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x44dbe7ff dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5b6d5a11 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x96efd262 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x97719337 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcb6d40e8 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd4e46acd dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdf540225 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xebfdd031 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x1b0b8bf8 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x514bd280 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x644a627a dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xdf73859d dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xbaa6db9d ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x4ceea6e8 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x26797cbd isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xee797cc8 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xa10594f7 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x4046faef itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x7496b083 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x838c6051 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x2c6e58c1 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x6721f0b6 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xd3d148de lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x808dec62 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xf313f56f lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x2d2f4c78 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x15878bc2 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xa6bd2522 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x12a62e9f mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x5e87c512 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x8bf99b74 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xe800f197 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x22c8cfe8 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xfb27cee3 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x9466dbc3 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x0e1b27bf s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x14336b68 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0xe1c51be8 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xf889d8ac si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x0729c8a2 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xdd458195 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xec2027ec stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xe4ea0885 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x5ebee981 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xede083a4 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x04001bb2 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xbafb9cf0 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x97478038 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xfed4e513 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xd8f1906a stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xb57a5d23 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x8b1c2562 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x5d6617b1 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x7faa30bb tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x4759844b tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x4de02955 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x843f4ca1 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x4d51e171 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x58777c40 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xf7b1e372 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x8f1c8ab9 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x54d2d281 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x35d5a348 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x5b1a52e9 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x5ffdc868 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x47ab15f5 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xe5763bb7 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x600805f8 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x49b08b36 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x62778afc ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x05e848f4 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x278fd138 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x335b57e7 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x36764c3b lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x54c49331 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x6929ed4e lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9abddfa6 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd8d58599 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/rc-core 0x198a08ed ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x40efc6fc ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x638b0368 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x99bf366a bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xcbac6332 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x402bb9ca 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 0xf0045991 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2b08230a cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x37527cb5 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x551464fb cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x5c4f7d01 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xaf9f522d cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x9ba01f62 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xdb38bbcf cx231xx_unregister_extension +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 0x7bcfdebd cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x9572ee04 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx2341x 0xa5ba5584 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +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 0xde7a8b3d cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x75f0cc70 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xcc11ff18 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x4dc39a10 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x50549d87 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5a48d3ac cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x889fa883 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa074d74d cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd4974c89 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x15bb0d81 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x4d01cdc9 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9b1ef95f cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa7daeee4 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd6ccabaf cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xe59041e3 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x03dafbeb cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1294ebf6 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x12eb524f cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x33673198 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x341813d1 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x36dde21b cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x381259d8 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x553b6a4b cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5d266df9 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6868cebb cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6f3de7f6 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x76e3db0d cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7a6746fa cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7b348536 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7d157b2a cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbf855ceb cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcd331416 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xce6fb868 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd9c5a364 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe5a83821 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf103e793 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfe79099e cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x1eaac998 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x7fbf7ba2 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x55f717e2 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x5fb5421b gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x72086664 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7dfed3f4 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x95a03b7b gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9d6bb44d gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xda0e6f7a gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x335d1c77 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4e845c2d ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5a265cc9 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5cf0dba3 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6173efcb ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6ad9c5cd ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x875731e4 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x8c1a5053 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x98db06e0 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9c7f5bcc ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb9d5da97 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe8c75ded ivtv_clear_irq_mask +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 0x37012bba saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x374ec88a saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x38ca9b8b saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x41b30e09 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x562bd679 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x574771dd saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6fcf5e87 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8c4833d6 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa8ffc914 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb3494c36 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc15de1b0 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd6d28080 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x327e108d soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x39367671 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x510ed7eb soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x9398e5d3 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0xdfbbec6e tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xffe3a323 tveeprom_hauppauge_analog +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 0x1abb5fd2 v4l2_ctrl_check +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 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 0x6a77a72a v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x900881f0 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa4bf0ba4 v4l2_ctrl_query_menu +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-mem2mem 0x299361da v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x537e0798 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x87b8eee0 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xe780dbaf v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x5aeea28e videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6fb0399d videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x8b5cb406 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb7d4d096 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc5e1fca4 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xde9a0868 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videodev 0x01b8567e video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0db04276 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x12862bb4 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x267e3859 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3b897ca4 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x42b521bf video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4fdde33d v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x509eb8dc v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x68768480 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x69b45eff v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x6cf3ed7c video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x71278f6e v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x7188bd0f v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x75ac1282 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x76b30da8 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x76cd9ec5 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7d348190 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x8170fcfc v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x81b52225 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x87e5c092 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x8c8c73c9 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x92831557 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x939fbdd5 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0x950f3af5 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x9f135670 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xabb4573b v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xae8695c0 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xc2a2fd60 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xc49f6334 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0xcf12e860 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xd6924d49 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xe1973396 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xea80627e v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xeae540e6 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xece05e48 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xef4a8d90 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf8466346 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xfcfe5c5b v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x0ee60199 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x8f241987 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xa9d55bfd videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xcfa6e583 videocodec_register +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1d771a10 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2c43f17b memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2d813503 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5210eb5c memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b5c17c8 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5bc673e6 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x722b4238 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7ed648cd memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c9b5da4 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x97fa6ec9 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa9b1c51d memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xadf34bda memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb4829668 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xed3844c0 memstick_resume_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x122bc2f0 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1cb9b641 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e5fd001 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x20db9392 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x23c78879 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28c2e71a mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x35e1e885 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x40722d91 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4641ab7f mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4f4d332d mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x508df333 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5de2d84f mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x642d3658 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69eafe37 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x779a95c7 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7a7a53e5 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7d8e3701 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7d90e3f0 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7e36da37 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9c99ff0c mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9ff8b5e9 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa80f5dae mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa8150459 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb57225e6 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb9294c08 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcd7e9e72 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcf71caeb mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd460683d mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf861f520 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0f5a07a6 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1d296761 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1e56fba1 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30613c0d mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3396b6bc mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3a46b756 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ce398c8 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5416aa19 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5ad8a1d0 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5d27060b mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6e06382f mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7b9e5cce mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x85dc6829 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x86954cd4 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x932ec7c5 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x94bc33bc mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9595e4ef mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xadfcacf3 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb294af82 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbf4dbafb mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0f9f480 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc7a31953 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd55b454f mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe14a09b8 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf0b44468 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfeec6bef mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x00bc00b4 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x08236f7c i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0bc41363 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0ffa3535 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1698b35f i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x19c8c936 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3b484aad i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x40b8211f i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x45b2178f i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x636a0a28 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x87fa7fac i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x922f8f3f i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa4697676 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc9587c00 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd54397ec i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdc4ad3f3 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe9d43929 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xee7e35ba i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0363c7c6 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xed0d8ccc pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x101cbcae mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x14c4521a mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1dfee83e mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x45a20643 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x49dceecc mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x98685159 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa3eee197 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa426e45f mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xaa1e09fd mc13783_to_mc13xxx +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xada5397f mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xba50b42a mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbe1ac203 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xddc359b6 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf09f8444 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x0c23f5b9 pwm_config +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x24ba6d1e pwm_free +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x9d09808d pwm_enable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xb0493b18 pwm_disable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xc1f4ec93 pwm_request +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x01b72611 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x35ade3e5 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x4ecd1fbb c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xcd67345a c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x448dc1d0 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x9003015b ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x1d400654 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x2814e67e tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x40f046f9 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x4704122e tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x4d19ada0 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8581a352 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x8f357735 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xb9526296 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xbee4320a tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xd7b612b0 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe9cfe92d tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xf1694c69 tifm_add_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xed046e97 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x01990477 mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0757b083 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1e3b3165 mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x20b2fa50 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x38dfa50b mmc_erase +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x40d5776a mmc_card_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x41dc9f32 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4bd4da36 mmc_erase_group_aligned +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4dead860 mmc_host_lazy_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5bcbdf87 mmc_can_secure_erase_trim +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x76ba3808 mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8663ec01 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x896c4d86 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9a75cb3e mmc_host_enable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9b7dc36b mmc_host_disable +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa0ae2622 mmc_regulator_set_ocr +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa7ad119c mmc_power_save_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa871fe39 mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xabe3a516 mmc_card_can_sleep +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xae4680f3 __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb30421a8 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc4b9d92f mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc4cc573e mmc_power_restore_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc5080e91 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xcadeff33 mmc_set_blocklen +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd03fc553 mmc_can_erase +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd072c32f mmc_can_trim +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd5c6b0c4 mmc_try_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd6110430 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd637a557 mmc_align_data_size +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe5ddb3bd mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf09ebc87 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf5253091 mmc_card_awake +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7f4a0f7c cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9cae9524 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa8cbc172 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x1a828298 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2e736309 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7b2fa4d9 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x97275bbe map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x08d41457 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xc8c06b6e lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xc4db72a0 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x1a6b5578 of_mtd_parse_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x92867cec del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xcc4dd664 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x7cace371 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xc870290d mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x14d22808 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x163b2111 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x380b5eb7 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8ca7afdb nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xce015316 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xd2edd2a0 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xfb265bd4 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x6a5151fb nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x7f5f5618 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x31eda0f6 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x55246f44 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x56238310 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbd8b3644 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x100778d4 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0x3ffcbb83 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x41f7c522 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x4cf2c344 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x515bcfd2 ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0x94f59fde ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xa9e6473c ei_open +EXPORT_SYMBOL drivers/net/8390 0xc538c0f2 ei_close +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xf2fe4f8c ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xf3f92f12 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23b14379 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4b499a6c arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x698c158b arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6c821bcf arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6f5523e1 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xafaef57a arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd25932f6 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd3f99888 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd833926b arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf3186e1d alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1476220b com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x2127fdb6 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xec1cf2d7 com20020_found +EXPORT_SYMBOL drivers/net/bnx2 0xef2e560b bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0xa1aa5d76 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x01062b62 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x02ae3682 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x055d0629 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x180922b8 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2777b714 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x30e20ab7 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x469d44ac cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x683a423c t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7121f554 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x719e0c7b cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x72141d63 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa80f24af cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb7b67b66 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd2b5c8e9 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdaa3f63a cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe439d814 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfcbd66f0 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x024d5c3f cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1f6506d2 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3473f5b2 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x39861013 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3e5d3d29 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x41076b19 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x45906084 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x599cd360 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x629c2278 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6978bb6f cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x70d8d16a cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x762d1ad6 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcd88465c cxgb4_l2t_release +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 0xd42a0c61 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xeb0b5b3b cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf7311594 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x129d2a20 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1383f6e0 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x738362f3 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa9e0795c hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd1c42897 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x01b71f11 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6a0b4b36 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x81ed19ba sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x89200765 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8ccfee35 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8deeba08 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x97297d78 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x992d08bc sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb84822c9 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xee62ef6f 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/mlx4/mlx4_core 0x2084822b mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x44c0f0f3 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xb8f16757 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp_generic 0x2f68e98a ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0x383ae066 ppp_register_net_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x41ecb764 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x54361866 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x7344280a ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x82f17c9a ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x9364d0bc ppp_dev_name +EXPORT_SYMBOL drivers/net/ppp_generic 0x9e6ad457 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xcbb111f9 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xced04537 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xe6668a61 ppp_register_compressor +EXPORT_SYMBOL drivers/net/pppox 0x69ae62c4 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xa24cc284 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xd1a8e0c3 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 0x73141db1 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x09b5bd34 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x26736a53 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa8e9a6f5 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xcb431b3a tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf38074cb tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0b1fd924 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3655daa6 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x542b4114 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5ca1f6c2 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5da047b7 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x86b0bb0a alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x88863d8c hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x935b1fdb hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb115a485 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb2e06383 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf12e6a0f hdlc_open +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xb0660cc6 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x4b9c56eb stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x92257ab7 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xbb7e9994 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 0x35cc48de ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x387644bc ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3fef14ea ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x48eeb70b ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4a4412f7 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5bf4886c ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6060fb98 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb44ae76c ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe57c529d ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xef221c4c ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x55fe4bf5 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x809dcef3 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb177db68 ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x01529635 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02f9461e ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0370270e ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x048d9f5f ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06cdf64c ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x089799b4 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d455765 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f4ccd8b ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10cdc196 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x129a1495 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15133b40 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x152e32dd ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x197704f0 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d30d3ec ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ea85777 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f1c0aab ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20532ad1 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2464f760 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25936b1f ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ce4254b ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2df9b940 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32c9a369 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4062e99f ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46a7939c ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4abb28f8 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d6fdc0d ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e432ad9 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ea79212 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x50522aff ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x524fc849 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5683860d ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x569c2b7e ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x583f4d92 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60a77ccd ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6429112e ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x667c60c0 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f91138c ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7150be47 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75b93c1c ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78e35396 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79aa51b6 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7acf2bae ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f659997 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x814cd502 ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x831f4cdb ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8da121c5 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f22ddf1 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9630c4da ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b18bc46 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b8667f1 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ca4e033 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f254be0 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa17dca34 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1da7d5f ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4bc546b ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaba20761 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaece958f ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1c09e49 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb528e1cd ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5ba5de6 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb882755b ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba1f5110 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba29a804 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcbbff49 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf740fe4 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc358b577 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc39745fe ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc73373bf ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd15ad731 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2a95f70 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5b6a7b5 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd734327e ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8226971 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1b6c130 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe22f7d8b ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe78e7252 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe93c1979 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeabc200f ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeae3df16 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed86e627 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1970134 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1f5d296 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf33e6b9c ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf41d3b7d ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6818b2f ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7cd46ea ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/atmel 0x3eb8ce20 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x8ef01872 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xbe7387e8 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c3fdbce hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c8abf5d hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0e0215ca hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x18485b6d hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e029b26 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x216ae887 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22b0979a hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2bcbefba hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3e154751 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x480d0786 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x51673f5e prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x64169278 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x99dd1898 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9dd3def6 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa0d61118 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa639b4e4 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xac2f5707 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xac37ae78 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb35c5477 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbaefa226 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd701c922 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd9f9ef91 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdd7e8afd hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf3f5c5ef hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfc7b1103 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0f63cd5a libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1644c68f libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1b6cf543 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x269cd70c libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x39c70055 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x53503b18 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5b3ae4c0 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5f595306 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6078adb7 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6d6f6996 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7a9544ea libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x86647aed libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9bfacbd2 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa2cdb050 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xad4199a6 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb1a91ae2 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbfe604d1 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc1d87ae9 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd48b54f0 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe0d5de01 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf6f0b0d9 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x066fe096 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0a1b1a9c iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ab5d6f1 iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ac8dccc iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0dfd8bc8 iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0f3240ac iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x120b4aa1 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x128f2e80 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14fadfcc iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x150ffbc2 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1864ebf4 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18903268 iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18cca24d iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1c52d7cd iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1cd8fb36 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1e1f3f8a iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1e2bc34d iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x202f19c1 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x219db5ad iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23e9d624 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x26b5b7a4 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x295f4ab5 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2af542a1 iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2cd9841d iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33861069 iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3aeba198 iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e920234 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f55bd92 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44f3bf68 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4d770020 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4f2ee2d1 iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51200367 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x519141f8 iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x545e389b iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x563692ed iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5bdb02e6 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d01f7e4 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ffccd37 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x605bc1e4 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6216eb75 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6807f67f iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6a2ecb7d iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6fe59be4 iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72e56af6 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x75127a2b iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x769b1e26 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7e26a285 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7e386200 iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8107da55 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x83837537 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x84243266 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x87b2eda1 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x911f5cec iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x937fabb0 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9810cc52 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9ae56eb8 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9cde1f24 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9e5b1ea6 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa00bde61 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa04e0d26 iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa066e313 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa2ea6c09 iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa761b97d iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7f86efe iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa8d41ebb iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaa7dd8a2 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad733750 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae2bc118 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb1e737d0 iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6e66081 iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb99964c0 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc1850902 iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc1caabe2 iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc41a293c iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc43e77ed iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc59bcdff iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc648d40d iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc991e2e8 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca33042c iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcaa2ecea iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd9680739 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd9e1379d iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdca64624 iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe02e72a9 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe16f64b3 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe2b427e3 iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe31a1d0d iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3596a72 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8f1c572 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea4c7d37 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf0a9b50d iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2622580 iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf733eb13 iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9dbef17 iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfad6d8dd iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb136d98 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbcfdff4 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfce483a2 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfd100123 iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfda98b63 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x061ec193 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x08a70c11 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0c36981c orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x42d5362f orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x49469150 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4f50b10f orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x59f98baa orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6549bee6 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x94466c92 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9f931773 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc4ef5b8e orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc5ff4125 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc944a6f5 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd79b9cf5 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdb902baf free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe647e121 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfe34e50c orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x03c2128e rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x15d67e11 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x35aaa43e rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3e7ab4c4 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x484d95a3 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4c90bd4b rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4fedad6c rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6103367b rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6e7eb7a4 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6fdd494a rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x71539e94 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x99839f5f rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa6ec5876 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd0ddda77 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf2579717 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/parport/parport 0x05f96895 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x09517256 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x17ce2797 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x248d1aa8 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x269aae8a parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x2bfa9693 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x3657b641 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x39d02605 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x40de6dec parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x43b914e9 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x45ea3f4b parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4e56f6c6 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x4e9f5041 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x5d69572b parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x62d2e110 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x6b5c98ef parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x73df0f61 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x764ea7ee parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x84874d51 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x8f5aabb3 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x99957250 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x9e6f606a parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xb7508b90 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xc5efda6e parport_release +EXPORT_SYMBOL drivers/parport/parport 0xccd8a48b parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xdccd4740 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xe3e12abb parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xea90a86b parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xed180f9a parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xfe6a22ad parport_wait_event +EXPORT_SYMBOL drivers/parport/parport_pc 0x8c402630 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf38d4896 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x05e42fd4 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0db29fff pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x10f2b16e pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1aba0c8d pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1ff39f61 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x30f23dc6 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3b6bd9a8 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4b2f6d11 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4fedd010 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6de3b18d pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x828e5223 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x84bca4db pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x875fc86a pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x88c7fd6e pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x95326e90 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xae4fa927 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc35039a1 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd90c3338 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xeb444b5d pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0913519b pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2dabf976 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4c389ecd pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x54cab7ab pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7606a92d pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7b1ec13c pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fe974a1 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaca9ad5a pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb2b631f1 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb77c2df6 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf79cb288 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x58b2f89d pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xf1d20d8d pccard_static_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x38139f62 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x474beb62 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xda0ef116 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x10b3a377 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x29f36e5c fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9b20dccc fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9b85560a fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb17a6526 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb3fe086a fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe571e06b fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x01fe0b65 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0aeec400 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0cd5c364 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1395fb41 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x250bf6b2 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2bb285b1 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c149100 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f223b2b fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3830d9fb fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3cca1a26 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f50af84 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5256c9eb fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x53ea0e3d fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5861916a fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x62b2d689 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c6d63ff fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d1dac08 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6fcd5341 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x73cdcfc1 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74f0a1e1 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78d9538f fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78fd55eb fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7c7367de fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7e1948a2 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ee2ecaa fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8164b4b7 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82b3b482 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82de4bd5 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8b14bd1a fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9625906d fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x96e9e61b fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa1f6e6d0 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa4a7b367 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7000ccb _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa98b4a77 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac2ec32b fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaede194f fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb21c0fd6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbbcd8ea2 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc933da5b fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcba71d53 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xedb65fde fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc6cafb0 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfce103aa fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfded9e33 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 0x8869c327 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x063cc952 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06451d20 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06e61d74 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x081353e4 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0fd09d36 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1b68bb3b osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1dac3c5f osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2138fa7b osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x36098e61 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3dc6b0b2 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3f072761 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x40fb6dcb osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4709d79d osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x55ea8e80 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x575671be osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x64e04b9a osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7214c6d6 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x88f51e38 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8f1f7ae0 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x99117ab4 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa013b46f osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa66f3559 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xafbe7e4a osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb0805b73 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb304e673 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb9235e12 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbaff6c86 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbc459742 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc82b92f1 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc91cd6d9 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd39a626d osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda28c812 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xed26b63f osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf60fbca2 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf94c9733 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xffe1875f osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0c133d65 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3ce224ac osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6272f59a osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x791000a2 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7d1e58ec osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xcf6171d6 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x07220980 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x59a4e27c qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x82985e46 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xac9ac785 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb3bb8f2c qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xde3f07f9 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x296f4a76 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x7b0c8541 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xa6d6c1d6 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0cd401ab fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0df82555 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x22d5b8de scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2c2b3412 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4af5131f fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x531aacb7 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x77cb148b fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x83427c8d fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbe18c2c6 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbf8e308e fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xebcb0eeb scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf429fdb8 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfb4801c1 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x04b34234 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0b46ec0d sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0fc4a0c0 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1c20e406 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2487e474 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x32e97f93 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3497b7ba sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x40140002 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x509419a5 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x55f67d1a sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x59920feb sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x68cecf5e scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d60bc2f sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c487c6e sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x87194a04 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x962171ae sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa3865e7a sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xac9f2500 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xad68c124 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd0ce95bf sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd328f304 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd5059a04 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb740f35 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe4c1c3cc sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf7a73ecc sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfd4733e9 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2667d089 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x62a8196f spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x776c6a21 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x81c8ff14 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xbf38fcee spi_display_xfer_agreement +EXPORT_SYMBOL drivers/ssb/ssb 0x166803d8 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x1ef99d8e ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x2b86b92e ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x2f7391df ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x437f774c ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x731a3993 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x7b76c54e ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x904f3081 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x920ecb8e ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x9659c855 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xa5fad847 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xb8f2c681 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xb9bc6ae6 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xbdc25366 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd46a8490 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd905843d ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xda2464c4 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xe70e88b0 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xecbb8c58 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xf23f6300 ssb_bus_powerup +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x03288551 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08551932 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17313642 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x195c7160 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x234bdb19 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x23d72939 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a4f8231 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2aa20c12 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2c9a32e7 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2e41700e ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2f0ad88a ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32af9bbc ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x373a54ab ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3aadd22e ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x424760a1 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42e586bc ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4bd3a452 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f4ea616 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63cc92bb ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63d99439 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6a1531a7 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d7b8cc1 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6fbb67b9 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x753fb020 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x787c76da HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x78eae4a4 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7bc10515 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x81eeec22 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8499e351 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89048e79 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9784f6e9 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a9c58b6 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa884a357 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb592ad95 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb9df1520 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc2c91c5 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc85d240 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbde2df93 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc4fface5 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc8368d11 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd2ded81 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcdb26b87 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd23c297e ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd57605f1 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd71c0c96 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd89f3bf1 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde418cc3 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xee86b0fa ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xef84556b DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf2f47822 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf633e3da ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff1c89a2 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff4e5d90 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffecbb8d ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x3b5df356 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x97f453c2 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xb2e970d8 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x04401a3a RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x0aaff675 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x1a26ad15 RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x8d2db7e8 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xa2a2c54b usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xa9fc007c usbvideo_register +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd8635560 usbvideo_TestPattern +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xe63fb6e9 RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xf08961cc usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xfb3c39e0 RingQueue_Flush +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x02e7f8e7 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x06df8d34 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x092e35b4 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x096e51f7 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x0b0df986 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0x10b9f015 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x1198adb5 transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x11feee14 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x1bc7c009 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x261e8e35 transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2cf0ad59 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x351a0643 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x373e1bda transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x3ae3385c transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x41807b20 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x41ca5462 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x48268892 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a96950d transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b554fae target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x4e0b1803 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f4f26fa core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x4fa1ae59 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x528d2d3e __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x56f3d55f transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x5da5e446 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x60a8f4bb sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x661c12eb fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x679e0c26 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x70ae982f transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7703f775 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x79ecd52e transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7de5d75f core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x845b10e1 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x894f9e4c transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x8f13cd1a transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x8fd899fd iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x92c6b2de core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x93e8503f core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x978143d2 transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0xa6d6e9ad transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa2f8542 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xaeff6645 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xbd30ef89 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xcbdcc54f target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc45099f transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd40c3a78 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd96e50d6 transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf74ac1d fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3c57fe1 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xe6bd02bd iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xe88a7856 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xe8a46f43 transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe8a94cca transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf36bf49c core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xfe05404b transport_check_aborted_status +EXPORT_SYMBOL drivers/telephony/ixj 0x766f2603 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0xd4ca5727 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xdd0405d3 phone_unregister_device +EXPORT_SYMBOL drivers/tty/serial/8250 0x477463d9 serial8250_set_isa_configurator +EXPORT_SYMBOL drivers/tty/serial/8250 0x5d8d321e serial8250_register_port +EXPORT_SYMBOL drivers/tty/serial/8250 0x797b48e6 serial8250_do_pm +EXPORT_SYMBOL drivers/tty/serial/8250 0xc5278a48 serial8250_do_set_termios +EXPORT_SYMBOL drivers/tty/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/usb/gadget/goku_udc 0x9e9b0aae usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/goku_udc 0xf1b59afc usb_gadget_probe_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x0650802b 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 0x1cf26de5 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x26e0dfe8 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4063d79e usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x41380e5e usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x41e99cee usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x44aca7fe usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x48eec40e usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5c589521 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6a9a312a usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8e6700f5 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9df5d3b5 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa77a01fa usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcbba505a usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdc9d9ccb usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe7211653 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x8855fa2f usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd5b62db6 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x119e9e01 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xc811ad6c lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x49abd7f2 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x6fa06dc1 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb3175c62 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xc3c95daa cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x1060d518 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x85fde0c9 display_device_unregister +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x175ac4b8 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x246408f9 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x9c2b30e8 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x5ecf3df1 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x7a48c158 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x80402253 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xccd347a2 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x2755e8ca matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x0b98900b matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x404935db matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x658b69ab matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x945573b8 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xc6956c47 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x29802b95 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xaeda6b36 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x02b60b39 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x2950e973 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x7d1ffb50 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xab0705a3 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd611d219 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x9a4ec67b mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x63bcb308 video_output_register +EXPORT_SYMBOL drivers/video/output 0xf913a986 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 0x46892d4b svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x959c9cc9 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xad828567 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xd3901fe3 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xd4204212 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdb1e0509 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf7bc5060 svga_get_tilemax +EXPORT_SYMBOL drivers/video/syscopyarea 0xaf3c5f38 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x3b8b7ec3 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x9b28f484 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 0xdb780bf9 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xe4ce9b2c w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x08460941 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x5b53d392 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x7a37f14f w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd6db4f6a w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x1779fa79 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xad971d99 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xd137ceba w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xd904c49a w1_unregister_family +EXPORT_SYMBOL fs/configfs/configfs 0x12148fd9 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x2ec6bc7f configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x46504bc1 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x49b0e8d0 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x4a03a7a3 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xadd0a011 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xbbeb346e config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xd4a0f48a config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd60c2d38 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xdd84c2d2 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xed13a025 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xfa5d4a9f configfs_undepend_item +EXPORT_SYMBOL fs/fscache/fscache 0x06dbc638 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x1f36e08d __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x22290bc4 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x331eebed __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x349cbf4a __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x3f48efa2 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x439fdfb2 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x442c3fc6 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x45ad4a1e __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x45da1f6c __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x51c69998 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x572acba6 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x57a9a2d7 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x5cfd40da fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x5e29c69e __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x67e9865c fscache_add_cache +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 0x7498b37c __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x95bd62b9 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xa915d6e9 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xbe262855 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xc6a12e21 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xcedf83ca __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xe21325be fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xef712bf1 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf377ff91 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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x237dcda9 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x2d770046 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x82c25831 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa99c5e44 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xca305bea 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/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/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0x32b73ae6 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x8c0f3afb make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0469b920 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x065e9126 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x0806c048 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x0f5bd9e1 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x0fe092e9 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x13dfef53 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x15585de3 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x198ed9be p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x29b126c7 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x3179a67c p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x33622fc4 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x3d263289 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x42cd782c p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x44f5a3f2 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4fa8843d p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x56c50a11 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x5cd7da69 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x5e56e52c p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x662632e6 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x8f542c86 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x904de2cf p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x975dc290 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9d003992 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x9d55924d p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x9e83649f p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xa3af4f18 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xa87db3c3 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xac1c90f0 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xb765d9fe p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xb7fc01ec p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xb895644a p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xbfb2e314 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xcc612149 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xce4d460f p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xcfeb6e5b v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xd191f659 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xebc5c6f2 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xf359ab38 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xf7eaab58 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xfc0df3a8 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xfd70ed05 p9_idpool_create +EXPORT_SYMBOL net/appletalk/appletalk 0x0db29fdd atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x379b3ea1 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x75dffa5f atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xb8c3b223 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x1038c3d6 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x35ea30a7 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x38a13dfd atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x76d11b1c atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x99f12a02 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9a2af4ae 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 0xaf75b655 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xbaf83ef1 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xde314dac vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xe94227da atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf6991ec4 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xfb8bc34c atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xfbcf8198 atm_charge +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0f70acaf ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x11a87fe1 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x426fc753 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 0x5becd836 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x6dc55922 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xbf61807b ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcf5ff48e ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd748e2e8 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xe07afdd4 ax25_linkfail_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x081b0bd0 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2563d3a2 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x29231942 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x32732d25 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x36f4ca22 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x37fef48c bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3a3874a4 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x42ae3a7c bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x442543fa hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x49996fd5 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d86f8fb hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x528d811b hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5416b7e0 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d1957f4 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6033dc1b hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61f23f0e hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6a3750bd hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6c496ebd hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x80a1678a hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x99b69bc3 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x99e30ee8 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3991581 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3dcf07e bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb455bf54 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb9b713cc hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2e3efd1 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcb4cdd8a hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcf7d2f1c hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd0651fd1 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe202e9a6 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe534e3b2 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe8002065 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xed1be7a5 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf4f2f3c6 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x8bc10ce6 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x32b94345 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x85813e36 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xaff7fd6e ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0714b825 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x0c3fa2f1 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x27c4c9db cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x27d59edc cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x2b3f3040 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x61dcb1a2 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x643ad04c cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x6f07335e cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x739c5915 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x76493300 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x798f32b4 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x7f720928 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0x809fd4e9 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x86812720 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0x8d9f8fe2 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0xa1b0679e cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xa7dadc3c cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xb0d34f64 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0xb6b01f5b cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0xbce79da7 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0xbfb747f6 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xc58bcf2e cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xcdd869bc cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0xdae4a30c cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0xdbb9b07f cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xde4f8af7 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0xe29ca9eb cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xefd6e084 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xf77a44d2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0xf8a2cdf7 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0xfa11ac1c cfpkt_setlen +EXPORT_SYMBOL net/can/can 0x1d84108a can_send +EXPORT_SYMBOL net/can/can 0x7519abb4 can_proto_register +EXPORT_SYMBOL net/can/can 0xacd44bea can_rx_unregister +EXPORT_SYMBOL net/can/can 0xf2890635 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xfd2b1ab7 can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0a88bb94 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x0b51a2df ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x0f01e2cf ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0fa6b27d ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x11908d6d ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x1429f26c ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x181c9841 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1b4224fe ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x1f5ecfea ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2009f187 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x200ca96a ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x2619b14d ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x2e7715fa ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33900251 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x37d04a0d ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x4461f494 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x49e637de ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x59156a62 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x5c3665bf ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5c698180 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x5cb7d328 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x605cd2e9 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x662977be ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x734cdf17 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x78bdbd05 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x80a2e7f4 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x855233a3 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x8d49d3d7 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x92ac0c11 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa6c6612f ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xa76841b5 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0xa86a0e8e ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0xaca423d6 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xba46ed11 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xba8cd261 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xc05c1789 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xd5ec4917 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe1e776d5 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe57cdcc2 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xeee77727 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0xf4fe555e ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xf577ff8c ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xf5828970 ceph_con_send +EXPORT_SYMBOL net/ieee802154/ieee802154 0x02cc00b9 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0373ec16 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3bbec6d2 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x60edd97f wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6199b0dc ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6326d4fe ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x65a9d8d2 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7097eeaa wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x72acc253 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x83830670 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x84be4f01 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc0a9f44a wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc0dddc0b ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4c487e9b arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x713b6e20 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xec0a97c8 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x205de702 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8f360286 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd82969cd ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4466961a nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f3310a5 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa6cd496a nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcd1fd019 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdbe4299f nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdd75525a nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf1c9510a nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0x63007845 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xa71b9e35 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x16ac27cb ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x20d93ec7 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x785e62c0 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcb7abfdc ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0xa82dc96a xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xc6935b5f xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x00650e14 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xd9425f94 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2009cd84 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4039bc67 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4967a8ea ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5526b06e ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x62b78d9d ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x90c47639 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x92c42ca8 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x98547b3f ircomm_connect_response +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 0x14a7c4d0 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x1ac12d86 iriap_open +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2ebb6de9 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x2fd5e33b irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x3140c9f9 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x3873011a irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x38ec1473 irlmp_close_lsap +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 0x4dd57ecf iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x50d876d5 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x588e299b proc_irda +EXPORT_SYMBOL net/irda/irda 0x59616953 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +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 0x6dbed05f async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x72cca4cc irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76bce5bb irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x771eea3c async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +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 0xaf10d6c0 irlap_close +EXPORT_SYMBOL net/irda/irda 0xb68f4b9d irda_device_set_media_busy +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 0xc2bf6b6b irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xcf334252 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xda186d80 irttp_disconnect_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 0xe655fbf6 irlap_open +EXPORT_SYMBOL net/irda/irda 0xe8ec2bc4 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xe922e75f irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xef8d22ac iriap_close +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0xf7542438 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xfdedb437 irttp_dup +EXPORT_SYMBOL net/l2tp/l2tp_core 0xb0361e1e l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x10b6e7de lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x39c92166 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x45888e91 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x5ff6ec36 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x667e0a7a lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x8bad6962 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xa4f9cf5c lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xfc02e561 lapb_getparms +EXPORT_SYMBOL net/mac80211/mac80211 0x0cfcd984 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1cefb4bc ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1d63bb11 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x286287ca ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x297bb92b ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x32a52a99 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x349065b5 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x363dd46f ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x3c87929d ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x45417fca ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x4dc60df2 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x5034ad25 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x556bf072 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x605050f1 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x6113ec73 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x65e20a1a ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x660fd444 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x6f043f56 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x6f670a46 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x6fdf4c0c __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x7068eb3a ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x72658034 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x734b2535 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x740b4e07 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x76e41ff8 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x77fe56ea ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7e18d2c1 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x8fb38d8a ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x940161bd ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa0ef8076 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xa142b2e8 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa2941b57 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xb08bfba2 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb7767458 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb8f25009 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xb993a641 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbc8065d6 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd0c1f3e1 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xd6095a11 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe60e03db ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xfdf70113 ieee80211_stop_queue +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x06d15136 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x07c876db register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1cbbbd68 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x210b4d08 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x36afc759 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9e4b0113 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa0a3b0b4 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa9347b57 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb1747b2a ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb34dd613 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb6db774e ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc3d3297a ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x6d9980b3 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xbbb1ad9a __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xca1de1eb nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x318538ab nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x005e77ff xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x32824c83 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x5cf458ea xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x796212b8 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb2f14b20 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xc2b006c9 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd6be76e4 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd77c176c xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xd9fefc33 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xdde45022 xt_register_targets +EXPORT_SYMBOL net/phonet/phonet 0x2f218884 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x3d3ddc83 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x5178086a phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xa4c4d6b7 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xad1876cd phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xbe6eaf4b phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xc87e8d90 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xcf58923f pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09c14142 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x103ec102 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x52971496 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x53428e8e rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x696a990c key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6d1228bd rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa55f5c93 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb4348218 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc6f82654 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc738e862 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xca2d593e rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xca3fcaf2 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xce1a7e0e rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe1c48a8d rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xff8ba0fc rxrpc_kernel_reject_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x947ba242 svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd2076cfb xdr_terminate_string +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x322d6749 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x5e52f9f7 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0xa3527465 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x03485db5 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x04d60da8 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x05c27711 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0cbef847 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x241c9d1b ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x29eadebd cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x3159907f cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x34c4edbf cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x3e7bd2b5 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x45c338bf __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x48be8299 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x49d36793 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x4a3fc7c3 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x4f291c36 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x51d3c9b0 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x60694f9a cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x62afb0a4 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6cee42e4 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x739fe5fb freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x75a4b644 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x7d53eda2 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x843fd679 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x8bc226f0 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x8defc01f cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x8ff0d4a9 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x932b998d cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x94d14627 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x96915a0d wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9b81dac1 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xa0acd5bd wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xa34b81d7 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xade642a3 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb36181ae cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xb6fa305a wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xbf61ae59 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xbf89f6c0 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xc411b06d cfg80211_cqm_rssi_notify +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 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xd93cdc77 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xd9e32f56 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xdb357005 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xdd7be835 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xdfa725b9 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xe2dc1434 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xf433e796 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xf58196eb cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/lib80211 0x000f3d6c lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x04456d5c lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0x141f0fe4 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x375cff64 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x40249bd7 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xb3283731 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe565494f lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xf496aa65 lib80211_get_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x246ada71 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x07ec9ea8 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6188ee02 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 0x83adf85e snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x99d262ac 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 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 0x1e6fec5d 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 0x52201008 snd_seq_device_register_driver +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 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 0x49fbc381 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x01a1e10d snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x0e787f3f snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x0eb1abbe snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x16245cda snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x170845a1 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1cb1629d snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x1f12a910 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2c1dbc94 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x3448c9b1 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x3686d65f snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x41921c51 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x42dd10be snd_device_register +EXPORT_SYMBOL sound/core/snd 0x46eba312 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x47c08719 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4c9caa91 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x76790e64 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x7868c194 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x7c934da7 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x80ae9718 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x89ee16d2 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x91be06ad snd_device_new +EXPORT_SYMBOL sound/core/snd 0x930c6c08 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x9cbb2de7 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa87e198e snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xaee80600 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xaf616354 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xaf7ee6d9 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xc208011b snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xc293abbe snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xc3ad04bb snd_card_create +EXPORT_SYMBOL sound/core/snd 0xc804b12f snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xcb1c4341 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xcd844524 snd_cards +EXPORT_SYMBOL sound/core/snd 0xcdb98b41 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xcf10fa56 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xd3a606df snd_card_register +EXPORT_SYMBOL sound/core/snd 0xd629d7ca snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xd7472418 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe5a3331e snd_device_free +EXPORT_SYMBOL sound/core/snd 0xe64b2e50 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xe6f0c847 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xec2ce0c5 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xff1e67c4 snd_card_file_add +EXPORT_SYMBOL sound/core/snd-hwdep 0x678ba0d9 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8a1ecf9a snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8c81fe30 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8f0017d6 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xfac21d6a snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xfb386a6b snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x0328accc snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0c5b7de1 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x0ef96b6c snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x1532964b snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1eb86009 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x261fb62d snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x2720a43e snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x330d1640 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x338338c4 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x34bbf6f6 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 0x3acea46b snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x4834f702 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4dd6470f snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x50cb9815 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x56f6aff3 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x579b577c snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x62af48d7 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x62c12441 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x64e1158c snd_pcm_suspend +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 0x7bcd8a6f snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x7da07e8b snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x89998f9a snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x8efac4c1 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x8f8c240d snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x9037e69c snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x91d98cd7 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xa3a7a718 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa895ba57 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xaa7ed0b5 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xaa985e83 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xaf320db1 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xb94e054b snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc323a460 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xd0a422b6 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd3a80c24 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xd586e448 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xd913667a snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xe125a833 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe6f6ada7 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xefc84fe6 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2b6f2792 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2c2fc235 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x36a271e1 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3af9c810 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3bf00a6b snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4010cf3e snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x57c45877 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5b5496fa snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x79e7ebb9 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9b3ee2a7 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa9e9110c snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaa8af2ae snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd76b257f snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xde2b9fae snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe52b5bc1 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf6ddaa2d snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf9edd0f7 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-timer 0x15b9c9f9 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x1dbaa733 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x23bfcf02 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x4e6ed3b2 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x52220793 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x77a7ad65 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x8e8901f6 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x91f505a3 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x9a35fabf snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x9b74ce6f snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xa62056c2 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xd221169e snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xdf87f11c 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 0xffb52a6a snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x27f0f9f5 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7e20a898 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8a8bd4d9 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x999ff047 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa72f0391 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa90b7429 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbc5c8821 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd9cc3ffe snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xfc6c2b1e snd_opl3_init +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x05c9c5f2 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x11f6ad60 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x15e8e557 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2d2eb2df snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x46094309 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x81594611 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x97903caa snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa4f10520 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xaac2a5aa snd_vx_free_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1f910dc9 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x20ca8f3e snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x390ef552 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x757a2db5 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xec41235e snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xffe8feb7 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0107188c snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x13b4acb5 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x38c2eb5d snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5ca5f1a3 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6d08f9fb snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8337b121 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x37d965ca snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x64b0a8ba snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x96d832a6 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xeb141991 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x07bb9d5c snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x3e98c226 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x20061a8a snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xc2dda7d1 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x193b09ab snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x3b126c2b snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x4a275ada snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8a979592 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf8d93706 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x1c0d0fbe snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7e37c65e snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x9ec80abc snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xb7ed59b5 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc3118959 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xf8ff452e snd_i2c_readbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1d3e0d5f snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2a30dde4 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3a738fde snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4eb8800c snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x66813fec snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7e9d5a5b snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9c44df12 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe80da0b1 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfab06d3f snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfce38e43 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x44482c9d snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xce48a9b8 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xeb3c9538 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2b7a1425 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x385edf24 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x485367d9 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x519a6838 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x525adeff snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x589162ac snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7921e625 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x821aace7 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbae0ed7c snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc3d045a3 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc602d3ed snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcd45913a snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd6d9cbd5 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe0d9b50f snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xea8c163b snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf01facba snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfc9958fe snd_ac97_bus +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x48e382bf snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x80753e6b snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8a03eb4e snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xae2d052f snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb9caa61a snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb9d03d61 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xba53136f snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc1e873ce snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe46738fd snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x048cab68 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1e40e19d snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x434aee48 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8d123c9c snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0508ed3a oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x10e80079 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x212c6d23 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x276a6fa8 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x347049b5 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4268bada oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x44e1ee49 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x47747992 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x48a8d9c8 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x52c2a42e oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6989d69a oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6d17fbf4 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9e8eb127 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa02a8746 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa0e14bc5 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa35d700a oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcaa98e61 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xddabd3ae oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe04a6dfe oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe7a025e1 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xed3cac8e oxygen_write32_masked +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x134a2349 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x5d5fba2d snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6e44554d snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x760a845f snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc539af00 snd_trident_start_voice +EXPORT_SYMBOL sound/soundcore 0x5193db45 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1fd1566f snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x3512b84a snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4c659d7a snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x54421782 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa208b1ee snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xbe8f23ba snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x021de5a3 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x352e61aa __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x78d07335 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x83004fc1 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x88067303 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9b50e630 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xae12c01d snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc101ce2c __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x1426c6e5 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x0037785d pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x003acffa alloc_trdev +EXPORT_SYMBOL vmlinux 0x003e7723 netlink_unicast +EXPORT_SYMBOL vmlinux 0x003ed69a __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x0067c957 nf_log_packet +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0083ce2b pci_find_bus +EXPORT_SYMBOL vmlinux 0x008c54e6 kernel_accept +EXPORT_SYMBOL vmlinux 0x008d2ad2 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x008e49d5 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x009b7c92 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x00b41df0 sock_i_uid +EXPORT_SYMBOL vmlinux 0x00c70eb9 vga_get +EXPORT_SYMBOL vmlinux 0x00d1d26f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01124dd3 of_device_register +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01296181 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x0161aa36 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x016899cb unlock_page +EXPORT_SYMBOL vmlinux 0x0186e2de smp_call_function_many +EXPORT_SYMBOL vmlinux 0x0186eb9e blk_complete_request +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019a84af netdev_emerg +EXPORT_SYMBOL vmlinux 0x01a237cf ilookup5 +EXPORT_SYMBOL vmlinux 0x01a41ac6 fb_get_mode +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01e0cd1c pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x01e82d9c input_unregister_handler +EXPORT_SYMBOL vmlinux 0x01fed4cf bdev_read_only +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x02384e8d ioremap_flags +EXPORT_SYMBOL vmlinux 0x02474e91 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x02606462 vfs_readv +EXPORT_SYMBOL vmlinux 0x02642ae0 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02ca927e cont_write_begin +EXPORT_SYMBOL vmlinux 0x02d0376c block_write_full_page +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02dfc47b dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02ee46bb eth_type_trans +EXPORT_SYMBOL vmlinux 0x02fd6ac2 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x03020290 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x032ef3a4 skb_insert +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0337acce i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x034eb80e security_inode_readlink +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03596e18 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x035a2a06 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03a21411 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x03a5df27 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x03b5506a ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x03bcf603 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d75ea9 give_up_console +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x042136aa posix_test_lock +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0439f0f8 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x04421a36 unload_nls +EXPORT_SYMBOL vmlinux 0x0444eda3 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x045ed2d1 simple_fill_super +EXPORT_SYMBOL vmlinux 0x04601171 filemap_flush +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04b607d6 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x04b83766 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x04dbb405 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x04e5ad72 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04f17c77 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x050496e3 dst_release +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x05347e49 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x05541de2 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x0565a41c blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0582af1c __napi_schedule +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05aac873 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x05d59d56 unlock_super +EXPORT_SYMBOL vmlinux 0x05d93e07 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x05fd99f6 ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x0608698f __destroy_inode +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x062012d9 vfs_unlink +EXPORT_SYMBOL vmlinux 0x062e3f72 __rta_fill +EXPORT_SYMBOL vmlinux 0x0642cb49 d_alloc_root +EXPORT_SYMBOL vmlinux 0x06621b03 page_put_link +EXPORT_SYMBOL vmlinux 0x066f316b bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x067391b5 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068ea4ad pci_iounmap +EXPORT_SYMBOL vmlinux 0x06afea62 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06c62493 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x06e99fa9 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07265be4 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0738c65c sock_no_accept +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x07541716 __alloc_skb +EXPORT_SYMBOL vmlinux 0x07654d14 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x078357f6 pipe_unlock +EXPORT_SYMBOL vmlinux 0x0786fa3d freeze_bdev +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +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 0x07e5aa88 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x08042ba6 udp_prot +EXPORT_SYMBOL vmlinux 0x080b665a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x081fdacd sock_wake_async +EXPORT_SYMBOL vmlinux 0x082179a9 rtnl_notify +EXPORT_SYMBOL vmlinux 0x082bcf8a sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x082bd8f2 pci_clear_master +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082ffbf6 follow_down +EXPORT_SYMBOL vmlinux 0x0834f40c pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x083e3aed padata_free +EXPORT_SYMBOL vmlinux 0x0843500c pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x089bff6e jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x08bd5d5b read_cache_page +EXPORT_SYMBOL vmlinux 0x08c8fa75 stop_tty +EXPORT_SYMBOL vmlinux 0x08d6ffe0 sock_no_getname +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x0901364c macio_release_resource +EXPORT_SYMBOL vmlinux 0x0906ec2d journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x091871cd max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x093789ee phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x09798f13 inet_frag_find +EXPORT_SYMBOL vmlinux 0x0988ff16 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0997de42 clocksource_register +EXPORT_SYMBOL vmlinux 0x09bd613a tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c87d7a dev_addr_add +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d81b91 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x09d82ee4 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x09f202ed udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x09fced5b dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x0a135dc3 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x0a210fc8 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a465e0d pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x0a728e8f neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x0a76d4b9 inet_shutdown +EXPORT_SYMBOL vmlinux 0x0a86c196 flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x0a8dc390 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x0ab7949e up +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ae48e07 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b16bdb1 register_quota_format +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b29abb5 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x0b2f8ea7 pci_request_regions +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b56b722 dev_crit +EXPORT_SYMBOL vmlinux 0x0b597fdc tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x0b6e3df5 blk_init_tags +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7dcfe2 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x0b90a682 mdiobus_register +EXPORT_SYMBOL vmlinux 0x0b979ded tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x0b9de368 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x0bb325fe ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x0bc0200c simple_setattr +EXPORT_SYMBOL vmlinux 0x0bf9effc __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x0c42d9bf input_reset_device +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7287bb abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x0c772512 iget_locked +EXPORT_SYMBOL vmlinux 0x0c863df5 input_get_keycode +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c961ffa netdev_set_master +EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size +EXPORT_SYMBOL vmlinux 0x0c9ca440 d_set_d_op +EXPORT_SYMBOL vmlinux 0x0ca00865 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0ccaf588 inet_accept +EXPORT_SYMBOL vmlinux 0x0d023e5b xfrm_state_add +EXPORT_SYMBOL vmlinux 0x0d04b2c6 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x0d262bc4 thaw_super +EXPORT_SYMBOL vmlinux 0x0d297730 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5e13ec jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x0d615280 macio_request_resource +EXPORT_SYMBOL vmlinux 0x0d777b35 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x0d90d07d blk_unplug +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da855c8 pci_pme_active +EXPORT_SYMBOL vmlinux 0x0daf1d85 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x0db029fd inet_add_protocol +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0dc383b8 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x0e09d92e pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x0e1dac60 arp_invalidate +EXPORT_SYMBOL vmlinux 0x0e282d5f nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x0e39b48e dev_get_by_index +EXPORT_SYMBOL vmlinux 0x0e49c27e textsearch_register +EXPORT_SYMBOL vmlinux 0x0e4ff288 journal_start +EXPORT_SYMBOL vmlinux 0x0e5258f5 flex_array_get +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e60aec1 pipe_to_file +EXPORT_SYMBOL vmlinux 0x0e8db1c5 seq_open +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0e9d8968 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x0eadb217 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x0eb68795 get_sb_single +EXPORT_SYMBOL vmlinux 0x0ec5ab14 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x0ecbe859 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr +EXPORT_SYMBOL vmlinux 0x0efca837 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x0efee09f pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0x0f0ad9a4 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f29f99f macio_dev_get +EXPORT_SYMBOL vmlinux 0x0f4c3964 fsync_bdev +EXPORT_SYMBOL vmlinux 0x0f5afa03 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x0f870744 wake_up_process +EXPORT_SYMBOL vmlinux 0x0f89fbe4 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x0f94b46b i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fd0ea6a dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x100bf924 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x10303afd skb_free_datagram +EXPORT_SYMBOL vmlinux 0x1042aaf1 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x105fe5de bio_pair_release +EXPORT_SYMBOL vmlinux 0x10716139 scsi_put_command +EXPORT_SYMBOL vmlinux 0x108009f7 agp_copy_info +EXPORT_SYMBOL vmlinux 0x1083a5c6 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x10867849 agp_free_page_array +EXPORT_SYMBOL vmlinux 0x1086d9ba security_path_chmod +EXPORT_SYMBOL vmlinux 0x10895fe6 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x10a0d85a mpage_writepage +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10ef8161 pci_dev_get +EXPORT_SYMBOL vmlinux 0x10f54652 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x10fd47df sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x113a029c dquot_resume +EXPORT_SYMBOL vmlinux 0x11597ee7 dma_find_channel +EXPORT_SYMBOL vmlinux 0x1162205e udp_poll +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11642751 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x11663cec adb_register +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11cd0432 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x11cf27a9 idr_destroy +EXPORT_SYMBOL vmlinux 0x11f69858 generic_write_checks +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1204e4a3 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x122a960e inet_sendpage +EXPORT_SYMBOL vmlinux 0x125c4aa8 neigh_destroy +EXPORT_SYMBOL vmlinux 0x1261fb2f devm_iounmap +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x1283fd5a vfs_mkdir +EXPORT_SYMBOL vmlinux 0x1286eb2d bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x129ab2a9 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x129c7158 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x129efeff lock_may_write +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12b1b396 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x12bf1144 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e48dd6 del_timer_sync +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12e7ec1a elevator_exit +EXPORT_SYMBOL vmlinux 0x12e8ed66 adb_client_list +EXPORT_SYMBOL vmlinux 0x12e97253 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x12f225be call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x1328430b mdiobus_write +EXPORT_SYMBOL vmlinux 0x132e1ad1 elevator_change +EXPORT_SYMBOL vmlinux 0x133b4ee4 idr_get_next +EXPORT_SYMBOL vmlinux 0x13489ffb blk_requeue_request +EXPORT_SYMBOL vmlinux 0x134bade5 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x134bc792 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x13532589 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x13599c79 kern_path +EXPORT_SYMBOL vmlinux 0x13769e62 of_find_matching_node +EXPORT_SYMBOL vmlinux 0x139adde1 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x13ba4602 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x13ce2ee7 dm_table_put +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13dd35aa tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x13e23f07 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x140e70ad scsi_scan_target +EXPORT_SYMBOL vmlinux 0x14174cc1 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x143e3bf9 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x144ea7c7 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x14589dc2 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x1465fd2a request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x147851be of_register_spi_devices +EXPORT_SYMBOL vmlinux 0x14847185 led_blink_set +EXPORT_SYMBOL vmlinux 0x14c076de cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x14caa695 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x14d5e04d xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x14e58f20 tty_free_termios +EXPORT_SYMBOL vmlinux 0x14e837a0 idr_find +EXPORT_SYMBOL vmlinux 0x14ea80a7 udp_ioctl +EXPORT_SYMBOL vmlinux 0x15003106 pci_get_slot +EXPORT_SYMBOL vmlinux 0x15012cbb nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x150a114e module_refcount +EXPORT_SYMBOL vmlinux 0x153612be del_gendisk +EXPORT_SYMBOL vmlinux 0x1549e3f9 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15920d5e locks_init_lock +EXPORT_SYMBOL vmlinux 0x15cd5f57 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x15cec966 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x16242644 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x16278ef9 scsi_print_command +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x16346086 drop_super +EXPORT_SYMBOL vmlinux 0x164b6e6e fail_migrate_page +EXPORT_SYMBOL vmlinux 0x166deb44 dev_uc_add +EXPORT_SYMBOL vmlinux 0x167931f8 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x168bd528 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x168debb1 soft_cursor +EXPORT_SYMBOL vmlinux 0x16c0e9fc inode_change_ok +EXPORT_SYMBOL vmlinux 0x16ee07dc sock_no_listen +EXPORT_SYMBOL vmlinux 0x171bbd82 set_bh_page +EXPORT_SYMBOL vmlinux 0x172196b9 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x1776884e scsi_host_put +EXPORT_SYMBOL vmlinux 0x177b9931 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x178fd3a3 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x17a42cf5 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17ade0a8 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x17b1a386 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x17b5f0f1 qdisc_reset +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e00c0e get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x17e8fd26 inet6_getname +EXPORT_SYMBOL vmlinux 0x17ebd8b3 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x17f2adf9 netif_napi_add +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180139a6 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x1805c74c abx500_register_ops +EXPORT_SYMBOL vmlinux 0x1821c722 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184ba3f0 note_scsi_host +EXPORT_SYMBOL vmlinux 0x186321d9 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x1877fae8 save_mount_options +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x190a48fc iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x19573d1b blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x1958c503 input_register_handler +EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x19829c01 pci_get_device +EXPORT_SYMBOL vmlinux 0x199d6499 install_exec_creds +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c23101 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x19f0a406 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a300040 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x1a339080 skb_queue_head +EXPORT_SYMBOL vmlinux 0x1a4e6e6e iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x1a69d7e1 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x1a87af7b ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x1a9d6bd5 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1abd52c5 mutex_trylock +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1aeba3bb nlmsg_notify +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0f8ee0 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x1b1d72e9 devm_ioremap +EXPORT_SYMBOL vmlinux 0x1b2402e6 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x1b3cb8d1 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x1b622acf skb_dequeue +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b916d7f pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x1b982952 d_instantiate +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1badba94 __register_chrdev +EXPORT_SYMBOL vmlinux 0x1bba589f rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1be1ab93 input_free_device +EXPORT_SYMBOL vmlinux 0x1be2560e netdev_err +EXPORT_SYMBOL vmlinux 0x1be62661 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x1bec79b8 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c2067e2 journal_extend +EXPORT_SYMBOL vmlinux 0x1c24f25d nf_reinject +EXPORT_SYMBOL vmlinux 0x1c2add5d write_one_page +EXPORT_SYMBOL vmlinux 0x1c36916e inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x1c589329 kmap_high +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c7a6737 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1cb9aa08 mii_check_link +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce8513a starget_for_each_device +EXPORT_SYMBOL vmlinux 0x1d000e9a xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d4a7474 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x1dba2e01 bio_map_kern +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dda5055 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x1ddd6ec0 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x1df57a95 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x1df5b7c9 genphy_suspend +EXPORT_SYMBOL vmlinux 0x1df7e1c6 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x1e18125f sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x1e3e7920 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x1e51c7c4 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x1e5d9fef dma_pool_free +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e81ec26 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x1e838d28 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea0a333 dma_pool_create +EXPORT_SYMBOL vmlinux 0x1eafc45b vfs_fsync +EXPORT_SYMBOL vmlinux 0x1ef806a1 nf_afinfo +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f09a64c neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x1f134ffd serio_open +EXPORT_SYMBOL vmlinux 0x1f1637bb netif_rx +EXPORT_SYMBOL vmlinux 0x1f3f6207 seq_putc +EXPORT_SYMBOL vmlinux 0x1f4557ff locks_remove_posix +EXPORT_SYMBOL vmlinux 0x1f774f34 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x1fbe742b __nla_reserve +EXPORT_SYMBOL vmlinux 0x1fc61577 nf_register_hook +EXPORT_SYMBOL vmlinux 0x1fccf78e __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x1fd66cee __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x1feb1383 end_page_writeback +EXPORT_SYMBOL vmlinux 0x1ff1da31 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x1ff6319d generic_setxattr +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20030ecd ioremap +EXPORT_SYMBOL vmlinux 0x2003b6be inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x206b5c29 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20a8ceda unregister_quota_format +EXPORT_SYMBOL vmlinux 0x20b67f98 dm_get_device +EXPORT_SYMBOL vmlinux 0x20b9a851 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x20fded67 fb_find_mode +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216745b1 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x21899047 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x21a7aea8 complete_request_key +EXPORT_SYMBOL vmlinux 0x21b6f7c0 lookup_bdev +EXPORT_SYMBOL vmlinux 0x21d354f8 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x21d3c4ac alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x21eb3790 release_sock +EXPORT_SYMBOL vmlinux 0x22031b47 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x221538db generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x221f2084 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223dbf0d blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228ee016 skb_put +EXPORT_SYMBOL vmlinux 0x22ad430f sk_stream_error +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c477c1 set_anon_super +EXPORT_SYMBOL vmlinux 0x22c90ddd test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23404ce3 genl_register_ops +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x2364f5f1 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x239ecd18 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23a57803 eth_header_parse +EXPORT_SYMBOL vmlinux 0x23a90636 bdget +EXPORT_SYMBOL vmlinux 0x23e11e58 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fc64fa neigh_parms_release +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24019bc3 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x2404abdd dquot_file_open +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x246489d7 dm_table_event +EXPORT_SYMBOL vmlinux 0x247ae3e6 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x24a89066 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x24eb028b netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x24f10025 validate_sp +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x250da4f9 bh_submit_read +EXPORT_SYMBOL vmlinux 0x2530d446 user_revoke +EXPORT_SYMBOL vmlinux 0x253362c8 nf_log_register +EXPORT_SYMBOL vmlinux 0x2549e95b set_device_ro +EXPORT_SYMBOL vmlinux 0x2562ef83 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25af7d59 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x25b71a41 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x25c2b3ec agp_find_bridge +EXPORT_SYMBOL vmlinux 0x25d42717 check_disk_change +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x25f6cf0c radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x2606fff4 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x264c1573 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x268882aa contig_page_data +EXPORT_SYMBOL vmlinux 0x26ae7e8d lock_sock_nested +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26d74646 bio_copy_user +EXPORT_SYMBOL vmlinux 0x26dbb7c0 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x26e0915e macio_release_resources +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2712fb29 elv_rb_find +EXPORT_SYMBOL vmlinux 0x2727fa31 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x27584585 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2789cb79 flex_array_put +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x279e4674 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27b928dd dentry_open +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27dbb6b4 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27e9910c d_lookup +EXPORT_SYMBOL vmlinux 0x27ffed37 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x281dda15 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x2847824c release_firmware +EXPORT_SYMBOL vmlinux 0x28530e61 mpage_writepages +EXPORT_SYMBOL vmlinux 0x285f8a20 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x287d445e init_special_inode +EXPORT_SYMBOL vmlinux 0x288e5821 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x289a851b kobject_get +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28ca3a22 ip_fragment +EXPORT_SYMBOL vmlinux 0x28de36ba swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x28e49f07 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x29082ad7 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x2927fe72 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x29371825 uart_register_driver +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2955aa96 simple_link +EXPORT_SYMBOL vmlinux 0x295ba596 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x296b8ae4 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x29735fd5 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x298892a3 of_unregister_driver +EXPORT_SYMBOL vmlinux 0x29a34ab4 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x29a87e2b proc_dostring +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29bba99a dev_change_flags +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29cf4772 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x29cf4b31 file_update_time +EXPORT_SYMBOL vmlinux 0x29d0dbda fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x29e9f178 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x29ee26c1 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x2a04a6d5 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x2a05a735 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x2a0aba23 tcp_check_req +EXPORT_SYMBOL vmlinux 0x2a1372a9 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x2a27daef __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a50f583 console_start +EXPORT_SYMBOL vmlinux 0x2a6fb3ac ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x2a8a4d10 kthread_stop +EXPORT_SYMBOL vmlinux 0x2a8d86ea pci_match_id +EXPORT_SYMBOL vmlinux 0x2a9013d3 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x2a957392 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ac380f9 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x2acf3605 kernel_bind +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and +EXPORT_SYMBOL vmlinux 0x2b2af123 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b31894f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2b34232e neigh_update +EXPORT_SYMBOL vmlinux 0x2b66fd77 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x2b7f1ef1 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2ba8cdbb vfs_symlink +EXPORT_SYMBOL vmlinux 0x2bbdb9a5 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bdb2fa4 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x2c05e8b8 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c3f0e57 unlock_buffer +EXPORT_SYMBOL vmlinux 0x2c6bc7da bio_add_page +EXPORT_SYMBOL vmlinux 0x2c7a2afb scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x2c885882 freeze_super +EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2c94535a i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x2c9fbd2d journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x2cf9db12 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x2cfcdbe6 mount_bdev +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d189bab __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0x2d26156b blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x2d671bac tcp_ioctl +EXPORT_SYMBOL vmlinux 0x2d7b7f75 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d907f35 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x2d9c572e dev_alloc_name +EXPORT_SYMBOL vmlinux 0x2daf85a4 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x2db03e4e fb_validate_mode +EXPORT_SYMBOL vmlinux 0x2de5a530 register_exec_domain +EXPORT_SYMBOL vmlinux 0x2df1e9a4 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x2dfc34c3 audit_log_format +EXPORT_SYMBOL vmlinux 0x2e16a43b unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x2e1a5ff3 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e2fd9c0 down_read +EXPORT_SYMBOL vmlinux 0x2e49c50d security_file_mmap +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e8179e6 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x2e847173 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x2eab545d tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x2eb30a11 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x2ec04b69 tcf_em_register +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ecf6fc3 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x2eda5df1 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x2ee27a4e generic_listxattr +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f21e365 __lookup_one_len +EXPORT_SYMBOL vmlinux 0x2f29aa5b __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x2f2b5125 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0x2f32373f tcp_shutdown +EXPORT_SYMBOL vmlinux 0x2f38a948 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x2f4b365f vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x2f6628a3 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x2f6bc55b release_pages +EXPORT_SYMBOL vmlinux 0x2f704909 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x2f85d378 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb1b88e lock_sock_fast +EXPORT_SYMBOL vmlinux 0x2fb55424 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x2fd35b28 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x2fea26c8 add_disk +EXPORT_SYMBOL vmlinux 0x2ff0a21a pci_set_mwi +EXPORT_SYMBOL vmlinux 0x2ff18320 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x303175dc tcf_hash_check +EXPORT_SYMBOL vmlinux 0x304b23ae nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x306ae675 journal_abort +EXPORT_SYMBOL vmlinux 0x306e6d12 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308cde4c vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30adc147 __seq_open_private +EXPORT_SYMBOL vmlinux 0x30ca3544 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x30d70fa9 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x30dd1090 should_remove_suid +EXPORT_SYMBOL vmlinux 0x30e53894 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x30e9256f ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x310786f4 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3119ba42 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x312d0386 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x313b337f ppc_md +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3146e5fc cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315dac6f filemap_fault +EXPORT_SYMBOL vmlinux 0x316617ed input_set_abs_params +EXPORT_SYMBOL vmlinux 0x316cd9fe down +EXPORT_SYMBOL vmlinux 0x318252ca bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31bff98c fb_blank +EXPORT_SYMBOL vmlinux 0x31c1434a __inet6_hash +EXPORT_SYMBOL vmlinux 0x31cad9c3 key_revoke +EXPORT_SYMBOL vmlinux 0x31e88e1b page_address +EXPORT_SYMBOL vmlinux 0x31ed1707 down_timeout +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x32ae1e37 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x32d23520 kobject_add +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x32ecd8eb get_fs_type +EXPORT_SYMBOL vmlinux 0x32f39319 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x33081d16 netlink_set_err +EXPORT_SYMBOL vmlinux 0x332c3401 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x333393c7 __brelse +EXPORT_SYMBOL vmlinux 0x3337096c agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x33585fd2 journal_start_commit +EXPORT_SYMBOL vmlinux 0x336971d7 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x3375ff76 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x339862d9 init_task +EXPORT_SYMBOL vmlinux 0x33a4a31d sk_release_kernel +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33c6472b qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33de0600 elevator_init +EXPORT_SYMBOL vmlinux 0x33f3f0b2 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x3409d943 revalidate_disk +EXPORT_SYMBOL vmlinux 0x3418717f search_binary_handler +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x342ec1a1 dm_io +EXPORT_SYMBOL vmlinux 0x3437480c mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x34395fc7 d_move +EXPORT_SYMBOL vmlinux 0x343b4135 lock_may_read +EXPORT_SYMBOL vmlinux 0x3449f2f3 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x346b6966 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347244ab create_proc_entry +EXPORT_SYMBOL vmlinux 0x347d3300 vfs_readlink +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c5a63b tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x354c3fa4 skb_append +EXPORT_SYMBOL vmlinux 0x3562d819 find_or_create_page +EXPORT_SYMBOL vmlinux 0x3582f7b3 napi_complete +EXPORT_SYMBOL vmlinux 0x35885159 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x359d5356 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x35b34cae of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c85def inet_put_port +EXPORT_SYMBOL vmlinux 0x35e2d2ed llc_add_pack +EXPORT_SYMBOL vmlinux 0x35f842ae generic_file_open +EXPORT_SYMBOL vmlinux 0x35fbd6a1 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x36010191 block_write_begin +EXPORT_SYMBOL vmlinux 0x36108e9d of_device_unregister +EXPORT_SYMBOL vmlinux 0x363ba2cc jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x369f5a32 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x36a40da9 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36c9368a __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x36cfd42a blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x36dbdb02 seq_path +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x371f638b inet_stream_ops +EXPORT_SYMBOL vmlinux 0x3728f766 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x37402e2e blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x377863b8 netif_device_detach +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37f9c6f6 setattr_copy +EXPORT_SYMBOL vmlinux 0x37fec0da ide_dma_off +EXPORT_SYMBOL vmlinux 0x37ff957f generic_setlease +EXPORT_SYMBOL vmlinux 0x3819929d eth_change_mtu +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382b88be get_sb_bdev +EXPORT_SYMBOL vmlinux 0x3838d813 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x384e19c3 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x3850536a dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x387963cd iunique +EXPORT_SYMBOL vmlinux 0x387c2baf radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0x3885a0f2 icmp_send +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38ba3ab9 pcim_iomap +EXPORT_SYMBOL vmlinux 0x38c24db1 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x38c6ce3a sk_receive_skb +EXPORT_SYMBOL vmlinux 0x38d0653b pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x38f14e2b tcp_splice_read +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x390033f4 of_phy_connect +EXPORT_SYMBOL vmlinux 0x390cdcda __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x391b8c50 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x396509e3 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x3967462e create_empty_buffers +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x399838b8 __breadahead +EXPORT_SYMBOL vmlinux 0x39ac25c0 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x39b120c1 phy_device_register +EXPORT_SYMBOL vmlinux 0x39b2f370 ll_rw_block +EXPORT_SYMBOL vmlinux 0x39c0f263 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39d37c07 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a344368 agp_backend_release +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa0923b thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x3aa1704f pci_dev_put +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3ab626ae genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x3acc8c40 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b34df32 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x3b350742 inet_addr_type +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b6c41cd of_parse_phandle +EXPORT_SYMBOL vmlinux 0x3b822089 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bf3c0d6 file_remove_suid +EXPORT_SYMBOL vmlinux 0x3c0c6b26 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x3c110fa3 noop_llseek +EXPORT_SYMBOL vmlinux 0x3c2077d6 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c4ea6e7 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x3c613c10 get_io_context +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c813925 mach_powermac +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cafde5e disk_stack_limits +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf52ef9 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x3d0a009f scsi_remove_target +EXPORT_SYMBOL vmlinux 0x3d144796 bdi_init +EXPORT_SYMBOL vmlinux 0x3d1a977e neigh_table_init +EXPORT_SYMBOL vmlinux 0x3d2dbb5a pci_fixup_device +EXPORT_SYMBOL vmlinux 0x3d428891 framebuffer_release +EXPORT_SYMBOL vmlinux 0x3d9983b1 log_wait_commit +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da76ad1 user_path_at +EXPORT_SYMBOL vmlinux 0x3daa6e1c __devm_request_region +EXPORT_SYMBOL vmlinux 0x3db6614e truncate_setsize +EXPORT_SYMBOL vmlinux 0x3dcb4f00 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x3dcfdb66 touch_atime +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e2466fe inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e398937 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e688d5f blk_run_queue +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ed5b75b cfb_imageblit +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f03ad4b blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f234ef7 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x3f343fa0 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5be2b6 follow_up +EXPORT_SYMBOL vmlinux 0x3f7a2f62 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4002bce6 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x40255e4b ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x402a4895 sock_map_fd +EXPORT_SYMBOL vmlinux 0x402bb56d kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x40594c54 arp_tbl +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405b1c3c ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409aa516 generic_read_dir +EXPORT_SYMBOL vmlinux 0x40a0b39f jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40ac6e69 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x40b12bf7 thaw_process +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d973cc iput +EXPORT_SYMBOL vmlinux 0x40e19f47 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x40ff9f1a filp_open +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4126c789 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x4134d19b blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x413b67ee jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x41779437 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x4178b552 sk_run_filter +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4188fea3 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x418c11f6 mii_link_ok +EXPORT_SYMBOL vmlinux 0x419e5bbe scsi_get_command +EXPORT_SYMBOL vmlinux 0x41bbc93b kernel_getsockname +EXPORT_SYMBOL vmlinux 0x41d36ae5 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x41d9501a ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x42248df1 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x4228eca0 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x423cbb2d blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x42405a86 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x424bdccd blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42c7beea sock_wmalloc +EXPORT_SYMBOL vmlinux 0x42f66ea6 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4306ccb9 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x431f7ff6 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x4336a80b journal_check_used_features +EXPORT_SYMBOL vmlinux 0x4342f379 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437caea5 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x438bce1e init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43da9f6c register_netdev +EXPORT_SYMBOL vmlinux 0x4422072e agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x4425e908 cdrom_release +EXPORT_SYMBOL vmlinux 0x442f3cc8 vfs_getattr +EXPORT_SYMBOL vmlinux 0x4430c75c ida_pre_get +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x444450e0 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x44976346 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x449c251f blk_start_request +EXPORT_SYMBOL vmlinux 0x44b1f479 module_layout +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44cdb779 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x45014382 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x4512422a dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x4516a1a1 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x45419be0 do_truncate +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45573e6b register_key_type +EXPORT_SYMBOL vmlinux 0x455a7631 dump_seek +EXPORT_SYMBOL vmlinux 0x456e6dce radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x457200d9 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x4591b523 generic_writepages +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45bd80c1 netif_skb_features +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x46255583 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x4634d961 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x463b2346 do_sync_write +EXPORT_SYMBOL vmlinux 0x4649333f cfb_copyarea +EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467a9d39 key_type_keyring +EXPORT_SYMBOL vmlinux 0x469f64c0 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x46a1913e scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x46a2913d blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x46cee67c bd_set_size +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46d94188 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x46dbabd5 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x4707b445 __bforget +EXPORT_SYMBOL vmlinux 0x4713b760 machine_id +EXPORT_SYMBOL vmlinux 0x4729586c generic_show_options +EXPORT_SYMBOL vmlinux 0x47386149 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475c0391 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x4786eaca audit_log_end +EXPORT_SYMBOL vmlinux 0x47876f77 bio_map_user +EXPORT_SYMBOL vmlinux 0x47887481 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b4ef31 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x47c61464 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node +EXPORT_SYMBOL vmlinux 0x481afbfe pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask +EXPORT_SYMBOL vmlinux 0x483b5344 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4857e88e dquot_release +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48658db0 of_get_next_child +EXPORT_SYMBOL vmlinux 0x4865f098 netlink_ack +EXPORT_SYMBOL vmlinux 0x486feffd blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x48775dd3 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x488368e1 put_tty_driver +EXPORT_SYMBOL vmlinux 0x4884617f pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x488efe24 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x48c29a07 phy_connect +EXPORT_SYMBOL vmlinux 0x4914164a dquot_commit_info +EXPORT_SYMBOL vmlinux 0x491ae479 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x49301b9d mpage_readpage +EXPORT_SYMBOL vmlinux 0x49366e9b pci_enable_device +EXPORT_SYMBOL vmlinux 0x494dfecc dev_mc_del +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4971b4f5 blk_put_request +EXPORT_SYMBOL vmlinux 0x499868f9 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49bbbf36 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x49c96411 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x49d1c047 agp_enable +EXPORT_SYMBOL vmlinux 0x49e0f227 km_query +EXPORT_SYMBOL vmlinux 0x49e13a05 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x49f7e0d8 dquot_enable +EXPORT_SYMBOL vmlinux 0x49ffc6fa kmem_cache_free +EXPORT_SYMBOL vmlinux 0x4a055682 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x4a290d4d cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a676e19 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x4a9fbae2 set_user_nice +EXPORT_SYMBOL vmlinux 0x4aa13a87 of_register_driver +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ab52a3e page_follow_link_light +EXPORT_SYMBOL vmlinux 0x4ac7d372 block_truncate_page +EXPORT_SYMBOL vmlinux 0x4ac9d29a genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x4aefd97e cdev_init +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4affd08d cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b3689e6 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x4b7483de jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b96c26a pci_get_class +EXPORT_SYMBOL vmlinux 0x4bb308dd genphy_read_status +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd7d0b1 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2998fc vc_resize +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c3b7480 bio_put +EXPORT_SYMBOL vmlinux 0x4c3b8c2e neigh_for_each +EXPORT_SYMBOL vmlinux 0x4c620d82 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x4c68ec84 padata_start +EXPORT_SYMBOL vmlinux 0x4c8ec63f simple_empty +EXPORT_SYMBOL vmlinux 0x4caecfcf mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d1022c7 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x4d1648fd skb_clone +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d6d9494 abort_creds +EXPORT_SYMBOL vmlinux 0x4d87f819 kernel_listen +EXPORT_SYMBOL vmlinux 0x4d9266c9 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9856b7 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x4dab9e9a of_get_parent +EXPORT_SYMBOL vmlinux 0x4db18d75 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dbeb06d ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x4dc191a2 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x4dc3292c blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df96547 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e12e89b dcache_dir_open +EXPORT_SYMBOL vmlinux 0x4e1f4814 __pagevec_release +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e36b9bd ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x4e5aa283 nla_append +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e93282e kernel_getpeername +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ec26f0a alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x4ec8a03d block_commit_write +EXPORT_SYMBOL vmlinux 0x4ee570ce pcim_enable_device +EXPORT_SYMBOL vmlinux 0x4eebb3d3 free_buffer_head +EXPORT_SYMBOL vmlinux 0x4f10bcdc scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f20ef0c pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x4f269e7c xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f546128 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x4f5b83ea dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4fbaf2a3 elv_rb_del +EXPORT_SYMBOL vmlinux 0x4fbcf1a5 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x4fc45fa1 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +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 0x5027b387 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x5030ee16 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x50384baf vgacon_remap_base +EXPORT_SYMBOL vmlinux 0x5043aa93 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x505ccc9f register_netdevice +EXPORT_SYMBOL vmlinux 0x5062e92c register_snap_client +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506ab439 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x5071e0e2 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x50837c39 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x508d8ea4 blk_peek_request +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50bc818d skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x50be1f82 journal_init_inode +EXPORT_SYMBOL vmlinux 0x50d4111f flush_dcache_page +EXPORT_SYMBOL vmlinux 0x50f0ca50 kernel_read +EXPORT_SYMBOL vmlinux 0x50fe9ccf ihold +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x511f0c8b noop_fsync +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x516a9093 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x519a3cb1 find_get_page +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51b27687 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x51c40924 do_SAK +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f03f1a pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5218ab67 tr_type_trans +EXPORT_SYMBOL vmlinux 0x52226e3c inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x5236686b xfrm_init_state +EXPORT_SYMBOL vmlinux 0x52408c00 nla_reserve +EXPORT_SYMBOL vmlinux 0x5242bb27 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x5248bab3 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x5263878e d_find_alias +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x529a4345 register_framebuffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b07c08 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x52b2f212 input_event +EXPORT_SYMBOL vmlinux 0x52b3946f create_mnt_ns +EXPORT_SYMBOL vmlinux 0x52bbee90 pci_release_region +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53142605 have_submounts +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x534da81b security_d_instantiate +EXPORT_SYMBOL vmlinux 0x53605d1f tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x53614a7a vfs_readdir +EXPORT_SYMBOL vmlinux 0x5374f03e mark_page_accessed +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5383d2b3 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x53a9063d sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d7db39 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x53dd5173 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x540b342e sock_update_classid +EXPORT_SYMBOL vmlinux 0x543754ab i2c_clients_command +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5447a070 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x54898d6b arp_create +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54ab8a3e unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x54d596cd ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x54d99025 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ed5fd1 notify_change +EXPORT_SYMBOL vmlinux 0x54f35b2a proc_symlink +EXPORT_SYMBOL vmlinux 0x5502aadd do_munmap +EXPORT_SYMBOL vmlinux 0x551d8f62 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x552315a9 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x55515df6 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x55803c7a dquot_free_inode +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x559afecc poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x55e7fc26 tty_port_open +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5612c99f ide_set_handler +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562bb75b ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x562d69a8 macio_dev_put +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565c8cf0 security_path_mknod +EXPORT_SYMBOL vmlinux 0x567188f6 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56b2005a dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d846c3 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x56e78fdb wireless_send_event +EXPORT_SYMBOL vmlinux 0x56f30148 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x571c883f tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x5721ed6e key_validate +EXPORT_SYMBOL vmlinux 0x572cb33b update_region +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5737db43 dev_addr_del +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5767b2b0 napi_get_frags +EXPORT_SYMBOL vmlinux 0x57718677 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x57a227b7 dcb_getapp +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b428ad llc_sap_close +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e2e9c5 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x57fdf091 scsi_init_io +EXPORT_SYMBOL vmlinux 0x5804b697 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x581f389d bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x58378adb phy_find_first +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583f3686 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58808355 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x58895317 console_stop +EXPORT_SYMBOL vmlinux 0x5893c5b1 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x58be68ef pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x58e7d8fd kobject_init +EXPORT_SYMBOL vmlinux 0x59155329 register_8022_client +EXPORT_SYMBOL vmlinux 0x5916e75a journal_update_format +EXPORT_SYMBOL vmlinux 0x592394f5 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x592fa986 netdev_printk +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x59361d00 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x5939bb2e agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59514588 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x5951d7b7 get_agp_version +EXPORT_SYMBOL vmlinux 0x595a99dd bioset_free +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x598ebe81 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x59a8e6bb pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x59a93ef1 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59b6fd68 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x59ba77d0 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x59c898a8 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a1918b2 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x5a2fd097 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x5a46e388 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x5a67d7de neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7ecf94 input_inject_event +EXPORT_SYMBOL vmlinux 0x5ab59788 mount_pseudo +EXPORT_SYMBOL vmlinux 0x5ab5a870 km_report +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5ad3b0f7 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x5af26e2e textsearch_unregister +EXPORT_SYMBOL vmlinux 0x5b156988 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b2a4399 input_unregister_device +EXPORT_SYMBOL vmlinux 0x5b2c8451 d_delete +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b4219ed simple_getattr +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b57e6ba dquot_initialize +EXPORT_SYMBOL vmlinux 0x5b6a5cbb ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x5b6eae0f i2c_verify_client +EXPORT_SYMBOL vmlinux 0x5b853354 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5bbaf188 __netif_schedule +EXPORT_SYMBOL vmlinux 0x5bcebc7b remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x5bf41c07 nobh_write_begin +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 0x5c571723 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x5c6219ca __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x5c84406b genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x5caaca82 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x5cdfc140 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x5d35bd09 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x5d41378f kset_unregister +EXPORT_SYMBOL vmlinux 0x5d673872 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x5dd68c49 poll_freewait +EXPORT_SYMBOL vmlinux 0x5de20f7c inode_add_bytes +EXPORT_SYMBOL vmlinux 0x5dead0ec of_get_gpio_flags +EXPORT_SYMBOL vmlinux 0x5dfdbbcb bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x5dfeaab4 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x5e075dc7 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x5e191e4e scsi_host_get +EXPORT_SYMBOL vmlinux 0x5e2b48d7 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e72c47d inode_set_bytes +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ea5cf38 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x5ecc3bb0 llc_sap_find +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5eef44d9 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f4845e7 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x5f6b7352 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8390b7 posix_lock_file +EXPORT_SYMBOL vmlinux 0x5f85a06a down_write_trylock +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fbc0e2d skb_set_dev +EXPORT_SYMBOL vmlinux 0x5fc1b09c dev_notice +EXPORT_SYMBOL vmlinux 0x5fe37187 sock_create_lite +EXPORT_SYMBOL vmlinux 0x5fe45275 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x5feb9d6e ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x5febb788 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x6000fcdf blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600889c4 set_groups +EXPORT_SYMBOL vmlinux 0x6009a3df dev_open +EXPORT_SYMBOL vmlinux 0x602afcd9 dev_uc_init +EXPORT_SYMBOL vmlinux 0x602fdd1d sk_wait_data +EXPORT_SYMBOL vmlinux 0x6045aa6b locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x6054158c dev_mc_init +EXPORT_SYMBOL vmlinux 0x60887744 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x609c9b93 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60ce436a __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x60db46f2 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x60f0298c _dev_info +EXPORT_SYMBOL vmlinux 0x60fb29b8 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x60ff6411 mdiobus_read +EXPORT_SYMBOL vmlinux 0x6118fd77 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x611abfaf skb_make_writable +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x614d1154 input_register_device +EXPORT_SYMBOL vmlinux 0x61550440 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x616632e9 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x617bf015 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x617d3a08 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x619aa977 input_flush_device +EXPORT_SYMBOL vmlinux 0x61b28ff4 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bbb802 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61f87840 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x6219d0cd remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x62230360 __invalidate_device +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x62312730 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x6248c3d2 blkdev_get +EXPORT_SYMBOL vmlinux 0x624a42b6 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x6258ff7a panic_notifier_list +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x625e0869 dquot_destroy +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62751aee vga_tryget +EXPORT_SYMBOL vmlinux 0x62823334 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags +EXPORT_SYMBOL vmlinux 0x628c59ba key_negate_and_link +EXPORT_SYMBOL vmlinux 0x629b32e2 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x629dfbbf bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x62a3b48c pskb_expand_head +EXPORT_SYMBOL vmlinux 0x62c80180 seq_read +EXPORT_SYMBOL vmlinux 0x62cc988b dev_emerg +EXPORT_SYMBOL vmlinux 0x62db5942 pskb_copy +EXPORT_SYMBOL vmlinux 0x62fdcef9 d_drop +EXPORT_SYMBOL vmlinux 0x630d1b84 up_read +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x635debad dev_get_by_name +EXPORT_SYMBOL vmlinux 0x6366b945 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x638f3891 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x6390f08d fasync_helper +EXPORT_SYMBOL vmlinux 0x639ad8d0 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x63c3d6dc percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x63e9d530 padata_alloc +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6406194c mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x6446d308 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x645a026a inet6_bind +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x64703c55 get_gendisk +EXPORT_SYMBOL vmlinux 0x64983a87 d_path +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64ca9c68 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x64ce7f08 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x64dc0cb3 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x64e6236d tcp_disconnect +EXPORT_SYMBOL vmlinux 0x64fb8661 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x651a0c07 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651dc485 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x6525a16b journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x652b59d3 ipv4_specific +EXPORT_SYMBOL vmlinux 0x652f9ec7 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x653f8d56 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654176ff jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x658a2a97 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x65b5abb5 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65cacf63 clear_user_page +EXPORT_SYMBOL vmlinux 0x65cb22e6 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65dedeba i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x66325685 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x66612284 blk_make_request +EXPORT_SYMBOL vmlinux 0x6668ee88 sock_wfree +EXPORT_SYMBOL vmlinux 0x667a47e2 mnt_pin +EXPORT_SYMBOL vmlinux 0x668d9fce inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66982e34 phy_driver_register +EXPORT_SYMBOL vmlinux 0x669be147 is_container_init +EXPORT_SYMBOL vmlinux 0x669c52bb xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x6706fa2f ps2_init +EXPORT_SYMBOL vmlinux 0x6722abf6 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x6735aa48 sk_dst_check +EXPORT_SYMBOL vmlinux 0x673b6c6c ilookup +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6768d2bb mapping_tagged +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +EXPORT_SYMBOL vmlinux 0x6787022c udp_proc_register +EXPORT_SYMBOL vmlinux 0x678b09c4 mount_ns +EXPORT_SYMBOL vmlinux 0x67b1c69d tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c6a7ad pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x67c84970 cdev_del +EXPORT_SYMBOL vmlinux 0x67c854ca uart_match_port +EXPORT_SYMBOL vmlinux 0x67f3534d security_path_chown +EXPORT_SYMBOL vmlinux 0x681e59a8 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x68312a70 tty_port_put +EXPORT_SYMBOL vmlinux 0x68416a9f register_gifconf +EXPORT_SYMBOL vmlinux 0x68437581 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x684d7856 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x684dd66a blk_fetch_request +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x686d5956 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x686f309c dmam_pool_create +EXPORT_SYMBOL vmlinux 0x6889f73d serio_unregister_port +EXPORT_SYMBOL vmlinux 0x68a64787 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x68c5803c linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x68e0e289 idr_remove +EXPORT_SYMBOL vmlinux 0x68e217c3 skb_split +EXPORT_SYMBOL vmlinux 0x68f3481c netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x69270d7d pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x694a46f4 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x69539596 security_inode_permission +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69715162 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x6971c3df __any_online_cpu +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69c6a628 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x69c8c0da pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d3fd28 pci_map_rom +EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f16ad0 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x69fa5733 address_space_init_once +EXPORT_SYMBOL vmlinux 0x69fca028 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x69fe48ff uart_get_divisor +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a16cacd seq_release_private +EXPORT_SYMBOL vmlinux 0x6a1b247b kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x6a37e4c1 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a82d33a get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x6a841deb vfs_statfs +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6adf276a sock_release +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3782b8 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x6b4f3642 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x6b681466 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x6b6b3b41 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x6b7e7f6e do_sync_read +EXPORT_SYMBOL vmlinux 0x6baa3e17 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bacd6c7 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be1a49a lock_fb_info +EXPORT_SYMBOL vmlinux 0x6bf7b7eb pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x6bfaef72 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2765c4 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x6c494872 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6cb24bbf noop_qdisc +EXPORT_SYMBOL vmlinux 0x6cb4208e qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d3572ef scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d4e0935 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d7478e4 security_path_link +EXPORT_SYMBOL vmlinux 0x6d7747f7 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x6d8c2274 set_page_dirty +EXPORT_SYMBOL vmlinux 0x6d8e5a93 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dcfb74a simple_transaction_read +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfd86eb netdev_notice +EXPORT_SYMBOL vmlinux 0x6e198446 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x6e1af246 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x6e383dd6 gen_pool_add +EXPORT_SYMBOL vmlinux 0x6e3f01c2 pci_restore_state +EXPORT_SYMBOL vmlinux 0x6e4e4980 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x6e53a064 genphy_update_link +EXPORT_SYMBOL vmlinux 0x6e68d7fc d_genocide +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e779ee7 uart_resume_port +EXPORT_SYMBOL vmlinux 0x6e877c80 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x6e90accb mem_map +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea1edfe aio_complete +EXPORT_SYMBOL vmlinux 0x6eaafe65 pci_release_regions +EXPORT_SYMBOL vmlinux 0x6edeea0f tcp_sendpage +EXPORT_SYMBOL vmlinux 0x6ef72d5b sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x6f3594d6 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x6f394add tty_shutdown +EXPORT_SYMBOL vmlinux 0x6f4c5143 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x6f6ff3f0 tty_throttle +EXPORT_SYMBOL vmlinux 0x6f810a5c of_node_get +EXPORT_SYMBOL vmlinux 0x6f84a5b5 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fac5e5f ip_getsockopt +EXPORT_SYMBOL vmlinux 0x6fb56e51 tc_classify +EXPORT_SYMBOL vmlinux 0x6fb934c0 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x6fd0a06c jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x700cc4bc blk_register_region +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x7043cae9 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x705029af no_llseek +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705c57b2 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x705ce64a jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x7086da2a pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x70a095bb blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x70b0e79f generic_write_end +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d8592f i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70ee73c9 kick_iocb +EXPORT_SYMBOL vmlinux 0x70f48f6a scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x71182810 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x7126cd5a sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71396b7e sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x7175217d macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x717c0d74 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x723fa7da netpoll_print_options +EXPORT_SYMBOL vmlinux 0x725eb094 km_state_expired +EXPORT_SYMBOL vmlinux 0x72678e4f __scm_destroy +EXPORT_SYMBOL vmlinux 0x7277d598 input_close_device +EXPORT_SYMBOL vmlinux 0x728fab79 agp_free_memory +EXPORT_SYMBOL vmlinux 0x7292ed6e new_inode +EXPORT_SYMBOL vmlinux 0x72984640 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b80628 bdi_unregister +EXPORT_SYMBOL vmlinux 0x72b902f9 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x72e18b8a unlock_new_inode +EXPORT_SYMBOL vmlinux 0x72e983d7 names_cachep +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ecc00f flex_array_shrink +EXPORT_SYMBOL vmlinux 0x730ddc74 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x73195a8b tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x731a9388 of_get_mac_address +EXPORT_SYMBOL vmlinux 0x73225fc8 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x732964ac pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x732e0f40 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x734af376 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x737cf23d netdev_alert +EXPORT_SYMBOL vmlinux 0x7387bd24 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x739497ea pci_get_subsys +EXPORT_SYMBOL vmlinux 0x739f7af3 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73bb6a3e set_irq_chip +EXPORT_SYMBOL vmlinux 0x73c81481 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x744e9d16 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x7472842c powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x747e71f2 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74bfd9e4 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d44728 ip6_route_output +EXPORT_SYMBOL vmlinux 0x74d5ec70 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x74df6003 write_inode_now +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x75185fd4 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x75198891 bio_init +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x75318927 __blk_end_request +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75468a43 fb_set_var +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x7573b84b of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75992a9d devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75b46f4c pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75eb4d7e rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7613eea8 secpath_dup +EXPORT_SYMBOL vmlinux 0x763d1e39 datagram_poll +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764c9237 dev_add_pack +EXPORT_SYMBOL vmlinux 0x76878bd7 sock_rfree +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d01fc6 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d7cd0c simple_set_mnt +EXPORT_SYMBOL vmlinux 0x76e07962 idr_get_new +EXPORT_SYMBOL vmlinux 0x76e9a19e phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x7707c7fb blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x77185fce mii_nway_restart +EXPORT_SYMBOL vmlinux 0x7729fedb posix_acl_permission +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x775064f6 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x779bc870 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x77a5acbb simple_write_end +EXPORT_SYMBOL vmlinux 0x77b1badc mntput +EXPORT_SYMBOL vmlinux 0x77b7f5b4 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77bc67f0 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x77c855fe dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x77d504f2 ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e71ff9 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77ee5fdf of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x78046796 vm_map_ram +EXPORT_SYMBOL vmlinux 0x78442158 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x787fcc84 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x7888ec52 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x78b4a36d dev_get_stats +EXPORT_SYMBOL vmlinux 0x78bac911 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x78c6985c jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e0f0bd scsi_block_requests +EXPORT_SYMBOL vmlinux 0x78ed3e5c __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x7912eee7 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79723bda try_to_release_page +EXPORT_SYMBOL vmlinux 0x797ba84a skb_store_bits +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79bbfae2 do_splice_to +EXPORT_SYMBOL vmlinux 0x79e17e13 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x79ed8337 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x79f36523 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x7a0f81b3 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x7a135f53 lro_flush_all +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a417df5 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a685a81 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x7a8adf86 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x7a947fe8 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x7ab2c656 __quota_error +EXPORT_SYMBOL vmlinux 0x7ac7c9ad bdi_register +EXPORT_SYMBOL vmlinux 0x7b037a92 kobject_del +EXPORT_SYMBOL vmlinux 0x7b0ab4c2 __lock_page +EXPORT_SYMBOL vmlinux 0x7b0f621b journal_forget +EXPORT_SYMBOL vmlinux 0x7b1be9aa bio_integrity_split +EXPORT_SYMBOL vmlinux 0x7b4813e3 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x7b5ad202 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x7b5f42b9 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7badf120 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be1dd26 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7bf0790e netif_device_attach +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c03f063 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x7c11a70c block_write_end +EXPORT_SYMBOL vmlinux 0x7c11ff03 pci_select_bars +EXPORT_SYMBOL vmlinux 0x7c25a4b1 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c4afd3b neigh_compat_output +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c63670e generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x7c65c9b3 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x7c6b707b d_validate +EXPORT_SYMBOL vmlinux 0x7c6c7dd9 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x7c72a2db udplite_prot +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 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cc139e9 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x7cf8e860 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1d2c10 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x7d358498 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x7d4e5827 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x7d8125dd scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x7d9cb0c6 __bread +EXPORT_SYMBOL vmlinux 0x7daa8ecf lease_modify +EXPORT_SYMBOL vmlinux 0x7dbdb668 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x7dc7e540 security_path_rename +EXPORT_SYMBOL vmlinux 0x7dc86c3d follow_down_one +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7df7b24e find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x7e2a489c dev_set_mtu +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e546039 vga_put +EXPORT_SYMBOL vmlinux 0x7e6f7641 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x7ed207a9 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x7edd6edd pci_bus_type +EXPORT_SYMBOL vmlinux 0x7f14880d ip_defrag +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2cc496 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x7f45dd44 i2c_transfer +EXPORT_SYMBOL vmlinux 0x7f5a8b09 __kfree_skb +EXPORT_SYMBOL vmlinux 0x7f8d9ef8 vfs_writev +EXPORT_SYMBOL vmlinux 0x7f90d716 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x7fd957e8 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7feaf857 simple_rename +EXPORT_SYMBOL vmlinux 0x7ff37198 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x800c8c20 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x80160872 set_disk_ro +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x80606dca page_readlink +EXPORT_SYMBOL vmlinux 0x80aa2885 request_key_async +EXPORT_SYMBOL vmlinux 0x80af65ec radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x80cf007a pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x80d15247 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x80f0d0c1 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x80fab9ef jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x8108fb6e generic_removexattr +EXPORT_SYMBOL vmlinux 0x8111dbd0 kthread_create +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815fa49c pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x81667905 put_page +EXPORT_SYMBOL vmlinux 0x8172132b ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x817c4afe jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x817c989b filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x81819480 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81a2b50c serio_interrupt +EXPORT_SYMBOL vmlinux 0x81b16feb scsi_register_interface +EXPORT_SYMBOL vmlinux 0x81b53dde inet_listen +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dca4d1 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x81e7dd4a sock_init_data +EXPORT_SYMBOL vmlinux 0x82054bee dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x821dc7c6 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x82259d3e dev_trans_start +EXPORT_SYMBOL vmlinux 0x822de354 tty_name +EXPORT_SYMBOL vmlinux 0x82422f88 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x8246c0d7 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x824bee81 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82569530 find_lock_page +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82716049 dqstats +EXPORT_SYMBOL vmlinux 0x827431cb udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x82854eae pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82ba8cb1 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x82bb44f6 tcp_poll +EXPORT_SYMBOL vmlinux 0x82bf3d19 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82e8f4dd cap_file_mmap +EXPORT_SYMBOL vmlinux 0x832179fe elv_rb_add +EXPORT_SYMBOL vmlinux 0x8325bac3 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x8344eb6f shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x83459db7 input_grab_device +EXPORT_SYMBOL vmlinux 0x834711d2 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x838abb0c neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83953467 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x839ead56 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83bcf760 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x83ecee60 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x83ef1d1b backlight_force_update +EXPORT_SYMBOL vmlinux 0x8406f61c seq_puts +EXPORT_SYMBOL vmlinux 0x84128d8c blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x84351b0b f_setown +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x844c0752 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x84a11cc8 aio_put_req +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x850c0fdc fd_install +EXPORT_SYMBOL vmlinux 0x85216ca6 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x852cc5a0 registered_fb +EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8572f5b2 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x85893c7a pci_request_region +EXPORT_SYMBOL vmlinux 0x85a52294 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x85ba1c2f phy_print_status +EXPORT_SYMBOL vmlinux 0x85bb3d56 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x85bba89a agp_create_memory +EXPORT_SYMBOL vmlinux 0x85dd90e6 flex_array_clear +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85eea71d arp_send +EXPORT_SYMBOL vmlinux 0x85f50a3d netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x85fe3d96 free_netdev +EXPORT_SYMBOL vmlinux 0x860d47e4 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x862d5f3a atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86722b30 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x8698e202 simple_readpage +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86c8622c blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x86d488cd kobject_put +EXPORT_SYMBOL vmlinux 0x86daa7ef tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86e46160 generic_make_request +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8733e4b4 I_BDEV +EXPORT_SYMBOL vmlinux 0x87658ddd rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x8767dd3c cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x87744100 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87c22657 dma_set_mask +EXPORT_SYMBOL vmlinux 0x87cb02f4 journal_wipe +EXPORT_SYMBOL vmlinux 0x87cd1bed may_umount +EXPORT_SYMBOL vmlinux 0x87d67abb radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x87e64e4a d_splice_alias +EXPORT_SYMBOL vmlinux 0x87ef332d inet_bind +EXPORT_SYMBOL vmlinux 0x8804f8d8 tcp_connect +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x882733b9 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x884720fe sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x88aec454 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x88b9212b __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x88cf5fa7 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x88d3ec05 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x88e5a5b1 deactivate_super +EXPORT_SYMBOL vmlinux 0x88f0baad of_unregister_platform_driver +EXPORT_SYMBOL vmlinux 0x88f8cd45 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x89058eec may_umount_tree +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x8924e471 __devm_release_region +EXPORT_SYMBOL vmlinux 0x8936db60 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x893a5e73 blk_end_request +EXPORT_SYMBOL vmlinux 0x8940c3a9 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x894c9460 vmap +EXPORT_SYMBOL vmlinux 0x895483fb tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x896ba021 of_device_alloc +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897d2a65 blk_start_queue +EXPORT_SYMBOL vmlinux 0x89a3abc6 pci_set_power_state +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 0x89da4432 of_iomap +EXPORT_SYMBOL vmlinux 0x89ec030c up_write +EXPORT_SYMBOL vmlinux 0x8a025cc0 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x8a1b3dcf nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x8a3c5cc6 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x8a745762 unregister_nls +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a84a82f scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8ab8bc63 input_set_keycode +EXPORT_SYMBOL vmlinux 0x8ace755d radix_tree_delete +EXPORT_SYMBOL vmlinux 0x8ae8b5f2 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b25e058 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x8b74e1d9 dev_get_flags +EXPORT_SYMBOL vmlinux 0x8b981301 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x8ba234fb generic_unplug_device +EXPORT_SYMBOL vmlinux 0x8ba2af8b truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x8bc529f6 tty_mutex +EXPORT_SYMBOL vmlinux 0x8bc7b642 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x8bc7b6cb max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x8bf198b7 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1c40d7 path_put +EXPORT_SYMBOL vmlinux 0x8c3a1dbf posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x8c555bfb agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x8c588888 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x8c60afce journal_restart +EXPORT_SYMBOL vmlinux 0x8c629ef6 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cf793fe jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x8d1e62db nf_register_hooks +EXPORT_SYMBOL vmlinux 0x8d20b8ea neigh_connected_output +EXPORT_SYMBOL vmlinux 0x8d2c5205 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x8d34c1f3 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x8d3610f6 __elv_add_request +EXPORT_SYMBOL vmlinux 0x8d3bbf4c mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d566a32 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x8d5e2338 generic_getxattr +EXPORT_SYMBOL vmlinux 0x8d6a4886 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x8d95f8cd tcp_prot +EXPORT_SYMBOL vmlinux 0x8da91dbb simple_transaction_set +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8de46969 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0x8de5cd20 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x8defd897 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e113387 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x8e290f15 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x8e3a7170 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x8e490215 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x8e63350d idr_replace +EXPORT_SYMBOL vmlinux 0x8e98a5b5 proc_dointvec +EXPORT_SYMBOL vmlinux 0x8e9cc84f mount_single +EXPORT_SYMBOL vmlinux 0x8ea0e97c of_match_device +EXPORT_SYMBOL vmlinux 0x8ebdfa9d page_symlink +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ec4a99e tcf_hash_search +EXPORT_SYMBOL vmlinux 0x8ed0b94b blk_free_tags +EXPORT_SYMBOL vmlinux 0x8ed5922e fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f0f823e mach_chrp +EXPORT_SYMBOL vmlinux 0x8f150c75 sk_common_release +EXPORT_SYMBOL vmlinux 0x8f2388ab netif_rx_ni +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f611873 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x8f64e4b9 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f78332f eth_header +EXPORT_SYMBOL vmlinux 0x8f7adfba unregister_cdrom +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8f895ad9 audit_log_start +EXPORT_SYMBOL vmlinux 0x8fa70b8e iget_failed +EXPORT_SYMBOL vmlinux 0x8fb01cc5 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x8fba03c9 seq_bitmap +EXPORT_SYMBOL vmlinux 0x8fbf37e0 profile_pc +EXPORT_SYMBOL vmlinux 0x8fd1eddf generic_ro_fops +EXPORT_SYMBOL vmlinux 0x8fd25d79 of_node_put +EXPORT_SYMBOL vmlinux 0x8feeda1c tty_port_init +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9015582e blk_rq_init +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x9051b564 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x907f90c1 default_llseek +EXPORT_SYMBOL vmlinux 0x9097ae44 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x90999ddd dev_uc_sync +EXPORT_SYMBOL vmlinux 0x90b5c979 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x90d3074c register_con_driver +EXPORT_SYMBOL vmlinux 0x90e08354 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90f12fc6 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x90f7f904 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x910410fa elv_add_request +EXPORT_SYMBOL vmlinux 0x910c2562 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x9136fffe scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91709f50 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x919b7aba of_device_is_available +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x919d5563 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x91d88e48 __debugger_dabr_match +EXPORT_SYMBOL vmlinux 0x91dad13b bio_clone +EXPORT_SYMBOL vmlinux 0x91dc8e79 register_qdisc +EXPORT_SYMBOL vmlinux 0x92052dab pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0x922fdef1 kunmap_high +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92684222 journal_destroy +EXPORT_SYMBOL vmlinux 0x928402a6 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x9286e14f llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x928dc8b5 rename_lock +EXPORT_SYMBOL vmlinux 0x92a2c46d ida_get_new +EXPORT_SYMBOL vmlinux 0x92a32562 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x92a5decc tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x92a983c1 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x92c76114 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x92ca236e dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x92cbe38b filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x92cd1b92 __scm_send +EXPORT_SYMBOL vmlinux 0x92d6abed sk_alloc +EXPORT_SYMBOL vmlinux 0x92e1a9a7 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x933f6665 pci_save_state +EXPORT_SYMBOL vmlinux 0x938a1f0b tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x939d6745 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad3643 phy_stop +EXPORT_SYMBOL vmlinux 0x93b0a581 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x93ba8955 elv_register_queue +EXPORT_SYMBOL vmlinux 0x93ee1182 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x93f36886 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x93fafba1 journal_ack_err +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9410ad96 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x942af158 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x942c1b2e bdi_destroy +EXPORT_SYMBOL vmlinux 0x94347945 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x9450672a sock_i_ino +EXPORT_SYMBOL vmlinux 0x94532c13 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x946cef62 kfree_skb +EXPORT_SYMBOL vmlinux 0x94795246 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a6dfdf blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x94b13417 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94fde13c ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x950b4bec ip_options_compile +EXPORT_SYMBOL vmlinux 0x950e5567 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x95182547 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x951968f7 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95a63cd2 vfs_read +EXPORT_SYMBOL vmlinux 0x95b6e2f3 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x95bb7642 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x95cd411d of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x95cf6b51 __getblk +EXPORT_SYMBOL vmlinux 0x95eee255 phy_device_free +EXPORT_SYMBOL vmlinux 0x95fdb2d9 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x9611f749 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x96310924 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x967bed75 padata_do_serial +EXPORT_SYMBOL vmlinux 0x968831ea send_sig_info +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x9692c02f dm_put_device +EXPORT_SYMBOL vmlinux 0x96a26a8c pci_enable_msix +EXPORT_SYMBOL vmlinux 0x96af5bb6 netpoll_setup +EXPORT_SYMBOL vmlinux 0x96c2aeb7 tty_register_driver +EXPORT_SYMBOL vmlinux 0x96c434a6 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x96c8df3a read_dev_sector +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96f29f0e serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x9704e93a ida_get_new_above +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x9734e838 tty_check_change +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97592634 set_blocksize +EXPORT_SYMBOL vmlinux 0x976fb9e3 dcache_readdir +EXPORT_SYMBOL vmlinux 0x977b5c67 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x97b67c5f netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x97e0f6a5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x97e9c638 dst_discard +EXPORT_SYMBOL vmlinux 0x9820ef63 d_add_ci +EXPORT_SYMBOL vmlinux 0x983d8b69 del_timer +EXPORT_SYMBOL vmlinux 0x983d9d30 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x986d5a52 submit_bh +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98c1e49c tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x98c7a498 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x98d32966 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x98e45a7c cdrom_check_events +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x990e8eff xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x9911ad4c tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x993a03ec phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x993d13ce kmem_cache_create +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x995884e8 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x996689f9 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x996ebf79 scsi_free_command +EXPORT_SYMBOL vmlinux 0x9970e1c1 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x9987056f path_get +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99b22f58 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x99b6c28c tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x99b79bd2 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c250fa dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99f6d946 dm_table_get +EXPORT_SYMBOL vmlinux 0x9a0b8741 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a42b4fb register_console +EXPORT_SYMBOL vmlinux 0x9a5f65a2 __register_binfmt +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a6f2c5e thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x9a9d63d3 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x9ab0ca41 of_match_node +EXPORT_SYMBOL vmlinux 0x9ab8b30e tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x9ab8fd1a inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x9ac363a1 key_task_permission +EXPORT_SYMBOL vmlinux 0x9ad2fc00 __serio_register_port +EXPORT_SYMBOL vmlinux 0x9af7565d __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x9b1c74f8 km_state_notify +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b3b2878 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x9b443d5a of_dev_get +EXPORT_SYMBOL vmlinux 0x9b59ce8a __break_lease +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b8e1bf6 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x9b94328f blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9babff9d lookup_one_len +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9be6bd93 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c398643 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x9c71189f scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x9c85448c ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x9c95979a pci_busdev_to_OF_node +EXPORT_SYMBOL vmlinux 0x9ca36f84 ide_dump_status +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc85ea4 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ce7a4f6 init_timer_key +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cec14dc dev_uc_unsync +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 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d629bd2 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x9d662e4f eth_mac_addr +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d786943 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x9d7bebf4 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d9c9597 idr_init +EXPORT_SYMBOL vmlinux 0x9dc14034 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x9dfaa6de phy_attach +EXPORT_SYMBOL vmlinux 0x9dfcf3c5 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e3124e8 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x9e4015c6 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x9e5e9c53 get_write_access +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e7da2a8 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eac1828 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f002876 vfs_llseek +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f107290 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f40c413 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb2e695 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x9fb2f860 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fd5b494 seq_printf +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe302b1 netif_napi_del +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0xa02a2b8f dquot_operations +EXPORT_SYMBOL vmlinux 0xa035eaec swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05735de block_invalidatepage +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa074278c i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa08e4151 genphy_resume +EXPORT_SYMBOL vmlinux 0xa093ddb6 bdget_disk +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d8a397 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xa0dcf110 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xa0decc48 i8042_install_filter +EXPORT_SYMBOL vmlinux 0xa0e0368c of_get_property +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0eef495 ps2_drain +EXPORT_SYMBOL vmlinux 0xa0f74ce7 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa119d2d0 proc_mkdir +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa156553e dentry_unhash +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1bcc9a1 register_cdrom +EXPORT_SYMBOL vmlinux 0xa1c4b6d2 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c8a509 add_timer +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa1ff8e0e scsi_device_get +EXPORT_SYMBOL vmlinux 0xa2033b52 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa21ba89f pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xa28328ea sync_inode +EXPORT_SYMBOL vmlinux 0xa2953bff register_filesystem +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2dc5981 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa3188d76 nobh_write_end +EXPORT_SYMBOL vmlinux 0xa31bb8f8 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36a523f tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa39a76dd jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a715fb giveup_altivec +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3b9a201 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa3baf2ae pci_read_irq_line +EXPORT_SYMBOL vmlinux 0xa3c132f6 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa3f309a2 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xa41c42bd dev_uc_del +EXPORT_SYMBOL vmlinux 0xa4220e7e blk_sync_queue +EXPORT_SYMBOL vmlinux 0xa43678f8 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa44097eb generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0xa44b4e2c dev_alert +EXPORT_SYMBOL vmlinux 0xa4827856 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xa4980216 pci_disable_device +EXPORT_SYMBOL vmlinux 0xa49b3c71 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xa4ab1199 dquot_drop +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4dec6d8 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xa4e16dd4 arp_find +EXPORT_SYMBOL vmlinux 0xa4e7d368 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xa4f2a8f9 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xa4ff921b kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xa54a7ef6 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa5766089 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5bcbe9d iterate_mounts +EXPORT_SYMBOL vmlinux 0xa5bda521 arp_xmit +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5f3afa3 simple_release_fs +EXPORT_SYMBOL vmlinux 0xa5f46836 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xa5f70b52 skb_unlink +EXPORT_SYMBOL vmlinux 0xa638c0ae inet_frags_init +EXPORT_SYMBOL vmlinux 0xa652c4ef __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa66e6ff6 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xa6800c28 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa695eb5d jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6bd37e9 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6f0f063 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xa7164d29 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xa718a6f6 skb_pad +EXPORT_SYMBOL vmlinux 0xa732416b setup_new_exec +EXPORT_SYMBOL vmlinux 0xa7676d7c fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xa76f96d8 d_rehash +EXPORT_SYMBOL vmlinux 0xa7713c3f __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xa774a184 blk_plug_device +EXPORT_SYMBOL vmlinux 0xa77e7a37 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xa78d498f __page_symlink +EXPORT_SYMBOL vmlinux 0xa7aa008f da903x_query_status +EXPORT_SYMBOL vmlinux 0xa7bd7d2c scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xa81da28a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa83e1897 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap +EXPORT_SYMBOL vmlinux 0xa876b178 dev_load +EXPORT_SYMBOL vmlinux 0xa88def69 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa899e9d6 bio_free +EXPORT_SYMBOL vmlinux 0xa8aaee64 seq_lseek +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa921c0fe tcf_hash_release +EXPORT_SYMBOL vmlinux 0xa932ce64 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xa937b7d6 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xa94266f0 down_trylock +EXPORT_SYMBOL vmlinux 0xa952d6a9 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa9789cb4 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xa98497e1 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xa98c37fa alloc_fddidev +EXPORT_SYMBOL vmlinux 0xa9908d86 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0xa9ba82de max8925_set_bits +EXPORT_SYMBOL vmlinux 0xa9cab7df scsi_scan_host +EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu +EXPORT_SYMBOL vmlinux 0xa9ff6c1f cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xaa1e0650 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xaa4cea4a scsi_remove_device +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa6f6402 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xaa73b799 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaaa99b70 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xaaf1713f bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xaafb080f bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab29a35f elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab7a86b3 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xab96624d pci_set_master +EXPORT_SYMBOL vmlinux 0xab981e5d tcp_child_process +EXPORT_SYMBOL vmlinux 0xababdde0 scsi_execute +EXPORT_SYMBOL vmlinux 0xabc31a6d jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xac03f936 vfs_link +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac103a99 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac32cb13 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xac4e834f put_disk +EXPORT_SYMBOL vmlinux 0xac6212da kobject_set_name +EXPORT_SYMBOL vmlinux 0xac682408 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac8469e6 mutex_lock +EXPORT_SYMBOL vmlinux 0xac9e5492 skb_trim +EXPORT_SYMBOL vmlinux 0xacb66e4a in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacdb7e69 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xace4e5f2 vfs_rename +EXPORT_SYMBOL vmlinux 0xacf06a7a skb_queue_purge +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0d4638 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xad2ccaab __ps2_command +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad7069e7 inet6_release +EXPORT_SYMBOL vmlinux 0xad970073 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadaa6e00 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xadc6eee1 ether_setup +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xadd5ee99 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xadd7e962 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xaddfbf62 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae17ef3a flex_array_free +EXPORT_SYMBOL vmlinux 0xae410a84 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xae45356f ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae5650df vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xae684a85 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xaea6d64b i2c_use_client +EXPORT_SYMBOL vmlinux 0xaeaa466d bioset_create +EXPORT_SYMBOL vmlinux 0xaeab2cf0 input_open_device +EXPORT_SYMBOL vmlinux 0xaeaebf48 padata_add_cpu +EXPORT_SYMBOL vmlinux 0xaeba4b5a __find_get_block +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaed96c07 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xaeeb4960 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xaef8db10 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xaefb0ee1 send_sig +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf0d68cf netif_notify_peers +EXPORT_SYMBOL vmlinux 0xaf0f30a0 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf57d735 vfs_create +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf61acf7 cad_pid +EXPORT_SYMBOL vmlinux 0xaf91609d mpage_readpages +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf97209f of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0xaf9a606f d_alloc_name +EXPORT_SYMBOL vmlinux 0xaf9a952e sock_create_kern +EXPORT_SYMBOL vmlinux 0xaf9e1c4e mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xafb0b21c of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xafc513a8 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xafd17de3 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xafdf17d4 dquot_commit +EXPORT_SYMBOL vmlinux 0xafeeec92 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb055c844 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xb0783d65 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xb07e770c ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xb0864754 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xb095f15a end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xb0aa7c70 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ed030c sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xb0f1fe59 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xb0f770c1 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xb0f8c5ff iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xb114e9e7 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xb126f769 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xb157c96d pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +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 0xb1d45ae3 nonseekable_open +EXPORT_SYMBOL vmlinux 0xb1d5125e backlight_device_register +EXPORT_SYMBOL vmlinux 0xb1e1da0e dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xb1e2fd31 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xb1ef68e7 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xb200ec19 rfkill_register +EXPORT_SYMBOL vmlinux 0xb217bfd4 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xb2282664 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xb229e009 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set +EXPORT_SYMBOL vmlinux 0xb23af566 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xb24c2db9 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xb26134f4 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26a7147 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xb26c9f60 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xb277ba0e load_nls_default +EXPORT_SYMBOL vmlinux 0xb286b213 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xb2c13070 single_open +EXPORT_SYMBOL vmlinux 0xb2c3e8f7 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xb2e31dc5 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xb2f2c734 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xb2f9db56 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xb3052189 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xb30dd3f5 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb31da81a ___pskb_trim +EXPORT_SYMBOL vmlinux 0xb322eb0b security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xb32855fc blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb350c4b0 dm_register_target +EXPORT_SYMBOL vmlinux 0xb3886ada init_buffer +EXPORT_SYMBOL vmlinux 0xb394aa89 __mutex_init +EXPORT_SYMBOL vmlinux 0xb39aac2b phy_start_aneg +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3b40ef3 locks_free_lock +EXPORT_SYMBOL vmlinux 0xb3ccbf2b xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xb3db5f20 misc_register +EXPORT_SYMBOL vmlinux 0xb3e615db ip_route_output_key +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4285c4f xfrm_register_km +EXPORT_SYMBOL vmlinux 0xb42a965d unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4716211 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xb4a08a27 of_dev_put +EXPORT_SYMBOL vmlinux 0xb4c64760 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xb4c746ba path_is_under +EXPORT_SYMBOL vmlinux 0xb4eb34d4 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5101dec max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb5584f24 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xb55a10cf dquot_transfer +EXPORT_SYMBOL vmlinux 0xb57381cf scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xb59f5d08 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ad8b4e tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xb5b61e70 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xb5d37a61 kstat +EXPORT_SYMBOL vmlinux 0xb5e87442 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xb5ee3cf6 tcp_close +EXPORT_SYMBOL vmlinux 0xb5fc0359 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xb6056e76 do_splice_from +EXPORT_SYMBOL vmlinux 0xb61b1b79 scsi_device_put +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb659821b km_policy_notify +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb65f1b2c down_interruptible +EXPORT_SYMBOL vmlinux 0xb671f880 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb687db3e lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c0b81e sk_filter +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d819b4 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb6e08fdf scm_detach_fds +EXPORT_SYMBOL vmlinux 0xb6e44336 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xb736642d kill_pgrp +EXPORT_SYMBOL vmlinux 0xb74327e7 get_phy_device +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb758786b mnt_unpin +EXPORT_SYMBOL vmlinux 0xb766c3c9 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xb7754023 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xb799ff8e blk_get_request +EXPORT_SYMBOL vmlinux 0xb7a99781 __irq_regs +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7bf4e54 flush_old_exec +EXPORT_SYMBOL vmlinux 0xb7f36f4d __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xb7fdb15f splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xb7ff66b0 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xb80e065f tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xb8490739 scsi_unregister +EXPORT_SYMBOL vmlinux 0xb84b5564 d_alloc +EXPORT_SYMBOL vmlinux 0xb857da73 ida_destroy +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb86cace0 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xb86d6576 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb882dbf0 remove_inode_hash +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8bc4e8a agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xb8c3ae2f skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xb8d26e07 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb91ebc9e xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9a110bd journal_get_write_access +EXPORT_SYMBOL vmlinux 0xb9b3a475 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xba2091d4 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xba39e7e4 proto_register +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba6ae1c1 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xba844356 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xba959abb dqput +EXPORT_SYMBOL vmlinux 0xbaa77f92 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb4ad44a ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0xbb4ee5db tcp_proc_register +EXPORT_SYMBOL vmlinux 0xbb4f6a26 generic_permission +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb665c27 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb863d08 mb_cache_create +EXPORT_SYMBOL vmlinux 0xbb8cb140 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xbb94e74e giveup_fpu +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbe33278 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xbbef7383 module_put +EXPORT_SYMBOL vmlinux 0xbc2a3981 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc36617a tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xbc3b8cb5 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xbc5c32f7 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xbc630e74 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xbc687be8 write_cache_pages +EXPORT_SYMBOL vmlinux 0xbc689f05 of_find_property +EXPORT_SYMBOL vmlinux 0xbc7f2f63 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xbc8b68e7 inet_ioctl +EXPORT_SYMBOL vmlinux 0xbcab5fdf journal_stop +EXPORT_SYMBOL vmlinux 0xbcb181bf neigh_seq_start +EXPORT_SYMBOL vmlinux 0xbcba01f2 ps2_end_command +EXPORT_SYMBOL vmlinux 0xbcc45af6 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xbcd17d85 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xbcf910cd vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xbcffe639 idr_pre_get +EXPORT_SYMBOL vmlinux 0xbd05d408 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xbd0e1093 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xbd1a1c21 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xbd554b51 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xbd5fe3d6 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbda8c967 llc_sap_open +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdcb460e pci_find_capability +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe149458 bio_split +EXPORT_SYMBOL vmlinux 0xbe23b9ed radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xbe2a59bf tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xbe30a695 __sock_create +EXPORT_SYMBOL vmlinux 0xbe5bbe17 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe6f064d idr_for_each +EXPORT_SYMBOL vmlinux 0xbe9f6ed3 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xbec28933 __d_drop +EXPORT_SYMBOL vmlinux 0xbee645eb zero_fill_bio +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef0c4f6 replace_mount_options +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf000f07 redraw_screen +EXPORT_SYMBOL vmlinux 0xbf0358dc simple_rmdir +EXPORT_SYMBOL vmlinux 0xbf08d5cf swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xbf212818 request_firmware +EXPORT_SYMBOL vmlinux 0xbf2bbd90 rt6_lookup +EXPORT_SYMBOL vmlinux 0xbf2efdf6 dm_table_get_md +EXPORT_SYMBOL vmlinux 0xbf5508ed kmem_cache_name +EXPORT_SYMBOL vmlinux 0xbf6c5444 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xbf757a35 netdev_features_change +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfdff814 of_get_address +EXPORT_SYMBOL vmlinux 0xbfedf964 ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc043e3a8 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xc0517b60 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05db902 gen_pool_create +EXPORT_SYMBOL vmlinux 0xc05e619d kernel_connect +EXPORT_SYMBOL vmlinux 0xc05f122e bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0728341 dqget +EXPORT_SYMBOL vmlinux 0xc07bc2f3 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc08c2236 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xc08fa618 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0aafc9e proc_create_data +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll +EXPORT_SYMBOL vmlinux 0xc0dd7bda pci_write_vpd +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc15a19eb find_vma +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc1a05bd7 input_set_capability +EXPORT_SYMBOL vmlinux 0xc1b679ed clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request +EXPORT_SYMBOL vmlinux 0xc2118a88 gen_pool_free +EXPORT_SYMBOL vmlinux 0xc23dd351 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2d1f0d5 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2dfdea4 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f357fd dev_close +EXPORT_SYMBOL vmlinux 0xc2f861ab pneigh_lookup +EXPORT_SYMBOL vmlinux 0xc313d1f4 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc372229d jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xc3971807 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xc3b8a433 poll_initwait +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3cf1693 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0xc3d6fea2 dquot_alloc +EXPORT_SYMBOL vmlinux 0xc3da100e remove_proc_entry +EXPORT_SYMBOL vmlinux 0xc3f091e3 d_invalidate +EXPORT_SYMBOL vmlinux 0xc4193a78 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xc449979e inode_init_once +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc487941e sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xc48e0a8c fget +EXPORT_SYMBOL vmlinux 0xc492c0c7 find_inode_number +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4d0eefe max8998_read_reg +EXPORT_SYMBOL vmlinux 0xc4d435d1 __free_pages +EXPORT_SYMBOL vmlinux 0xc4da7671 request_key +EXPORT_SYMBOL vmlinux 0xc4e72196 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xc5199145 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xc51dd11a inet_frag_kill +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53e616c qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xc5526a4c pci_disable_msix +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc554c5b7 tty_register_device +EXPORT_SYMBOL vmlinux 0xc55bcb7b abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc579cc0b macio_request_resources +EXPORT_SYMBOL vmlinux 0xc57a2e3f inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc61be59c ida_remove +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc6494fc1 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6a0c1b1 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xc6b0da1c netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xc6c9658e __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xc6d70850 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xc6eed57a llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xc72ca57e put_io_context +EXPORT_SYMBOL vmlinux 0xc73ddbcc ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xc76d5f24 simple_lookup +EXPORT_SYMBOL vmlinux 0xc795e23e cpu_core_map +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7c4799d seq_release +EXPORT_SYMBOL vmlinux 0xc7da4d06 sync_blockdev +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8138879 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc841d5d7 pid_task +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85ef991 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xc86b17ab destroy_EII_client +EXPORT_SYMBOL vmlinux 0xc86fb5e0 follow_pfn +EXPORT_SYMBOL vmlinux 0xc8742785 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8e485bb journal_force_commit +EXPORT_SYMBOL vmlinux 0xc8eae243 phy_detach +EXPORT_SYMBOL vmlinux 0xc90ed0ed inet_frags_fini +EXPORT_SYMBOL vmlinux 0xc965ba21 mii_check_media +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9b8c308 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xca23affb xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xca252eef sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca69f6e6 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xca7a5735 lookup_hash +EXPORT_SYMBOL vmlinux 0xca7c1e53 cdrom_open +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca91729b blkdev_put +EXPORT_SYMBOL vmlinux 0xca91a303 alloc_file +EXPORT_SYMBOL vmlinux 0xcaafa633 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xcab0d79c padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcad08e48 mmu_hash_lock +EXPORT_SYMBOL vmlinux 0xcad9fb23 i2c_master_send +EXPORT_SYMBOL vmlinux 0xcae0b767 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0xcae38643 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xcae663e0 softnet_data +EXPORT_SYMBOL vmlinux 0xcaf15764 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xcaf3baf4 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xcaffd10f journal_clear_err +EXPORT_SYMBOL vmlinux 0xcb0dccbf iget5_locked +EXPORT_SYMBOL vmlinux 0xcb0e4c9e end_writeback +EXPORT_SYMBOL vmlinux 0xcb37cd77 rwsem_wake +EXPORT_SYMBOL vmlinux 0xcb4cd2cf abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xcb5a949c scsi_target_resume +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb737069 tcf_register_action +EXPORT_SYMBOL vmlinux 0xcb7c13f2 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbfcce0f inet_getname +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc395191 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xcc3b6c3e downgrade_write +EXPORT_SYMBOL vmlinux 0xcc4f21ed eth_header_cache +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcca3d36c generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xccab9c07 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xccb03fbe netpoll_poll +EXPORT_SYMBOL vmlinux 0xccbf2407 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xccc2e705 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xcce294b5 open_exec +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd1055a2 nobh_writepage +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2840c9 udp_disconnect +EXPORT_SYMBOL vmlinux 0xcd2e158e __sk_dst_check +EXPORT_SYMBOL vmlinux 0xcd341f9a dcb_setapp +EXPORT_SYMBOL vmlinux 0xcd34e8cc nla_put +EXPORT_SYMBOL vmlinux 0xcd3574ba otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xcd63bbce netdev_warn +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcd931040 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xcd941282 set_security_override +EXPORT_SYMBOL vmlinux 0xcdea17d1 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xcdf48731 of_create_pci_dev +EXPORT_SYMBOL vmlinux 0xce04cb80 get_disk +EXPORT_SYMBOL vmlinux 0xce0c54bb generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xce15e401 vmtruncate +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce3f6240 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce4e7c6a scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce6f6a6e kernel_sendpage +EXPORT_SYMBOL vmlinux 0xce7bf718 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xce7ce037 of_translate_address +EXPORT_SYMBOL vmlinux 0xce841a91 inode_init_owner +EXPORT_SYMBOL vmlinux 0xce8c2556 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xceb86e69 unlock_rename +EXPORT_SYMBOL vmlinux 0xcee41444 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xcef135b6 netdev_state_change +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcf225136 keyring_clear +EXPORT_SYMBOL vmlinux 0xcf26e006 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xcf466a03 flush_tlb_range +EXPORT_SYMBOL vmlinux 0xcf5a9eb1 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xcf659516 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcf916206 set_binfmt +EXPORT_SYMBOL vmlinux 0xcface060 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xd010e5f5 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd033cd1d tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xd03d689d pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xd0829f9c dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xd08c416f take_over_console +EXPORT_SYMBOL vmlinux 0xd09d7d92 input_register_handle +EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0bb1862 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xd0bbf772 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xd0d44e7f __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xd0d9cd86 devm_free_irq +EXPORT_SYMBOL vmlinux 0xd0dee0e2 swiotlb_sync_single_for_device +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 0xd10500dc led_brightness_set +EXPORT_SYMBOL vmlinux 0xd105c541 skb_seq_read +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd12df723 dev_addr_init +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd1336b6f hippi_type_trans +EXPORT_SYMBOL vmlinux 0xd13ca640 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xd13f4cd7 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xd153cc01 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xd194a8ac jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xd19dd326 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xd1ac07a9 dev_err +EXPORT_SYMBOL vmlinux 0xd1bb4f29 journal_init_dev +EXPORT_SYMBOL vmlinux 0xd1bdf8c6 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xd1df3f32 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xd1e9f6f4 xfrm_input +EXPORT_SYMBOL vmlinux 0xd2042087 flush_hash_entry +EXPORT_SYMBOL vmlinux 0xd20a96e9 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xd22157c0 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xd234a9fc block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd2403c88 mount_nodev +EXPORT_SYMBOL vmlinux 0xd248bda5 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xd24e4d31 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xd251a8c2 inet_unregister_protosw +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 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2d51180 of_gpio_count +EXPORT_SYMBOL vmlinux 0xd2d870d4 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xd2fe12c4 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xd3006938 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xd30a1252 sock_no_bind +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd358ce50 i2c_release_client +EXPORT_SYMBOL vmlinux 0xd358e51e dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd384b2ba ip_ct_attach +EXPORT_SYMBOL vmlinux 0xd38ff1aa journal_check_available_features +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3c7ae6b blk_init_queue +EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xd3efbb3c inet_register_protosw +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd41f5ed2 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xd42b1944 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xd435330e gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xd4433dd1 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xd44a0be0 km_new_mapping +EXPORT_SYMBOL vmlinux 0xd451071a pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xd4656716 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xd48273df alloc_disk +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd555a78b xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xd55681d4 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xd57121a2 journal_set_features +EXPORT_SYMBOL vmlinux 0xd57cbbf9 vga_client_register +EXPORT_SYMBOL vmlinux 0xd57f729b otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xd5a276c0 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5e97ef0 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xd5edb406 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xd613d7fe tc_classify_compat +EXPORT_SYMBOL vmlinux 0xd617c029 __f_setown +EXPORT_SYMBOL vmlinux 0xd617c4ec textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd646f240 seq_escape +EXPORT_SYMBOL vmlinux 0xd652a130 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xd65a3965 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xd67b5f46 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xd6844cd4 get_user_pages +EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless +EXPORT_SYMBOL vmlinux 0xd6b82327 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xd6b8a241 dput +EXPORT_SYMBOL vmlinux 0xd6baaf0f hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xd6bf4fa3 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xd6d10587 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xd6da4bca generic_fillattr +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd700862d lock_super +EXPORT_SYMBOL vmlinux 0xd715315a tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xd73e46f6 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd7837b10 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a4e1e0 flush_signals +EXPORT_SYMBOL vmlinux 0xd7b8a08a skb_pull +EXPORT_SYMBOL vmlinux 0xd7e1e81d inode_permission +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7e57a46 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xd80d5eba hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xd83078c4 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xd83bffc6 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xd85ea933 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xd87c0922 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xd87e2137 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8d198e1 switch_mmu_context +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd91a75d3 inode_lock +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd948b233 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xd9506b4d deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xd965b574 security_path_truncate +EXPORT_SYMBOL vmlinux 0xd968941e tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xd971f4d2 set_create_files_as +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9b2d050 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9ccff06 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9d7ef2c tty_hangup +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda1cac5a nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xda291860 ps2_command +EXPORT_SYMBOL vmlinux 0xda4b81b9 ide_complete_rq +EXPORT_SYMBOL vmlinux 0xda4f45d9 mac_find_mode +EXPORT_SYMBOL vmlinux 0xda6dc2fc jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xda7866a9 unregister_console +EXPORT_SYMBOL vmlinux 0xda7c407f pci_device_from_OF_node +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 0xdab5c7af simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xdac98daf inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xdadc4c14 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0xdaf0ed27 journal_revoke +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb0df2d0 unregister_netdev +EXPORT_SYMBOL vmlinux 0xdb228744 skb_checksum +EXPORT_SYMBOL vmlinux 0xdb352e9f pci_domain_nr +EXPORT_SYMBOL vmlinux 0xdb499efd bdi_register_dev +EXPORT_SYMBOL vmlinux 0xdb50dd08 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xdb51fbe9 force_sig +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb915072 is_bad_inode +EXPORT_SYMBOL vmlinux 0xdb995403 key_link +EXPORT_SYMBOL vmlinux 0xdba271b9 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xdbad2798 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xdbad6422 security_path_unlink +EXPORT_SYMBOL vmlinux 0xdbb73149 dev_printk +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbdc7d6d blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xdbe1d173 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xdbfb5a69 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xdc03d100 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0dc20c xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1c727b sk_free +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc466143 netdev_info +EXPORT_SYMBOL vmlinux 0xdc727289 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0xdc72e740 of_register_platform_driver +EXPORT_SYMBOL vmlinux 0xdc732024 irq_stat +EXPORT_SYMBOL vmlinux 0xdc7ceac4 register_nls +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcba3601 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdcfbc028 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd34538f simple_unlink +EXPORT_SYMBOL vmlinux 0xdd6c5bbd grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd7d73ff tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xdd9325b3 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xdd9f389b blk_stop_queue +EXPORT_SYMBOL vmlinux 0xddfe52f5 bio_endio +EXPORT_SYMBOL vmlinux 0xddffa182 __nla_put +EXPORT_SYMBOL vmlinux 0xde0bddf1 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0xde14385c kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xde18b815 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xde1cc022 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xde250af2 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xde28c2c5 filp_close +EXPORT_SYMBOL vmlinux 0xde315228 con_is_bound +EXPORT_SYMBOL vmlinux 0xde38bcc8 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xde393059 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde6eb527 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde826f9f security_file_permission +EXPORT_SYMBOL vmlinux 0xde82deba dma_direct_ops +EXPORT_SYMBOL vmlinux 0xde88d728 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xde9f83a0 misc_deregister +EXPORT_SYMBOL vmlinux 0xdee56bc5 __dst_free +EXPORT_SYMBOL vmlinux 0xdeee3f51 scsi_register +EXPORT_SYMBOL vmlinux 0xdef889b2 kill_block_super +EXPORT_SYMBOL vmlinux 0xdf16c9cb skb_copy +EXPORT_SYMBOL vmlinux 0xdf361a0c vm_insert_page +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa62ca6 input_allocate_device +EXPORT_SYMBOL vmlinux 0xdfb06ddf serio_reconnect +EXPORT_SYMBOL vmlinux 0xdfe53fbf sock_no_connect +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff52ee6 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xdff9d7fc journal_errno +EXPORT_SYMBOL vmlinux 0xe029beff neigh_lookup +EXPORT_SYMBOL vmlinux 0xe036871d mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xe038ad43 sock_no_poll +EXPORT_SYMBOL vmlinux 0xe06b51f5 cdev_add +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe10d6f7b gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1236235 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xe1485060 serio_close +EXPORT_SYMBOL vmlinux 0xe1568fa4 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xe15919c6 fb_pan_display +EXPORT_SYMBOL vmlinux 0xe1608945 icmpv6_send +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1810559 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xe184f77c flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xe18bd11a inode_init_always +EXPORT_SYMBOL vmlinux 0xe1994641 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xe1a3b8c8 dget_parent +EXPORT_SYMBOL vmlinux 0xe1a58c2c ip6_xmit +EXPORT_SYMBOL vmlinux 0xe1a960f3 make_EII_client +EXPORT_SYMBOL vmlinux 0xe1c39508 free_task +EXPORT_SYMBOL vmlinux 0xe1dadb4b qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xe1efab2c block_read_full_page +EXPORT_SYMBOL vmlinux 0xe1f99aaf end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe23df6d5 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe25abb22 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xe25cf290 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xe293717c framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xe2a0e26b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xe2b80724 serio_rescan +EXPORT_SYMBOL vmlinux 0xe2c0c51c scm_fp_dup +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2f25bc7 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe2fb7e33 path_lookup +EXPORT_SYMBOL vmlinux 0xe2fe9424 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xe31fc2f0 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3ef72ee account_page_writeback +EXPORT_SYMBOL vmlinux 0xe3fb8656 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xe4247ba0 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xe438d5d4 generic_readlink +EXPORT_SYMBOL vmlinux 0xe43cbad1 pci_choose_state +EXPORT_SYMBOL vmlinux 0xe4480c67 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe497ac1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xe4bfde53 security_path_symlink +EXPORT_SYMBOL vmlinux 0xe4db3262 seq_write +EXPORT_SYMBOL vmlinux 0xe4df85de inet_del_protocol +EXPORT_SYMBOL vmlinux 0xe4e14a30 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe51c1885 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe538ab2e file_permission +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe600bbb0 macio_register_driver +EXPORT_SYMBOL vmlinux 0xe601f347 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xe64233ae inode_needs_sync +EXPORT_SYMBOL vmlinux 0xe645f850 deny_write_access +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6aeed37 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xe6b0c1b1 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xe6bbb011 genl_register_family +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6e91d91 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fe33e4 down_killable +EXPORT_SYMBOL vmlinux 0xe70ff45b put_mnt_ns +EXPORT_SYMBOL vmlinux 0xe71235a1 dump_write +EXPORT_SYMBOL vmlinux 0xe7182198 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xe72cc831 xrlim_allow +EXPORT_SYMBOL vmlinux 0xe73587d8 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7a35f2d mod_timer +EXPORT_SYMBOL vmlinux 0xe7a406f8 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xe7bec804 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e45a01 tty_vhangup +EXPORT_SYMBOL vmlinux 0xe7fc77a9 single_release +EXPORT_SYMBOL vmlinux 0xe7fddc74 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe82ffc28 dst_destroy +EXPORT_SYMBOL vmlinux 0xe834eb05 agp_bridge +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe859e278 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0xe86b8dbc nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe8a5583f eth_validate_addr +EXPORT_SYMBOL vmlinux 0xe8b5ce4e padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xe8b81643 rtas +EXPORT_SYMBOL vmlinux 0xe8d2e3ec xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xe8f6e1fa dquot_scan_active +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe929b146 tty_kref_put +EXPORT_SYMBOL vmlinux 0xe92dd581 prepare_binprm +EXPORT_SYMBOL vmlinux 0xe950eb67 thaw_bdev +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9849fbd kthread_bind +EXPORT_SYMBOL vmlinux 0xe9966f92 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xe9bd9da5 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xe9c765ba neigh_create +EXPORT_SYMBOL vmlinux 0xe9ca101d blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0733d9 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea2550fe vfs_mknod +EXPORT_SYMBOL vmlinux 0xea2e2c67 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xea31a394 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xea4f1886 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xea4ffed2 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xea5c168f __napi_complete +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea834cdd fput +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeaf16558 ida_init +EXPORT_SYMBOL vmlinux 0xeafa717c revert_creds +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb3cab6c hex2bin +EXPORT_SYMBOL vmlinux 0xeb88608a xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xeb9572da netdev_crit +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebac5fad sockfd_lookup +EXPORT_SYMBOL vmlinux 0xebace7c3 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xebc5b084 seq_open_private +EXPORT_SYMBOL vmlinux 0xebc84bce mutex_unlock +EXPORT_SYMBOL vmlinux 0xebd9a5e7 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xebee5781 task_nice +EXPORT_SYMBOL vmlinux 0xec0439bc flex_array_free_parts +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec370e6b submit_bio +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec6145d9 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xec6bdcf0 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xec915786 migrate_page +EXPORT_SYMBOL vmlinux 0xecd1b4de lock_rename +EXPORT_SYMBOL vmlinux 0xecd45035 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xecdee920 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xecf3d1b8 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xed18dbd5 generic_write_sync +EXPORT_SYMBOL vmlinux 0xed2ba987 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xed2cb805 dst_alloc +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed59a8c8 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xed7ca343 scsi_add_device +EXPORT_SYMBOL vmlinux 0xed86b3b7 ___ratelimit +EXPORT_SYMBOL vmlinux 0xed89c2b6 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedb749f7 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xedba7bb5 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xee0276ce generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xee034602 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3a2ea0 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee5e3dc6 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xee6457c4 fb_class +EXPORT_SYMBOL vmlinux 0xee774864 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xee7d9379 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xee7f0369 inet_release +EXPORT_SYMBOL vmlinux 0xee8fad48 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeebb7144 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xeecfc4a7 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xef0b5597 key_put +EXPORT_SYMBOL vmlinux 0xef0fa41e setup_arg_pages +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef12babd jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xef2ae875 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xef2db898 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xef324a71 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xef4bfcc2 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xef75928c make_bad_inode +EXPORT_SYMBOL vmlinux 0xef7c2d1f ide_wait_stat +EXPORT_SYMBOL vmlinux 0xef809938 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xefb5a28b scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xefcee4b1 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefded6c1 __init_rwsem +EXPORT_SYMBOL vmlinux 0xeffbede2 log_start_commit +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf042b282 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xf04ae1ba idr_remove_all +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf08489d5 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xf088b801 sock_create +EXPORT_SYMBOL vmlinux 0xf0cf1fb5 rfkill_unregister +EXPORT_SYMBOL vmlinux 0xf0df615d ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xf0dfbd7e fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f5ad25 bio_alloc +EXPORT_SYMBOL vmlinux 0xf0faffe6 unregister_key_type +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf132e3f4 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xf13452ea vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xf1508176 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xf17d29c4 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xf1868354 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1cff635 load_nls +EXPORT_SYMBOL vmlinux 0xf1d8374a sock_no_sendmsg +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 0xf215a27c tty_port_close +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2406529 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xf24892c3 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xf292459f ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xf2a274f0 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xf2b20718 get_super +EXPORT_SYMBOL vmlinux 0xf2bb43be km_policy_expired +EXPORT_SYMBOL vmlinux 0xf2fb795e dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xf2fc39b1 bmap +EXPORT_SYMBOL vmlinux 0xf2ff840b simple_statfs +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31b1da7 proto_unregister +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 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf347f861 tty_set_operations +EXPORT_SYMBOL vmlinux 0xf384cd4c __lock_buffer +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38a58a4 pipe_lock +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf406a644 block_sync_page +EXPORT_SYMBOL vmlinux 0xf408c745 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xf43b3631 dev_driver_string +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf45ac509 invalidate_partition +EXPORT_SYMBOL vmlinux 0xf46287b2 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xf47df897 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xf4c61f01 override_creds +EXPORT_SYMBOL vmlinux 0xf4c7caa8 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xf4ce00a6 ide_do_reset +EXPORT_SYMBOL vmlinux 0xf4dee527 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xf4e2b3f6 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f43234 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xf4f79453 keyring_search +EXPORT_SYMBOL vmlinux 0xf507a0f5 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xf5106fc7 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xf51c99f3 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf551e2c0 dquot_disable +EXPORT_SYMBOL vmlinux 0xf57d641e skb_find_text +EXPORT_SYMBOL vmlinux 0xf58e92ed journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xf5950d80 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xf5a383e5 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5b0bcca pci_target_state +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5e8d53a rfkill_destroy +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf61ca899 journal_load +EXPORT_SYMBOL vmlinux 0xf61cb9b2 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xf6216fcd napi_gro_flush +EXPORT_SYMBOL vmlinux 0xf623a1a4 wait_iff_congested +EXPORT_SYMBOL vmlinux 0xf6259c7b sg_miter_start +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf646ecdc generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xf65c1c09 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xf65c454b tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xf665dea3 prepare_creds +EXPORT_SYMBOL vmlinux 0xf66b19ec dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xf67043da blk_insert_request +EXPORT_SYMBOL vmlinux 0xf6827954 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xf6a0904e padata_stop +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c35c87 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xf6d51a3c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f38642 read_cache_pages +EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf7187edf cdev_alloc +EXPORT_SYMBOL vmlinux 0xf71e2b5c vfs_write +EXPORT_SYMBOL vmlinux 0xf72cfd10 agp_generic_enable +EXPORT_SYMBOL vmlinux 0xf756e524 sg_miter_next +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf761dcb0 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xf773ad21 macio_enable_devres +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7a687e0 igrab +EXPORT_SYMBOL vmlinux 0xf7a6ac97 consume_skb +EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu +EXPORT_SYMBOL vmlinux 0xf7b2c6b3 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xf7ba011a xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xf7bf06fb vc_cons +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf8095f9e start_tty +EXPORT_SYMBOL vmlinux 0xf810a447 down_write +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf84dd5c4 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xf86605fa current_fs_time +EXPORT_SYMBOL vmlinux 0xf8842ee0 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xf88a8a12 get_phy_id +EXPORT_SYMBOL vmlinux 0xf8a01f8c tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xf8a0c4f2 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xf8a1341a ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xf8c50c13 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xf90cf629 kset_register +EXPORT_SYMBOL vmlinux 0xf9123c88 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf93babf9 init_net +EXPORT_SYMBOL vmlinux 0xf9718530 phy_disconnect +EXPORT_SYMBOL vmlinux 0xf990234a netlink_broadcast +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9af6813 key_unlink +EXPORT_SYMBOL vmlinux 0xf9e1a101 tty_write_room +EXPORT_SYMBOL vmlinux 0xf9fe9ea6 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xfa21ca55 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xfa2be202 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xfa611adc skb_push +EXPORT_SYMBOL vmlinux 0xfa6aaffc journal_create +EXPORT_SYMBOL vmlinux 0xfa803c75 kill_pid +EXPORT_SYMBOL vmlinux 0xfa913af0 __bio_clone +EXPORT_SYMBOL vmlinux 0xfaa3ee80 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfae84bb3 bdevname +EXPORT_SYMBOL vmlinux 0xfaf7182c pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb38949c filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xfb3c5735 dev_mc_add +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb99b600 simple_write_begin +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbbf4242 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd3390c bdput +EXPORT_SYMBOL vmlinux 0xfbd9cca7 journal_flush +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbef5619 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc1c5928 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xfc28ec3b generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4a02f0 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xfc4b6047 mdiobus_free +EXPORT_SYMBOL vmlinux 0xfc9d80f1 __block_write_begin +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc94ad1 scsi_print_result +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfe9d87 phy_start +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd1000f8 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xfd15b270 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xfd17a063 pci_iomap +EXPORT_SYMBOL vmlinux 0xfd1cb4ac kill_litter_super +EXPORT_SYMBOL vmlinux 0xfd233d99 kill_anon_super +EXPORT_SYMBOL vmlinux 0xfd3a4a90 dev_warn +EXPORT_SYMBOL vmlinux 0xfd3b230e inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xfd3cb479 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xfd42928b commit_creds +EXPORT_SYMBOL vmlinux 0xfd638c2e __put_cred +EXPORT_SYMBOL vmlinux 0xfd655baf ide_stall_queue +EXPORT_SYMBOL vmlinux 0xfd8a1eb8 inet_select_addr +EXPORT_SYMBOL vmlinux 0xfd9da0eb bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xfd9e354f blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfda87157 key_alloc +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe004f7a input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xfe0dbc65 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xfe46a662 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0xfe4c4ea8 brioctl_set +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe623f1c napi_gro_receive +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe792a56 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe7faf27 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xfe848a5c input_release_device +EXPORT_SYMBOL vmlinux 0xfe9cecf4 mntget +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec57e0d dquot_acquire +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff00285f generic_block_bmap +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff21b53c fb_show_logo +EXPORT_SYMBOL vmlinux 0xff2c7281 kill_fasync +EXPORT_SYMBOL vmlinux 0xff553e7c sget +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6dea25 smp_hw_index +EXPORT_SYMBOL vmlinux 0xff8693a6 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xff8c4619 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffae97b7 tty_devnum +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL vmlinux 0xffefa652 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xfff6eaff inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xfffae7b2 sock_register +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cac8e08 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/af_alg 0x02990909 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x1d2671e4 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x55ae8a1b af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x5f83d3b4 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x62ef1174 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xb3921387 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xf45d99ff af_alg_accept +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x17166297 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x1b3ba4e7 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x63face61 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x0a29f397 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xf3de660a async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x65c79962 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa7f32b66 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc43c47ba async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd88ec093 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x3bc30f2f async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe988d4c9 async_xor_val +EXPORT_SYMBOL_GPL crypto/cryptd 0x333bb564 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x3f3cd948 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x78520db5 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x7c13908f cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x7e7b7cd7 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x95fc8463 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xa77270cb cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xbe785ac7 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xddd781a2 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xf7ac46ac cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x1a582ad6 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2400173e ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3720b974 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3987b735 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3f258ab5 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5917a44c ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x78882aa4 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8993573d ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8b94e623 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xacf38dd0 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb2ab728d ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbf15e29b ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc15c67bf ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc8d8e9b8 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd0cdc857 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf0085037 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf420da82 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x5adadc7f __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x74ed1ba4 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x211d82cb 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 0x0a3fb34a btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2b2406c0 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2c7b4ecb btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3b09b046 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6775ad4f btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x793982d8 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x86b28fe6 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf07d9de1 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0eebe8a7 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1d58b079 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x46ef6a33 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4859452e tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4a0a1aff tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4a10dad1 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4b1835ad tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x638529bc tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6c0066d3 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x851cde03 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x85bedd12 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9242afeb tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x93193b76 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xae0f1035 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb9965561 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc1125973 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcc4e74e4 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd32b6481 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdf8560e2 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe0e25c0f tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xed9b6e4c tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf0ef8522 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf883d82e tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x09904c29 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0bf7893c edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1188dced edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x139087bb edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x183e1cb5 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1907bc8e edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x39b5dfb8 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4e9ad1da edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x51f5bb32 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5c4ad0e8 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5e52cb54 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x683561c7 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6c5d3b1a edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x769107ed edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7af5bb6b edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7cfbfe98 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x884c7354 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x88c17f2a edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8f6ca117 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaef3bb0a edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb6bb0365 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xba2ed63f edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbc8a129c edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc80ad59f edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdcc4d73b edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x3c66f471 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xdbbcda39 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x44171a3b drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfa959fa6 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x08d89677 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x174fc414 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3d5dcb79 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4555ff1c hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x46633617 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x609400e8 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x654a15d6 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6629d8ff hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7554abd5 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7a6a42ff hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7acc050b hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8cb79cc6 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x935c7130 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x94bdce94 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x95228dad hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb472bf60 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbc05c6bc hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd515d8f3 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xda423f41 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdcb4f174 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe56fc6d0 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe9473742 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xed4d9351 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xee85c4d0 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf99bc5ff hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf9d1cded hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2a186064 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 0x362f7e6d usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3e01afad usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x4caf6a73 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x7fcd17bc hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x43b1b101 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x7412996d lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x8ebdf26a lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xac1a8c4f lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xbaa66828 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x5ebea3fb i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xd34859ab i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x0bf23c33 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xddf7fa07 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xa57b8001 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x5873a20e adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x5ff3aafc adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x79d7ed13 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x8e4a76b4 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x06d89c9d wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1b6681c7 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x293225c0 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2c8c1626 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x622b6e32 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x63ecc519 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7cb9ef14 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9ab55952 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbb36d4ab wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbdf89170 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xca729c03 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfe3b25ba wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x13a47e7f gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x17c85e57 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x21c38d18 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x339e85ab gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4a4e639d gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x53f8042f gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5b70e326 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6d4cfec1 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6debad18 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x73082696 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x89089b50 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9892b3a1 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa2df166e gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa7ac20de gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xaa4e2f1e gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb16b8d5b gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe3d049f1 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x1285ce80 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x36b8a8db wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x80cc92cb wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x99ebd766 wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa4420d70 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbb97bb3b wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xc397df39 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xc672d3c4 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xccc30797 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xd2f66e5a wf_find_control +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/md/dm-multipath 0xa0a849de dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xf558efd2 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0153046d dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x064ab186 dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x135eb89b dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x14c04ee7 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x1e7b3980 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5bcccbd7 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x76352a2e dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x76ff6bdb dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8741da12 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x87e9e4f2 dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x962ed83b dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x96c0633b dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9edff89b dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa60bcb74 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb812cc2e dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb953dcf2 dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc2bc09d4 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc53458fa dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc8cfa728 dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf214ceeb dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf8b24d38 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x120444e6 plugger_remove_plug +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x1ca7af5e md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x2f6ad490 md_run +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x493ff271 mddev_suspend +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x5c70acb3 md_rdev_init +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x639401bd md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x7c172228 mddev_resume +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x80c38a7f plugger_init +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x82dc1452 bio_clone_mddev +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x89275714 md_stop +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x933a0086 md_stop_writes +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x9f197315 plugger_set_plug +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xb90875a0 bitmap_load +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xc5d904c1 mddev_init +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xd1e5b9c8 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xe3376fd0 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xf6f855f4 bio_alloc_mddev +EXPORT_SYMBOL_GPL drivers/md/raid456 0x6204ea4a md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/md/raid456 0xd0ea5a4d md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x43f26b1f saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x662eb0dc saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6e1a4684 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8067c786 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa5d059c2 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa7271cb7 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc0b701f4 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc65afd9b saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcc18d247 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcdee4fdd saa7146_devices_lock +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 0xfba11c2b saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x1aba86fd saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x316a3e13 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3c7a4fb8 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5ad849d2 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xcaf2b3a2 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xdb1e83e3 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xea6157d2 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x55ef0ec1 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x7159d783 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xfd77f19a tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xfb0ec05d tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x759b4a63 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x9ba75371 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xea1846d5 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x4ec4c08d tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xb458ff61 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x9d8fb47e tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xfa556888 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xbbd30150 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x13694b98 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x284fd523 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x40fcf1fa mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x69983e8f mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6c7767f0 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6dbe4a31 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x77e073ee mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x79c1b30c mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x932dd98c mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa5d4dd4c mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xba61f6bf mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd6dc469e mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdad72f7a mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe3305e4c mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf18b8276 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfb9efd55 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfbae9f92 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0f73bb3f smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x108f9400 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2913d19b sms_board_power +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 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x56ce2586 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x693d226f sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6d2138d9 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6f984e64 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x709a7948 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x71260639 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x72b0252b 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 0x8a79dee9 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8baf1767 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb1a75242 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcb1fa2bc sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdd1ab6d9 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xea0d0204 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xece6d870 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf1443415 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf50ec08d sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x0d8c12d5 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x6793e9aa ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa1b15340 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa98c74d9 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbd34785e ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd05a7a81 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd60c016d ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x15aef5b0 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x19b00628 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2e6fc85b rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x30586e68 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x33452598 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3446932f rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3e41f383 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x40081253 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x52117f33 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x52f057bd rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x554bbaeb ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x735b3c84 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7b9783c0 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa51c6787 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc0a22ffd rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xce5bdec2 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd1bd20b4 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x062c0c7f cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x06889c23 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0fbca87e cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x124ed2ef cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2c3dd820 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3b11c59f cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5206bba7 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6396412c cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6fa95165 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7454f0ef cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x775c7ff0 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x831657a6 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa9207ff8 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xaa75cb7e cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xab2f97c3 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc66c302c cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd7e6f4f5 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd97fb7ec cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf47ac18b cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xb28ffd08 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x41068386 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x8d2dacc1 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xb7d5befb em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc488b084 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc8c1e3a8 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xec645903 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x234f52d0 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x285c78e7 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x437988b1 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x614d1baa saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe2fa4536 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/soc_camera 0x07cfe472 soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x03b1c31a v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x56850be4 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x6d3642fc v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x71dc426d v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x98bbe1fb v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xe5c66a6a 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-int-device 0x536ab242 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x8c560265 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 0xd6c27693 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xef33d66d v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1164300e v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1235bf2b v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1c88d647 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x36e506ea v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x514e2d8f v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x53b35240 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6e1cbbdd v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6e7b54bf v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x86974f56 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaa44229b v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd1081c7f v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd1289e2c v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xed49d921 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xff0b3c6a v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x07dd335a videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0fc5a828 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x130c607c videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2280d0b5 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x232dfd81 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2b5d0405 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x34299b44 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x358efaf2 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3720958f videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x445ace2b videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4eec7ccd videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5694588e videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x723f5e2c videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7a8a590f videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x874d72b0 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x95b2eceb videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9dee77bb __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb1dfe7e1 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbb4cd7c9 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbc0b7582 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbc8de15f videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc8bf40cc videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xedca9d65 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf7dc943d videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x331e5295 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x62782d90 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xee9b802f videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x048b9e1e videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2f5c6494 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x56a6414b videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5c3d2e29 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x82105f48 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8819e594 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb3f8c6a6 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xcb933e85 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdb8d6788 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x01234e6e videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x380ac00d videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xda1f3f82 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0615509a v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0a4cc064 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0bc1256d v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x157627cc v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x16419104 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x23b5495c v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2e5fcd68 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x36cb3c04 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3dcc9d87 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x50ef46dd v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x56450a53 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5722c3da v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x97f10d13 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xac683261 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc9640002 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd4690f7b v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd8af2a74 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfe3beab8 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x030bb70a i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x048f8851 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x17caead3 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5f8fb3a6 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6794f7d6 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x9267cf03 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x99e0f9ed i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd430b1e4 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x79dca9f5 mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1187f74e pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2d2d7b09 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3af2b6be pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x72ff579b pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x79e14ec0 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc172a514 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd01d30a4 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe2b49df0 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe7f01c7a pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xeb7a9859 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xeea98780 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x2f754999 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xfc4037bc pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x01d8461a pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x168dbf16 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x643156d4 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8506dc18 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x85458767 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x427bbaca sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4c9d78bf sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa21f2b37 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd61c6e51 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xfb0062b5 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xb7b6a031 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x5d92b7af wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9770e026 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9ba78d6a wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xc62b2415 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x3e9e86a9 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x9fe83869 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xaf76dab5 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc615774d 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 0x13221f6a enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x37ece329 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6cef365a enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7c6192d0 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8cb86ebc enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb563bbf7 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc14df02f enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x81f8e543 st_register +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0ed887d9 sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0f8ce057 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1f72cdd6 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x24a9d3ae sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x271214ab sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x27b501ff sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2f8596d0 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x32e9185b sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x37946418 sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x38c3b347 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x3f5e2411 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x533e6d0a sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6819d093 sdio_align_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6d3b42c6 sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6efbebc7 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x73b34829 sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7c0c14ca sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8aeaedc4 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8c6fbc89 sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x919454be sdio_writeb_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9f058c85 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa9a04353 sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb40c8902 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xebbdff37 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfd39cab6 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0f831cfa sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1e529dd0 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x521afc8d sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x55b31c7b sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8e320ae5 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb82b83a1 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xeb0ba96b sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x055b8dde cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2c41767d cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x532b9e8b cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x78464ba1 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x87417fca cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd574888c cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xb3989b86 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x2c43682e cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4e7133e3 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xd1115235 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x17d660d2 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xc5174d19 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x70959a43 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x095658d8 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x10d0dbf5 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x16e84154 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2eab16f8 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3c0a5c13 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5121516d add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x52fc93ba unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5a4f3f90 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x67c11f98 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x73c7e9af mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x74583f2e __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x75f970f8 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b2fcfe2 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9cf5fa18 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa61bec8f mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae40b153 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcad36649 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcf76d4ae mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd5c699a3 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xef4a45e0 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf2ee1754 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x3d4f5059 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x758cda33 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd7d91668 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xda604f0d add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x6f57ceb6 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe4f7a956 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xb1d82646 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x049a65cc onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xd4b7aaf5 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x16c4cff8 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4afa7100 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4c90419d ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4fa716bb ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x517b2e10 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x82e2ece3 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x966667a7 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa1d9b254 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc7cbfb2b ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc8cc0969 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd35a6d11 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xee63b9cc ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5d215cf ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x20b28283 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x488fd834 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x49faa3a7 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6cc40ea7 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x780cf9b7 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x906efeed can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb0c2fd8a alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb738e105 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd1b276d6 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe28a316b register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfaf07e50 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfba9209e open_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0916c7ee alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x66409c92 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x8d20266e unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x938b0889 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x069d1be8 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8642eaa3 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x9e53a09a macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xbbb50e72 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcef7fd29 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0135801f mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0a4b2e3d mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x122d5b10 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x167df206 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1b745b40 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1e91de87 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x232f3bcb mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x23886835 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x23fdfc3e mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2ad87648 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2add27fc mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2c5d33bb mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x37345356 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x411010e6 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4168b0f0 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x45df0f24 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4dda34c5 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x52360904 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5aa1332c mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6db1fc47 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x723bbbcf mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x77d27d47 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x78ac008d mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a21d0fe mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x82d1d19e mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x85a658f0 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8cc87f08 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9526c717 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x96fe870d mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9865f03c mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa1f11d70 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa8b3fff0 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb1cd94bd mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb748b65b mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xba079e8f mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbc3ae529 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc153f000 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc212399c mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc8d1b1ed mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcc259884 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd765e83d mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdb7afd1d mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdbc41743 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xddfa6cdb mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf667c52 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe23bcb93 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe4a2dfa0 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xea4006c6 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xec6a0c01 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeec2fb04 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf03104b5 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf77e05af mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf8d17e03 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfcf9a08d mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xffcd364f mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x982ded45 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xa24e8469 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x05f159a5 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x27d0c24c generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x881823d0 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x89bbe73a rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x93882105 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfec406df rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x057e3320 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0fb0ba05 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2902104a usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x38ca8585 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4295f741 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6b00b6ba usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8376e3ef usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x85428590 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8c022064 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x97b40e31 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa062e44 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad8cac13 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc2a6cc33 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc970afc1 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcbc28421 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcc3c7f4d usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcc41c8d6 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcc69068c usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd03720b5 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd31b2c10 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdfbc69a1 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xef8e6ce0 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf5017fc5 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf8c30691 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x133fac3f i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x34dd269d i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x40635aa0 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x41bd5d27 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x51eaa3d8 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x629023ec i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x68697832 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7bddf496 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8d4df8b2 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x98dd913c i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x98f5bada i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xacc745f7 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb679366a i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdb589f04 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe10586a7 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe6f3dd78 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x97cb6c0f libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x4697ee62 iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x51c2057d iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x6a3520e9 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xf39e9537 iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x19837a22 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x22310a62 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2aa7b114 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x373ab8c1 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x43285e34 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5abae9b8 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6fc44f03 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x74651ee4 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x953c688d lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa6fa2b33 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd2fbd487 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe2349d68 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe3f4ee98 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf3092a7b lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfeaca3ec lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x08ee7136 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x37d000dc lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3825831a lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x40a1fdb7 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x48a38ec4 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xba11d6d5 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf150d5b4 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf921bb5e lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x1ebd2e22 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xaa387469 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0de9542f p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0ea2ec88 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x67230f8c p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7f3c0e5f p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x96884e92 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbd7b72df p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd43755b6 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xede661f1 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfc4293d6 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x01b16396 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0efe00fc rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x11483aff rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1c020dc0 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2d967f1e rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2ea04693 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x39140313 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3e305b8b rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4aa582fb rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4fed1058 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x55d4c946 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x57b2f333 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5b1bc9c8 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x631e8723 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x668b00cb rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x67659b16 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c41397b rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x75e3feb7 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7ba9db89 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7e4a27b2 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8cd79e62 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa0a1d5ae rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xabefbcbc rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb178b7f7 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb47c0052 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb88f853b rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7b7a159 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc8c78ed1 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcbe3d303 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd2e3347b rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xddf93a63 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe1536531 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf9fdd75b rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfb665435 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x06e6bb29 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f8b3ac4 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x12456307 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x13131a01 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x185a4617 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1a120157 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f252bf3 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x26a576b7 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x28da5e73 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2f3bedcd rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3e6b2e71 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3ef8c243 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x406513fa rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4cc59c98 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5127ae9e rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6e8af1ca rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6fce917a rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x71540895 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7395ecbc rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83ac6441 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x90080f1a rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9331c8f9 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa9f0c2b8 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb627e57f rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbb7a0cf8 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbb96116d rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbd010393 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbdea1067 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc43f7f51 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc7cb7e34 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc8928f74 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc9a0f9e0 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe15f0f64 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe699be43 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe7b0a84b rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xec898ecc rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xec8ccf08 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf3a82fa2 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfa2e3ed5 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xffd5d245 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1d6aa8ce rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6b3a45c5 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x77c08c12 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8a7775eb rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xaf586e0d rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd5d3b9ec rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xda75488d rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe393a369 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0222e0ee rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x12bbb77b rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x221aa77b rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x50a3caf5 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x52d5de8c rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6966b338 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x76a23ecb rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x99f8016a rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa57e31ee rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xac71abc6 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc364199f rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdf498b09 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe06526cc rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeda8fa16 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf02996c6 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x09807819 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x2c61920a wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xa428e6f6 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x09017947 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x2624d5a4 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x3e69f5fe wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x7c047912 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xb4327227 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xee267aac wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xfabf170d wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x5023062d pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x82c08905 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x97be2935 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x0c1df5a9 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x17217b40 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x69a5f8cf mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb41cdd36 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb6916f9f mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xcca9e0fd mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe20af410 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2df25785 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x46fedc70 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6c8915c2 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa45f2463 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd705a524 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe414439f wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xbfcfbbbc wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0445dc93 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x04f045c4 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x057369c9 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0c0f084c cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x10d85931 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x16ace199 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x18ef9d2f cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2ac87536 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2f0a54ad cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x37f004c4 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4110dd62 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4411db0b cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x44af982f cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4c0cc27f cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4ec5717a cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5391544c cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5b6a3ff1 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x62f04086 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x68466ac4 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6a3d33b0 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6a4364ef cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x79d34dd4 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c4d5f20 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7febba89 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x83770f3a cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8a996a92 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8bd58fe8 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c90e7df cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x905160b0 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x91beb2ae cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x92df5fd0 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9d1652fc cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9f674683 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa231b0d3 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa56cd5a9 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa5940553 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb0c883d8 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc0fa61a2 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc6ffbddb cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xce066cf8 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe4502791 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe93f456a cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xede6d8a1 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf56db2c4 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x1f7de724 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x5790dfc3 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 0x5bf2de2b scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x62d404df scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x76d564a8 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xe3e244dc scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x09d7e503 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x16070b57 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x76b01ed4 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x793e6d96 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x871c4f70 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8e64bdc0 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe26d853f iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1255ee50 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13308928 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16490ee0 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d5fd47a __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x253b07b0 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x26de1a82 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3eba4397 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4205d51e iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45f75c4b iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x48860271 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c3a5d18 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51356164 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59dce5bd iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b6527d7 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e307bfe iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e9f8d16 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x60206f93 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b01deb1 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70228ef6 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7086954f iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x813b44be iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x829859c9 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84835097 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8be559de iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d4d3dfe iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x915ecae0 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91ab98cc iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa48f1662 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5c75be0 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa82fbb41 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaab5b866 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb5b7d717 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc5d7cb30 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc8396e44 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca6d5f51 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd92ebd74 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc517182 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe076f7d5 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe28c469b iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe67834bd iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe735b840 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf03467b8 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf93afb98 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x06daaf1f iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x08d32f89 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x16e30385 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x28639212 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2c424b7e iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x43c04781 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4cc57655 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4f7e52e1 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x69e906f4 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x849d4d6a iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x861e2477 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb9ae4a85 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd4ebc8c2 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe4dcdbe2 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe5489d56 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfc5eae9c iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1b3e0427 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1d036aa9 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x327bf859 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x40eddb7f sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x41fd5347 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4639090b sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5b62b903 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x60626283 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f99b332 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7484d0f9 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7eb41f7c sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x81f1622f sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x985114cf sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa7157135 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa785b762 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa817a427 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc2353831 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc971c2d9 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd9844ad2 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe40cd8e7 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe4be9e2f sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee354e4e sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf31b6a4a sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2c8d5986 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x5612e884 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x687980d6 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x914081f1 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xab4cfe47 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb5c32e64 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0892113f scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0d62eaf5 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2bf75c6f scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x442d7e75 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x56c9a344 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6e01ca4e scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x986a098d scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9fa0b00e scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf4d4f841 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x06c52be3 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x08f0065e iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0c661847 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x15775f40 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x22264aa3 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2385f4ac iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x23cb2587 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x391c00fa iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3d8b4725 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49fa696b iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4fee83a7 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6a429987 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x838b14ad iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x853f7256 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8830dfae iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c7ee909 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x91e282e6 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9470416a iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa4c67301 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa5251afd iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb93eb71 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe41ed73f iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9f7605f iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2e696247 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x55ece54b sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xbd6ccadb sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc6c1bf12 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 0x0d542c45 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x66bc2bd1 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa3db8fe9 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xdc458957 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xef6cbdd9 srp_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1b181a39 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x22dc770a spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x7aa46ddf spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x91a2e818 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfa5a587a spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfc3070e0 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x051556e6 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1a1e16ac spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1d72759f spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x50e048ab synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x51e04ae4 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8df5c480 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa2eaa2bb spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb35aaab9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc44717f1 serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe0dd6169 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf589b7b1 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x5ae9d950 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xfa43a767 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xfea47513 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x187324eb pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x8924cec4 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0xa20c4fff pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0xedb4f9cf pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7a90ba87 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7b10ebcc max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x91ac531d max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xc2e05b17 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xd3cef3ad max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xe5ac969b max3107_rw +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7789b1c5 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x8f9cf3e8 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc574e59f uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8d88c6a6 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xde2b4059 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2d1db074 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x530f66e3 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5f5436d4 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x61cc84b3 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8585ab27 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x997404f5 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb7ba87d1 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc0532bfa usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdd4002c8 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0cc1ed05 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1c40c3d9 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1d50ab10 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x237482cd usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x239cb1ba usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x23d3990e usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x38c3f005 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3b4e3833 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3b58a1b2 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x57d7a498 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6ee2c11a usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x80be902b usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x977a3c07 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa63f36ed ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd333888e usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd6fa6440 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd711f205 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd75735f1 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe7d0a617 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf08547a9 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfba6f9a7 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0c8195e4 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1ccdb6f5 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2902a728 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2d2a095b usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x318ca119 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3506695a usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x444c0d3b usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4c3b909d usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4d29e857 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6212c9f4 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x70b23523 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x845a62e2 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x90ca1236 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x921a577d usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb09ff0eb usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb1f9289a usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb5f865bc usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd4e6243c usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd4f4457e usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdeec2214 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe7588a9b usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xebefc44a usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf72e5416 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x1303a06c wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5a35e7c9 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xea9868b2 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xeeae35cf rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf26f2374 wa_urb_dequeue +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 0x0dd30c7c wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1b2210d0 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x329fe8f7 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3e6d05d1 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4245245e wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x45fccc75 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x504f58ee wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x56d87f0f wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x62a5404b wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x727852c5 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8cafa9c4 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9ced2d9b wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa697803a wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa869fbc1 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd4eb0225 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd6d30f7b wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x013a09ce i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x6bd8c9f9 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xdf3a3cbc i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x42427133 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4ecb7803 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x67651ce4 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8180c524 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9cbbaa28 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa178bd28 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa6d4b5a8 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfae8fe96 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0007573a uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x06cf70f1 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d5eff5b uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0ddc8730 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1ccae75e uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20bac221 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x35ff5ecd uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x38d2edd5 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4a0541fa uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4cb360c1 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x568bb504 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x598c7cfb uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5c290520 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x65c7c4ab uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f878e81 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x99b40cbf uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9d1ff8c8 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa3adb55b uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xada35d8a uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaf925874 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb2aadb05 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb4c7e40f uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc1d28df4 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc39ba3da uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc4d773a2 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xce78e805 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcf261b8a uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcfacc49e uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd0375d99 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd14fe124 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1f567ce __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd685ada1 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe38a6305 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xec563ed2 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf266218d uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6a3d7f1 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6a7fdb9 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x646f375b whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1d060b6c ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4657b75f ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5528e42c ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x619fb657 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa3ccb247 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xbdd8c819 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd9447dea ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xac6f1973 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xff834e9b fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x66ec48a3 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xf02fff39 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x478d1c09 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x4db648a1 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x5767a6b5 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xe640c864 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xe671e028 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x30371a68 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3d16b943 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3ec2895b virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x4e13146a virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7ac54ede virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8cf94803 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x97386643 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x98b699ce vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc2065a36 vring_transport_features +EXPORT_SYMBOL_GPL drivers/w1/wire 0x29c8f705 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3321e4d7 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x35e4ba1f w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x518bfa0c w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6715bb26 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8b1f0ac9 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb31d695d w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf1ddad57 w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x1a3ea7b9 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7fec7f2a dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x8ae64c9c dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x8e997677 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xed318c07 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x03b8c28c fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x35812ba9 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x39611fd0 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x4737bcbb fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x4f80329a fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x5859104d fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x60ebf8bd fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x7b452339 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x8866bba9 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x89fa10bd fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xa2c5ae83 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xa93f46ec __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xaf7ba8f5 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xb14947a1 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xe27af4d1 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xeeb941ab fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xef06200e fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xfca06690 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +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 0x5da5a861 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x803df4d1 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 0xafff7962 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc6f07517 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xff49c6bd nlmclnt_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2eef020 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x2b9461fd nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x8b716a99 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1a27c4a3 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1fd97f56 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x31987c52 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x895ce0e7 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 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 0xb75b3c72 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcf74c584 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 0xe6d5c276 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x81592dc2 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa3e5324e dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc6c30b94 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc9370ea5 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcce069bf dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfcea90d5 dlm_register_eviction_cb +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 0x2f8b239c ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4e5e7715 ocfs2_stack_glue_unregister +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 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe35d8b8e ocfs2_plock +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/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +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 0x42626f95 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x5ad7d254 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x71fe5414 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x79e3ad4f garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x992a7970 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xe711c43a garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x696a2c0d stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xdb91269d stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x974d1c79 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x983a7ee7 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x69e54df8 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 0x4076c92e bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00dc2147 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09d871d4 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ad8bcad dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x134b5575 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x22813caf dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x310a8ecf dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34402f4e dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x37af0821 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f524adf dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x458c28e5 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4d8a43c7 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x50973eea dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x50f3045c dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a0d9f6c dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68d8cddb dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7bc701e2 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f34d82d inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x81a5b2b6 dccp_hashinfo +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 0x8f79664a dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x915fbf2f dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x99fcf149 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a7e6b17 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ae41e68 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa337522a dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb63ebc76 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb64ca471 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xba10fd89 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb264126 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc911accb dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd91630fb dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf290b8ac dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8d1f97e dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd2f7de8 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2546d88a dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4211fed8 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x501471eb dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6b30966c dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x80b66c8e dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xef5dbdab dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ipv4/gre 0x44a08481 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xbf547c27 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x9973319a arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x1a174f52 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 0xf5db3b1b 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 0x0b4d56c0 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0fa6725f nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x44637add 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 0x99f6690e nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbae8a930 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd805cec0 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x3f250a04 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x496737cd tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xad242b45 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc5c80b07 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe5cfcac2 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xf0580775 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0f0f25ab l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x19edb1fc l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x20d754b4 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x231ca1d7 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2d22dc9a l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x32d8eab8 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x76256163 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8083d28b l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9b3e284e l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc5c6ad44 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd91a1439 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf80e3a3e l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6a2a5212 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9561931a ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbac8172d ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe27708b9 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xee5ff12e ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x025f87c1 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x63970c85 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8293b268 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xb220edda register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02ced3d6 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06665e7a nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c734e8d nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e9dbb0b nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x156bffdc nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1c0f4e6f nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ccf981e nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e8e8a40 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20ac3154 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20b8d693 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x212fe0ea nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b4d3cf1 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31283879 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34510782 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34de08cc nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3cabd989 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4629183c nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x530c5871 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x53a4f2e0 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x548ba846 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59e3f6af nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59ed4a32 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63f15f24 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x660f7675 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ab7d253 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d35ab54 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71c29830 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7399f4e9 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7690fa26 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78b67a80 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7916342d nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c46ad22 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x806b6ba1 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x855f9a31 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89364f16 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x898b4404 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89f7850c nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b00eb69 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c27c7f6 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95cb9b8e nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x969bd2e8 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97730de9 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9907f6c4 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9fca8d9f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba453f2c nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc03a628 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfbc9038 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca52ec3f __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcecd3bbe nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7e1a9ef nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3236503 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe625180a __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9102f49 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec2e91e2 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf2cc9377 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf32b4ac0 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf380ee1b nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3a5777e nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfcfb593c nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe5224ed nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xe2d1a4f8 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x2469e1a1 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x10e9a025 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x12c6ac8a set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x13eb8074 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5fb5c5b5 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5fc0f816 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x64f92258 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6c5a534c nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x91f3495a get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa5b71946 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd94e7746 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x03728f7d nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2709890a nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x884eb492 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x94f657c3 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc448c2a5 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x4dbfd041 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa9104648 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0e134c25 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0f5efe92 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1db50d06 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x353eef96 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x42168870 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x50328553 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x53ad1a0d nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x977a0add ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa690d236 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbaed496c ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xccd61826 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd57190c6 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe1900a13 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x814116d1 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x545abe01 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6f81f880 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7d55934e nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbffd7571 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd8bda4c1 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe58bee99 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeba7f034 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x6ece4bfd nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x04cc1f5d xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x109c2c69 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x17d42db3 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x348725b1 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4d5b2389 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5c231e3b xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x77a65d1c xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x852694c7 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x866c72b9 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9a6bb858 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9f09da12 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa0846b08 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd750793f xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe85c02de xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x3e1dd4ab xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x9a303feb xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x15f139bb rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x235d00a1 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x305c940b rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x355c0d7f rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x37d79da5 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x3f23ad33 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x4622b59b rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x529efa13 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x55aa4a57 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x60973ce7 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x707889b3 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x70a2f5ba rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x75d2e324 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x7ef0e27a rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x80013092 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x82ed5b2b rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x8e0ef9d1 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xa1e1055f rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xa3251d6f rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xad883f50 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xaf28d791 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xb66b95b4 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xb8bd2802 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xbd28d38a rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xd98fbc42 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1e81ddab rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x5eb70ce4 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 0x0de2fc39 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0eb07fbe gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x55b96bfa gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7e27f311 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x80055e7b 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 0xa0d36d2f gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xafefc654 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb205edcb 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 0xbd335403 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe413a507 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf2fa39d9 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x013fb2f7 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03b1433a svc_create_pooled +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 0x09d78b64 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a31246b rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a8499d0 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ac141ff rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bf3b381 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e9e6f73 rpc_proc_register +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 0x1049f14d svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1087217c rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x116b1b1d rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11d1279f svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13de8d99 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14ac1fe6 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x170b5a63 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x172813e0 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17e3bc94 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a041575 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a8c0ad2 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ac29064 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22c3fadc xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22e425a6 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x243201ad xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x272db958 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27c999ae svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28181f1e rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b09c09f rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b60d261 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cbba756 xdr_encode_word +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 0x32b8aa67 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32d84f96 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x376cabe7 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37a51fd4 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b21805e rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cca732c svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ddb7a9d svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e27de06 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f542df9 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fe4cd23 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40f5dbd4 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4169287c __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x456c76a4 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48b6d690 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4932cdcf rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a4759a5 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cea43d1 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d7e2db1 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ef664b8 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50fdc391 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5138723b rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52106622 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52aeb7a6 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x543bb499 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x551876a6 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55765eca sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x561a14bc xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57402b2a xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57613c16 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5857e13e xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x588dc338 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59861761 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a05caa4 xdr_encode_array2 +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 0x5d6aaa72 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ddd4704 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e25da36 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e84df07 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x623a36ad rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x626bf6e3 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63493a24 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63539445 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x650ae8ba rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x698ac85a rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69b3eef3 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cb60d59 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d691728 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ddbe20b rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f5c1f5d xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x706bd44c xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x720b7172 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74d7428c svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7be06138 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82c53b5a read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x836b5c30 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86018af3 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8680f185 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87195184 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87a0753b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x883c31a9 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89714559 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a8eca31 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ca67360 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d3bd653 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f84481c cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90e8f572 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94ac6d8a svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94cb3b0b svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9557d74c rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a294e71 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a36eff4 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ada4120 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c4c3df1 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c5c2b95 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c739375 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f7c9cb8 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa08391ee rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa24e74f0 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa28879a2 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2dff936 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa498fc59 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6cf29cf xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac3e92b9 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad5172ac rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaecbfa39 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafc88b03 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6290e68 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb685e251 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb8c0a1f svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd157412 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbddddbf5 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf104254 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc02357c6 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0fe8bd9 xdr_shift_buf +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 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8f2cd79 rpc_put_task +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 0xd09b058d sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd84883c1 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8537bc4 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd91aa9ac xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfae3f9a xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfaeb37f rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4a3b787 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ffad3a rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7dec959 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7f6666b rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeac58f8e rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecd0da66 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 0xf133b661 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf37b21c3 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3ee9c5a rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6c8b9d9 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf755e592 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7dea4da rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfedaa43c svc_close_xprt +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1021a877 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4029c070 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x659aeff4 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6e05311e wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x878e35f6 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x88bc0018 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x88cab613 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa64c8f60 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa6c8c4b3 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc9a05e26 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe3b49f70 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe6b44a5a wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf3beba5c wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x004ad209 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x06917e86 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x085d46e4 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x13a2414b cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x27be4d8c cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2decea53 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x367d8657 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3a9fcf65 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x42cf2c45 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4f529836 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x50d6f3d9 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5dac889f cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ead357d cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6e5b5066 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x762f474a cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x82bafe23 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8e85acb1 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8ecd6176 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa015f4f2 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa46589d6 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xabf62230 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xae9bbc7d cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb4b768d5 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb56d2572 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbf4bf299 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc10d4416 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc2796515 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xde198d61 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe7d233e3 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe82ed93f cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xee50d36b cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf7b4bf31 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfe9d032b cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa1e9b016 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc178ae9c ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd8163f34 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xef6e4834 ipcomp_destroy +EXPORT_SYMBOL_GPL security/keys/encrypted 0x4707b6a2 key_type_encrypted +EXPORT_SYMBOL_GPL security/keys/trusted 0x90828c87 key_type_trusted +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x166018d1 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x2053cf72 aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x487b7fa6 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x54c83f8c aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x5d827aa0 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc4f2ed9a aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xda56806e aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xe6751558 aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf9bef8dd ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xfa531258 aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x0755a582 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x1dca5364 soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x40fbc9f6 soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xc1decac0 soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xc41285ea soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xcf09021d soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x50201510 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x81f5275a snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb197bbee snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc1bb1693 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd0e3dd86 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf27be71e snd_ak4113_create +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00aa013d snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0119fe48 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01d9a321 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x046d4d95 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07b57b91 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09a02c89 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ba40bc5 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x183e18a0 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d4977ed snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f18b41a snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x200ad5eb snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x246e148c snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26dca187 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2728f4c8 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27363a3d hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ba63c96 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c551b34 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c76b8f7 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ce882d8 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d79318b snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e1da751 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34bc7ef1 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3906e198 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a1cc23e snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ec7a9c9 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3efe9266 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f5b38c5 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43c6fba3 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44fa2a49 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f79d51b snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5843bed1 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a2a3354 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d4eb62c snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x622ed093 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x649255a6 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68652030 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b86251f snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e5653f0 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ec86905 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72e8987e snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74b6de14 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76cd3994 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7cffd587 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82118261 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x838f302d hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x854ea610 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85a967de query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b35cbbb snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e33fd7b snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e9a2138 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8fcb1012 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ffb53ba snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94cb0a77 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94ce07b9 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x956dd8da snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b4a145b snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c350bd8 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9dab441b snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa13a0ed1 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa24eb6d4 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6e75b21 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6f0e2bb snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8ad03c5 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa6f5c2b snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad9ddd72 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb01fab4a snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0ab0b5c snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0f23e36 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5c3a9ba snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7ceefdc snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb96e38c1 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbb128d1 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbcc6e7a2 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc788bb64 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd42674c9 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd88abe37 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda97ac2d snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde647393 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde97d0d5 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe15d5db7 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe363c7aa snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeacaae0c snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb39128b snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb51bec4 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb72c325 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec2b0430 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf32c6b43 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x6f6eb7c9 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x9b24ab2c pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0xb87eeb73 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x774466df max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x05dcd52a aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x7d111522 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8d1aef85 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9fcde6ef aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xbc58d989 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x0d8c0bab tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x14b9a235 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x91fefe11 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x67cfa11f wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x20f163f7 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x50ee3c38 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 0x859e3a76 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xd79ee7ae wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x51e7a586 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x8f651cfb wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x09f9a053 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x71fcf86a wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x20b55b89 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xacdd51ef wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01925166 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x019f730e snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0833b494 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ebfb080 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f0d4b9b snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x105d7a3d snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18dd9563 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x19837a51 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a7199b5 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21c362f5 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23bed5c8 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 0x28cfe406 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29b164b4 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29b46917 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x329a3ec4 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32bee5d1 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33f12fff snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35ea8f15 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x373c7072 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38b6c556 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40112aa0 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41e4837b snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4534efaa snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bf0aa9d snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fc1d19d snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58abf2ba snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5fb8f0cd snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60d6d9b7 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60f6173d snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65280e2d snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x654adbcb snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x680a6b1c snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x693565b8 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6b6bc0cf snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f8ff34e snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x723b652e snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x774c0293 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x775dbdcc snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ae8163a snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e055137 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f4886e2 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x808f54c2 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81d0c88b snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85bec195 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88f29f2a snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x945e1f51 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94cdbe99 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c0b4657 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa42c903d snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa053e9f snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaac6509c snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab68be0e snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabee8684 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac013831 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae61de44 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1b83c81 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7880db2 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7cf6dac snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd502bdf snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2f8fc1e snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6108ae0 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7b3755a snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9364c2e snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc59a759 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd66cb5c snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce22d25a snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd25c6aa2 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd33c658f snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7886129 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc2d9faf snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xddd9cf19 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe02229b7 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe049e96a snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe34a7955 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe42b87d9 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4680035 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6fdfb7f snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8379bb9 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8cddc22 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee55a810 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee675408 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfebe5df6 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfed4271a snd_soc_cache_sync +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 0x002cc97e tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x006b0a60 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x006b341b device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x0071f3e4 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00b54821 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00e9e74a inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01646dbe ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x0168e19d kobject_uevent_env +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 0x01a9fe7d crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x01e91084 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x02065ab8 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x020dfc2d debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x02196231 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x0278f428 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x02f40652 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x031bf897 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x035f0283 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x03a030e3 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x03b8c22d generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x03df0b84 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x040f9d3d ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0454c798 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x04e89709 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x04e89deb rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x04ecf3d5 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x04f9874d i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x05057ee9 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x0513d7e8 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x052d585c pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x056deaee swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x059dfb41 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x05b9fb76 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0x05f7a957 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x05fcb135 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x060417a3 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x06352ef1 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06769bb9 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x0697b88c register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x06a4b286 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x06b118d7 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x06b602f5 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06db672c of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x07385cb8 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x07426801 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x079d5eb9 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07ba4cb9 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x07be5dd2 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x07ca1bd1 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x07d487d8 __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x07d4ba35 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x07fdfaa4 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x080ebc3b system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x08765e6c ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x08f3e33a crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x0909ff5b unlock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x091aea0c ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0958c948 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x098b638c ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x09acfe20 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x09b95465 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x09db5ff1 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x09ef81f9 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0a291158 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a6e9003 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x0a71e8ca xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x0af71198 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b10310d led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b408728 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x0b54e0b3 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0ba9ba0f dm_put +EXPORT_SYMBOL_GPL vmlinux 0x0baba90b sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x0bbcbf1c fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x0bc45044 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x0be78633 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c37ec39 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c5eaaf3 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x0ca01ff9 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cdf52d6 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x0ce0e57b ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x0ce4f318 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0d0c109d of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x0d108ae8 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x0d326425 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0d70d5c4 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x0da26c0a inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x0db81ac6 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x0dc6471b debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0e03d456 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x0e12665d cpu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x0e35b621 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x0e587694 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x0ed3c53b cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x0ef0b921 device_del +EXPORT_SYMBOL_GPL vmlinux 0x0f2facbb transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x0f577bdb put_pid +EXPORT_SYMBOL_GPL vmlinux 0x0f5c7bca usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x0fb48aa6 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x0fdeb827 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0ff92b28 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10426752 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x106ab43b tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x106e6090 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x10a86535 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x111aa695 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x112f18d6 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x1130addb register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x116d650c inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x117037fd rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x11759e35 sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x1222110c page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x12552a7b blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x128c2040 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x1292a4bd pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x12b9ae90 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x12d0096e usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x13058766 ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x135cab47 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x139d4f6d sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x142a8df7 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x145e7e9d sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x149ed1d2 pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x14bdaff6 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x14cc3dd5 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x14d5945d of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x153073f2 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x153fb81f tracepoint_iter_next +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 0x15a4ee45 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x1651d6e8 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x16573a2e pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x166709cd securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x16ab9342 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x16ba9e32 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x16bfd627 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x171ffd37 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x172df215 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x1736a121 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x175e415f inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x17dd6c13 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x17ded67e sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1809d28e usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x181fbd7f ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x18476d1f cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18ad091e ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x18fec33b console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x190b861c wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x191b7039 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x192e9c5d of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x1932e83f inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19455b25 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x195e525d inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x1966fbf0 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19e0f66e wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19f0c64e bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x1a0197df ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1abd1a19 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x1ad97967 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x1b099fe2 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x1b5e5ffd tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bab249b rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x1bed9bc9 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x1bff8fb1 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1ce5a559 ide_create_request_sense_cmd +EXPORT_SYMBOL_GPL vmlinux 0x1cee31fa led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x1d1fb706 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x1d23e152 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x1da0a3a8 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1da69cce __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x1e0bd205 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1ea29dc0 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1ea96223 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1eb865f6 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ee9814e irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1effc7ba hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x1f3c955f rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1f6b2026 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x1f7cd34b sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe5bc75 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x1fee84cf rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x1ffef58b invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x200be181 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x201282a1 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x2049bab8 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x204de60a ide_error +EXPORT_SYMBOL_GPL vmlinux 0x2083cf02 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20efdf1c fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x20fddd5f sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x21043e23 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x21143dc4 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x211bac9d inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x21e6af39 ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0x22455001 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x22899171 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x229369f2 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x229e1c97 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x22c29a8f ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x22d56b3e crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x24059849 ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0x244b4853 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x2456ab3e register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x246aa82c tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x249d7081 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk +EXPORT_SYMBOL_GPL vmlinux 0x24db5cb6 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24faddd2 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x2513f117 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x252074a8 ide_end_rq +EXPORT_SYMBOL_GPL vmlinux 0x25b28ded unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x25b64739 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x25bacda3 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x25e3780c free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x25ef97b5 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2634e94b transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x264f8648 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x266514b9 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x2691bd1e __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x26b5dd2b hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x26b6bdb0 ide_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26e46159 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x272bb69d ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x274aff54 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x2763b8ae crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x27812a62 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27ba7f7e crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x27bb69d1 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x27d516ef hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x281faca3 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x2879b47f securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x289bc8d8 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28b4909c inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x290396cb usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x293b9b92 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x2961aaa4 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x2983c16d __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x29870f2e ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x29a4f671 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x2a644853 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a89a586 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x2a966852 get_device +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2ae3090b device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2b2e0a84 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b73c3e0 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2ba935b0 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2bd5f328 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x2bef9f99 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x2c0af588 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2c1034ed ide_dma_lost_irq +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c409023 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x2c530200 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2c61cc49 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x2c6f13a9 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2cce743d pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0x2ce04021 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d2acebc sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2ddee4bb usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x2e059c13 ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0x2e21c6ce ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x2e4012a8 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e8f6378 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x2ec365c9 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x2ecfb65d drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x2ed79b7d trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x2ee9eef3 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x2ef6b5bf smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x2f00da93 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2f2aa116 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f625bd0 ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2fadedc4 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2ff4946c regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2ffae7f1 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x30328b27 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x3068f9e8 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x30766f7b crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x309d75c0 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30d72b96 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x312403b3 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3151870a ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x315c01f6 ide_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x317670b8 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x318203e7 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x31a6ca7c ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x31c43922 ide_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x31f79ed8 ide_read_error +EXPORT_SYMBOL_GPL vmlinux 0x32304313 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x32c8c13b usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x32d1910f pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f2492c class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x33148ad5 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x332e549c power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x333a9b20 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x333d5a8e rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x33990f45 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x33b220a9 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x33c38825 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x33c86f5a fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x33cde352 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x3417c02e sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34642861 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3466c661 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x34b6dd9c ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x34b8df99 ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x352b5eae usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x35536825 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x3559b325 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x355b2691 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x359f67ab unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x35b38a2f tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x35c2dffd devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35fdf74a __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x35ff2ce5 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x361d9a66 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x364211b2 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x36874858 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x36a6e814 edac_class +EXPORT_SYMBOL_GPL vmlinux 0x36adbfb7 ide_dma_test_irq +EXPORT_SYMBOL_GPL vmlinux 0x36cabff3 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x3706dac1 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x376da9c6 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x37a838ea relay_open +EXPORT_SYMBOL_GPL vmlinux 0x37f279ea vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x3853e421 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x38977875 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38c64a31 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x38d484ee edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x39673822 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x39676db4 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e7dfd7 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x3a005687 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a3081b2 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x3a550b5b ide_prep_sense +EXPORT_SYMBOL_GPL vmlinux 0x3a8142c5 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3a96f7af gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x3aa0c5ab ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x3ab63c44 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x3ac05b70 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x3ac124dd dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x3ac6b96a __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0x3ad10ac4 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x3adee41b rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3b0beb6c ide_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x3b6744a5 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x3b7197a3 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x3b7a4caa udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3beaf98a ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x3c0af3db bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x3c3e3569 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x3c54a08e sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3c72e48b ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x3c78a83f ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca4e53d __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd35c4e inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3cfc153e do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d114dad raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x3d2f5129 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x3d35fc51 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d959545 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3da8b390 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3e33c9d7 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x3e33fca2 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x3e43fcd0 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x3e8135ac debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x3e9d8e41 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f10390e skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f618aad pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0x3f918a9c ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x3fd2f1c2 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x3fe714dc crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x3ffc5d4d generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x401f392b __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x402d5aba ide_read_status +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40565c3b devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40aff54a alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x40becef9 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x40c71683 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x412ae1c0 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x4137bdfb __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x41574450 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x41593907 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x41875cbb rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x41e18d80 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x41e2f30a crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x41ed4515 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x421e45b3 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x42452b17 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x4279dc07 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42babd5d rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x42e92b01 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x42f0984f usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x431fd1f7 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43382e52 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x43687d64 lock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x43c4c1c7 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x441792be ide_cd_expiry +EXPORT_SYMBOL_GPL vmlinux 0x442ec34c adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x442f83e0 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x444387c0 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x4468a2f6 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x446a9c7f ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x4475ec3f wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448c6aca crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x44a13de9 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x44a5e921 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x44ad7c39 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x44e9d419 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x44edd6ce ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x455060fd ide_host_free +EXPORT_SYMBOL_GPL vmlinux 0x4573a7aa irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4594fe95 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e3e3c4 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x46464b18 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x467b7401 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x46adb233 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x46d3cf3b ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x46d775f5 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x46de6c89 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x46e3fa40 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x47032928 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4752e2f4 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x476de309 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x47e82dc3 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x47f56992 blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x483a012b ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x4872c372 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x48a37683 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48b3c2af tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x48cf90f1 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x48dd5143 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x48ed1b8d fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x49150d38 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x493aadd6 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x4943a338 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x497acf1c inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x497bafbc tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49d511c3 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x49e09f75 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x4a059b2c __module_address +EXPORT_SYMBOL_GPL vmlinux 0x4a3dc113 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x4a9141c2 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x4a952122 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x4aba6cd8 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x4b1a77b3 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x4b667f36 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x4b7fcff0 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x4b8b91b8 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x4b920e8c pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x4bbd79f9 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x4c0ec1c4 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4c1164db blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x4c29dc8d regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x4c346ea8 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x4c3d726a sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x4c5bfff4 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x4c6d580c sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4cc3a0a6 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x4d14ecd2 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d1f85d5 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x4d63d4d4 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4db4ea0c pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4df71d3a spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x4dfd4a05 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x4e285c41 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4e5123c4 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x4e5f7d5f ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x4e630a48 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4e94f03c ide_dma_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x4eac338e scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x4eba3b7b usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x4ebf144b swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f881b16 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x4f9c8b86 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x4fadb407 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x4fc9ad5b usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x50090402 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x507751f8 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50899377 input_class +EXPORT_SYMBOL_GPL vmlinux 0x50a1b16d pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x50aeadd1 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x50b59adb shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50d5daf8 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f063e5 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510bfccb ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x5113f859 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x5120aa8d ide_pci_init_one +EXPORT_SYMBOL_GPL vmlinux 0x519ba93e ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x51af7f83 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51d810b9 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x5218046c bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x523f8657 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x525af9f6 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x52657cb2 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x5273f78f clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x52e55b42 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x52ea803d __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x52f12a37 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x53734f89 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x5375e3f8 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53ac938e simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x53c7db6a __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x541d7c30 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x54238652 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54fb0cc1 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x5599e928 ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0x55e74041 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x561a6b6c ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x5630dfd4 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563a8ec0 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x564a1663 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x56520f6b xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56817c97 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x56b50310 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x576f260e elv_register +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57ba5e67 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x57f4232d use_mm +EXPORT_SYMBOL_GPL vmlinux 0x580c5369 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x580ccffb fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x5833b868 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x583e47a9 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x583ededa blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x587313b5 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x58884691 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x59011b15 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x5907a8df usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x5907c816 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x5947483e skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x59581938 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x59779158 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x599c54e1 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x59aa7941 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x59b5cc5f user_match +EXPORT_SYMBOL_GPL vmlinux 0x59dcfdf0 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x59ec2729 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x59ffcd77 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x5a2fe36d blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x5a5d9117 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a9811bf pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x5b72461c wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x5b7e6df3 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x5bafe035 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x5bd2d506 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c3448da kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x5c5d515f ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x5cf0598e crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d2f7584 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x5d3dd340 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d59300d bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d8feefe vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x5d9707d2 ide_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5deeec8f regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x5e267fa0 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x5e2c65df vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x5e3e732f regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x5ea016d0 ide_host_add +EXPORT_SYMBOL_GPL vmlinux 0x5ecb47ef pmac_backlight_mutex +EXPORT_SYMBOL_GPL vmlinux 0x5ece2b8c tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x5edd427a devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x5eeeafc0 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x5ef66e72 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5ef79611 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x5efc8b86 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x5f2d0a61 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x5f46d244 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x5f8988a7 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x5f93cc48 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x5f948ced eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x5fa7330e dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x5fba3950 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x601ab9e3 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60582a9e kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x609be4fa adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60fdb68b ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x612bd02f __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x61331142 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x61744928 ide_setting_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61ee2ed4 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x62387b54 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x62560d88 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x62714fd4 ide_pad_transfer +EXPORT_SYMBOL_GPL vmlinux 0x6272c68f tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x628ebd56 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62cb385e scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x62e0010f driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x62e24416 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x62e70813 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x62f579dc input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6365684c usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x636bd5b8 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x63de4c85 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x63f4509e crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x63fb48ef tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x642e657e pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type +EXPORT_SYMBOL_GPL vmlinux 0x6467c8af fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x649a86ee led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x64cbe318 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x65395ce6 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6569f22e regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x657a9a1e tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x65c3ab08 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65dcd6f8 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x660960d5 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6632b009 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66853c20 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x668557d1 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e4fd4f regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x66f50f3a sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x670e4b43 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x6747553d d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x6748bc91 ide_port_scan +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679e6dfc power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x67eadebe __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x6807afba each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68c583e0 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x691e5581 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x691f6e6f regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69b6a097 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a0101cb tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x6a21ca1d lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a6b8ccb pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x6a9e4a63 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x6abcbe24 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x6ac8e0cd platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x6af673d7 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b86e425 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x6b8ea08e ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x6bcb64c3 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x6bd048a7 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x6bfd8549 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x6c19ea80 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x6c2e01e7 ata_sff_tf_load +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 0x6ca567b9 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x6cddd4d8 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d313166 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x6d32236a usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x6d7f32f5 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6dc57721 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6dda9a82 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x6ddf2397 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x6e6600b6 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e8ce1c9 pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0x6eacc4f5 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x6edcfed5 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x6f645aec save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x6f79a417 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x6f9f73a8 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x6fbc719c pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x6fe52417 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7053f17f ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707007ad ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x70726d7f ide_device_put +EXPORT_SYMBOL_GPL vmlinux 0x707d2784 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70938468 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0x70ef6270 mmput +EXPORT_SYMBOL_GPL vmlinux 0x710b952f ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71b04114 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x71ebe1ca crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x71febf68 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x721f1b55 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x72418d56 ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x724ba4c8 ide_tf_read +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 0x728e5e7a tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x7297accb ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x729f0277 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72a927a3 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x72e00206 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x72e0ce43 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x72ef57c5 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x72fc94eb ide_check_atapi_device +EXPORT_SYMBOL_GPL vmlinux 0x730d8852 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x7311fd1d usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x733b9735 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x73564277 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x73593575 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73ccdcec tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x742cbe8f sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743ea652 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x7441c010 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7442291b crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x74544e46 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a03e1d pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74e6e52a fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x757e1b3a vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75fe83c4 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7626b273 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x762b4381 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x763acf53 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x767fda14 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x767fe72e class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x76b387d9 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x76d70078 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x770eb1e0 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x77222bf7 user_read +EXPORT_SYMBOL_GPL vmlinux 0x773df03c device_create +EXPORT_SYMBOL_GPL vmlinux 0x773f48e7 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x77437a61 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x77747da3 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x7791155f wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x779a3922 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x77b0b9e9 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x77c17d1f usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x77d292c3 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x78017114 ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x780a1221 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x780b04f4 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x78154b2f usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x7831a076 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x78344e46 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x78345f94 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x784de377 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x7858418c dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x786891d6 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x787d95f3 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x78b0963e sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x78f06834 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x791cf95e wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x791cfb3a ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7953ab49 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x7971ab2e sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x797fab6f transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x799e3c7c pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x79cad047 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x7a6b6b85 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x7a7d28b4 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x7a7d5b64 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x7ad9f80a device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b51d35f devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7b860f36 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x7bea0cae disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7bfca05b crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7c3b5c45 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7c43eb04 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x7c61f717 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7c8bdd44 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x7c92e2ef ide_set_media_lock +EXPORT_SYMBOL_GPL vmlinux 0x7cc8a88a usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x7ccb7573 pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x7ccc14f9 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x7cdcd5c8 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d5c0040 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x7d697fb4 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x7d8a40fa workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x7d900f6a device_move +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 0x7e141767 ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e23d849 ip6_dst_blackhole +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 0x7ec9faaf rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x7eed3d2c fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x7ef4dc76 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x7f6efa63 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f9ba9c1 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff4a37d scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ffb94bb cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x8033f5e9 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x8097a87d cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x80981e32 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x80f51ce5 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8144f292 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x816161af inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x8163a7b4 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x817567b3 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x8184b6b8 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x81a8b7e8 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x81cb5871 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8259faa2 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x8265f300 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a48f9e pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e6814d tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x82eadbd2 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x82ed94c1 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x8305a94c spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x83480b4f fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x83a14137 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x83a9c5ec ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x83c42708 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x83d4cb82 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x83e45204 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x83f52685 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x8449acb7 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x846e0e5d shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x8470f326 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x847104c6 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x8471bcb0 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x84ecb7cb timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x852a2f34 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x85ac1910 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x861260d9 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x86392a99 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x86558948 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x8655da18 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x86591189 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x86653b89 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x866cc3a1 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868f50a9 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x86966d4f sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x86ab4436 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86fad981 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x8703e5da __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x875d7559 ide_do_test_unit_ready +EXPORT_SYMBOL_GPL vmlinux 0x87684120 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x876a2848 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8775e2d3 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x8780908a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x87cf0cc5 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x87e4c775 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x87f6a9ba ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x8807aac8 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8819df7c regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x8832d6ff ide_host_remove +EXPORT_SYMBOL_GPL vmlinux 0x8869542b unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x88735e3a ide_pci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x88bf5390 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x88dc193f netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x89071120 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x891946a1 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8946c802 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x89d30d63 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x89fab0f7 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x8a14fff4 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8a16b797 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a2c69f6 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x8a3c491f ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0x8a3c4b12 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x8a574fe2 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8aca634b usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x8ad9cfa5 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x8b26723a ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8b327f95 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x8b3de664 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x8b446e19 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8b68b7c7 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8bb252bb ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x8bc0c98b ide_issue_pc +EXPORT_SYMBOL_GPL vmlinux 0x8be51781 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x8bf17934 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x8c37907d sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x8c467de5 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x8c55425c ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x8c890225 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x8ca865ce class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x8ccc5691 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x8d1a481f eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d6cf1fd pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0x8d8f9727 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x8d90585c usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8dad55e8 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x8df3f1d2 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x8e001706 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x8e0684a4 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x8e0bc4ed __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x8e5cad70 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x8ee72027 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x8f2323cc regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x8f388791 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x8f4d80f6 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8f5359c0 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f86f6f5 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fa804bd power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x8fd73bd8 ide_no_data_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x8ff0daba ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x90119982 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x902fbb17 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x9046cab0 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x90727059 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x91336863 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x91c644aa ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x91cb145a tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x92121e25 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x924d67a9 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9259b1c1 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x926ea921 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x92866703 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x9291f7de pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93351277 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x9361cbe7 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x93628f82 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x9389b65a ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x938be82e of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x93a072d0 ide_host_register +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93ebe191 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x941fdf67 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x9420ef8d synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x949d04ad ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94aebbe9 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x94c3bcb1 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x94efc3bc usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x94f4b7b8 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x9524edbb blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x957128b2 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x95b43e0f relay_close +EXPORT_SYMBOL_GPL vmlinux 0x95c21c3a ide_pci_resume +EXPORT_SYMBOL_GPL vmlinux 0x960ee05a vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x97106c43 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x9712d87c spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x974c63e0 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x97534cda crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x97572e8a scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x978f24b1 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x97bb9868 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x97dc2ead crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x981a7e67 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x984b07bd __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x984c6330 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x984de40e crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x9854e8bc tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x988166df led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x990b7582 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9927a7d2 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x995785cc ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9981c52a debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x99a098be register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9b478870 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x9b843c10 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bbb5a36 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x9c0a1c3e firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9c13d743 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x9c3c3688 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x9c3cf9fb get_driver +EXPORT_SYMBOL_GPL vmlinux 0x9c56e4c4 ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0x9c7d588f dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0x9ca15203 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d5933b7 ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0x9d6e6cfb ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x9d749f62 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x9d77860e regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x9dae8c64 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x9de97083 disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0x9df23dcb generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x9df3a401 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x9e1d0aa8 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x9e4768e7 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x9e80bed8 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x9e85f26a disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x9eb38893 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x9efc592e inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa030d26c platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xa03ceb80 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xa04554d9 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xa0527857 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xa0632d6f __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xa07e33d4 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xa0ea5fef bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xa10ffda5 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xa11f59f3 ide_get_lba_addr +EXPORT_SYMBOL_GPL vmlinux 0xa141c1dd ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xa149e896 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xa168f2cd sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa1885270 device_register +EXPORT_SYMBOL_GPL vmlinux 0xa18a5f62 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xa1926639 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xa209765e kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xa2129d2d relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xa212a192 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xa2256614 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xa23aecc3 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa25002c5 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xa261f173 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xa27b0ac4 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa31d606a regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa3206f37 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0xa32e208f ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa39d9220 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3c51da4 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xa3deba14 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa4440c4a wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa4543080 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xa461b722 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa462bccb usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xa47e9826 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xa4865e0d mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xa4ba7720 ide_dma_host_set +EXPORT_SYMBOL_GPL vmlinux 0xa4d61bdf driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xa57666e6 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xa5872252 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xa5923b8a pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6227d34 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xa63fca2d ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xa6963f71 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa6aa1250 ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0xa6bb3141 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xa6cbdf24 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xa6f1502a map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa6fc7313 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xa7347957 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0xa757eb29 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xa7826a84 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa7bd102f pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xa7bd209c cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xa820fd80 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8563f09 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xa858c2c0 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa87da057 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xa8a694c8 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa8aca5f1 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa90cf4b0 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xa95f9c3e pcibios_finish_adding_to_bus +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 0xaa7b6708 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xaaca18b5 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaaee32c2 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xaaf7b3ae ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xab1d5a14 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xab4246a0 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xab625624 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab9b57ca tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xaba20e4c usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xaba79f37 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0xabc583a4 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xac0a4ff1 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xac49c63e inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xac49ca7c wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xac6ce417 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xac89e3b6 ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0xaca427af part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xacb0fac9 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace9bd47 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xacf133ba cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad0ab787 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xad25c431 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xad40beba usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae1d34af tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xae2fefd1 queue_work +EXPORT_SYMBOL_GPL vmlinux 0xae382231 pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0xae710ebf ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0xaebb0dfc find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xaf2c1f38 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xafd0abab inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb00901cf srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xb0244cfb spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb0764a7d ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xb0b3e06e ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0xb0c76c9b crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xb0ccf1a9 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb195afc3 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1cd647d tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xb1f6430b sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xb1fd5149 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xb21940ba ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xb23a1886 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb2499b0f led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xb2cee96b crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xb2d61092 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb3113de1 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xb31b8899 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xb33adf2c blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xb38e8151 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xb3981d91 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb3c82809 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xb3e8ddd6 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xb423efc7 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xb438c7af srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb4ad3100 ide_cd_get_xferlen +EXPORT_SYMBOL_GPL vmlinux 0xb4ae18f7 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xb4b155ac driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb4cf6ca9 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xb4d258ab ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb4dcf372 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb51d1435 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb5228746 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb537642b ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0xb5421dd7 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xb57df4de seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a07a13 pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xb5a37821 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xb5a4d866 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb5cc60b7 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xb5cea7ee sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xb5e88c20 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5fdc0c2 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xb604e8c8 dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb64b9c03 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb64ea395 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xb65df0ef __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xb669d0e0 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xb66fce2c crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xb690b9f4 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xb69daa17 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6d4422f eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xb6d47351 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb6e77bbc dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xb742667d blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb81d9631 cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xb860de2b bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb8649fd9 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb9339e39 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xb94d9b4d dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xb94f2869 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb956d9a5 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xb9c5cd08 pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e8f79f debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba111405 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xba756713 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xbaa37e71 pmac_backlight +EXPORT_SYMBOL_GPL vmlinux 0xbab2038b device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xbab7eae6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xbabe233f adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbad26090 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaf6589b tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xbaf9cb0d xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbbb71a2e crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbbd2e92a dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xbbef2b0f attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbc7780a5 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xbc788623 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xbc923e00 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xbd23bf7d crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xbd44e2b2 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xbd67bcca spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xbdaf3a78 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xbdc96562 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbe0f2475 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe17e51f ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe4e72e6 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xbe732b40 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xbe9c5567 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xbead8e88 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xbec977b7 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf2c0e11 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xbf38a2bb scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xbf66ca75 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xbf97210f pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xbff8297d transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d026e0 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xc1016bc8 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc13c93cc ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xc13eb383 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc145385d stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xc154f8f2 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17bab83 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc1c8ed82 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xc1de19a1 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xc20e7991 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xc2166f64 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xc228547d unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc258c5ac blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xc2a238c3 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xc2b7bcbf ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xc2c8fe2a ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0xc305eb25 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc34bc4ca ide_pci_init_two +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35c6dbf user_update +EXPORT_SYMBOL_GPL vmlinux 0xc365e71d ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3f9e134 device_add +EXPORT_SYMBOL_GPL vmlinux 0xc3fe1e37 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xc415018f ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xc426fa19 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc464f77c put_device +EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4f54978 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xc4fd5373 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xc50d86e7 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xc5320b4c tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xc53e3d96 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xc55ad135 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xc565adab platform_device_register_resndata +EXPORT_SYMBOL_GPL vmlinux 0xc5a79fab unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xc5d32490 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc663fadd ide_output_data +EXPORT_SYMBOL_GPL vmlinux 0xc67a24cf skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc6c72b99 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xc6cbcac1 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xc6cc5265 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xc6e06275 ide_read_bcount_and_ireason +EXPORT_SYMBOL_GPL vmlinux 0xc70ac236 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xc738e391 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xc769aae0 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xc79792ff crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xc7c0c7cd device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xc7c3d0b6 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xc7d63da7 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xc7e9ae15 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8dd6cfc wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xc8de7521 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc90a041f wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xc90ae2a8 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xc912d550 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9466e7f ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0xc9544e4d ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc96d6413 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xc9bfd101 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca0359c1 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xca16c89e proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xca45980e wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xca54a74b check_media_bay +EXPORT_SYMBOL_GPL vmlinux 0xca580b6d platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xca619ad5 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xca6265eb skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xca72bd05 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xca7fa73d ide_dma_sff_timer_expiry +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcaa0e81c ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcad666b2 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xcaf93110 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xcb910930 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xcbb403ce scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xcbc2c8dd atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc25d537 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xcc29a62a system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0xcc5639a6 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xcca5b3d0 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xcccdb908 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd4bc0fa usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xcd910ca4 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdb61b52 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdf0ec51 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xce19712e pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xceaa718a platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xceb3001e tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xcecabbe8 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfb4d7b6 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfdd1525 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcfffbbae macio_find +EXPORT_SYMBOL_GPL vmlinux 0xd00652f3 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0xd01c52f6 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd06fc7a3 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd08e3b31 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xd08ed3ec pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0xd0a48dc5 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd1105e6e crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xd166ea8d blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd16be03f swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xd1865a6a ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c10c51 pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xd20db850 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xd20e6ca5 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd21517e7 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd26bd5bf single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c0bb5d blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xd3002d6d dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3368f6f ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd384efe1 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xd419df40 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xd43e4564 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd44732b3 ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xd45487b8 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xd45df513 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xd484b496 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0xd4b48b24 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd4bb8504 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xd4bcc11e platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd4f9e51b mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xd50e76fe adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd53b82ab dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xd57e46ff raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5c70c5a wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd63ee8aa tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xd6401b4f usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xd66f09b4 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xd682e5cd dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xd687e404 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xd68f206e aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xd696fa19 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xd69f63b0 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd71dec61 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xd73ae2f8 ata_host_alloc +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 0xd79aca00 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xd7a216bc cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xd7d08b20 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7fe3c5b dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xd8477e9e rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xd88064e6 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xd8af9478 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xd8c78412 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xd908b3fb ide_read_altstatus +EXPORT_SYMBOL_GPL vmlinux 0xd969505a scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda3cdf7a cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xda8b2064 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xdaac9ce7 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafc317c skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb300520 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xdb528af6 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xdb732d2e regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xdba6cac4 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xdc1312fc regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xdc38d985 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdc3916f8 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xdc461430 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xdc783961 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xdcaaca7f anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xdcc62206 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xdccf0274 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xdce9c265 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0xdd1127a3 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xdd546dbd ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdd72302d ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xdd7e3b70 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xddd47567 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xdde8f14f relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xde263fb0 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde5708b7 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xde77721b pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xdea8766d fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xdeadcd7c attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xdebf9246 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xdecad86d class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0xded2b498 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xdede537a debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xdf00d2c5 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf32e472 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe020f694 ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0xe0799c7d ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0eeebcc __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xe0f35ac8 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe0f54a65 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe125a87b pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xe16591ab stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xe16d08dd ref_module +EXPORT_SYMBOL_GPL vmlinux 0xe16e29c4 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe1792561 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xe1838f8f ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe1aa7ede crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xe1ae7541 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xe1d7f51b sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xe20d0a62 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xe22dd055 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xe236f3b6 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe26ff1fb ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xe292130d scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xe295263c crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe2d1476a usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xe31a2f10 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xe3327903 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xe376043c i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xe38bb247 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3a386be dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xe3ac6ff1 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xe3b89317 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xe3c7461c ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xe3d9716b __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xe435b122 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xe48e4e61 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xe4fb2b10 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xe546b9ce ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe56e0ad5 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0xe5792a94 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0xe58a58e8 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xe58c012e dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xe5925251 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xe5b9e757 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xe5bfb681 find_module +EXPORT_SYMBOL_GPL vmlinux 0xe5c6c4d1 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe5e5380e ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xe5ecfd48 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xe63dcf06 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xe6420cfe xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xe647cf83 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64dbd57 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe66b3f06 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xe6be9248 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6e40e1b fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xe6fbbff6 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xe77651bf ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xe79d3962 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xe7a81613 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7c7c855 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xe7da2326 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xe7dc1551 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xe7ee1a0f spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xe7fa034f da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe804ae6e crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xe81c2546 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe872f51b rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xe8ecc79c pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xe8f0447f pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xe9295bb8 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe92d2340 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xe9312fa1 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe953ceb5 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9604bc9 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xe969d672 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xe9741507 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xe9dfc794 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xea04ea3e pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea293cbc css_depth +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea47eb53 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xea5314a7 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xea786c65 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xeaa8a4cc usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xead8560b adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb075071 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0xeb6dd26b rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xec1628eb class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec20f8ca sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec968ec0 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xec9e34f9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xeccb27f0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xecea75d0 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xecf5bd69 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xecfba434 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xed16fbe4 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0xed2732aa ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xed61caf9 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xed7af4f3 ide_write_devctl +EXPORT_SYMBOL_GPL vmlinux 0xed8e3f83 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xed9715d1 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xedb61705 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xedc07941 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xee582c48 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xee9505aa pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0xeea21bc9 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xeebc74f8 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xeec9fd8d tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xeecfa46e crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xeeec80b4 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xef11af6b wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xef38f66f i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefc76df1 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xefce3c39 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xefd2b4af crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf01dc5f6 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xf028462d ide_input_data +EXPORT_SYMBOL_GPL vmlinux 0xf02b345b key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xf09231ab crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0xf11b3cb9 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1868c0b ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xf188b6cf ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0xf1a48d20 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1ee1355 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xf20c2a2a ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0xf24bcc9f ide_release_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xf25baad1 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xf2b3aec7 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf394d275 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3daccbc regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xf3fde6e0 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xf46dee9f set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xf4820902 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4b28cd2 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xf4d9a03d __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xf4e3e93f of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0xf4f275dc ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xf4fad57a find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xf52730f2 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf5487372 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5ec6f77 ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xf662f172 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e0ed7a shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6eee628 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xf73637ea usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xf760bf56 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xf788bacc ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xf78b644e __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xf7bc5c06 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xf7e1ec20 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xf8144752 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf831b8bc platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xf8350fa6 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xf851dee2 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xf87291bd blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf89e1d0b ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xf8a7712b fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xf8abb836 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xf8d034db dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9091ce7 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0xf938ebe4 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xf960d6fa sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9e4e5a0 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xf9f0bafc root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9fff9a3 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa177422 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xfa2cb925 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xfa495da8 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xfa52307a led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xfa532764 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xfa5b3888 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xfa937969 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xfa9dd504 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfadf1e29 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xfaf015e3 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xfafc0c40 ide_pio_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfb0ae424 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfb12d05d inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb5709a4 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb75e6e8 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xfb80effc filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xfba39d1f ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xfbba685e blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xfbea02f8 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc0883fd inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xfc11c591 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xfc391da8 ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xfc43f0ed pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xfc56ca1c raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xfc673aef unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xfcda657d bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xfce70266 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xfd0c4405 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xfd732ae6 css_id +EXPORT_SYMBOL_GPL vmlinux 0xfd885d8c ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0xfdae9c9e fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xfddc524d usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdf575f3 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xfe4e3a27 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xfe565e96 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe99e865 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff4f26e0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff795352 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/amd64/virtual.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/amd64/virtual.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/amd64/generic.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/amd64/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/amd64/server.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/amd64/server.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/amd64/generic +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/amd64/generic @@ -0,0 +1,11632 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x3ddba347 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xbf38da52 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 0x7c5776b8 acpi_video_get_edid +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/atm/suni 0x2776e9a5 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x15313a26 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 0x067aecc7 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x13b124c3 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x233a4968 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x4edb9519 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x5b992fee pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x5e5f2b43 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x713c2de6 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x7e546b1e pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x9010d9b4 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x9841c2b3 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xd589748a pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xf78883ec pi_write_block +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0119151c ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0633f7db ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x069fd9d7 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x22882251 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2fc8be2b ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x33809a4b ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3c02b1a0 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3ea3ef10 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x49ebae00 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x51f4f4d0 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5cfe3605 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5d7d9c91 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6235731d ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7b9829cc ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8a4b9f98 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x99257ca3 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa24e369a ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb86ca169 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc43b6c83 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd03745e9 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd0baf574 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe05ca476 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf5f36adf ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xff6a8f52 ipmi_smi_add_proc_entry +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 0x2dea1b11 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0x6c9feca7 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x8e42fbc2 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0af50ec9 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x18d158a3 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1b1001ea fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2040fc36 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2381a1ea fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x242b2460 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x307289a9 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x37ca4848 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x388813d2 fw_fill_response +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 0x5c635dd1 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8fb49f16 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x93dbdf86 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa63a32c5 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xab7371c5 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaf3c15a1 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd024af40 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd47ff0fa fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd4b20ed1 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd6a93175 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd83d6135 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe091aeba fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe0a9c96d fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfea05e36 fw_core_remove_card +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0201e14b drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0464fdd4 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08b9200b drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09d8f376 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b627116 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b91b7a6 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b9542b9 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d5c2953 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14100e53 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1419ec0c drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1534d22d drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x169fe7db drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19f03b43 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e5bb23b drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f71757d drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1feee5a1 drm_agp_acquire +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 0x21b002aa drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21f45952 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x231d5e72 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x234d0459 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a314b4f drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b24168e drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b58ba8a drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b7cba48 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b939fb6 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ba4ac0e drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c893888 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x303e40a5 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30e177f3 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32e44dff drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36a4814a drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a0cdbcb drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a2fe458 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cfca0c0 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb7aed0 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f062fad drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fc69281 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43467966 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48a667d2 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48da7749 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b2b536f drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bc09a98 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5438c4d2 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x570b2440 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5712ee94 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57d1bd81 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b69532e drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5dc88e8d drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f79807b drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61b756fe drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x639b4da8 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x642ef4c8 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6608aa68 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x683c637a drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69cadde7 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a9834c6 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +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 0x6fe1469b drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x744d2fab drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74be5658 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x752f1013 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x754e0355 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76bce196 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77318021 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77d43ea5 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a24a3f5 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a96f2b8 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b86e430 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bc6520b drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cf21238 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cfe06c5 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e69c2f9 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eae2318 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x810622ac drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81c5a7b9 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81e0c440 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82047f5c drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8266c920 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82925f67 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89c29eb3 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b49d5ea drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b9c9027 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dc235ba drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e3f839e drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f27f527 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x916e1f50 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91733a01 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91b1e878 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d1876f2 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d32a2ba drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa20fecc9 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa248e278 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa333eeab drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa363e01e drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6b4fe58 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9669747 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabe171d4 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7f8c68e drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbfb1ffb drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf2f8241 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2b0f0db drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3e2412e drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5a5115f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6ab38a4 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8acee50 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca2ab066 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca76650d drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca97a8e1 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcae2cfda drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb78fb3e drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc04e069 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd177c465 drm_open +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 0xd60050e4 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd806bfeb drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd981dbf0 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdab48565 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc701878 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf54f764 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe03cf86a drm_mode_config_cleanup +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 0xe2aec621 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe41681bd drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6930898 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe83af4bb drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe95f3b03 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe984085c drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed411ddc drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee045e7d drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeec2ade3 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef3942db drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf02987ec drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0fd493b drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0fe7b52 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf39871be drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf77a5966 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9ac5862 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc79dc9f drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffe6b68e drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08c67d4e drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a8518ce drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x158a8032 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x19af1fd7 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2c8b2019 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x308f31ce drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34028e6a drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x372b5c41 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4b1af55a drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56012eb8 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x61803306 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6583f3eb drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6d2cf7f6 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x83887dd5 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85ce2487 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8c2a0269 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x92cdcb5c drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d324478 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf78ddd8 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb0d65122 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb25999f0 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbd6cd152 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf45268c drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc37f8766 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd4bc4a22 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4f996d8 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfa22ccfd drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfc98cf9f drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe567823 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfff8eddb drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0296a185 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x02e4f5fd ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x05af1fe4 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0680d864 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0718185b ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0864e6f3 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b995bf4 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x10281dd1 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12080f05 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x154a72b7 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16356e22 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a7382fd ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24cfe1aa ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x26a4f9af ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2aecd56c ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f8ba6f0 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32915d02 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x360f2d6a ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36c02730 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3e3a7b60 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x43da6fac ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4528099a ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b3892c3 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4bff8da5 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5abeed8f ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x658d1b25 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88a88f57 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8aa3e0ba ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8c315f0b ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e29981f ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9500015f ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x951eb8e0 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x95a99de2 ttm_bo_clean_mm +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 0x9e9e58c4 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2f44d60 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa46b2c41 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa7e4c98c ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa4fc8a7 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabd993b9 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb00b4629 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb1149fdb ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a78d92 ttm_bo_global_release +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 0xc983b4eb ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xccfc301f ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcd21d384 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4b69ae4 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe79cf055 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf6c31707 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa4decbf ttm_bo_move_memcpy +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 0x5aafbec7 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xee6ab98b i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xa06e03b3 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xcf9b1243 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x3d6e5997 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x9b5afd60 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x2163fd01 rdma_copy_addr +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 0x65314db5 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x09e1df1b ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0f9e03db ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x26472368 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3d3d5445 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4ac6e71a ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4c973317 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x617d4d37 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6929bf6a ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6d0084a7 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x77b89e05 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7d725ddd ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8bda2604 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8eff2c5a ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc6176fdc ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe953bca5 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf2d10e0a ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfdd7e854 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x036676b1 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0486b1c7 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09f58430 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a535809 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c18d79a ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c286970 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10df675c ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x146a1b25 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15af48f3 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a7f0301 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x213e9a92 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c7cad51 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e678d6d ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31208bf5 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3332caca ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3443cb0f ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3901abb4 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39f6f2c5 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44dc4b89 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46e3b2a8 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4fec297d ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x500296c9 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50130c7a ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5134c6f6 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52abc6e0 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5891ea13 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ce1c7e8 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60a2a25a ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x657debd5 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x666569c3 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d88ff14 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e68e192 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ee83ff4 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74e0af83 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75d98ba8 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76a1bceb ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ef6fd03 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e37092a ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b4d7401 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb0d13d81 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb6f709bc ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7ec11bb ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba23eb11 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbc4253dd ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdac31ef ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf08d3ae ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc27fc47b ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc29733ed ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6b906fe ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc81c9844 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8bbc929 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc72a049 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd490077a ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda45fe73 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe266589a ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe58c88ed ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6a9aaa9 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6d7bd87 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeaea2214 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec3345bf ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef45c62a ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5a2c160 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf61b9303 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf77a221c ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb018394 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb7669e4 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbddc041 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0b8d2e99 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0d909910 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x21ea2f0f ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3dd58df8 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4b09f3f3 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4e6d457f ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5ecd69ad ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x71a102f0 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8a754f3d ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb0f45a34 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb40a5d52 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb92c4db6 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x19564db5 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2b97b404 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5cd8e459 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e80c8bc ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa43a1378 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa4caa0a2 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa8e49111 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 0x1f892d38 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2a47fd07 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2b311eb8 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2dd1b9a2 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8ed5b856 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8f80a8e9 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb8fdb66e iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf070ed9d iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0466ecf5 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0817edd3 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1fd96445 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x239e7e0a rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x26473d5f rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3a8c3fda rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3ce2f9c4 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50b0e3e8 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x51b04d3c rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ed4b215 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7c5283f2 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8b9c768b rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9fc78bd0 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbb898b42 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc60fd15c rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd4c2c1d7 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe198956f rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfcc9066f rdma_resolve_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00f67311 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2c34e972 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x678f3731 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6be82992 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x82d1d8ad __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb723995a gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc26b6e1e gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc317df23 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xdebba820 gameport_close +EXPORT_SYMBOL drivers/input/input-polldev 0x13f707ff input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x329467fb input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x5a663b53 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa3a1adda input_free_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x46f0f29d ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x736171c7 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7aea9bfd ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7fcdf948 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x1f82541e cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x2f7e2e36 cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xae28787f cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xc293f274 cma3000_exit +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1b422044 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x302770c5 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x5095b754 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7e65e9c7 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9cf83d2f sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf9c7b36a sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x1c1e4703 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x251bc998 ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x8fe20087 ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xc4ca75b6 ad7879_suspend +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x57f7df6e capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xb3698331 capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x06c4f93e capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2df935ac attach_capi_ctr +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 0x5d26f465 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x866f7f9c capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8b253bd0 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x998646ac capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa57e39c0 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa5a3180e capi_ctr_suspend_output +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 0xbff6dcfd capi_ctr_down +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 0xf6ac3eaf capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x25b6ccc5 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x286a1be3 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x68869e6c b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6d32b2cb avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7545927f b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8319d240 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8c84d25e avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8f19a89b b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9889d85f b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9f70fe2a b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbe354bdf b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcea607aa b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd10afdb5 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdaade422 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe8eb7e52 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x087cd5dd b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3b8e574d t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6cf94b4a b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6d1a3db4 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6e7c57b3 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa645aa5f b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xac0fc651 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xce0024e8 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd7b95c06 b1dmactl_proc_fops +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 0x40f4bf0f proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1fd1e54d mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x23ed6aa2 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x2c04d3e9 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x57adbd56 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x64aae13e mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xd7988d9f 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 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x8429669e 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 0xe227344e 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5dc7c48c isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x6b3ded48 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa7124418 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xb6722323 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xc4ecbfc0 isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x3bb020d1 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa55d110d isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfca57b91 isdn_ppp_unregister_compressor +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 0x009f9891 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0220d95b queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x04bd4fb5 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0f969d15 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2d982f84 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x32c37119 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x38630580 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5168d0be mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x60d9331c recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x66e407bc l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6f081e90 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7bf6c1e8 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x916d2a12 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c8bd171 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa462f08c mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa6ad88e7 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc23f2345 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc54ce32f recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcf152e02 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd4dca5ed recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe5c72b73 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe60bdccb mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +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_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/raid456 0xc401eed4 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xf3209e5b max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x5beae53e mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x42584a67 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xf6800d9f mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x7d1de038 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xb6eb8818 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x128cbedb qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xc48e15ec tda18218_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 0x70b7735b xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xc7b66558 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0265c1ee flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1b4d0ffd flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x261fc87f flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x29051971 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x316b3933 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x317e989b flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x31fee26f flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3971d50f flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ffc1daf flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x52cff10d flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x52db7890 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5d45f149 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x66ac8554 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7cf7a884 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8c048b90 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa822860f flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb2cdf1c3 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe71a8b9c flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xea208c2e flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeffea093 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x048bfa20 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x1fe03ff1 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x26b6406b bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x786fa4c9 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x121e2dca read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1a4d4913 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x59460c55 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9ced9de4 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9ec1eb2c dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa2e5866a dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd488dbab dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe1913744 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xff8cf3ac rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x5405a82d dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x03f50229 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x09141336 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 0x2474d6f2 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f7bdd06 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3702553b dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39f61ddc dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3c64ecc2 dvb_net_init +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 0x6e1fd271 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x709785e9 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x751dd6d1 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 0x7b57f76c dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x852a5138 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e693dc0 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa91afe51 dvb_generic_ioctl +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 0xb1498dd8 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb67d2343 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb7ed5d1a dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc3959c83 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc62a10a5 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd09b2b9d dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd7e4fa4c dvb_dmx_init +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 0xeda5a1b5 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf4abd064 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf6913001 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf99a3da9 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfa524e3f dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0deb7f14 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x53da949e dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x63fe53a0 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x9e7a7e87 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa2cf9ae9 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb5b39e7f dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd2e3d562 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xaf2b36c5 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x02876b12 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x38cbc730 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4513850a dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x536ab65c dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x77a5e798 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x82928d23 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb077dbe8 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb76276e5 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbec4b913 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd9474c82 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe88fb4be dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xae0ee865 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x0ad0d285 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xc81db3a0 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xd96b8d97 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xcfb52c2b cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xb6e096e3 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x6c503974 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x043fbc34 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x35343009 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xb7c18ff0 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x2605aa7c cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x66c72f98 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7286c719 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7bb78d24 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xd65c97f8 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xebb4d4ce dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfa75f495 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3043a84a dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x327cba2b dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4e12ba27 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6126df20 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6ab854ff dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x702734af dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x884a08b9 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9ce28017 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xfd5326bc dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x05a2cb6d dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x3967cb27 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6b97e78e dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9952a745 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xe2842f0f dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf2a66358 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x2db51867 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x673ef284 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x84930593 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xe7d41e2b dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1a550380 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4c49ffef dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x89321793 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9685088a dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa34b9c95 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc32fec8c dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcff1c955 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd7881332 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x22f84a89 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2644838e dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4a87736a dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x60ab38d1 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7b9793f0 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa452ce54 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb484af48 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc06e8c72 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcff2ee7b dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd716d23e dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe78678ef dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x1417fba8 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x2095e657 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x344d08e1 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x40f46539 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xb001a1af ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xcd7a517b dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xb340fc58 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x7b40fc2d isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xdeb0a307 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xb1db7784 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x6c389a84 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x892b1a63 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x4465a5b9 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x829e6c1a lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xcec5a213 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x06478baa lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x831ec246 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xd15e62d8 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x5196a60d mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xe29d226c mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x4d7a9695 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xc5bae84d nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xcd20c946 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x733ddcc8 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xaef7f396 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x70c23c5d s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x723e3e2a s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x09b7764e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x6eaa2ffe s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x7129cc5f s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x2218fdf1 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xcc1de05f sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x1671a968 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x72aacc66 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x09d1fb17 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x82383773 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x67ae8cbb stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x5deff472 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x4044f704 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x2663a111 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x4b30a1c0 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x84234716 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xe274d69d stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xcf0d08ad tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xd0e4544b tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x1c29954c tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xc1bbd9d6 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xcb0274c8 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x9c9166a6 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x2ca68cb3 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x05d7bab4 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x69e67cc5 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x56362b2f tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xb9e92113 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xf78badfa ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xc584981a ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x7dc394f1 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xc4dba775 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x82c26fbe zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x1af8e2f5 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xc831d695 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xe3f6d75f ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2a184247 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x31fcf6f8 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8b3a1549 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x94517f59 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x96f3c5f5 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x97a15936 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe900e405 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xff298df1 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/rc-core 0x6848619a ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xc7025d82 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x81283cc9 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xb7115948 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xe00f160d bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x2a04b8bc btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xabc37e69 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/cx18/cx18 0x0b779fb8 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x1bd650ec cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x3274cb52 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9609212d cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xdb5d7a48 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x13c6d5bb cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x2d53583b cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x17510eec cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1f7a3359 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x4ec05ea0 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +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/cx2341x 0xe58fd5f7 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x2207b006 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xa72b823c vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0aeae1ca cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8890624a cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa40248bf cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb9351230 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xf8f5ed7d cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xfd592d9e cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x03480c82 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x11dfc4db cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x6297dd51 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x6c1cb01a cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8e866a4c cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa3139484 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1b971ffc cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x22ec5bf9 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2ec6f998 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3bab41bc cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3e82f06f cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4500420f cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x53fe5707 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x58d096af cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5bf28d26 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5ece739f cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8f956bd9 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x929f10c7 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xac3c4e3e cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2fa820f cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb379d270 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb92a0bc0 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbc86fdc7 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcc227675 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2da5b4a cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd7555640 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf3834a84 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfd77f819 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xd7a1d8f6 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xf775b662 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x21c378cb gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6de51c42 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x79578c7c gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8e2bea58 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc9b861ee gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xda08028d gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xe4c92e1c gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x09e3ed61 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0e7759f1 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x34444418 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4aefd11f ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6528267e ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x733f6a83 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x87d18b1a ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xabc1a23c ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xace2c84e ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcf7acbae ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe5e37222 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf63e0d03 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x03b299b6 saa7134_pgtable_free +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 0x1b2cd7ff saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x67ed0d60 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7a4ca828 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8a7bbc4f saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x92cce9b0 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xab7032c1 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xce6e8d45 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd8602b69 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe5149a65 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xeb3ebe2f saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xff93a465 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/soc_camera 0x095ed424 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x52a1f1dd soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb87a4cbc soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xf46b9ac6 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 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0xac805426 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf250ccd2 tveeprom_read +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 0x1abb5fd2 v4l2_ctrl_check +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 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 0x6e66658b v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x784f150f v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa4bf0ba4 v4l2_ctrl_query_menu +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-mem2mem 0x0faaed50 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x8253ee52 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xb3cf9369 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xc3601661 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x2df72834 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6034e364 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x96e20e10 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xbcaa9212 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xbd13fc71 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc394ee08 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x003f3320 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x04b300fb v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0c0d274e v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x18f9e9ec video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x1d819743 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x270872f4 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x36d61f8e v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x3a833608 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x48ef711b v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x50f778cf v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x53932b4f v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x53a4bfc5 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x602d409b v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x63cd2811 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x65195b65 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x70cb906e v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x756e3c66 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x78ef4e35 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x78f938bb v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x79d7af2b v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7bc3bebb v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x7ce70213 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x88a1173a v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xa3b83b15 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xa50bcebc v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0xa6667337 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xa8a2eedf v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xb70f869f v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xc45cdd92 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xc60857f8 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xc6357640 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xc8adbcc3 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xd3ff4c30 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xdc0f74e2 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xdf42ad5f v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3fc8f08 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0xea9a63d0 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xfbf2fa9a v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x46a92856 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x57cd6c7c videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x7442c026 videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd6afdbf9 videocodec_unregister +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0805be50 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x113b1fd8 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x17d915f3 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x388b9c63 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7f7e8a1f memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb6a8b4a7 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbe37555a memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcc39bea5 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xde4f475a memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xed52d0f2 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xef107dfa memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfbc2787a memstick_remove_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x03394030 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0533116e mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x09447e97 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2d9f3273 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x31dd7bca mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x46f26643 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x484a1471 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x65701bfd mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x66c2d838 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x712d4c11 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x743b90b6 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74d77491 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7f66d432 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x82ab628c mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x875cbb05 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x957f08c6 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9ab5ad4c mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa2721ab3 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbe5c7516 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0656cd6 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc6a61d38 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcb85c1f7 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce375fcb mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd70dc4f1 mpt_device_driver_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 0xea6d70c2 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf5a141d8 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf65b4c4b mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfd9cbc51 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xff257391 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x010391eb mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0e0faebd mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x166a4a91 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1c960ecc mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28cf1d7e mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x40e05525 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x47c63ff1 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b44ccd3 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4c43455a mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4eb5db26 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4f5f3446 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5c3b1b11 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x62a395b7 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x637c5a07 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x74156022 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x774e435c mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x93c1d009 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x964a54f0 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9845242e mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa80560b4 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbb439486 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbb8d2c5d mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xccab7c6c mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd0de2dd6 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf7372bfb mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfc2fad40 mptscsih_io_done +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0c7dac22 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0f8c1e63 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x12506454 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1b191bb9 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x283118ce i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2933b6d3 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2b44b906 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x340ae691 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3969a9f2 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3fd05fa3 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x54777756 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5d78c5ff i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6a5aef2f i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x869c47b9 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8826fee5 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x927209bd i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x96ccc9a3 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa13f36ba i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa44a4507 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa545bcc2 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xca6a1dea i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0361670 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x09b035e0 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x2d7a4427 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x330ac4a7 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3eddc3cb mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3f506e42 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x67704bf3 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7285b138 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x78684ccd mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7cc1fbcc mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x83a05208 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x86e8960c mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8885f4db mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa056e794 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdf522630 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf956801f mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfd62a59a mc13783_to_mc13xxx +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 0xcd9fdda2 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xdc5215c8 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x26a824c1 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x90cbbbd3 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x5d7c2692 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x8e3710e9 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0e5b38d9 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x2179fd05 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x24a3d55e tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39de3e9d tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x426bc5ed tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x579a024a tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x58472fa2 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x7418dda4 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x8440c6a6 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8f0333ff tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x947aa64b tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xb3abcc5c tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x1f9735da mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1a82bf8d cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xcbe3243b cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd88581c6 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x031be7c7 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb121cf4a do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xce0f9801 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xdec7d1af register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x4461f82d mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xfda098a6 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x46cedd26 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x00bb12de add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x430e6b3d del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x1c70ab3d mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x6699967e mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x1ffc5522 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2022e1cf nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x50f19968 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x9306ab46 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xa11a1c0b nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc93d0322 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf7662ddb nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x394a52a0 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xbf9eadd6 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 0x3816e253 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x56ba36e8 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbb483424 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbc2fb02f onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x0a5bc408 ei_close +EXPORT_SYMBOL drivers/net/8390 0x194d5967 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x4c602b8b __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x60d1c1d1 ei_open +EXPORT_SYMBOL drivers/net/8390 0x8d62fda8 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0xac523e16 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xb1c1d5ad ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xb6fa4427 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xd30f9d53 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xf40873dc NS8390_init +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1c6bf8ec arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x51905027 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5921733f arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x76703aa3 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9d3b3e89 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa7aec01e arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb15eceed arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdd932845 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xebe41a7d arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf61ce56c arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3a956cd1 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x65c7c456 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xdd104fd0 com20020_found +EXPORT_SYMBOL drivers/net/bnx2 0xd4c3cedd bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0xce21c70f bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0xc0e08337 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x08953e91 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x09a72bbf t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x183c0a4d cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1dc820af cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1e46e94d cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x22b898c3 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2502a58a cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6f4eabab t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8b0d60ec t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8d712db2 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa6924260 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb306ab73 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb9d9b0d4 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbc8776d1 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd17aaeb8 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf3142acc cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3bf76b80 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x4f071048 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5983f9b2 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +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 0x98b2c2c3 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa5291353 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaba07d5d cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb3a8fe03 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb5ab86fe cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd3652dde cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe6b0bfcd cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xebec6d9a cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf8b61b6b cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x811e0b97 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x859a588e hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9a34e64e hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe2a1bc5d hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf9a129b7 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2a3d19e3 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x59211eba irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5ad0a9fa sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x69dbc76a sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6bd7c5be sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x74d91b70 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8843d273 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa1d3718c sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc0814992 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd3a8cde1 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/mlx4/mlx4_core 0xf87599b8 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/pppox 0x16c75a8e register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x9334eb9b pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe2916fda pppox_unbind_sock +EXPORT_SYMBOL drivers/net/sungem_phy 0xa9068196 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x418166d7 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4b9959e5 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xab583fc0 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xb7604d2b tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xe319319a 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 0x0c3f2ded alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2492fb62 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6f6f9997 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7b7f8804 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x80652bf2 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9db99be4 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc6e473f0 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc7fe8bbd unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe0c935a7 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf706003c hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf732867b hdlc_close +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x734f8a56 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x1e8fd94f init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x8466f573 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xbc4f234b 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 0x32b3f4e8 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x33a7a793 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6029fdd4 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8cea3942 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x97e097aa ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9dca4170 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb04ab16c ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb9923356 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf6be0557 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfda6a297 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x82cfd903 ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa582c957 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf139db84 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 0x032c7147 ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03366d57 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04162504 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08982842 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x094cdea5 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x094d5a2f ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a3cef98 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a76f234 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x126bac9a ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x141df391 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1721d167 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x172d19a3 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a9f4cfa ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b9813be ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1cb00c5b ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ea634d6 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26e7b6af ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a96db53 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2de3bde3 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f94bfde ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x30f22432 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3216b5e1 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36626a45 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36e631d1 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39a6b9dd ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a6f18a2 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ab121cf ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e2e3e19 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f060395 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f89913a ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x41c3fa9c ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42f43367 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47d0ac19 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48449823 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55409472 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ae5b963 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e1b671e ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61f0780c ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66337a54 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dacc8cc ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e731db8 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e81a3a1 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fa72beb ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fec9544 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73e3c692 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75248fd3 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78eac3ca ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b4dc78e ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e7db95e ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83bdb911 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85b7b012 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a2652bd ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cd7cbf8 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8dd518ad ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8edf0bfa ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ef970bb ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9183e511 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9376fbe1 ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93e52fd9 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f017f55 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa22d06cb ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5802ed6 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa64989de ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7a88d29 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab866268 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb87348ee ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8d288c3 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb97db469 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb99eb8ba ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf871d13 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0ac9fe6 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc94459b5 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdad1645 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdf48280 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdcc65ffe ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1f17621 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3dee933 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7350141 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea55d5ad ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf011f53d ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3c0407d ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4ca8eb9 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4d1c481 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa244aca ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa2dc690 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc8bc756 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/atmel 0x5315efe3 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x6cbe495c stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x73ed9ae6 atmel_open +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00448cb9 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1913c2e2 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1ed03cd0 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2cd91e09 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2d4f79b2 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2e47f2cc hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2ec5269c hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3adabaf9 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x42f3cdd4 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x49eef38b hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4b7826b2 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4c7838b9 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x53c25f64 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x586e3587 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7c7d4b43 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8756db4c hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x879b976b hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9e06ea85 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa5232f97 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaad53c75 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xac395549 hostap_set_encryption +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 0xb57ec2a2 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd0a2dee1 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd1f73d3d hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdab38dd6 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x02b9c31b libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0359bd52 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x043eca0b libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0a8688dd libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0c4f339f libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x12e4b3ef alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x29906a4a libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x59ac4163 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x60826804 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7096676e libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7b3bc30f libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x89572daf libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa6e7f6dc libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb6ab4c17 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc01e3a2a libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd4440222 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd5c13f2d libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdccfb831 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdda9d48b libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf071a905 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf42d74fd libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00f33abd iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01f4caf5 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f8d98d iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0484c8e8 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x06f57e5f iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x089c7e41 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09926a00 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0bfac9eb iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e68e4ba iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0f05eec4 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0fc2ecf3 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x17add02d iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18387546 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1923c5e5 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d58d170 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23d20dee iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x25e9ba4a iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2a08fa0c iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2c51f63e iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ff1de8a iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3388ba20 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35093598 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37789ea7 iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37d6097b iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c5c7d21 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3dc4f7f1 iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x408f385f iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40b41fe7 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41681580 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x437634c8 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4448d175 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a91c523 iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4d218d86 iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4f2dba36 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51ab8720 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x580b9b3b iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ab5d597 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ad4dbe1 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5b334a96 iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x60774702 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x635d9e1c iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x64867668 iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6f1f5002 iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6f3be045 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x70f3285e iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x724c5016 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7395baf7 iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d89771c iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7df60abe iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7e368e07 iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7eddfc5b iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80da1d42 iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x829203be iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x920d75d4 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92aafd32 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92fdd609 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9325ad2c iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x97b75c12 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x993c9a4f iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9d598518 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9fcb6f44 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa207dd4e iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5d57095 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa841f0d3 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa8515023 iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9489ebc iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaed1c272 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf48416e iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf4ea0da iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8a8d788 iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbbe07ee5 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbcf7feca iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc65050ab iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcc0d104d iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd4bbd10 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd057c4d3 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd22ebdde iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2dc71cf iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd31546f2 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3e88213 iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3ecc131 iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd649654a iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd6e8d444 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xddb2f33d iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdf0f1cfc iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe05182f9 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3306eee iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3806a8d iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe4888a53 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7906d10 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea46c629 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec23ab33 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed2a74b3 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2faff6d iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf4bbd7c0 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf6fabd71 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf7a2d2f4 iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfaf00f68 iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc33dfe3 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe6292b0 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1a83ae03 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1f67a8bf orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x31aa0a5b orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4c13aa6d orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x52af022d orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x708313a8 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7122b268 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7b88c4c0 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x870f2e0a orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9341d374 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x95b4757e __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9664b3fa free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb589e9c0 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc6a55ef8 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xebb61b04 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfd8e4644 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0b500d17 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2f35d8aa rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x422d1e2c rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x470ab920 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8855252e rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa53966f4 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaa95683e rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaf352d83 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb6cea591 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe30c478c rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe364a985 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xed944787 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf892569c rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfb4f1383 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfc097073 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/parport/parport 0x025bbc33 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x036db3f2 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x054920fb parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x0d1a6c34 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x10667dcf parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x1e2af2e9 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x4100afe2 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x49c3a3ae parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4a07239b parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x58883013 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x5baa57cd parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x5f293a19 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x6302e80a parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x7a18c721 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xb03b2afd parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xb351e645 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xb47c794c parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xb7a34265 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xba375896 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xbebd8d12 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xbf4a5872 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xc3eb5ed8 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xca842dbd parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xccfb6365 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xd3562753 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xd3941a3d parport_write +EXPORT_SYMBOL drivers/parport/parport 0xe0456619 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xea6e163e parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xf178d4b5 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xf3b802b5 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport_pc 0x158b7cc8 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xb1491a42 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1c59b326 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x28493f88 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3e212c53 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3e236c17 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3f7b2d6d pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x471c28ad pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4dabbbb2 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6503cd86 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6992b205 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7f2b9b34 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x826c48a7 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x93951d3c pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xceeee4e7 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcf72cf5c pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd36da0e0 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd417f3ce pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe2cac79c __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe3a7ebd1 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe6b7fe16 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x473130d6 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5dd976fb pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8918910b pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa227915e pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa5f7c18b pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xba25f2b3 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc7565b34 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdcf21608 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf48b45ee pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe22a2e0 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x44cb2d32 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x927fec5f pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x8362e76b pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xb7f397b7 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xd07ee5ce pps_register_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x63f3d7e0 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7bd217f4 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x815ad90c fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9b74509f fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb32a103a fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe2a8f9a8 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xed2a1050 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x08c4bcc4 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0a24b494 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d963d38 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x10fede60 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15b5ad2b fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x18432c79 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x186ca747 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x19292617 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c11862c fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c3095d5 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x34d0fe9d fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3912eb24 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3ef26028 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f42d8ed fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x438b22cb fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47c3b49e fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x49277151 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c380910 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e582b86 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4eb37d0f fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ecf7a99 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f2c974c fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fe23caa fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x58aafc5e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x59c6e76a fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x65637009 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x679b61a2 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67d291e5 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x681a489a fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d16d11a fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e5c975d fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79e07588 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81d5c38a fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85ee1f37 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa2455d25 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa29f0973 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6207749 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb5975472 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca4d1a2a fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcc522fe4 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xceb623b6 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde0a244e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde34b34e fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0c00174 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe8801727 fc_rport_init +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x92399bfc mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x010fa1ce osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c162621 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0ddaecc1 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x14444b66 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x16edb55b osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x20a9280c osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x23765dc5 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x240f0086 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2a836952 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ad04a39 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x352c1e17 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x469b5827 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4fd2f941 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x683fc2f9 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6e9929aa osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x75a0f09c osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x77ddf264 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7ab434d8 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7fc9c8d0 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e2a0dc5 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x927be575 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97904e3f osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa1e79dc3 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa8b9dce5 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa8c33bf8 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb1297b17 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb515a51a osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf0ab7a3 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc4209eb7 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc74de061 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd915b8ab osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdc506ea1 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf26c2201 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf42c3e9e osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf9327023 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xffd14991 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2c6d2916 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3c37a59b osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5110fc28 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6e1fcc80 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xdea26da1 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe8f94c97 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x01b2ae77 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x22b7ffe2 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x391c4802 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x9d5ff4b1 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 0xf3dd5b33 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xfd970d76 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/raid_class 0x187abb5c raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x3d2cc990 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xdd7926eb raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0057ada7 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1338cfeb fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1b37c8dd fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2934d89b fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4f1ddc8f fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x89e08936 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x99b5258a scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x99f13809 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb1cba251 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc450c26d fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd1ee4631 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xde308267 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xebcb7fc6 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x011e207a sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x079e8dba sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x10b0bc5b sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16837e61 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1c258dba sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x20173d69 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x22db17c6 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2fc77e6a sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3362f432 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4366eaf8 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x446728ec scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4e14844b sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x535436a5 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5d56a160 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x807f24fc sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x92dc30a9 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x93707f5b sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa8d88066 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb019e89a sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbcd8a223 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb13dd9b sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe24399fb scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe415a1fe sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe8bff3b9 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf0971609 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xff8ba97a sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3548da81 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3fad7551 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x81270ebd spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x814e092c spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xba7c53e7 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/ssb/ssb 0x148c0d0b ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x15269e4c ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x18d6620a ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x1ea90701 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x247e6c78 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x422b4fb7 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4dbba0f9 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x567034a8 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x56f07dae ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x5ac850f1 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x65410f81 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x86a097bc ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x8922b07c ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x8eb3d44a ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc58cb687 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xc8588dd1 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xc9388253 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xcdfddcc2 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdf4c601c ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xe2afd35e ssb_device_is_enabled +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x32cdb652 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x35aecc34 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x46f416ea comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x60dc5032 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7093f3ea comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7bedd99e comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x81371b70 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x95b52fde comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x97d552ec comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9a1ee6a7 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xae4f9c82 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xb42a768f comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc5be14d0 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf37b8b5d comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf902d905 comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x175b4caa subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x18a88c01 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x529de8d3 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x86db68c6 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x77ff9279 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xd3b44695 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xecf7a9ab cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x043c038c mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2368b972 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x32b3fc2b mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x454197b4 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4acbc850 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7862b7e6 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7f718ab2 mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x906bafc2 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xbaac401b mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc14d263f mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc7a19a95 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc85d2ef7 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd873e88d mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdeedb42c mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe12f32a6 mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe445bfa1 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe6adf13a mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xea6e3543 mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf61b5b8c mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfa82bac7 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x85ba4466 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xa7fa06fb subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xb6f0ce7c subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xc82f314f subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x8934ab43 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x00480382 comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x48cb2e80 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x4b6fb63b comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x6ae3cd46 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xd9f15391 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xee267902 comedi_close +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x3420cdde cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x4eab4326 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x50379b19 cx25821_risc_databuffer_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 0x8945bcae cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x940ee03a cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xb2034895 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xc9eefa74 cx25821_dev_get +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd699a99a cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x01804e80 go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x0de991a1 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x2efa9b96 go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x5899a1f9 go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x714e5f13 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x7cda9bb8 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xc9e343fd go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xcc7851bb go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe5ac9b11 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x0ae7149e vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xa7536e7c vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdedce636 vmbus_recvpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xf3c40cce vmbus_sendpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xfad3d0a6 hv_cb_utils +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x6d60bad9 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x81137460 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xe4c04b73 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xecb1b524 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00473cc0 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x03e17554 iio_free_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x10ff3a08 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1943b8f1 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x19ce304d iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x26a6a62a iio_alloc_pollfunc +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x28cda366 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2b2ffb05 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3056dcb0 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x38398301 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x40dcb9e5 iio_get_new_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e7b04b2 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x54684ed1 iio_triggered_ring_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x55c1ac69 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6acffff9 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70586624 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x735c274f iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x747a6d6d iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x790075c9 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x82ed8456 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8e865f5b iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x98cf3c31 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9db04e44 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa0d1d0d3 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa9ceb76e iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0ceb1f3 iio_read_ring_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb5c57873 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb8c9b065 iio_triggered_ring_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba008d77 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba21c8a9 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbb2c1732 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbec8b701 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc6d1ab65 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc9b40a41 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcf73823c iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd210b4b7 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd21a28c8 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd2c6cb20 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd7f35934 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe1cef5b6 iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xed8fc9a1 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfa4d0456 iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xffacd657 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x79c77b34 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xdb1925da ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x07a6b03a iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x29c65b86 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x324e3d75 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x375b345c iio_sw_trigger_bh_to_ring +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3e33405a iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x439d999f iio_sw_ring_preenable +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x461fa577 iio_get_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x674ee099 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x782d7cff iio_set_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x86e0e6a1 iio_sw_poll_func_th +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8dd17166 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9ef422d4 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa57b64d4 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xafc029be iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb1136985 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc0d2bc30 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x01eaf087 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0719e957 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0bf1af2d ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0ec3dba8 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10b5b89c ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10d7fc1d ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1ba736bf ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1cd1f4cb Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1fcc7fe2 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x222952c4 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x293bdce7 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2942c7fb ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d7a4877 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x33b701b5 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x34e71a1b ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x360ade47 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3b290f7d ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x402f7c8e ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x418f42c1 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x420263b0 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4236909b ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x442c36eb ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6cdd5daa DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d58ccb8 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6dd37b02 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ede12ed ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x804ec84f ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86abec9c ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f162b8b ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x901446d8 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x915fc61d notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9466bdbb ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x98903799 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d7cbe28 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7fe0a32 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb4d1f13d ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7ee06cd ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb8540355 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb2be866 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcaaad469 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcdf9dcb6 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfbf18fe ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfe2d139 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8babfab ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdbbe4c31 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe06e004c ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4df1a11 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe85046db ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xea718ab1 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed1ca7cf HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf085e4bf ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf157d85e ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff841efa ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffe2562f ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x20e7d40a tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x51c20eef tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x6efc1892 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x0eaa8c82 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x2deee615 usbvideo_TestPattern +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x37e8306b usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x913c3af7 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd707b3f8 usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xf19c07e9 usbvideo_register +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 0x1483855e vme_dma_list_exec +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 0x556be5c6 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x5f6953c7 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x6c28a610 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x75f55bf1 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7e80c2b1 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x91ca1f12 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x966c379a vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x9a2af0f8 vme_dma_list_free +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 0x9de30245 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xa715efa7 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xaeaeeda9 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xb47f6fe2 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xb7ded289 vme_register_driver +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 0xdbd5eccd vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xdc02a88d vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xea35b0b6 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0xff590930 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x07a5b133 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x09c4bd99 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x18be5720 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x1e398c87 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ee8eaf8 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f5cc925 transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x30684f0b core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x316b7176 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x31a066d2 transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/target/target_core_mod 0x332189c8 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x400a55e6 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x423355f0 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x51fbcb9f fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x538954bd transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x539d407a transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x53e671ad transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x585bad18 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x5f768099 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x6827da9b transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x68d2d907 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x691281ab core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x694d5312 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x71ff5d1a sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x768fcc46 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x77cab00d target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x786d418d core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7c9136f8 transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x80b3cfb3 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x85343548 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8c41a245 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x8eb59062 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x934fc0f1 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9af43f65 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9efa5da6 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xa69a3893 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa816dea6 transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xac44d7d7 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xaebd719e transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xb03d8151 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xb0836a8b transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xb2aa1397 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xb575a9ea transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xc06b55b2 transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3375bd9 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc6337cbc sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xcafbce70 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc9c6e8f transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xcdfb7c6e transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd09ba9e5 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf5293c2 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xe480330d core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf75e52ce core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xf7b91e93 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9307b9a transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9446998 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/telephony/ixj 0x8a3d7aa6 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x3e8ac2f7 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xbdd40fb3 phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x90fe359b net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xb1e25787 usb_gadget_probe_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xfab9e2de usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xc5484dba 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 0x1ce1307b usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x352f5b15 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3bdf2a78 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x67365458 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6c293bd2 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x712e94f2 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x78a34ea1 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7bb58d90 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9879e441 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xba5b34bc usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd694b240 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdd2c1613 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdf932afc usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe6d277e2 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf406e7f6 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x22487d34 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x9dc94853 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x57d36e28 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xef0da37d lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x1fec81dd cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x7408ce6a cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x77e828d9 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd67543e7 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x24733fc6 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x43abb866 display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x2f72efb0 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x8c2e1930 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa6fac519 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe657c394 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6336fb1d matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x7e236fc1 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x90410cd4 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc5f52651 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x86df0aff matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xf7d9d94e matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x477d6d8e matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x70da814c matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xef2f2ead matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xf56e2cd7 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x22161f14 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x82dc2e0c matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x63d0adbe matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x94b71691 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa8140a03 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb3c7a926 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd19b6c47 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xa9df29dd mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x3453de9f video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xa6923ee4 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 0x4d7a8f91 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x589dab73 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x5ca7c40c svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x692888c3 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x69579bfc svga_settile +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 0xd919e5e5 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe7265938 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0x26bf6416 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xe7b52381 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xd32fe1fe 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 0x02a708c4 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x3f1e1ee2 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2eec1500 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xcd259025 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xdd6dd1ca w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe070de4f w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x05fcd286 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x1c87d8a9 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x2cde2004 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xe0f9c4a2 w1_unregister_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x063001b3 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x297d7171 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x3391b90a config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x342fcab0 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x3d28f094 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x4168184f configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x5447b232 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x5fe1db1c config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x74e63024 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x912bae03 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x9e7afd58 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xe928a8ae config_group_init +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x09be08ae __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x0d0b2f89 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x19e27906 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x2915a3c7 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x2b957a1d fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x2bc19a93 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x30856cf8 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x33a01ca8 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x341df8bd __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x3f40cce8 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4537d69f __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x4fd3745e __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x56bf9a5a __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x6afbbd3b fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x810131b6 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x92186a2f fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x95491557 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x9a953bba fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x9cec0082 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xa0b63d20 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xb2c147b4 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xcceb3c43 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xd4b0b47b __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xe0fb787f __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xe5f8129d fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xfad832da fscache_check_aux +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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x0edd9c97 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x17cbe0ce qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xa4bb344c qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xdd361f68 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xde4f51ea qtree_write_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 0x225629c8 lc_put +EXPORT_SYMBOL lib/lru_cache 0x2786fb37 lc_del +EXPORT_SYMBOL lib/lru_cache 0x2a2c41a6 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x39824484 lc_find +EXPORT_SYMBOL lib/lru_cache 0x3d03f8a1 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x56e0adec lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x5de6f4a3 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x6c2ed45c lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x95ea7673 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xa85ef365 lc_changed +EXPORT_SYMBOL lib/lru_cache 0xb0d91088 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xbcb216e5 lc_get +EXPORT_SYMBOL lib/lru_cache 0xc9bc2538 lc_set +EXPORT_SYMBOL lib/lru_cache 0xefb447fb lc_create +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0xd79cce6c make_8023_client +EXPORT_SYMBOL net/802/p8023 0xe456aa58 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x07306492 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0x0da48ee6 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x126746ea p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x1dde6ce9 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x22d5d146 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x266714d9 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x274a6bb5 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x289f6384 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x370524cc p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x3a92bcae p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x48fcbfcd p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x4c494e6b p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4f2dc329 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x77d4cf88 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x7f7fd83d p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x8dbe78fd p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x987fdde5 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x9c831e88 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9d075715 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xaf087e90 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xb17be234 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbc205475 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbcbb25f8 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xbeaa1442 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xc3d2c6f9 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xc67ade20 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xc7e418f9 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xcdd698b4 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xd2941e9c p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xd88848d9 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xd9cddc10 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xe3491f3a p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe816a326 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xef406db2 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xfc5ef2c5 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfd0e8e25 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xfed4230a v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xfef2e29f p9_client_rename +EXPORT_SYMBOL net/appletalk/appletalk 0x6efd5695 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xc6a66ce8 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xc6aa0c14 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xcbd580ac atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x24a1450f atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4356ef09 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x5bfd73c6 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x611d2e0c atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x61352608 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x61adf54b atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x65ffa738 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x6618fb48 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x79186226 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 0xb58e2d5e atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xc7262d88 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xd36b1934 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xefd3bb55 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x133aee5a ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2464d0e8 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x50707a3f ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9c739a64 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x9d946210 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xb40e31cd ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcc82b1a3 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe822a198 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xf1ead24d ax25_linkfail_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x23a3acbe hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e29f872 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x33eace84 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x382c7372 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3aa7fa4a bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3e6543c2 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x413c3df3 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x456cea2e bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e7b5658 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f39159f hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x50cdfa43 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5558252c hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b6bce8e hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7224013d hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d54dad9 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a894cd6 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x921923a1 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9b1260be hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9f5b70ed hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa643d2fe bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac9e427e bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb181ad99 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc006b72c hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2c75119 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc3bf3bea bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9c2e0f6 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd08ecf46 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5877ffe hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde400d49 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe62cebf9 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeef09aa8 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf40722f1 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf9c11c73 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xffdb9255 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x82e56019 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x485ce6ef ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc9a13fe3 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf45d5e9d ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x01fed052 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x05118cf5 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x16178a56 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x19722811 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x1b21fcb7 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x1d7f6451 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x2829e735 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x43adacb3 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4c539906 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x4db9f1d6 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x6217b255 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x7022ecd8 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x75395032 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x7df983b1 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x84280576 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x9426d1cd cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x977bebcd cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x98ccb9a2 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x9cd1190b cfpkt_create +EXPORT_SYMBOL net/caif/caif 0xa418b639 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0xba367be0 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xbec21b0e cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xc309c376 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xc5163214 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xce96b81f cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0xd36a5627 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xd828c1be cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xdfbe6aca cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xeb2b3739 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0xef2f24c5 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0xf3ffd853 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/can/can 0x19aa94e1 can_proto_register +EXPORT_SYMBOL net/can/can 0x47d471c9 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x887ff0e5 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x99deb88a can_send +EXPORT_SYMBOL net/can/can 0xbf2ef8eb can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x0276737a ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x0364fd2a ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x068b09f9 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0bd50b93 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x0d495c3e ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x12c1b7b2 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x22b8a98e ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x2a76922c ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x2f70f02a ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x30c89177 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x318aa4b3 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x37091991 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3c11a32a ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x463f0ba3 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x4b945b2b ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x4c5d2f97 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x51b6ad5c ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x53bf955c ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x55947b54 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x57d20e8a ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x5cd578cf ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x62dfed53 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x696ab3ce ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6b4ad9ac ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7a391185 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x7ab9e8ef ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x84fbf597 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x89d92d0e ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x89e07ae1 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x8bc2da06 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x8ead6de6 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x91742005 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x9776544a ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9ff31f88 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa3c2341b ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb44c9456 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xb4bdea7a ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xbe90bbb4 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcaab917e ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xcb695afd ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xcc04edb4 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xcd3a0997 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xce033ea9 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xd64bec4b ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0xd64c0a55 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xe1d0e256 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xe66da465 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xe891b649 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xe9ad20e9 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0xf1d2717b ceph_create_client +EXPORT_SYMBOL net/ieee802154/ieee802154 0x11aea782 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x43e3f32f wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x48cdb336 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x50a1c907 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x543ff289 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x80ba2010 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbdb70fb7 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc4908d28 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc9e8ff40 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd267553a wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd3e77339 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf8a4e812 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf9e6138f wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5ce08f12 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x670d2b6d arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x9968fec7 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x07937d9e ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb33168fc ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xefd88d28 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0023e695 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x375dcabc nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x483b4db8 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4c5c772d nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9c8e0f12 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe7e3c1bb nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xefbd1fd2 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/tunnel4 0x4f66c1db xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xff01fa4c xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x29846df1 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x60a0b67e ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x69512841 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa1e03934 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x24456a4b xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x340d0851 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0eda2360 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xbfbc97a2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5fcb9aa0 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x77f90214 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x90456e29 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa0ba526d ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbbb3449a ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc24c089c ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xee7db5c5 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf5494145 ircomm_data_request +EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x04ce34d8 irlmp_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 0x0a14a9c5 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x0bd65335 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x0edb39a1 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x1572e4bb async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x18c99804 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x1e5da8af irttp_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 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x2c464423 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x2e3035cb irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3e6b7944 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x41ed78c5 irlap_open +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 0x4db64f9d irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x55d13f39 iriap_close +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x686bbe81 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6d1dfb2d irda_notify_init +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 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x937bc99b alloc_irdadev +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 0x997ea70a iriap_open +EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x9b243a16 proc_irda +EXPORT_SYMBOL net/irda/irda 0x9e3ca79d irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa65f6f35 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 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xccdba939 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xd1e7d65f irlap_close +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xddaaa0d3 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe1caef86 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xe41d0562 irttp_open_tsap +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 0xf3628d0a async_unwrap_char +EXPORT_SYMBOL net/l2tp/l2tp_core 0x62b2a31d l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x36a3ee69 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x663db007 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x8b09e676 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x8f2b00df lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xbb3e19a6 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xca755096 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xd657ec58 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xea505d48 lapb_disconnect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x0077ff23 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x0813431f ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x0c8d4479 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x100e7914 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1672a5cb ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x194487a5 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x220ab9ca ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x25bf858e __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x32935dd4 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3e541dd3 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x419e67ed ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x45a64b66 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x471f4df4 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4e5e5753 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x5463a99c ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x55e4cbbf ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x56abd4d2 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x5749e586 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x66662aa2 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x67787873 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x72300a7e ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x80465264 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x811e7e8a ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x8784a311 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9231dde2 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x9c8d2ff2 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x9ef6e3d3 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa09858a3 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xa9b1c022 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xb8460091 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbc7114ba ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xc1e1dbfe ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc341fed3 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc49f9e3e ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc5b355be ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xca34f3e5 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xd4dceb85 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe1fd6a43 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe81da51e rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xedb23f81 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xff484e2a ieee80211_ctstoself_duration +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x001dab18 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3b5599fe ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x53a0bde0 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x577b4a12 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7a984648 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7e0a65ce ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x95d04c7c ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb755f623 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd0c8faa6 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe8432191 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xed8fdbff register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfcb5d54b ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7c328cc4 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7c43f6bd __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xcff206dc nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x81df1027 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x00c521f8 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x128b1701 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x2af6ebc2 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x3b705c5c xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4c8f63bd xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x53cd36a1 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x61646127 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x97be322f xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xcd579bd3 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xd82cd585 xt_register_target +EXPORT_SYMBOL net/phonet/phonet 0x04233646 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x40b49fa2 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x4538cfcd phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x54809b42 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x7a028203 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x95977e11 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xedc02031 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xfddef707 phonet_proto_register +EXPORT_SYMBOL net/rds/rds 0x1c9be661 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0a3516bd rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2f265f2b rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6457793e rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6861a5f0 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6c2804e5 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x99320ed4 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa88f6424 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb3ed2513 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb47ea42a rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb7fa34e2 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc253f3aa rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd335645a rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdad75c7a rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf1a7a51b rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf4c81319 rxrpc_get_null_key +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0244acf2 svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0x563f4a04 xdr_terminate_string +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xf471dd59 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x1d6b40e1 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x1fdd11bb wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x00b68607 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x1063ca0b cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x18e9e879 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x1a7a95fb cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x23bbd3fd __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x2aac6f52 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x2aff39db __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x313283b6 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x3bec6795 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x472c107c cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x4fb9ba75 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x518457c8 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x5e55707f cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x682610a5 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x7512f51d cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x759c0888 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x82501483 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x84e9141e wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x892e1f80 cfg80211_send_disassoc +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 0x9d47ba9f cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xa30070a1 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xa42a4701 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xa62d695a regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xa6b3f051 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xafded65c cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xb156066e ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xb323be81 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xbbdbdb5f cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xbd96dfc5 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xbe3bb4ac wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xbef63e15 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xbf453884 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xc11b2d0a cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc907d00d freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xccbed970 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xd21ebc21 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xd579fc8e cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0xd66268d9 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xdc54f388 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xddd106d9 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xdef85d2b cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xead787c6 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf5f86188 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xfa486d03 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xfb126e1c wiphy_free +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2cd91f68 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x6c3c5f94 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x78e0c56d lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xb005e52a lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xc68924b9 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xe5672598 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe8c124d4 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xec95dfad lib80211_crypt_quiescing +EXPORT_SYMBOL sound/ac97_bus 0x017400da ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x86c03a43 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xaf7290f4 snd_seq_kernel_client_enqueue_blocking +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 0xd4cdfed8 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe7e16f0c snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 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 0x917d1a0e 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 0xeb010e40 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 0x843978fb snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0901c064 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1de64a7c snd_info_register +EXPORT_SYMBOL sound/core/snd 0x1f64c17f snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x2186575b snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x22aa7f30 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x26e9df13 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x28681e18 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x2919422f snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2becef87 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x3676d1bc snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x509b1b0b snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x50cc1821 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x523a7d04 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x560cd515 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x5d7973da snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x6494676b snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x66ba5f70 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x66c9daba snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x69ed7349 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x72496e9d snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x826280dc snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x847bff4a snd_component_add +EXPORT_SYMBOL sound/core/snd 0x87c69816 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x8d59d046 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x931322b3 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x9c5e0586 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x9c84235d 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 0xa27943b2 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xa2935061 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xa3e061fb snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xa44cb81a snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xa5324a32 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xa7d4624a snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xc86dbef7 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xd40b5890 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xd45181d2 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xdf1f8ae1 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xdfd46645 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xe1366af1 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 0xe7b5e022 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xefa6ecdc snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xf4632422 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xfa4b3772 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xfec7d6b8 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xfff98571 snd_cards +EXPORT_SYMBOL sound/core/snd-hwdep 0xae2f76d8 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2669bfad snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x9ca5f359 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb085ec67 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb65b9f10 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf28b353d snd_dma_alloc_pages_fallback +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 0x1064b7b7 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x1265509e snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x136e5d06 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x17d7f9fa snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x20548b75 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x24c6968b snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x2666c96e snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x27d28e91 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x28464870 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3c433da6 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x4a506f70 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x4dbdbad6 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x53818c5f snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x561215d3 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x60d2cc03 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x63286926 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x67ced7e6 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6e346531 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x756ff330 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x7a87653b snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x82681ea1 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x8354ccdf snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x87ea3268 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x8ce22921 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x8dbefeab snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x9462f0c7 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x95699fec snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xa53925e0 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xb912ac07 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbd29da3d snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xbf64b737 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xce2a8776 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd1b8a0d1 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xd43f4f2a snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xd7919d66 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xd8887728 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xd8ed5449 snd_pcm_new_stream +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 0xe8e67d23 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xe982af8f snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf079ffdd snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xf0bb43cc snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfff1533d snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0c02d2dc snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x200b3834 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x26971ed7 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3050ebca snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x45e826b3 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x475379a5 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x55c6e5f9 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5bb91f5a snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x606c9c70 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x60e96dfb snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6fa83e86 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x83a30c3d snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8a3e3542 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb3a2545e snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdfbaaff0 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf0c56030 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf8d8ceca snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-timer 0x0768ebbd snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x11788cfe snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x2120c21e snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x403ee549 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x4d09be82 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x965faf02 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xa14139c4 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xaec9334c snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xccb48ae3 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xe47f9c18 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xef90915f snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xf1fe1d59 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xfe483b99 snd_timer_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xfa14b515 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x348bedde snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x40b0576b snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4d17613f snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6062c9e0 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x63082a14 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8b6eb28b snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd245d503 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd35e242b snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xea233bfc snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2bdae0b9 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x43ce614a snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6d9fffda snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7e997ded snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8cd7a31a 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 0xcef46714 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdbc58ce5 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe1be7751 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfd2ea8b1 snd_vx_dsp_boot +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x35b755e6 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x48758385 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x528cdee3 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc0b8795d snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcc0ca99f snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd64cdfc4 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x06fb851d snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x085b4d20 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5cf2f326 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8e7c7679 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8f6a1edf snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe6c70ff6 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x3c9a96a2 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x573e0090 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x690c31cb snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf4f83ce9 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x2cf874d0 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x80874612 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x5f2d9de6 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xdb84b403 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x75622d00 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x97b7e088 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa94cfc20 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xab4f4e75 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc963ad99 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2dd9f2d2 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x31062bf7 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x383d0fc1 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x65f25948 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xba001619 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc12ae794 snd_i2c_probeaddr +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3330659d snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4c9a5673 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4e48354b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7ab5f966 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa7f73d9f snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb16d2583 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd2fded61 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe02579ba snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe786daa3 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xef61f5f4 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0f8e4b60 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x102423d3 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x312d4463 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1650264b snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x28c0ad3e snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2c6598ca snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2d44c19f snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x39ce0ed1 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3ce713ee snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4ce3610b snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x57a1112e snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x612c9f5d snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x82a230cc snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8d5d6bac snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa034d6ed snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa84fcf46 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc0ba7d8e snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc88b9117 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe485428f snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf938c01a snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xb3ddfb8f hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x252ca64f snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3a9607ee snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3d2b73d1 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x47d506f7 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8eccbeff snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa75d8a56 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc6dfa526 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xcec911af snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe17f3415 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xa4d34df6 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x5662d57e snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x59bb139c snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x63f44164 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0081ed1d oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x08905482 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x11b757e8 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2230cb65 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x233a585a oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3107b6d6 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x61854082 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x68f72c28 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x84e69181 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8cf03537 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9375d098 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x966303a0 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa8d2dff2 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xab9a3612 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xac4d8f35 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xafb37895 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbc28e9ed oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbd3dad7c oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdebb9922 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdff42fcc oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe716cf80 oxygen_read32 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x065c9bfd snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb5985040 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb5a192d5 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc8ab30d9 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf6befe2f snd_trident_alloc_voice +EXPORT_SYMBOL sound/soundcore 0xe9ffb342 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1297667d snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4cb10ee2 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 0x87f125a4 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa191649d snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc0d9fda4 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf33de8ee snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1a51ef19 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x382615ea __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3f0c61e6 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6e9f9676 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x835fb840 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbe25af55 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf22bc230 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf677df0a __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x720b62ad snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x2dee8a78 dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x3712c69f dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x74b1d209 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x84eafe76 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xaa5fff44 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xfbd5ad89 dm_mem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x0034c7b5 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x004219a0 padata_alloc +EXPORT_SYMBOL vmlinux 0x0043dc68 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x0055d067 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00ca829a dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x00de6ad5 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x00f4e199 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0116a579 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x0120f591 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x0125000e cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x01365de5 netif_rx +EXPORT_SYMBOL vmlinux 0x013b5b44 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x015e643a tcp_disconnect +EXPORT_SYMBOL vmlinux 0x0164fbd8 iterate_mounts +EXPORT_SYMBOL vmlinux 0x01680c38 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x0175cba0 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x01826ebe kick_iocb +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01fd0efc tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x02015973 mount_nodev +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02299298 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x02378d6f __lock_page +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023e5686 dquot_enable +EXPORT_SYMBOL vmlinux 0x0247661a cpu_info +EXPORT_SYMBOL vmlinux 0x025ca0e3 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0290131b __rta_fill +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02975f84 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a36185 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02ba832f netdev_warn +EXPORT_SYMBOL vmlinux 0x02c5d459 kthread_stop +EXPORT_SYMBOL vmlinux 0x02cb3412 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x02d1e3ec mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x03022b06 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x031b5ec5 serio_open +EXPORT_SYMBOL vmlinux 0x031d451b create_empty_buffers +EXPORT_SYMBOL vmlinux 0x032043e6 d_invalidate +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03593166 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03874109 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x038d21d9 skb_put +EXPORT_SYMBOL vmlinux 0x03947a8f bio_put +EXPORT_SYMBOL vmlinux 0x039f79a1 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c99ab1 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x03e7b45b blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x03eb9614 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0415ccf9 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042aefcd journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x043b4445 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x043f755d framebuffer_release +EXPORT_SYMBOL vmlinux 0x045c64c3 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x045d628d blk_start_request +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04927208 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x049be481 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x04c2175b tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04e90166 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x051a67a2 sock_release +EXPORT_SYMBOL vmlinux 0x051c2f11 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052f9ff3 icmpv6_send +EXPORT_SYMBOL vmlinux 0x054f7fee tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x0562ce5a dquot_transfer +EXPORT_SYMBOL vmlinux 0x0563ce27 soft_cursor +EXPORT_SYMBOL vmlinux 0x05706ed7 is_container_init +EXPORT_SYMBOL vmlinux 0x05a8a6c2 journal_wipe +EXPORT_SYMBOL vmlinux 0x05c0e1b4 kill_anon_super +EXPORT_SYMBOL vmlinux 0x05e56716 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x05f7ae4b tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x064da1a0 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x066290c5 security_path_truncate +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x067dd79c dentry_unhash +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a44fb5 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06cabfad blk_fetch_request +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06f962bc module_refcount +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07286265 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x076be74d get_super +EXPORT_SYMBOL vmlinux 0x0790a866 elv_add_request +EXPORT_SYMBOL vmlinux 0x07927514 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b792a1 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07edff7e mdiobus_read +EXPORT_SYMBOL vmlinux 0x07fed670 sk_filter +EXPORT_SYMBOL vmlinux 0x08073a04 generic_setlease +EXPORT_SYMBOL vmlinux 0x080927dd skb_queue_tail +EXPORT_SYMBOL vmlinux 0x081db35b pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082fb481 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x08636455 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x086b83ba scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x086e9372 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x088815dc dm_get_device +EXPORT_SYMBOL vmlinux 0x08967aa5 journal_forget +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08a2a747 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x08b740cf vfs_unlink +EXPORT_SYMBOL vmlinux 0x08cd3a27 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08f29fb5 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x091a27f5 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x09469d6b flex_array_shrink +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x0957f063 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x09834c05 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09b46670 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c4b8c0 pipe_lock +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09eb4cc3 cdrom_release +EXPORT_SYMBOL vmlinux 0x0a0ebbed mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a508599 tty_shutdown +EXPORT_SYMBOL vmlinux 0x0a950a93 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x0a966a41 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x0aab6a78 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x0aacd352 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x0ab7b41a override_creds +EXPORT_SYMBOL vmlinux 0x0abdf610 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x0abfa574 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0add7096 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x0aeaa2b2 seq_release +EXPORT_SYMBOL vmlinux 0x0b08c2e5 is_bad_inode +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b13b4b1 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x0b1560a1 wireless_send_event +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b28ad13 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x0b54637a jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x0b65f47b ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b79e1b8 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x0ba73a2f xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x0ba75849 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x0ba77764 mmc_free_host +EXPORT_SYMBOL vmlinux 0x0bae580c xfrm_init_state +EXPORT_SYMBOL vmlinux 0x0bf86865 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x0c1e7c61 dev_add_pack +EXPORT_SYMBOL vmlinux 0x0c2b0a53 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x0c4c4564 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7762d4 load_nls +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cd150e3 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x0cd59c07 vfs_read +EXPORT_SYMBOL vmlinux 0x0cff1d79 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x0d17f240 follow_up +EXPORT_SYMBOL vmlinux 0x0d2050b0 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e17cd50 vfs_getattr +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e748247 phy_attach +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e824d21 path_lookup +EXPORT_SYMBOL vmlinux 0x0e911254 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x0ea9ce93 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0ee4a3ae i2c_verify_client +EXPORT_SYMBOL vmlinux 0x0ee5f68f journal_init_dev +EXPORT_SYMBOL vmlinux 0x0eeccb62 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x0ef716fc pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x0f153df8 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x0f218bca phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x0f22cf38 i2c_use_client +EXPORT_SYMBOL vmlinux 0x0f23bb79 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x0f25d22e tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x0f2c1307 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x0f39d3a1 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x0f4681cf agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x0f5af008 intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0x0f5dc674 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x0f62d3db blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x0f741042 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x0fa7ae72 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x0facdc5a __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc80009 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x0fccd91c skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd0ecc5 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff5cb97 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x10046992 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x101ada37 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x10327857 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107deed1 __free_pages +EXPORT_SYMBOL vmlinux 0x1099bee0 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x10d6747c follow_down_one +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10da41c8 security_inode_permission +EXPORT_SYMBOL vmlinux 0x10dca63a pci_find_capability +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f8b700 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x113883c0 dquot_file_open +EXPORT_SYMBOL vmlinux 0x114fa64f eth_header_cache +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11ab9b7c block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x11bca9e0 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1211455a vm_insert_page +EXPORT_SYMBOL vmlinux 0x12164dd7 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x1235b93e in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x125110b3 ps2_end_command +EXPORT_SYMBOL vmlinux 0x125c5c9d blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x125ea3a4 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x127a373f try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x1296c490 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x129de341 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12c66ae5 sk_dst_check +EXPORT_SYMBOL vmlinux 0x12cad7a2 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x12f22d0b tty_vhangup +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x130a9aca generic_listxattr +EXPORT_SYMBOL vmlinux 0x13301dd2 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x133653ef compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x13657f11 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x13746cfa xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x13786772 mpage_readpages +EXPORT_SYMBOL vmlinux 0x137ea909 do_truncate +EXPORT_SYMBOL vmlinux 0x1397cd08 skb_checksum +EXPORT_SYMBOL vmlinux 0x13b3d064 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13b7eb6a pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x13cdd838 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x13cffaa0 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e2f414 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x13f24db4 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f445ac mmc_host_disable +EXPORT_SYMBOL vmlinux 0x14148766 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x1444f052 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x146f445c unload_nls +EXPORT_SYMBOL vmlinux 0x147c8621 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x14911f1d dcache_readdir +EXPORT_SYMBOL vmlinux 0x14930422 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x149ae190 kthread_create +EXPORT_SYMBOL vmlinux 0x1503d01b inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15695893 search_binary_handler +EXPORT_SYMBOL vmlinux 0x1574c0b9 del_timer +EXPORT_SYMBOL vmlinux 0x15870c45 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x15ba105b jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x15cafec8 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x15cb6e66 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15e839b5 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x1604d50b input_get_keycode +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x162b0b70 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163f2bfe pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x164fb4be qdisc_reset +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x167e9b65 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x168cd32d jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x16ca749d tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x16e0dbc9 sg_miter_start +EXPORT_SYMBOL vmlinux 0x16ffb159 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17148882 vfs_llseek +EXPORT_SYMBOL vmlinux 0x1743ee68 write_cache_pages +EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove +EXPORT_SYMBOL vmlinux 0x178b8ea8 set_pages_wb +EXPORT_SYMBOL vmlinux 0x179e60c1 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x17a5cfab sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x17bf7a48 __sock_create +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f0034a fifo_set_limit +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180db5e8 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x182e5e4c inet_ioctl +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18484f09 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x18520767 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x185fb3c3 netpoll_poll +EXPORT_SYMBOL vmlinux 0x1870763a dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x187b070d __elv_add_request +EXPORT_SYMBOL vmlinux 0x187c542c inet_stream_ops +EXPORT_SYMBOL vmlinux 0x18813603 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x1888ddb5 unregister_console +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18b4b6d1 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18e7b837 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x1919e7dd max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x19221fe0 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x192409fc vfs_mknod +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x193a552f sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x194c4fd5 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x195701c7 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x195d943e bdevname +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x199f4e96 led_brightness_set +EXPORT_SYMBOL vmlinux 0x199f754a i8042_install_filter +EXPORT_SYMBOL vmlinux 0x19a817e7 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19cc1030 mntget +EXPORT_SYMBOL vmlinux 0x19d7198e security_file_mmap +EXPORT_SYMBOL vmlinux 0x19d76acb mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x19e51920 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x19e92440 flex_array_put +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19f5f89a inet_addr_type +EXPORT_SYMBOL vmlinux 0x19f94b0f truncate_setsize +EXPORT_SYMBOL vmlinux 0x1a1b3e0f skb_make_writable +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a4dfb5a dev_disable_lro +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1a96e57f writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x1aa7b200 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1adad386 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x1ae2e5ac __nla_reserve +EXPORT_SYMBOL vmlinux 0x1af0face dquot_alloc +EXPORT_SYMBOL vmlinux 0x1af3967c neigh_for_each +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b03a6b4 console_start +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b7112b1 hex2bin +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b99afa3 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb39e3a journal_flush +EXPORT_SYMBOL vmlinux 0x1bbf5fae dst_discard +EXPORT_SYMBOL vmlinux 0x1c08edd3 nla_put +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c32b740 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x1c377293 set_blocksize +EXPORT_SYMBOL vmlinux 0x1c654f1c mnt_unpin +EXPORT_SYMBOL vmlinux 0x1c6ab0ba lease_modify +EXPORT_SYMBOL vmlinux 0x1c825a9f generic_ro_fops +EXPORT_SYMBOL vmlinux 0x1c8443e0 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x1c8466c8 file_remove_suid +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c8f9fc4 cad_pid +EXPORT_SYMBOL vmlinux 0x1ca8fceb pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cfda2c0 register_qdisc +EXPORT_SYMBOL vmlinux 0x1d144bb3 console_stop +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2aab10 key_alloc +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d4dd4e0 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x1d59e72d dget_parent +EXPORT_SYMBOL vmlinux 0x1d5ba86d nf_setsockopt +EXPORT_SYMBOL vmlinux 0x1d76d0b6 inode_permission +EXPORT_SYMBOL vmlinux 0x1d7b7484 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x1d903c5e dquot_acquire +EXPORT_SYMBOL vmlinux 0x1da41675 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x1da9f9a5 do_SAK +EXPORT_SYMBOL vmlinux 0x1dacd9d4 udp_prot +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1df00563 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x1e03ee9b send_sig +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e34608b radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x1e540db6 skb_unlink +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e892fbd elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea09dfc sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x1ea9fe0d mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x1efda4aa fb_validate_mode +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f2f9892 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x1f37aa1e filp_open +EXPORT_SYMBOL vmlinux 0x1f6fd51b dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x1f8f92b3 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x1f988ab5 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe89960 pci_choose_state +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff6482b rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x1ffe99bf seq_bitmap +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20071f4b buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x200821f4 stop_tty +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x20130555 sock_create_lite +EXPORT_SYMBOL vmlinux 0x20318c27 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x204f3b77 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x205da5bb dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x205fe657 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x20674506 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x206f40da register_exec_domain +EXPORT_SYMBOL vmlinux 0x207070f6 key_link +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20abc15b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x20cc8c48 pci_enable_device +EXPORT_SYMBOL vmlinux 0x20cea88d brioctl_set +EXPORT_SYMBOL vmlinux 0x20d12a0d rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f4e0f7 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x211d6758 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x212386e1 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x212acbea lock_may_write +EXPORT_SYMBOL vmlinux 0x214200d5 km_report +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21600a18 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x2164c5fe insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x217a4d57 pci_map_rom +EXPORT_SYMBOL vmlinux 0x218a07fd input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x219896b2 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x21b52e96 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x21bc3a8c sock_wake_async +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e2006d __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x2201baf3 dcb_setapp +EXPORT_SYMBOL vmlinux 0x22039b8b inet6_bind +EXPORT_SYMBOL vmlinux 0x221fb792 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223d24d2 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2284e9be inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x228583d3 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22897e79 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x229aa21f xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22bd2b67 tty_set_operations +EXPORT_SYMBOL vmlinux 0x22d15347 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x22d37191 netdev_printk +EXPORT_SYMBOL vmlinux 0x230d08fd rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x231b201e radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2357732a lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x23591db0 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x23a115b9 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b99e92 node_states +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23daaf02 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x23eb619a dev_addr_del +EXPORT_SYMBOL vmlinux 0x23f568e8 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x23fb35ec netpoll_print_options +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241774d2 set_pages_nx +EXPORT_SYMBOL vmlinux 0x24245dfe __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x242b197c elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2445a52c tty_write_room +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246acbe4 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x246d17c3 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x24771228 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x248b0fab jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x2527e02b filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x257f5e66 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25b64a20 security_path_link +EXPORT_SYMBOL vmlinux 0x25c09952 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x25c676f2 bdget_disk +EXPORT_SYMBOL vmlinux 0x25cf5f33 input_register_handle +EXPORT_SYMBOL vmlinux 0x25db752c thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x25ecca3b ihold +EXPORT_SYMBOL vmlinux 0x25f98c3f netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x263100e5 migrate_page +EXPORT_SYMBOL vmlinux 0x2636a864 amd_northbridges +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x267c3e15 dev_mc_init +EXPORT_SYMBOL vmlinux 0x267f9356 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x2688b556 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f6efc2 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2758ccc5 skb_append +EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x278ea1cb input_register_handler +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bdd72b __pci_register_driver +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27f31b42 kernel_accept +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2819eb9d llc_sap_close +EXPORT_SYMBOL vmlinux 0x2824a84d loop_register_transfer +EXPORT_SYMBOL vmlinux 0x28323b5b security_path_chmod +EXPORT_SYMBOL vmlinux 0x2842118b __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x28442ee2 blk_get_request +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x287c7065 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28af0535 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x28caeef0 udplite_prot +EXPORT_SYMBOL vmlinux 0x29074dae blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x290a4291 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x29108f22 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x2923335f inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x294e1b54 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295566ce pnp_device_attach +EXPORT_SYMBOL vmlinux 0x29655697 devm_ioremap +EXPORT_SYMBOL vmlinux 0x2979a710 dcb_getapp +EXPORT_SYMBOL vmlinux 0x298e524a dev_mc_flush +EXPORT_SYMBOL vmlinux 0x29924b9f journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29c6f6f5 inet_shutdown +EXPORT_SYMBOL vmlinux 0x29cdda06 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x29d01795 pci_select_bars +EXPORT_SYMBOL vmlinux 0x29d6bc08 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x29d97c1e blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x29dab474 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x29f3c718 sock_i_uid +EXPORT_SYMBOL vmlinux 0x29f5a314 md_check_recovery +EXPORT_SYMBOL vmlinux 0x2a031747 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x2a13c3ce mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x2a16c08e free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x2a1e03d6 generic_fillattr +EXPORT_SYMBOL vmlinux 0x2a1f0dab i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3afc17 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x2a5ef618 blk_make_request +EXPORT_SYMBOL vmlinux 0x2a643b60 phy_detach +EXPORT_SYMBOL vmlinux 0x2a94e2ba skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x2abfd53f ip_route_output_key +EXPORT_SYMBOL vmlinux 0x2abfde94 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x2ad669c3 dev_crit +EXPORT_SYMBOL vmlinux 0x2ad84ef3 dst_release +EXPORT_SYMBOL vmlinux 0x2ae63f72 mnt_pin +EXPORT_SYMBOL vmlinux 0x2aefd651 inet_bind +EXPORT_SYMBOL vmlinux 0x2aefe4ec unregister_netdev +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b2059d1 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b517998 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x2b582f77 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x2b6f1252 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x2b8a7b29 mii_link_ok +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bcbece7 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x2be595d2 bdi_unregister +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c03cca3 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x2c17f0d3 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x2c1e4175 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c3dc1f6 get_agp_version +EXPORT_SYMBOL vmlinux 0x2c4e5a71 dump_trace +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2cbd70a5 vc_cons +EXPORT_SYMBOL vmlinux 0x2cff665e dev_alert +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1cc089 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x2d26eb0e tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d3be0cc tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x2d3e6051 sget +EXPORT_SYMBOL vmlinux 0x2d51de14 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d99b371 fb_get_mode +EXPORT_SYMBOL vmlinux 0x2daa04db starget_for_each_device +EXPORT_SYMBOL vmlinux 0x2db4c99b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x2db676a1 input_unregister_device +EXPORT_SYMBOL vmlinux 0x2dc0b0e4 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2ddc665d radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2de3074e __lookup_one_len +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df369cd d_instantiate +EXPORT_SYMBOL vmlinux 0x2e05d7d8 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x2e0c0958 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e33750f load_nls_default +EXPORT_SYMBOL vmlinux 0x2e37fe00 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e78a847 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x2ee1a9a4 ps2_drain +EXPORT_SYMBOL vmlinux 0x2ef1e4d8 bdget +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f0745ae lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x2f0c9ca6 dev_load +EXPORT_SYMBOL vmlinux 0x2f247ff6 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x2f44f715 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x2f5b5790 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x2f6ad6d7 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x2f6c6d5d register_8022_client +EXPORT_SYMBOL vmlinux 0x2f729486 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x2f99f755 dm_table_event +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fa95e6d mount_pseudo +EXPORT_SYMBOL vmlinux 0x2fb41e0c flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x2fb5eee4 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x2ff0d595 serio_rescan +EXPORT_SYMBOL vmlinux 0x2ffdb06e blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x300b1081 fasync_helper +EXPORT_SYMBOL vmlinux 0x300dd842 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3052fe8a sock_kmalloc +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30844f66 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x3084bd77 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x308f3e5e set_security_override +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30beeca6 dma_supported +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e02db2 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ed80e0 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x30f6d314 __scm_send +EXPORT_SYMBOL vmlinux 0x310aa232 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x31185e82 vfs_write +EXPORT_SYMBOL vmlinux 0x314160b4 try_to_release_page +EXPORT_SYMBOL vmlinux 0x31429f05 mmc_release_host +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315b8f8b find_inode_number +EXPORT_SYMBOL vmlinux 0x316283b3 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x318705ea napi_gro_flush +EXPORT_SYMBOL vmlinux 0x31972e0b intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0x319eda21 bioset_free +EXPORT_SYMBOL vmlinux 0x31a45391 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x31a62d49 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x31b272ab vfs_writev +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31da2995 dm_io +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc +EXPORT_SYMBOL vmlinux 0x321e126f journal_destroy +EXPORT_SYMBOL vmlinux 0x3232d7d4 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x324db078 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x325e8a07 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace +EXPORT_SYMBOL vmlinux 0x32a3a279 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x32a3ece8 mpage_writepages +EXPORT_SYMBOL vmlinux 0x32b93a28 netlink_ack +EXPORT_SYMBOL vmlinux 0x32d59ba7 block_sync_page +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x32debb16 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x33156eaf __scsi_add_device +EXPORT_SYMBOL vmlinux 0x3325f15b del_gendisk +EXPORT_SYMBOL vmlinux 0x334d9029 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x336e96e0 dquot_drop +EXPORT_SYMBOL vmlinux 0x338cc9b6 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x339e6ad5 rfkill_register +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bc571e fddi_type_trans +EXPORT_SYMBOL vmlinux 0x33c0780b get_write_access +EXPORT_SYMBOL vmlinux 0x33cd7937 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33d8c51f pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x33e4cbc6 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x34060ddf tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x3406506e mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x340a2012 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x341cbed2 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x34467db0 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x3460311a read_dev_sector +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x348e82c1 pci_target_state +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b8db2c scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x34d7c363 __serio_register_port +EXPORT_SYMBOL vmlinux 0x34e29676 dquot_commit +EXPORT_SYMBOL vmlinux 0x34f6d2cf neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x34f833bb flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x3523fd72 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x353e770a dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x35693372 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x357571aa scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x3578a626 bio_add_page +EXPORT_SYMBOL vmlinux 0x35a970e1 rename_lock +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35dfceaa ps2_command +EXPORT_SYMBOL vmlinux 0x35fbda4b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361f5df2 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x3628f06c arp_send +EXPORT_SYMBOL vmlinux 0x3648f6a0 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x368af72d textsearch_unregister +EXPORT_SYMBOL vmlinux 0x36931871 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x36b5816a km_state_expired +EXPORT_SYMBOL vmlinux 0x36bdbf48 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x36c4a226 nla_append +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f041d9 bio_free +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x37101c59 vga_get +EXPORT_SYMBOL vmlinux 0x37183a3f journal_set_features +EXPORT_SYMBOL vmlinux 0x371ce32f dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x373c8ec0 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x375cbb46 mpage_writepage +EXPORT_SYMBOL vmlinux 0x3767adc3 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x3781d553 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x37892ab7 dst_destroy +EXPORT_SYMBOL vmlinux 0x37ab0105 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x37b06c1b fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f5f7f9 set_bh_page +EXPORT_SYMBOL vmlinux 0x3816d648 iput +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38358b79 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x3861642a __blk_run_queue +EXPORT_SYMBOL vmlinux 0x3878c064 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x387ff877 get_fs_type +EXPORT_SYMBOL vmlinux 0x38895b59 log_start_commit +EXPORT_SYMBOL vmlinux 0x388e5537 dev_uc_add +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389802cd register_gifconf +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38ec6fff kmem_cache_name +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x38feeeaa key_task_permission +EXPORT_SYMBOL vmlinux 0x390a3ac8 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x39181ff5 dst_alloc +EXPORT_SYMBOL vmlinux 0x3925cced mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x3928efe9 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x3948b9f0 set_page_dirty +EXPORT_SYMBOL vmlinux 0x3954d652 cdrom_open +EXPORT_SYMBOL vmlinux 0x39601f1d key_put +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3986a841 agp_free_memory +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39a24bda __kfree_skb +EXPORT_SYMBOL vmlinux 0x39a38b99 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x39abbb9b inode_set_bytes +EXPORT_SYMBOL vmlinux 0x39ad0bcb tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x39c4428b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x39fdc58b writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a4978a0 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x3a59f04c unbind_con_driver +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a8ce6a4 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ab3fc94 do_splice_from +EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove +EXPORT_SYMBOL vmlinux 0x3b0a87c7 netif_device_detach +EXPORT_SYMBOL vmlinux 0x3b1489a2 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x3b2092f0 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x3b2d7554 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b35aae5 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x3b5b3afe file_permission +EXPORT_SYMBOL vmlinux 0x3ba44fba sk_release_kernel +EXPORT_SYMBOL vmlinux 0x3bc8ff51 vm_map_ram +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3be0ea90 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x3be5a530 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x3c0b4eee __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x3c258ee8 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x3c2b64e7 blk_run_queue +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3006f7 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x3c3e321c dma_set_mask +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c80c1b6 __find_get_block +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cc11985 dev_warn +EXPORT_SYMBOL vmlinux 0x3cde393e register_netdev +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d0be4b3 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x3d1c6059 get_sb_single +EXPORT_SYMBOL vmlinux 0x3d2246fb request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d32adbe iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x3d3aceb2 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x3d546259 sync_blockdev +EXPORT_SYMBOL vmlinux 0x3d7565aa skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da7115e ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0e9b11 pci_dev_get +EXPORT_SYMBOL vmlinux 0x3e244d57 alloc_trdev +EXPORT_SYMBOL vmlinux 0x3e265cf0 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5387e7 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x3e55192f __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x3e604b14 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb0eea7 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x3ec33507 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee649bc machine_to_phys_order +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f1980dd unregister_md_personality +EXPORT_SYMBOL vmlinux 0x3f2fa201 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x3f30c699 replace_mount_options +EXPORT_SYMBOL vmlinux 0x3f341e4b xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f61f66b lookup_hash +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f635a5c __register_chrdev +EXPORT_SYMBOL vmlinux 0x3f63e730 dquot_disable +EXPORT_SYMBOL vmlinux 0x3f6dd24b set_binfmt +EXPORT_SYMBOL vmlinux 0x3f7aba41 iget5_locked +EXPORT_SYMBOL vmlinux 0x3f7b3f96 simple_empty +EXPORT_SYMBOL vmlinux 0x3f8e736e netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x3fa70e21 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fab543a fb_blank +EXPORT_SYMBOL vmlinux 0x3fe405ed md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4012b386 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x403b48e2 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x40506146 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x409d137a md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a50c9a journal_lock_updates +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40b8b295 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x40c67c1c mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x40c72536 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40cac6b4 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d1be45 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x4101382f scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41116dc4 skb_pad +EXPORT_SYMBOL vmlinux 0x41278833 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x412ecf0a phy_connect_direct +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4170e499 bio_split +EXPORT_SYMBOL vmlinux 0x417e5eb2 cdev_init +EXPORT_SYMBOL vmlinux 0x418363a9 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x4187e3fc ip_fragment +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41900c09 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x41a44b7e d_path +EXPORT_SYMBOL vmlinux 0x41bd5e06 nf_register_queue_handler +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 0x424f19e6 dump_seek +EXPORT_SYMBOL vmlinux 0x4252c570 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x42569cb9 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x4296eeca tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429e33f1 pci_bus_type +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42aeb703 blk_free_tags +EXPORT_SYMBOL vmlinux 0x42b1a711 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4304274c journal_update_format +EXPORT_SYMBOL vmlinux 0x430b6d1c pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x430c6a86 vfs_stat +EXPORT_SYMBOL vmlinux 0x4313c455 set_user_nice +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x433f3ca4 blk_plug_device +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437a8975 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x43a34814 blk_unplug +EXPORT_SYMBOL vmlinux 0x43a6a2c9 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x43e5be38 page_put_link +EXPORT_SYMBOL vmlinux 0x43ebe496 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43fb2da1 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x44047274 scsi_host_get +EXPORT_SYMBOL vmlinux 0x440f1e8c journal_release_buffer +EXPORT_SYMBOL vmlinux 0x4433474b sock_wmalloc +EXPORT_SYMBOL vmlinux 0x44473fd8 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x4448702d scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x446008e7 get_phy_device +EXPORT_SYMBOL vmlinux 0x448127aa dm_table_put +EXPORT_SYMBOL vmlinux 0x4484628c seq_open +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b177fe simple_pin_fs +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d3718a dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f6a553 __break_lease +EXPORT_SYMBOL vmlinux 0x451c77e9 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x452ebe86 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x4539ab69 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x45471ce1 vfs_readlink +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x455427d3 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4570b603 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4577096f devm_free_irq +EXPORT_SYMBOL vmlinux 0x45785889 pcim_iomap +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457d0652 idr_remove_all +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45c379c9 generic_write_sync +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x46021abc scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x460e4351 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x461208b3 nf_reinject +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x46595c8a vfs_lstat +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x466eb5d1 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x46790405 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x4714aade ether_setup +EXPORT_SYMBOL vmlinux 0x471feb9d dquot_operations +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x47600e78 ndisc_send_skb +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 0x47b5bb88 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47de10a0 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x47e579e5 dev_mc_del +EXPORT_SYMBOL vmlinux 0x47e5cf5a __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x47e79b9d filemap_fault +EXPORT_SYMBOL vmlinux 0x48082770 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x482e2db7 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x48307cba simple_statfs +EXPORT_SYMBOL vmlinux 0x484560b4 names_cachep +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485f0862 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x4863d0c6 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x487389bf mount_ns +EXPORT_SYMBOL vmlinux 0x487cd0e1 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x48872910 pci_restore_state +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x4898ad4a tty_register_device +EXPORT_SYMBOL vmlinux 0x48f1231c __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x48fa1131 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x490513bc blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x490a3d5b unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x492f65c1 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x493673f7 freeze_bdev +EXPORT_SYMBOL vmlinux 0x4940948a scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x495aec6a mdiobus_register +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4975e3de dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x497fb4f7 tr_type_trans +EXPORT_SYMBOL vmlinux 0x49ae8515 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b9a5a4 elevator_change +EXPORT_SYMBOL vmlinux 0x49b9dfd3 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x49d92c8b nf_register_hook +EXPORT_SYMBOL vmlinux 0x49e3ed73 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x49f1e33f filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x4a03ed0a inet_getname +EXPORT_SYMBOL vmlinux 0x4a05985a free_netdev +EXPORT_SYMBOL vmlinux 0x4a096caf sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x4a149b62 seq_open_private +EXPORT_SYMBOL vmlinux 0x4a32426a blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a38a7a6 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x4a4ba18e scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x4a52776b __serio_register_driver +EXPORT_SYMBOL vmlinux 0x4a5622ce llc_add_pack +EXPORT_SYMBOL vmlinux 0x4a59363b max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x4a6617c2 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x4a9020fa inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ac7bd8e kmem_cache_size +EXPORT_SYMBOL vmlinux 0x4ac8e4ca dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad9e5bc swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b0a275c genl_register_family +EXPORT_SYMBOL vmlinux 0x4b2a5c73 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x4b479954 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x4b5814ef kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x4b786adf dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4b82adff genphy_update_link +EXPORT_SYMBOL vmlinux 0x4b8be33c hippi_type_trans +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc0435f dev_err +EXPORT_SYMBOL vmlinux 0x4bfb3f35 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2ba418 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4e17f7 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c50215e inet_del_protocol +EXPORT_SYMBOL vmlinux 0x4c65269e __f_setown +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd55f37 scsi_add_device +EXPORT_SYMBOL vmlinux 0x4ce472d9 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x4d0ed5d4 unregister_key_type +EXPORT_SYMBOL vmlinux 0x4d2978a6 ll_rw_block +EXPORT_SYMBOL vmlinux 0x4d3627c4 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x4d4f280f dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x4d6ce23e __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x4d8a2f5d balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9ca76a xfrm_register_type +EXPORT_SYMBOL vmlinux 0x4dad062d dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x4daff8a4 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dbf9ee0 sk_wait_data +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4de36069 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e2aa947 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e8be641 register_key_type +EXPORT_SYMBOL vmlinux 0x4eba6bf4 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x4ec4ab77 user_path_at +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4efc232f serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x4efed08a sk_run_filter +EXPORT_SYMBOL vmlinux 0x4f15d78b lock_sock_nested +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f289f63 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x4f2e2afa sk_free +EXPORT_SYMBOL vmlinux 0x4f34b72d alloc_fddidev +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f4c375f simple_transaction_set +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f70e9d0 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4fa573c0 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x4fa7d78c padata_do_parallel +EXPORT_SYMBOL vmlinux 0x4fc5ec42 key_validate +EXPORT_SYMBOL vmlinux 0x4fc5f282 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x4fcf7b49 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe82d1f writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x4ffa75db qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x5018db4d mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x504dd723 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505489db notify_change +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x507a6644 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x50a3e4da __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50c49c10 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x50e9b579 bdi_init +EXPORT_SYMBOL vmlinux 0x50f1ef3b pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x50f3bc24 generic_read_dir +EXPORT_SYMBOL vmlinux 0x510c2535 xz_dec_run +EXPORT_SYMBOL vmlinux 0x510f6a3a i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5139c038 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x51619cf1 d_alloc_name +EXPORT_SYMBOL vmlinux 0x51637772 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x517ea4fd default_llseek +EXPORT_SYMBOL vmlinux 0x518555ff get_phy_id +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51f6bee3 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52047b7b bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x5225ca63 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x5261c814 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x5275ad7c xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x52818c27 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x528b0697 inet_listen +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b0813e simple_write_end +EXPORT_SYMBOL vmlinux 0x52bee688 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x52d4cea3 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52df0a8c dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x5301b777 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x5321a3bb fb_find_mode +EXPORT_SYMBOL vmlinux 0x5322b9f7 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x53274e5f jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x532ba002 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x534645d3 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x5346fd30 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x534dabcb cont_write_begin +EXPORT_SYMBOL vmlinux 0x5359f63c padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c26f1d thaw_process +EXPORT_SYMBOL vmlinux 0x53c35e0a xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x53c86537 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x53d417a1 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x53e1edae tty_port_open +EXPORT_SYMBOL vmlinux 0x53eda548 module_layout +EXPORT_SYMBOL vmlinux 0x53f04062 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x53f18596 padata_free +EXPORT_SYMBOL vmlinux 0x541267b2 blk_register_region +EXPORT_SYMBOL vmlinux 0x5415ab67 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x546bcde4 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x54717d4d set_device_ro +EXPORT_SYMBOL vmlinux 0x547e0a50 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x549c0bb5 md_done_sync +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54d872ba percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x54e5aa96 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x555f670f xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x55799632 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x558efde1 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55ad7140 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x55b8d37c kernel_connect +EXPORT_SYMBOL vmlinux 0x55f68cf2 iget_locked +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 0x561cd5d4 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56539d06 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new +EXPORT_SYMBOL vmlinux 0x568eb8ea scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x56953b63 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x56a6be38 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x56b50bac tcp_sendpage +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cc4e2d consume_skb +EXPORT_SYMBOL vmlinux 0x56d298ca acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x56dd5c70 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x56e3015c pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x56e5ba2a serio_interrupt +EXPORT_SYMBOL vmlinux 0x570252cb get_gendisk +EXPORT_SYMBOL vmlinux 0x5709707c mmc_detect_change +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575cc901 simple_link +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x57973f11 flex_array_get +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57d050dd blk_remove_plug +EXPORT_SYMBOL vmlinux 0x57d8861e proto_register +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e69a3d __bread +EXPORT_SYMBOL vmlinux 0x57edd888 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x57fb9f9f udp_ioctl +EXPORT_SYMBOL vmlinux 0x5800585e scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x58020f08 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x580a6fac new_inode +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5860b732 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x587d57f2 sock_rfree +EXPORT_SYMBOL vmlinux 0x5880d923 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x58877e8c vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x58935cbb gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x58950fb1 inet_frags_init +EXPORT_SYMBOL vmlinux 0x58d559b0 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x58e241b8 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x59024812 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x590c2dc2 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x590cad11 sock_register +EXPORT_SYMBOL vmlinux 0x59205ef9 locks_free_lock +EXPORT_SYMBOL vmlinux 0x592b0f05 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59516f63 __bio_clone +EXPORT_SYMBOL vmlinux 0x5989afc0 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x5993e1d8 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x5995ebf2 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x59e77b49 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x59f1f9ae journal_get_create_access +EXPORT_SYMBOL vmlinux 0x5a22b629 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a325d54 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a3c3302 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a6c4711 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a8b1f1a elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x5a98563a __d_drop +EXPORT_SYMBOL vmlinux 0x5abde9c4 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5b08784a ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x5b126365 _dev_info +EXPORT_SYMBOL vmlinux 0x5b2d88b1 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x5b4628a1 dev_addr_add +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b5b8343 block_write_full_page +EXPORT_SYMBOL vmlinux 0x5b640af3 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x5b69c2ff tty_port_close_end +EXPORT_SYMBOL vmlinux 0x5b73393e elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5baff7fa xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x5bbee9ad simple_unlink +EXPORT_SYMBOL vmlinux 0x5bc0d97b dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x5bc646b5 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x5be37500 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x5bf0b32c sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x5c0b8389 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x5c2d2ed3 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c57bfb4 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x5c693f09 wake_up_process +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5cf12bcc swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x5cfe67c9 netdev_notice +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d25a1d2 simple_rename +EXPORT_SYMBOL vmlinux 0x5d38bffe devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x5d4266ce register_netdevice +EXPORT_SYMBOL vmlinux 0x5d475ee5 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x5d48b233 fd_install +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5da6a32d kernel_sendpage +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dba8214 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get +EXPORT_SYMBOL vmlinux 0x5dccf9a8 I_BDEV +EXPORT_SYMBOL vmlinux 0x5df5fa0c acpi_root_dir +EXPORT_SYMBOL vmlinux 0x5e0157e0 release_firmware +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e2f075d dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ebe5f87 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5ecabfb8 commit_creds +EXPORT_SYMBOL vmlinux 0x5ecf17bd qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ef38c07 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f1e4073 register_framebuffer +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f25ed67 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x5f296ce7 ipv4_specific +EXPORT_SYMBOL vmlinux 0x5f3fc462 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x5f53d531 scsi_init_io +EXPORT_SYMBOL vmlinux 0x5f5cbbee flush_old_exec +EXPORT_SYMBOL vmlinux 0x5f7a50e2 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x5f8b9fad write_one_page +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fc92ccb mutex_trylock +EXPORT_SYMBOL vmlinux 0x5fce52c7 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fd2aa65 scsi_device_put +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 0x6030404d otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x604c61c7 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x6056ec1c block_write_end +EXPORT_SYMBOL vmlinux 0x606f55b8 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x60703881 nonseekable_open +EXPORT_SYMBOL vmlinux 0x607342e8 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x6074308d xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x607ac5aa blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ac34e3 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6133c054 tty_port_init +EXPORT_SYMBOL vmlinux 0x614a5735 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x6166f482 blk_insert_request +EXPORT_SYMBOL vmlinux 0x617cd924 skb_queue_head +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a70a01 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x61a7a6d1 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x61a999f2 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c113d9 get_io_context +EXPORT_SYMBOL vmlinux 0x61cc742d dump_write +EXPORT_SYMBOL vmlinux 0x61f2481b mapping_tagged +EXPORT_SYMBOL vmlinux 0x61f7cd0e phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x6225d527 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x624cb573 elv_rb_del +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x6269e5b3 amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628c15c2 secpath_dup +EXPORT_SYMBOL vmlinux 0x62d1d4ec phy_device_register +EXPORT_SYMBOL vmlinux 0x62d3f69a mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x62eb01ae journal_revoke +EXPORT_SYMBOL vmlinux 0x6306d553 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x63077f5f ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6318de24 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x635d3e09 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x63630f7c unregister_cdrom +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x637f4566 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x63809674 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x639f358e netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x63aff2f7 padata_start +EXPORT_SYMBOL vmlinux 0x63b29d17 __napi_complete +EXPORT_SYMBOL vmlinux 0x63e4d376 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f5b7ff security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640ef455 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x6420437e scsi_print_sense +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6447ab07 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64634217 seq_puts +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64e30c0f pci_get_device +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x65155134 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651e49d4 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6547bea5 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x65961e34 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x6597bca9 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x65a4d2be aio_put_req +EXPORT_SYMBOL vmlinux 0x65a62a0d compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x65b7adef bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f4a591 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x65fafc9a blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x6610a1d9 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x66351f82 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x665977f0 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x6662dec0 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x66875f63 vc_resize +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66cf23b0 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66ecf31f unlock_buffer +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x671c5b98 genphy_suspend +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6733be4a dqget +EXPORT_SYMBOL vmlinux 0x6737ffaf agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x67380b41 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x673e0d81 __netif_schedule +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6759346b wireless_spy_update +EXPORT_SYMBOL vmlinux 0x677a40e5 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c9299a set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x67d0a7be audit_log_format +EXPORT_SYMBOL vmlinux 0x6824e709 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x682e4846 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x6832bf4a bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x6838f1d8 lock_may_read +EXPORT_SYMBOL vmlinux 0x683c9a32 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x68752177 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6894b571 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x68d41682 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x69139f0f tty_unthrottle +EXPORT_SYMBOL vmlinux 0x69189085 dev_open +EXPORT_SYMBOL vmlinux 0x694e15cc register_quota_format +EXPORT_SYMBOL vmlinux 0x6968cb6f md_unregister_thread +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69921202 ida_init +EXPORT_SYMBOL vmlinux 0x699e3414 netdev_features_change +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69a35ee9 kdb_current_task +EXPORT_SYMBOL vmlinux 0x69a98f67 kset_unregister +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69ad5c78 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x69af949e pci_dev_put +EXPORT_SYMBOL vmlinux 0x69bed096 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e5e914 rwsem_wake +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0417bb make_bad_inode +EXPORT_SYMBOL vmlinux 0x6a0842f5 i2c_transfer +EXPORT_SYMBOL vmlinux 0x6a10dc4e kill_fasync +EXPORT_SYMBOL vmlinux 0x6a18774a __blk_end_request +EXPORT_SYMBOL vmlinux 0x6a20bfdf alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ab0d269 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x6ab49e76 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b02ee3b pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x6b06d63a scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b413444 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x6b4aefd5 dev_uc_init +EXPORT_SYMBOL vmlinux 0x6b5a6b6b bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b8a1db6 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x6b950e7a fb_set_cmap +EXPORT_SYMBOL vmlinux 0x6bc19c48 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bcc0182 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x6bd42ad7 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x6bd688f0 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c24fc4f set_pages_x +EXPORT_SYMBOL vmlinux 0x6c28aea9 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c53d497 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x6c5e1f94 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c8af4d2 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x6caa079d genl_unregister_family +EXPORT_SYMBOL vmlinux 0x6cb23252 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x6cbda09a serial8250_register_port +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6d08ab4f md_register_thread +EXPORT_SYMBOL vmlinux 0x6d0a0239 misc_deregister +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d522843 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x6d63d824 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6da9fa0e ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x6db5e9e6 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x6db87c90 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x6dbf042c mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x6dd148ce unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x6dd485cd dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6ddd6f31 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e4bab86 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e8c6f8a atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x6e98189b lock_super +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ebf21f0 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x6f184652 dev_change_flags +EXPORT_SYMBOL vmlinux 0x6f35b46f scsi_target_resume +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f697b61 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x6f6a1e1e release_sock +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f93af28 set_anon_super +EXPORT_SYMBOL vmlinux 0x6fdf5ef0 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ff042f0 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x6ff9861c scsi_execute_req +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x701f6d5f netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x702fdbcf input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70605bc3 bdi_destroy +EXPORT_SYMBOL vmlinux 0x706320fc xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x70690680 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x70828d77 drop_super +EXPORT_SYMBOL vmlinux 0x708b204a invalidate_bdev +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70fcc7dd elv_rb_find +EXPORT_SYMBOL vmlinux 0x71144033 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x71205378 add_timer +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71413c60 input_close_device +EXPORT_SYMBOL vmlinux 0x71430d81 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x714ecf26 devm_iounmap +EXPORT_SYMBOL vmlinux 0x714f8e20 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x715a7afb xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71e89652 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x71eb04df sg_miter_stop +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x71fe1fcd __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x720e2103 __quota_error +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x725cee62 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x7278cfff dma_ops +EXPORT_SYMBOL vmlinux 0x728228d8 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x7285bbce ppp_input +EXPORT_SYMBOL vmlinux 0x728ba114 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x728e5e05 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x729980ea uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c1310b kobject_put +EXPORT_SYMBOL vmlinux 0x72e3c600 pnp_is_active +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7301be63 __invalidate_device +EXPORT_SYMBOL vmlinux 0x73453abb pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x734959c3 ip_options_compile +EXPORT_SYMBOL vmlinux 0x73580a1a arp_find +EXPORT_SYMBOL vmlinux 0x735943c7 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x737f27cf softnet_data +EXPORT_SYMBOL vmlinux 0x7381ffbb flex_array_clear +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x739b2408 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73aa3dba sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x73b83756 bmap +EXPORT_SYMBOL vmlinux 0x73e6e178 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x741bbf87 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x74541d66 request_key +EXPORT_SYMBOL vmlinux 0x74773c07 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a7102f __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cb31fd file_update_time +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74e36ec1 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x75078bad tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x7522f779 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x75780230 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x7587ff16 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x758f1987 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x759bff11 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75c48cbc devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x75c49d46 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x75c82104 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x75f5073d simple_setattr +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x7603ba4f destroy_EII_client +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x762570b9 agp_enable +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764b804a scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765226ef tty_driver_kref_put +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 0x76a79628 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76ea7a14 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x7704abd9 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x776e8f7c rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x77787b26 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a2284c input_set_keycode +EXPORT_SYMBOL vmlinux 0x77aecfde ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d3de5b __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x77dbc4a6 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e5306c audit_log_start +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77f5de2c sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x780b07ac pci_disable_device +EXPORT_SYMBOL vmlinux 0x780c4046 netlink_set_err +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x78371144 km_query +EXPORT_SYMBOL vmlinux 0x783bbb98 dns_query +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x7887662d generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x78ad8b16 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x78d30154 ht_create_irq +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e6e6d5 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7921af74 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x794b84dd key_negate_and_link +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x798ade4a mutex_unlock +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b115b8 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x7a08fc79 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x7a1e26dd task_nice +EXPORT_SYMBOL vmlinux 0x7a242093 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x7a250108 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a41cb0b sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a940b75 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x7a95413b pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x7abd0352 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x7ac1964a sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x7addf193 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x7ae3bf16 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x7ae65b24 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b06f984 end_page_writeback +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b189cca dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x7b2132e7 dquot_destroy +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b928292 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x7b966e9e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x7b97e646 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7ba171cc prepare_creds +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c072631 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c65e9ec block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9440c7 tcp_connect +EXPORT_SYMBOL vmlinux 0x7c9eae0a km_policy_expired +EXPORT_SYMBOL vmlinux 0x7ca6bc35 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cb06376 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cbb6609 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x7cc1f17b set_create_files_as +EXPORT_SYMBOL vmlinux 0x7cd3512d acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x7ce94405 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x7cf5493e tc_classify_compat +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d212166 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x7d260bc9 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x7d2f3325 blkdev_get +EXPORT_SYMBOL vmlinux 0x7d3efbaf kill_block_super +EXPORT_SYMBOL vmlinux 0x7d4e3202 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x7d64f12f bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7da8856d napi_complete +EXPORT_SYMBOL vmlinux 0x7db64dec deny_write_access +EXPORT_SYMBOL vmlinux 0x7dba3cb2 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x7dbf107d vfs_readv +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7de9aeb7 register_console +EXPORT_SYMBOL vmlinux 0x7dee8d55 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x7e0edae9 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x7e1aad72 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x7e216182 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e66262d blkdev_put +EXPORT_SYMBOL vmlinux 0x7e751188 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x7e78b794 find_vma +EXPORT_SYMBOL vmlinux 0x7e8ab131 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x7e902011 put_tty_driver +EXPORT_SYMBOL vmlinux 0x7e9ab66c security_file_permission +EXPORT_SYMBOL vmlinux 0x7e9d5db6 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eaf7ff2 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ed14e14 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x7ee1a790 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x7ee45d3b skb_seq_read +EXPORT_SYMBOL vmlinux 0x7ee6b68f agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x7ef2e3cd bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f12e2ba tty_port_put +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2bacc7 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x7f4ff45e textsearch_prepare +EXPORT_SYMBOL vmlinux 0x7f5009fb journal_dirty_data +EXPORT_SYMBOL vmlinux 0x7f711350 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x7faf710e tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x7fbd89c8 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x7fc152b9 input_release_device +EXPORT_SYMBOL vmlinux 0x80150856 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x802095a7 vga_tryget +EXPORT_SYMBOL vmlinux 0x802ad980 address_space_init_once +EXPORT_SYMBOL vmlinux 0x8034e10e ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x803f90d7 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x805485ab __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x8060d76d inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x807bde17 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x80856756 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x80a0e576 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x80a47179 open_exec +EXPORT_SYMBOL vmlinux 0x812283cc locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x81293e45 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x812aaf29 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x812bf204 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x812c8ad5 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x812db4f2 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x813df710 tty_register_driver +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x81498aa0 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815d3a1e phy_stop +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x81a0a9ef genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81fee4e4 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x821841b4 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x82295182 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x82302cce lock_fb_info +EXPORT_SYMBOL vmlinux 0x824bd978 scsi_put_command +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8251e8f0 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82a0cfb6 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x82a5cc9c jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b4879b xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x82c5d257 sk_alloc +EXPORT_SYMBOL vmlinux 0x82d0e329 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x82d80a38 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x82db71eb eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x82df136f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x82e24db6 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82f47576 phy_disconnect +EXPORT_SYMBOL vmlinux 0x82fd9171 dev_uc_del +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x83484a3f alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x8388f5e8 tty_devnum +EXPORT_SYMBOL vmlinux 0x839010f0 da903x_query_status +EXPORT_SYMBOL vmlinux 0x8394f01b pci_disable_msix +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8409b888 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x84342e18 kfree_skb +EXPORT_SYMBOL vmlinux 0x843ac742 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x844da606 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x844dbc18 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x8468b300 revalidate_disk +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84c431dd linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x84d6768a security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x84eaaa12 tcp_child_process +EXPORT_SYMBOL vmlinux 0x8527d9fb skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x852ea7f5 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x85635c30 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8567626f lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x8580520e input_allocate_device +EXPORT_SYMBOL vmlinux 0x8586358e vga_client_register +EXPORT_SYMBOL vmlinux 0x858d79f1 setup_new_exec +EXPORT_SYMBOL vmlinux 0x85a919ee aio_complete +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85d14347 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x85d8280a thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85fa7fea ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x8617627d pci_release_region +EXPORT_SYMBOL vmlinux 0x8633f9de log_wait_commit +EXPORT_SYMBOL vmlinux 0x86379971 block_read_full_page +EXPORT_SYMBOL vmlinux 0x86474c2a compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866dd004 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a1a671 dev_addr_init +EXPORT_SYMBOL vmlinux 0x86bb9678 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86cc630a bio_map_kern +EXPORT_SYMBOL vmlinux 0x86daf416 __pagevec_release +EXPORT_SYMBOL vmlinux 0x86dce477 revert_creds +EXPORT_SYMBOL vmlinux 0x86e93fb0 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87453e54 do_munmap +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x877ce9a3 phy_find_first +EXPORT_SYMBOL vmlinux 0x877faf9f d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x8786f8d7 __scm_destroy +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x879ce707 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x879d0c28 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87bb2248 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x87c37864 xrlim_allow +EXPORT_SYMBOL vmlinux 0x87c44148 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x87c58a96 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x87c9ef77 d_delete +EXPORT_SYMBOL vmlinux 0x87e66c11 xfrm_input +EXPORT_SYMBOL vmlinux 0x880360de blk_stop_queue +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881748bf send_sig_info +EXPORT_SYMBOL vmlinux 0x8833bc7e __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x88343961 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x8852c89b unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8864359f generic_unplug_device +EXPORT_SYMBOL vmlinux 0x88734991 serio_reconnect +EXPORT_SYMBOL vmlinux 0x887bbb74 con_is_bound +EXPORT_SYMBOL vmlinux 0x888e6174 __alloc_skb +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88965bcc journal_extend +EXPORT_SYMBOL vmlinux 0x88b71ecc dm_table_get +EXPORT_SYMBOL vmlinux 0x88baeb35 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x88ffe52a blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x89075cba scsi_host_put +EXPORT_SYMBOL vmlinux 0x8913a89e scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x891ff781 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x892b464b copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x8951a58b do_sync_read +EXPORT_SYMBOL vmlinux 0x8952b095 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x8970eeeb bio_clone +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89c765cb jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a207811 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x8a49033f ilookup +EXPORT_SYMBOL vmlinux 0x8a536c3d unregister_filesystem +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a819b0e unlock_rename +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aab3174 generic_write_end +EXPORT_SYMBOL vmlinux 0x8aacbc0a journal_restart +EXPORT_SYMBOL vmlinux 0x8aacca55 poll_initwait +EXPORT_SYMBOL vmlinux 0x8ac90928 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x8ad98045 sock_no_poll +EXPORT_SYMBOL vmlinux 0x8af149bd uart_get_divisor +EXPORT_SYMBOL vmlinux 0x8b017c86 netif_napi_add +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1bb51a netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x8b238da6 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43ce93 bio_pair_release +EXPORT_SYMBOL vmlinux 0x8b5424f5 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x8b5495b6 sock_update_classid +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b64d82c input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x8b6d3133 nobh_writepage +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b94a02a iw_handler_get_spy +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 0x8bda2f9b arp_xmit +EXPORT_SYMBOL vmlinux 0x8be5e37b dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x8c0b9b06 tcf_register_action +EXPORT_SYMBOL vmlinux 0x8c0ec1ce pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x8c134660 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1cf3bc xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x8c1e0d2f swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x8c2619f3 unlock_page +EXPORT_SYMBOL vmlinux 0x8c422879 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x8c699059 journal_stop +EXPORT_SYMBOL vmlinux 0x8c6b8747 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x8c73bdeb iget_failed +EXPORT_SYMBOL vmlinux 0x8cb4814d dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x8cbba096 read_cache_pages +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cccb756 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8cd30e4a xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8d29db46 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d751f89 scsi_print_result +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8dadeb21 pci_find_bus +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dcf8411 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x8dd11ddb __breadahead +EXPORT_SYMBOL vmlinux 0x8de64c65 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e0ed3a4 mii_check_link +EXPORT_SYMBOL vmlinux 0x8e134b90 generic_write_checks +EXPORT_SYMBOL vmlinux 0x8e2486f1 input_free_device +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb13557 journal_ack_err +EXPORT_SYMBOL vmlinux 0x8ec5819c kern_path +EXPORT_SYMBOL vmlinux 0x8ed37ee5 datagram_poll +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ee75bb8 check_disk_change +EXPORT_SYMBOL vmlinux 0x8eea8fbe padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x8ef4f5c6 arp_invalidate +EXPORT_SYMBOL vmlinux 0x8f1854df kobject_set_name +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f5d1c80 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x8f6a33ba d_genocide +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f87a629 set_trace_device +EXPORT_SYMBOL vmlinux 0x8f8b7233 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x8f934404 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x8f9a7020 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa2d19e swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x8fae11bd sk_stream_error +EXPORT_SYMBOL vmlinux 0x8fbde03d netlink_broadcast +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9010c02c dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x9032ad68 mmc_request_done +EXPORT_SYMBOL vmlinux 0x9034225d pci_iomap +EXPORT_SYMBOL vmlinux 0x903e3bfb blk_start_queue +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x904f90c3 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x9076da53 __page_symlink +EXPORT_SYMBOL vmlinux 0x9080666f scsi_ioctl +EXPORT_SYMBOL vmlinux 0x90813c4e unregister_nls +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x911736d5 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x913a208d put_mnt_ns +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9156bcea blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy +EXPORT_SYMBOL vmlinux 0x91f6c959 generic_removexattr +EXPORT_SYMBOL vmlinux 0x91f812f5 dm_put_device +EXPORT_SYMBOL vmlinux 0x9203332d framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x920ceac6 netdev_set_master +EXPORT_SYMBOL vmlinux 0x921788af set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923c5e67 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x9261068f vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x928504c7 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x9290ea69 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x929dab7d sock_map_fd +EXPORT_SYMBOL vmlinux 0x92ae0e84 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x92d1306a agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x92e1587e inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x92eb729a blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x92f762b2 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x9301564c cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930be844 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x9314cf5b simple_transaction_release +EXPORT_SYMBOL vmlinux 0x931713b9 keyring_clear +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x934c776c lease_get_mtime +EXPORT_SYMBOL vmlinux 0x9357b09e gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x93621074 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x936aec08 d_move +EXPORT_SYMBOL vmlinux 0x9383ebc2 may_umount +EXPORT_SYMBOL vmlinux 0x939339aa pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x93a3184c sg_miter_next +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0x93ae4fd3 blk_end_request +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93cee978 d_validate +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940625c9 netdev_emerg +EXPORT_SYMBOL vmlinux 0x942361a7 vfs_rename +EXPORT_SYMBOL vmlinux 0x9431d891 sock_no_connect +EXPORT_SYMBOL vmlinux 0x944ae8c8 sock_create +EXPORT_SYMBOL vmlinux 0x94502b16 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x945e5298 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x948f91b3 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x948fdbd1 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a62349 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94e2f440 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x951566a3 i2c_release_client +EXPORT_SYMBOL vmlinux 0x951a713b sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9549acc5 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95520240 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x9556a2f9 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x9598ac23 dm_snap_cow +EXPORT_SYMBOL vmlinux 0x959ef8f8 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x95ada093 generic_writepages +EXPORT_SYMBOL vmlinux 0x95bf5539 mb_cache_create +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d6ee85 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x95e28739 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x95ff55e4 init_task +EXPORT_SYMBOL vmlinux 0x9600d002 sock_create_kern +EXPORT_SYMBOL vmlinux 0x9607dd4b tty_port_close +EXPORT_SYMBOL vmlinux 0x960a044e acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x961f127f __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x9638d040 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x96497726 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x964ed0f0 journal_errno +EXPORT_SYMBOL vmlinux 0x965c14dd scsi_device_get +EXPORT_SYMBOL vmlinux 0x9661af39 simple_getattr +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x9678101a vfs_fsync +EXPORT_SYMBOL vmlinux 0x968f45d5 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x969c0f35 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x96cb7b33 neigh_lookup +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96db749e swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x96f44a25 bio_map_user +EXPORT_SYMBOL vmlinux 0x96fdb4fb ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x9731236a pnp_register_driver +EXPORT_SYMBOL vmlinux 0x973d71a7 sock_init_data +EXPORT_SYMBOL vmlinux 0x974cc6ec pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975c2d07 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x97607293 vfs_link +EXPORT_SYMBOL vmlinux 0x977f6f28 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x97ab0dba blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x97bb7e00 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f36c31 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next +EXPORT_SYMBOL vmlinux 0x980cc5dd tcp_check_req +EXPORT_SYMBOL vmlinux 0x98140b8f fget +EXPORT_SYMBOL vmlinux 0x9831e9e4 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x98446668 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x984c05ad netdev_info +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x987d474b noop_qdisc +EXPORT_SYMBOL vmlinux 0x98882e25 tty_check_change +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989cc00d nf_hook_slow +EXPORT_SYMBOL vmlinux 0x98b6038a register_sysctl_table +EXPORT_SYMBOL vmlinux 0x98bcf9b6 inode_init_owner +EXPORT_SYMBOL vmlinux 0x991b1392 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x992dbf17 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9968f060 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x9972b8d3 skb_push +EXPORT_SYMBOL vmlinux 0x9973e46a km_state_notify +EXPORT_SYMBOL vmlinux 0x99766fa8 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999b38d8 cpu_sysdev_class +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 0x99d387ee put_io_context +EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99f585ab dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x9a01ffe8 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a4f1a78 prepare_binprm +EXPORT_SYMBOL vmlinux 0x9a67220c register_cdrom +EXPORT_SYMBOL vmlinux 0x9a69805d abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x9a69838b ip_defrag +EXPORT_SYMBOL vmlinux 0x9a892303 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x9a913f2a tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9b167fef add_disk +EXPORT_SYMBOL vmlinux 0x9b1fca90 dentry_open +EXPORT_SYMBOL vmlinux 0x9b2cadc9 inode_init_always +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b3c720d con_copy_unimap +EXPORT_SYMBOL vmlinux 0x9b3de3c9 __brelse +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b73750d inode_needs_sync +EXPORT_SYMBOL vmlinux 0x9b7dcbff blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bcf1208 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x9be38f1f try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x9be4e76a intel_gtt_get +EXPORT_SYMBOL vmlinux 0x9bf14703 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c379f16 dquot_initialize +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4b7467 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x9c60de5f should_remove_suid +EXPORT_SYMBOL vmlinux 0x9c9c75a2 blk_put_request +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb84528 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce508ed compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x9cf1d29b generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x9cf553ac jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above +EXPORT_SYMBOL vmlinux 0x9d1f1c78 blk_init_tags +EXPORT_SYMBOL vmlinux 0x9d205b8c ip_setsockopt +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d530836 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x9d61e5f6 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x9daf2eac dm_register_target +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dc932cf mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x9dca9dfc skb_recycle_check +EXPORT_SYMBOL vmlinux 0x9de56190 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x9dfe17c1 simple_release_fs +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e10b621 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x9e1bdc28 init_timer_key +EXPORT_SYMBOL vmlinux 0x9e231a66 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e3b0467 set_irq_chip +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e69ebe2 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x9e6aaaf1 mntput +EXPORT_SYMBOL vmlinux 0x9e747665 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x9e75236b sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e809fc4 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9edbecae snprintf +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f1d904c simple_lookup +EXPORT_SYMBOL vmlinux 0x9f25a076 neigh_create +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f4039b6 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f8661d3 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f93f414 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x9f9748df invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fadd7de dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x9fc4b178 generic_make_request +EXPORT_SYMBOL vmlinux 0x9fd049cb locks_init_lock +EXPORT_SYMBOL vmlinux 0x9fd0d8f4 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x9fd24230 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe59632 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0x9ff60363 dev_get_stats +EXPORT_SYMBOL vmlinux 0x9ffd228a skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x9ffd700b skb_split +EXPORT_SYMBOL vmlinux 0xa005e044 radix_tree_delete +EXPORT_SYMBOL vmlinux 0xa023a6c4 give_up_console +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa05e98de i2c_clients_command +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa094d346 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0bd558e start_tty +EXPORT_SYMBOL vmlinux 0xa0c7742d install_exec_creds +EXPORT_SYMBOL vmlinux 0xa0c9426e security_path_chown +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0faaf7c dma_pool_free +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +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 0xa13935d4 generic_show_options +EXPORT_SYMBOL vmlinux 0xa14249a3 get_user_pages +EXPORT_SYMBOL vmlinux 0xa14adf1d i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xa14d05e7 skb_insert +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1777a1e sock_no_listen +EXPORT_SYMBOL vmlinux 0xa17c5940 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xa196ee47 elv_rb_add +EXPORT_SYMBOL vmlinux 0xa1a63c67 module_put +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c090a4 sync_inode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1ec8f1c __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2889d4c scsi_free_command +EXPORT_SYMBOL vmlinux 0xa29d1b0d pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2c96f6b generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xa2d0c849 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xa2d8cea0 simple_rmdir +EXPORT_SYMBOL vmlinux 0xa2dbb156 dqput +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa3277ac1 i2c_smbus_write_byte_data +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 0xa3546393 complete_request_key +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37843a8 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xa37ccd53 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xa37d4e55 filp_close +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3f57fe0 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xa40837f8 rt6_lookup +EXPORT_SYMBOL vmlinux 0xa4201afb sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xa423a2be mount_single +EXPORT_SYMBOL vmlinux 0xa42a832c pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xa432f45b mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa45cbefe neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xa46438d0 security_path_symlink +EXPORT_SYMBOL vmlinux 0xa4698543 padata_stop +EXPORT_SYMBOL vmlinux 0xa46fe867 neigh_table_init +EXPORT_SYMBOL vmlinux 0xa4733c47 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xa47f3531 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xa48f8394 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xa4a7963f vfs_statfs +EXPORT_SYMBOL vmlinux 0xa4a90bf6 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xa4ad34cc tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bf0727 cdev_del +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa50dba69 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa50e7d15 fput +EXPORT_SYMBOL vmlinux 0xa510c2bb scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xa536d224 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xa54a1832 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xa550ebcc vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xa552cb3d blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa56f604b tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xa5761dcb scsi_block_requests +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a086df tc_classify +EXPORT_SYMBOL vmlinux 0xa5a39a0b netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xa5cb0d22 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xa5e1ad49 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xa5e3aec9 dev_emerg +EXPORT_SYMBOL vmlinux 0xa5e4f65c __next_cpu_nr +EXPORT_SYMBOL vmlinux 0xa60e5b83 neigh_destroy +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa675b4d8 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6856b77 scsi_print_command +EXPORT_SYMBOL vmlinux 0xa6859098 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6a5f43b page_readlink +EXPORT_SYMBOL vmlinux 0xa6d4049a inet_accept +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e54470 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xa6f46039 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71377e1 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa7162421 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xa725bddf scsi_unregister +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa746f001 set_disk_ro +EXPORT_SYMBOL vmlinux 0xa75308d5 nobh_write_end +EXPORT_SYMBOL vmlinux 0xa78b0f5d serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xa7bdadd4 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xa7c7e73b ps2_init +EXPORT_SYMBOL vmlinux 0xa7e7338e __ip_select_ident +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa82d8259 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xa8645a5d iunique +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa899f75f remove_proc_entry +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8e99475 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xa8fa5ce5 touch_atime +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa90ef6f6 inode_change_ok +EXPORT_SYMBOL vmlinux 0xa9184ec1 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa91e3b34 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xa921a1d7 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xa95d3745 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xa96a35f5 pnp_device_detach +EXPORT_SYMBOL vmlinux 0xa97cbdc7 skb_trim +EXPORT_SYMBOL vmlinux 0xa99fdfea mii_nway_restart +EXPORT_SYMBOL vmlinux 0xa9a47b64 dma_find_channel +EXPORT_SYMBOL vmlinux 0xa9b8d91f inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xa9b9a904 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c1b627 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xa9d6f34e __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa9dc8e00 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xa9dd9a98 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xa9e35da0 genphy_read_status +EXPORT_SYMBOL vmlinux 0xa9ed6f96 freeze_super +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xaa3d5efc xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xaa40ec58 inet_put_port +EXPORT_SYMBOL vmlinux 0xaa4c8212 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xaa4dae26 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xaa5197e6 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xaa54d402 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xaa591460 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa973445 pci_match_id +EXPORT_SYMBOL vmlinux 0xaace38f6 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xaad0cb40 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xaadfc8be create_mnt_ns +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaed38e0 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xaaef55a1 abx500_register_ops +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab05b28e read_cache_page_async +EXPORT_SYMBOL vmlinux 0xab099b96 netif_skb_features +EXPORT_SYMBOL vmlinux 0xab1731c8 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0xab2a1d20 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xab482688 free_task +EXPORT_SYMBOL vmlinux 0xab55e5da agp_create_memory +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65a646 kernel_listen +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab664632 agp_generic_enable +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab9428b5 __lock_buffer +EXPORT_SYMBOL vmlinux 0xab9efa94 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xaba196be set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabae875c kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xabc81fd8 scsi_execute +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabda15f8 vmap +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac22042a ip6_xmit +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac851487 md_write_end +EXPORT_SYMBOL vmlinux 0xacb593f6 input_reset_device +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace74691 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xacf3ea4c make_EII_client +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad1dfca1 led_blink_set +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad27c98e blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xad2b8fcf scsi_register_interface +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad70e0fb bio_integrity_split +EXPORT_SYMBOL vmlinux 0xad83a086 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xad8d2c5b create_proc_entry +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadae65d0 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xadb72e5f fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xadbfd419 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0xadca769f llc_sap_open +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xae068d68 pci_get_slot +EXPORT_SYMBOL vmlinux 0xae1e6f90 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xae3a64de alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xae42f8c3 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xae473815 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae8ed2a4 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xae99d86b d_find_alias +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeaecdc7 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xaeb7e240 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xaee3c9a0 dev_trans_start +EXPORT_SYMBOL vmlinux 0xaee86afa misc_register +EXPORT_SYMBOL vmlinux 0xaefbf810 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xaf0dadc9 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xaf12a90d mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xaf19475f blk_init_queue +EXPORT_SYMBOL vmlinux 0xaf38c069 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf3e8a25 pipe_unlock +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf6bc2d6 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf9914cf journal_create +EXPORT_SYMBOL vmlinux 0xafb87032 security_path_rename +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafd9ef79 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb0070ac0 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb0116580 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xb0562c98 dev_get_flags +EXPORT_SYMBOL vmlinux 0xb068eaac inet_sendmsg +EXPORT_SYMBOL vmlinux 0xb0860354 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xb090b3cb zero_fill_bio +EXPORT_SYMBOL vmlinux 0xb099d816 arp_tbl +EXPORT_SYMBOL vmlinux 0xb0a61245 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xb0a8fd0a intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xb0b04f0b skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d7e9fa bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xb0d91ea6 netdev_crit +EXPORT_SYMBOL vmlinux 0xb0df7d74 kobject_del +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e1b807 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xb0eb61e3 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xb0eeea82 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xb0f85d80 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11a0551 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xb11a8e13 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1221311 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xb129b2a5 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xb1357937 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb184081a block_commit_write +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1be4e67 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1f77723 poll_freewait +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb2157ea9 bdev_read_only +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb21d105d seq_release_private +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb23a8938 neigh_update +EXPORT_SYMBOL vmlinux 0xb2409aeb account_page_writeback +EXPORT_SYMBOL vmlinux 0xb24e7c57 request_key_async +EXPORT_SYMBOL vmlinux 0xb252d15c get_sb_bdev +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2a7a62b dev_uc_flush +EXPORT_SYMBOL vmlinux 0xb2b0d772 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0xb2b9987b nf_log_unregister +EXPORT_SYMBOL vmlinux 0xb2dd1659 key_type_keyring +EXPORT_SYMBOL vmlinux 0xb2e9a3f2 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xb2ee7068 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new +EXPORT_SYMBOL vmlinux 0xb2fcfbbc fb_pan_display +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb30c0b9a follow_down +EXPORT_SYMBOL vmlinux 0xb30d8db7 vfs_readdir +EXPORT_SYMBOL vmlinux 0xb318a109 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb3386f83 kill_pgrp +EXPORT_SYMBOL vmlinux 0xb349e4a2 block_truncate_page +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb35fad24 eth_header_parse +EXPORT_SYMBOL vmlinux 0xb3600af9 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xb3885bc3 fb_set_var +EXPORT_SYMBOL vmlinux 0xb3a23f84 kthread_bind +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb3c35fa1 vfs_symlink +EXPORT_SYMBOL vmlinux 0xb3da387f phy_print_status +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb41e6498 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb424339e bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xb42d460c journal_force_commit +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb4448b9c __inet6_hash +EXPORT_SYMBOL vmlinux 0xb4625dba netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb49831ce block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xb49ad9b6 posix_lock_file +EXPORT_SYMBOL vmlinux 0xb4ad4766 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xb4c26693 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xb4d40dca sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xb4dc0029 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5149de1 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb59ac7f7 release_pages +EXPORT_SYMBOL vmlinux 0xb59d9279 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d37a61 kstat +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5da1121 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xb5dc9f34 register_nls +EXPORT_SYMBOL vmlinux 0xb5e9d718 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xb5fafd2b default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0xb60da43a i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xb610775c agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb62f771b mmc_can_erase +EXPORT_SYMBOL vmlinux 0xb6418260 input_inject_event +EXPORT_SYMBOL vmlinux 0xb642cce2 do_splice_to +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d9567e elv_queue_empty +EXPORT_SYMBOL vmlinux 0xb6da9fcd account_page_dirtied +EXPORT_SYMBOL vmlinux 0xb6ddf410 inode_lock +EXPORT_SYMBOL vmlinux 0xb74f63f8 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb77c61aa mddev_congested +EXPORT_SYMBOL vmlinux 0xb77f65c8 netlink_unicast +EXPORT_SYMBOL vmlinux 0xb78943cb kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xb7b9febb __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7c76f77 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xb7c992b9 x86_hyper +EXPORT_SYMBOL vmlinux 0xb7e03ea0 ppp_input_error +EXPORT_SYMBOL vmlinux 0xb7e126c2 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xb7e41ce3 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xb7ec0e49 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xb827d234 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xb82b1142 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xb8309a59 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xb83d98fe udp_poll +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8a9fe59 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb9054578 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb90b551c pci_scan_slot +EXPORT_SYMBOL vmlinux 0xb90ba1f3 kill_pid +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb914373f phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xb9249d16 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb93912ba skb_queue_purge +EXPORT_SYMBOL vmlinux 0xb94993e7 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xb9608e9d sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xb96680f0 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xb971f4b1 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb999dec4 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xb9b377dd vmtruncate +EXPORT_SYMBOL vmlinux 0xb9e154e4 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0xb9e3686e add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9ee7a15 posix_test_lock +EXPORT_SYMBOL vmlinux 0xb9f698d5 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xb9f8fbd9 read_cache_page +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xb9ffb95a neigh_compat_output +EXPORT_SYMBOL vmlinux 0xba01e6aa dm_table_get_md +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba37cafc netif_napi_del +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba533458 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xba66affe kmalloc_caches +EXPORT_SYMBOL vmlinux 0xba99b2a8 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xba9ab163 agp_bridge +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbaf84a55 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xbb146836 alloc_disk +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb474e3c journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb86b702 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbba23cb0 cpu_core_map +EXPORT_SYMBOL vmlinux 0xbbac4bd4 d_lookup +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbc27e88 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc4f96a2 icmp_send +EXPORT_SYMBOL vmlinux 0xbc5e2677 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xbcabaf1c journal_check_used_features +EXPORT_SYMBOL vmlinux 0xbcaf3579 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbce2ae33 blk_peek_request +EXPORT_SYMBOL vmlinux 0xbd100793 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xbd55d210 bdput +EXPORT_SYMBOL vmlinux 0xbd7c86ff ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xbd9dc6c5 mount_bdev +EXPORT_SYMBOL vmlinux 0xbda9253a phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbde7757e xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe1dcdae inet_csk_accept +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe366045 fb_show_logo +EXPORT_SYMBOL vmlinux 0xbe62e2ff phy_start +EXPORT_SYMBOL vmlinux 0xbe68eac3 write_inode_now +EXPORT_SYMBOL vmlinux 0xbeb82eae xfrm_register_km +EXPORT_SYMBOL vmlinux 0xbecc6a7a scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xbed49ffc sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef69cb8 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xbeffc52e truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xbf1eadc0 inet_release +EXPORT_SYMBOL vmlinux 0xbf415e6a udp_disconnect +EXPORT_SYMBOL vmlinux 0xbf652dda mdiobus_free +EXPORT_SYMBOL vmlinux 0xbf7d298c pci_request_region +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8a3aef __getblk +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf981f80 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfba8a8b pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe3e35b agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc00b2549 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xc02b3ea8 follow_pfn +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0585ea0 backlight_force_update +EXPORT_SYMBOL vmlinux 0xc071d368 llc_sap_find +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0d84022 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xc0dcb856 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xc0e2434c dcache_dir_close +EXPORT_SYMBOL vmlinux 0xc0f66601 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xc0ff2359 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xc100cc3b inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xc124070a dquot_scan_active +EXPORT_SYMBOL vmlinux 0xc1268644 idr_init +EXPORT_SYMBOL vmlinux 0xc13c0810 sock_no_accept +EXPORT_SYMBOL vmlinux 0xc14558f6 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xc1525f67 ilookup5 +EXPORT_SYMBOL vmlinux 0xc1587ae9 netif_device_attach +EXPORT_SYMBOL vmlinux 0xc17d0ea7 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xc1a0a64c bd_set_size +EXPORT_SYMBOL vmlinux 0xc1a4a7dd pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c43d94 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xc1cd08e4 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xc1d7d179 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc1ded65c __mutex_init +EXPORT_SYMBOL vmlinux 0xc1f3ea27 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0xc20efbd9 udp_proc_register +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc289f8d4 mmc_host_enable +EXPORT_SYMBOL vmlinux 0xc2902a60 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xc2a8499f inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xc2b06306 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xc2b1f82a skb_pull +EXPORT_SYMBOL vmlinux 0xc2cd7c5c pci_clear_master +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e87443 scsi_get_command +EXPORT_SYMBOL vmlinux 0xc2ec9fc7 setattr_copy +EXPORT_SYMBOL vmlinux 0xc33ad83a do_sync_write +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc39fd7b1 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3c3d3c0 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xc3c869b3 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xc3d19163 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xc3f16e12 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc407d1a0 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xc4306319 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xc44e02cc kobject_init +EXPORT_SYMBOL vmlinux 0xc46c0288 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0xc471382c mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49c56ba i2c_del_driver +EXPORT_SYMBOL vmlinux 0xc49e66fb dev_addr_flush +EXPORT_SYMBOL vmlinux 0xc4b65b91 tty_free_termios +EXPORT_SYMBOL vmlinux 0xc4dd93df inet_recvmsg +EXPORT_SYMBOL vmlinux 0xc4e0800f dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xc5025b7e generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xc5175b86 journal_start_commit +EXPORT_SYMBOL vmlinux 0xc52d1cd9 dev_notice +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc54403c4 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc5c60743 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0xc5d2da2e d_rehash +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc604c986 vga_put +EXPORT_SYMBOL vmlinux 0xc61794fb kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xc61ad893 km_policy_notify +EXPORT_SYMBOL vmlinux 0xc620e919 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc631c20f gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc66a3eab scsi_register +EXPORT_SYMBOL vmlinux 0xc68447c7 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc70cc499 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73f6f56 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc754aad3 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xc754c18b acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xc75cba60 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xc777878e __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xc788844d jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xc78c0f23 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b8992b wait_iff_congested +EXPORT_SYMBOL vmlinux 0xc80b073a path_put +EXPORT_SYMBOL vmlinux 0xc82c7d39 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85d16f9 input_flush_device +EXPORT_SYMBOL vmlinux 0xc864f8ea journal_init_inode +EXPORT_SYMBOL vmlinux 0xc868fc7f __dst_free +EXPORT_SYMBOL vmlinux 0xc86a6174 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xc88a9d9b gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a44d78 first_ec +EXPORT_SYMBOL vmlinux 0xc8ac0b2e key_unlink +EXPORT_SYMBOL vmlinux 0xc8b5168b phy_connect +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c23154 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xc925961c bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xc9492130 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc960a999 dquot_resume +EXPORT_SYMBOL vmlinux 0xc9853c3b sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xc98551dc neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xc99d9639 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xc9a418e6 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9e7617c vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xc9f13750 free_buffer_head +EXPORT_SYMBOL vmlinux 0xc9f3fb70 request_firmware +EXPORT_SYMBOL vmlinux 0xc9f88e3d agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xca43239b md_integrity_register +EXPORT_SYMBOL vmlinux 0xca46a2d6 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xca562938 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8ba896 tty_throttle +EXPORT_SYMBOL vmlinux 0xca92f550 inet6_getname +EXPORT_SYMBOL vmlinux 0xcaa8151d netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xcaaaa815 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xcab3424b journal_load +EXPORT_SYMBOL vmlinux 0xcab9223d acpi_device_hid +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcad38bbb agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xcb15f4a6 journal_abort +EXPORT_SYMBOL vmlinux 0xcb294422 bio_endio +EXPORT_SYMBOL vmlinux 0xcb47bf8d deactivate_super +EXPORT_SYMBOL vmlinux 0xcb485813 f_setown +EXPORT_SYMBOL vmlinux 0xcb520584 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xcb601d0e skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb9502a7 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xcbabae2d sk_common_release +EXPORT_SYMBOL vmlinux 0xcbbb9c58 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbe71745 filemap_flush +EXPORT_SYMBOL vmlinux 0xcbeab504 d_splice_alias +EXPORT_SYMBOL vmlinux 0xcbfaebe2 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4126be generic_getxattr +EXPORT_SYMBOL vmlinux 0xcc45a7c2 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xcc49220b padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xcc4b0d38 uart_match_port +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc72cea2 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcca87ecc pci_save_state +EXPORT_SYMBOL vmlinux 0xccae1557 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xcceb78d3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xccfd4cc3 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xccfdf8d4 mii_check_media +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2cefe8 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xcd4692b1 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcd50cad9 elevator_init +EXPORT_SYMBOL vmlinux 0xcd539e62 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xcd58a9fd jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xcd73d545 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0xcd783456 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xcd783a1e udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xcd82afb5 alloc_file +EXPORT_SYMBOL vmlinux 0xcd896a53 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xcdc2218f napi_get_frags +EXPORT_SYMBOL vmlinux 0xcdf6a829 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xce095088 mod_timer +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce28b9ae sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xce427684 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce60ca0d __dquot_transfer +EXPORT_SYMBOL vmlinux 0xce8c6dcd pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xceb025bc __ht_create_irq +EXPORT_SYMBOL vmlinux 0xceb7b1bc i2c_master_send +EXPORT_SYMBOL vmlinux 0xceccf67c xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xcecef285 flex_array_free +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf182584 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf20509e lro_flush_all +EXPORT_SYMBOL vmlinux 0xcf298a6d scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xcf37c5fa serio_unregister_port +EXPORT_SYMBOL vmlinux 0xcf3a053b ppp_channel_index +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd6d83b wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xcfdaf013 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xcfdcea41 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xcfdd88a6 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcff5783a input_unregister_handle +EXPORT_SYMBOL vmlinux 0xcff8caa4 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xcff98576 find_or_create_page +EXPORT_SYMBOL vmlinux 0xd001f21f sock_i_ino +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd03f27ce submit_bio +EXPORT_SYMBOL vmlinux 0xd069cac9 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08d5e97 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b0524c d_drop +EXPORT_SYMBOL vmlinux 0xd0b803cd registered_fb +EXPORT_SYMBOL vmlinux 0xd0cdc101 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xd0d0aa72 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fd29b9 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd131d83a thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1522eb7 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xd1653172 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1c0cb51 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xd1eeebd4 register_con_driver +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd20488c6 noop_llseek +EXPORT_SYMBOL vmlinux 0xd2145650 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd2194d7e sock_no_bind +EXPORT_SYMBOL vmlinux 0xd22a41d5 generic_setxattr +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd2476792 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2549966 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd267c4df mdiobus_write +EXPORT_SYMBOL vmlinux 0xd26a239d max8998_update_reg +EXPORT_SYMBOL vmlinux 0xd2779e61 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd280eac3 dev_gro_receive +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2b035da genphy_resume +EXPORT_SYMBOL vmlinux 0xd2b1e466 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xd2d3372d generic_readlink +EXPORT_SYMBOL vmlinux 0xd2d975b8 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xd3097533 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xd3235911 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xd324cb7c fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xd329d3bf eth_header +EXPORT_SYMBOL vmlinux 0xd32de6af single_release +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3381e01 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd3587a01 thaw_super +EXPORT_SYMBOL vmlinux 0xd35b5a93 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3857acc nf_afinfo +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd39f5748 seq_printf +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3c3bea8 lock_rename +EXPORT_SYMBOL vmlinux 0xd3d23aae register_md_personality +EXPORT_SYMBOL vmlinux 0xd3ef3413 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xd3fcf5c1 skb_set_dev +EXPORT_SYMBOL vmlinux 0xd4369424 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xd43763aa abort_creds +EXPORT_SYMBOL vmlinux 0xd447cea6 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd4b2afc1 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xd4b56fdd input_open_device +EXPORT_SYMBOL vmlinux 0xd4bee92b inet6_ioctl +EXPORT_SYMBOL vmlinux 0xd4e40c5a md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xd4e4aef2 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xd5060081 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c09603 flush_signals +EXPORT_SYMBOL vmlinux 0xd5c2cecf invalidate_partition +EXPORT_SYMBOL vmlinux 0xd5e3aeae tcp_prot +EXPORT_SYMBOL vmlinux 0xd5e78098 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63c9d04 seq_putc +EXPORT_SYMBOL vmlinux 0xd662734b __put_cred +EXPORT_SYMBOL vmlinux 0xd6759586 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xd676ff3a inet_select_addr +EXPORT_SYMBOL vmlinux 0xd6b2ade7 proto_unregister +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6cc92ad dev_uc_sync +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f5b08d neigh_connected_output +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd728ebf2 mutex_lock +EXPORT_SYMBOL vmlinux 0xd7418c6a inode_init_once +EXPORT_SYMBOL vmlinux 0xd74ae482 get_disk +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd76ae670 skb_clone +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd78f6745 dma_pool_create +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7c9ae32 noop_fsync +EXPORT_SYMBOL vmlinux 0xd7d0f222 pci_request_regions +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e36da1 find_lock_page +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd821342a save_mount_options +EXPORT_SYMBOL vmlinux 0xd821b38f netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xd83c7304 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xd841ac99 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xd858b499 user_revoke +EXPORT_SYMBOL vmlinux 0xd87f114e skb_dequeue +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8abcba9 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xd8b799d9 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xd8ca8dfa register_filesystem +EXPORT_SYMBOL vmlinux 0xd8d21eb8 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xd8e005d0 pci_release_regions +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f48f75 d_add_ci +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd9473459 lookup_one_len +EXPORT_SYMBOL vmlinux 0xd954ccb7 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xd958fb2b sk_receive_skb +EXPORT_SYMBOL vmlinux 0xd9793f83 __block_write_begin +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd992091a rtnl_create_link +EXPORT_SYMBOL vmlinux 0xd9a9158d xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xd9b27b05 bioset_create +EXPORT_SYMBOL vmlinux 0xd9c922b7 eth_type_trans +EXPORT_SYMBOL vmlinux 0xd9fa22e7 phy_device_free +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0b678d seq_read +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2203d8 kernel_bind +EXPORT_SYMBOL vmlinux 0xda2a0b24 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xda2f8e9c generic_permission +EXPORT_SYMBOL vmlinux 0xda300a7d bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xda41e447 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xda45d50f i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xda54ed2d generic_delete_inode +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda893c5e dquot_release +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda9be12f register_snap_client +EXPORT_SYMBOL vmlinux 0xdabce9e8 page_symlink +EXPORT_SYMBOL vmlinux 0xdad06400 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xdadb906b tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xdadf993f __xfrm_lookup +EXPORT_SYMBOL vmlinux 0xdae35d34 update_region +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb13f182 pci_pme_active +EXPORT_SYMBOL vmlinux 0xdb185e7b __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xdb2c287a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xdb3136a6 uart_register_driver +EXPORT_SYMBOL vmlinux 0xdb5c2320 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb71256a sk_reset_timer +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb96a890 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xdbb1353a mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbdcb480 node_data +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 0xdc331494 processors +EXPORT_SYMBOL vmlinux 0xdc3d8813 kill_litter_super +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4578ef find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xdc491b16 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc8629fc tty_mutex +EXPORT_SYMBOL vmlinux 0xdc8c77fe radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xdc916ecd backlight_device_register +EXPORT_SYMBOL vmlinux 0xdca21799 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb4488b phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xdcc81893 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xdce4142f vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xdd05a5a0 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xdd257d0b page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xdd2f4484 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xdd472d37 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xdd4c2a9b eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xdd5be96d blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xdd6ead51 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xdd71289c alloc_disk_node +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd7e1115 sock_wfree +EXPORT_SYMBOL vmlinux 0xdd83d867 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xdd843561 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xdd96fde6 blk_complete_request +EXPORT_SYMBOL vmlinux 0xddb64b40 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xddbb15f6 path_get +EXPORT_SYMBOL vmlinux 0xddc6baca journal_start +EXPORT_SYMBOL vmlinux 0xddd7041c input_register_device +EXPORT_SYMBOL vmlinux 0xddef371c proc_create_data +EXPORT_SYMBOL vmlinux 0xddf5f718 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xddfade5a unlock_super +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde0f5357 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde1786b7 tcp_close +EXPORT_SYMBOL vmlinux 0xde1bd94f force_sig +EXPORT_SYMBOL vmlinux 0xde1d318c mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xde1e2abd pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xde26e34f mmc_erase +EXPORT_SYMBOL vmlinux 0xde320a90 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xde464c0f scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xde4a6cb5 mpage_readpage +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde8faf7e set_groups +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea753fa skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xdee4642c textsearch_register +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf3f4007 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf64aae5 journal_clear_err +EXPORT_SYMBOL vmlinux 0xdf688759 keyring_search +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf8f11f8 input_set_capability +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfb1676d inode_get_bytes +EXPORT_SYMBOL vmlinux 0xdfb565d2 dput +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd3a7af dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xdfe0d71e tty_name +EXPORT_SYMBOL vmlinux 0xdff49c5f km_new_mapping +EXPORT_SYMBOL vmlinux 0xdff5422d ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xdffbafa9 netdev_err +EXPORT_SYMBOL vmlinux 0xe0483483 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xe04fdce5 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xe0533e8e agp_copy_info +EXPORT_SYMBOL vmlinux 0xe05a3662 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xe06e4199 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe09a1393 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0bee25f may_umount_tree +EXPORT_SYMBOL vmlinux 0xe0f903c9 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xe0fa1fbc pci_iounmap +EXPORT_SYMBOL vmlinux 0xe108e076 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xe112da04 security_path_unlink +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1278889 pci_get_class +EXPORT_SYMBOL vmlinux 0xe12e8423 arp_create +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1423843 c1e_detected +EXPORT_SYMBOL vmlinux 0xe1448206 find_get_page +EXPORT_SYMBOL vmlinux 0xe155ac90 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xe16740ec thaw_bdev +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17abf91 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xe19acfe7 __devm_request_region +EXPORT_SYMBOL vmlinux 0xe19cfb97 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xe1bc7ede del_timer_sync +EXPORT_SYMBOL vmlinux 0xe1c54ac0 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xe1d81fc4 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xe1d889aa jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xe1e4f449 ip_route_input_common +EXPORT_SYMBOL vmlinux 0xe1e592d2 serio_close +EXPORT_SYMBOL vmlinux 0xe1fcfc9f __nla_put +EXPORT_SYMBOL vmlinux 0xe233b91f inet_sendpage +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2585075 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xe263a93a blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xe286a159 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xe28c1f7f generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe2bc637e jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe30c68af bio_copy_user +EXPORT_SYMBOL vmlinux 0xe30cdca6 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe31bf2b2 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xe32ba4ee have_submounts +EXPORT_SYMBOL vmlinux 0xe33845d9 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xe34c7e42 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xe3513342 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xe353666a unregister_8022_client +EXPORT_SYMBOL vmlinux 0xe374a4f4 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xe382b23c d_alloc +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3b8f4a7 init_special_inode +EXPORT_SYMBOL vmlinux 0xe3e12008 __first_cpu +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe4415ce1 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xe44a2211 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe45d61d8 cdev_alloc +EXPORT_SYMBOL vmlinux 0xe46b017f mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xe475a864 phy_driver_register +EXPORT_SYMBOL vmlinux 0xe47651b8 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0xe480ff67 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4951540 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xe49ce52e nf_ct_attach +EXPORT_SYMBOL vmlinux 0xe49ff869 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xe4e18b6c compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xe4e1cfb7 dev_close +EXPORT_SYMBOL vmlinux 0xe4e51920 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xe4f26134 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xe4fb394f xfrm_state_add +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe524f70f dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe5483c6e ip6_route_output +EXPORT_SYMBOL vmlinux 0xe5573761 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xe567eea0 elv_register_queue +EXPORT_SYMBOL vmlinux 0xe573532c dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57b62f4 path_is_under +EXPORT_SYMBOL vmlinux 0xe57e6931 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59ada41 alloc_pages_current +EXPORT_SYMBOL vmlinux 0xe5ad5315 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d96150 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each +EXPORT_SYMBOL vmlinux 0xe5e397cd key_revoke +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5fd21a0 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xe603eed8 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xe621f01a dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xe622cf6e current_fs_time +EXPORT_SYMBOL vmlinux 0xe628cc00 set_pages_uc +EXPORT_SYMBOL vmlinux 0xe63b1fc9 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xe64fae5e fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xe66bec7e tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a2828c init_net +EXPORT_SYMBOL vmlinux 0xe6c4825a skb_find_text +EXPORT_SYMBOL vmlinux 0xe6e42e9f lookup_bdev +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 0xe71d76ef vfs_create +EXPORT_SYMBOL vmlinux 0xe74b2829 inet_frag_find +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe751fb47 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7a70646 nla_reserve +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7f9c072 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8213ae8 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xe8419169 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe854d202 netpoll_setup +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe860a373 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe8964823 tcf_em_register +EXPORT_SYMBOL vmlinux 0xe8a7b97b __register_binfmt +EXPORT_SYMBOL vmlinux 0xe8aa25d2 __seq_open_private +EXPORT_SYMBOL vmlinux 0xe8d3fdc1 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0xe8d720ec sockfd_lookup +EXPORT_SYMBOL vmlinux 0xe8dbafef __next_cpu +EXPORT_SYMBOL vmlinux 0xe8df0b4c bio_alloc +EXPORT_SYMBOL vmlinux 0xe8eff824 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe93e6f06 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9868059 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9ad69c9 padata_do_serial +EXPORT_SYMBOL vmlinux 0xe9d7565e proc_symlink +EXPORT_SYMBOL vmlinux 0xe9eb069e udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xe9f34853 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea09ed9b md_error +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea143cba scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xea2bcba8 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xea2c1b55 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xea31d179 pipe_to_file +EXPORT_SYMBOL vmlinux 0xea355b65 input_event +EXPORT_SYMBOL vmlinux 0xea35ef59 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xea56d4e6 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea86a777 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeabf0092 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xeac3b724 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xeaca893b ppp_dev_name +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaecc694 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb2e2643 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xeb534922 pci_set_master +EXPORT_SYMBOL vmlinux 0xeb554097 bh_submit_read +EXPORT_SYMBOL vmlinux 0xeb9701d8 blk_rq_init +EXPORT_SYMBOL vmlinux 0xebb60b44 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebc096ef netdev_alert +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec3e07e2 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec6394d0 seq_lseek +EXPORT_SYMBOL vmlinux 0xec791a4a scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xec877618 __ps2_command +EXPORT_SYMBOL vmlinux 0xec9dc7b5 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xec9fcd37 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xeca07070 simple_readpage +EXPORT_SYMBOL vmlinux 0xecaae471 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xecb53cd0 seq_escape +EXPORT_SYMBOL vmlinux 0xecbae3ef key_payload_reserve +EXPORT_SYMBOL vmlinux 0xecfbef21 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xed081551 redraw_screen +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed3d0d9f seq_write +EXPORT_SYMBOL vmlinux 0xed4b900e vfs_fstatat +EXPORT_SYMBOL vmlinux 0xed5f392f igrab +EXPORT_SYMBOL vmlinux 0xed671804 bio_init +EXPORT_SYMBOL vmlinux 0xed67adba vlan_gro_frags +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed91207a skb_copy +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedb1f13e i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xedb45292 ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc22be4 fb_class +EXPORT_SYMBOL vmlinux 0xeddec09a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xee14eca0 radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xee21975a blk_requeue_request +EXPORT_SYMBOL vmlinux 0xee24cfcc __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xee291f75 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4dac9d blkdev_fsync +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee875915 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xee9fb794 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeacc9a9 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xeeb5ac9d uart_resume_port +EXPORT_SYMBOL vmlinux 0xeec40c9e __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xeeeb6c58 d_set_d_op +EXPORT_SYMBOL vmlinux 0xef14c2d6 cdev_add +EXPORT_SYMBOL vmlinux 0xef2b5341 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xef35126c pagevec_lookup +EXPORT_SYMBOL vmlinux 0xef45d32c __kfifo_init +EXPORT_SYMBOL vmlinux 0xef5f6f74 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef80779a bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xeffcdcac dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xeffe0137 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf01e0bc4 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xf0399074 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf096bdd5 netdev_state_change +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf0bd7bdb dquot_commit_info +EXPORT_SYMBOL vmlinux 0xf0bf9885 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xf0d188df skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xf0ed1c62 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f757c2 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xf0fa8bad shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1132080 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf1773298 single_open +EXPORT_SYMBOL vmlinux 0xf18ac161 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a31f13 put_disk +EXPORT_SYMBOL vmlinux 0xf1a570f6 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xf1a64fda remove_arg_zero +EXPORT_SYMBOL vmlinux 0xf1acb223 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xf1bea6f1 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xf1bf13c0 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1efce52 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2348f1b inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf25ba5d2 generic_file_open +EXPORT_SYMBOL vmlinux 0xf27e531b ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2ab30d9 sock_no_getname +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf320ab85 audit_log_end +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf32dabd5 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf333bddf nf_register_hooks +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34d3c1d blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xf37682d6 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xf386141b tty_kref_put +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e15f20 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xf3f465c6 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf4089e76 dm_table_get_size +EXPORT_SYMBOL vmlinux 0xf41d934a pcim_iounmap +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf4671905 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4965ef0 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4cf6d19 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xf4d72f9b mmc_add_host +EXPORT_SYMBOL vmlinux 0xf4e6d385 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f1d73f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xf4fdcd3e blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xf50cb688 kset_register +EXPORT_SYMBOL vmlinux 0xf50fac46 tty_hangup +EXPORT_SYMBOL vmlinux 0xf526695f current_task +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53c2e48 kobject_add +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54fe022 md_flush_request +EXPORT_SYMBOL vmlinux 0xf5647172 block_write_begin +EXPORT_SYMBOL vmlinux 0xf576dd74 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xf5815b1e end_writeback +EXPORT_SYMBOL vmlinux 0xf582a92b pid_task +EXPORT_SYMBOL vmlinux 0xf58856e4 put_page +EXPORT_SYMBOL vmlinux 0xf5af7fe8 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5e7b455 md_write_start +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f8d88b init_buffer +EXPORT_SYMBOL vmlinux 0xf5fcbd2f tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf61296e5 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf67e295a inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xf685b227 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xf69f0c2a wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ea678d scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf704b5d4 kobject_get +EXPORT_SYMBOL vmlinux 0xf7123960 proc_mkdir +EXPORT_SYMBOL vmlinux 0xf7323981 bdi_register +EXPORT_SYMBOL vmlinux 0xf7331a08 __bforget +EXPORT_SYMBOL vmlinux 0xf73788e4 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xf7440932 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0xf7471df3 rtnl_notify +EXPORT_SYMBOL vmlinux 0xf7506c41 __any_online_cpu +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75c58a0 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xf76fb350 no_llseek +EXPORT_SYMBOL vmlinux 0xf7702be0 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7a6fd75 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xf7c84edf __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xf7d71918 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0xf7f4fc75 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xf7f6bc28 elevator_exit +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf81dd1ed nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xf81f3811 __destroy_inode +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf88c73c4 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8a6da8f take_over_console +EXPORT_SYMBOL vmlinux 0xf8a7f7cf pskb_copy +EXPORT_SYMBOL vmlinux 0xf8cb8a66 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xf8e4a925 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xf90ba427 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xf9225bb8 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xf95ba6be security_task_getsecid +EXPORT_SYMBOL vmlinux 0xf98d6b6f scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xf9981ecf simple_write_begin +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9abc6b1 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xf9d7c5ae __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xf9e605ac acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0xfa082308 kernel_read +EXPORT_SYMBOL vmlinux 0xfa2dc109 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xfa4f3d49 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xfa5ab97d scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xfa80fe3f qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xfa86df1d i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xfa870b41 security_path_mknod +EXPORT_SYMBOL vmlinux 0xfa97db01 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xfa9d5859 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xfa9f6263 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xfab894ac d_alloc_root +EXPORT_SYMBOL vmlinux 0xfacac691 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xfaef163a generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb19731f skb_store_bits +EXPORT_SYMBOL vmlinux 0xfb5f846a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfb63d603 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb834264 input_grab_device +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd0c474 agp_backend_release +EXPORT_SYMBOL vmlinux 0xfbd9ce9b posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbffcf58 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc34ef3a acpi_bus_start +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3f46cf tcp_poll +EXPORT_SYMBOL vmlinux 0xfc4fc13e devm_ioport_map +EXPORT_SYMBOL vmlinux 0xfc50827b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xfc798f73 fsync_bdev +EXPORT_SYMBOL vmlinux 0xfc8d91cd jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xfc9e9c4f jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcab154a dm_snap_origin +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb35211 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcdd183b pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xfce80819 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf0d76b nf_log_packet +EXPORT_SYMBOL vmlinux 0xfcf5153a ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd183ef3 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xfd33f5fc end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xfd353783 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xfd47ca82 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xfd6a20a6 flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd96bda3 dev_mc_add +EXPORT_SYMBOL vmlinux 0xfd99f4af submit_bh +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdae4687 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xfdb0508f dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbc7c40 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xfdd9bc09 posix_acl_permission +EXPORT_SYMBOL vmlinux 0xfde01729 inet6_release +EXPORT_SYMBOL vmlinux 0xfdf2200e genl_register_ops +EXPORT_SYMBOL vmlinux 0xfdf2bb1e iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe0a51db ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xfe1b5e3b security_path_mkdir +EXPORT_SYMBOL vmlinux 0xfe1f40dd udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe3f42e5 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xfe49bbe0 dev_driver_string +EXPORT_SYMBOL vmlinux 0xfe50be98 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe62ee9e nf_log_register +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe85d68e thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xfe8a1a75 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xfeab5e0e splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfedf0e6e sock_setsockopt +EXPORT_SYMBOL vmlinux 0xfeee7ede scsi_finish_command +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff19d562 mmc_can_trim +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff477551 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff69d687 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff894d89 bio_alloc_bioset +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 0xffaa886b dev_printk +EXPORT_SYMBOL vmlinux 0xffc419e6 __devm_release_region +EXPORT_SYMBOL vmlinux 0xffd04333 seq_path +EXPORT_SYMBOL vmlinux 0xffd52160 agp_find_bridge +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff12a11 __napi_schedule +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 0x0541335b kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0908ed71 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1015b9fe kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12c7535c kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1aeec36e kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c9e6aca fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e8cfb4d kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ea3ebab x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x24c86c06 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x25969a65 kvm_complete_insn_gp +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 0x2e4d0089 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3136d5a9 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x38e03070 kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3921c50b kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3cb1059f kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d380989 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48088882 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48c66e65 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x49263ff2 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x492ef1e9 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b5a1046 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4ec24471 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5012ad4c kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51738dc5 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5390732a kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x541e37e9 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x55532811 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5644fe2c kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x585cee54 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a4569a2 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c8e40ef kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60294052 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x61bd7818 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62736577 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x691eba31 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x69fedd8d gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b174116 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b733aef kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d512385 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6f8d1c8f is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x721368e1 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x72c50cf5 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75c87c6a kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b9a0928 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c4c132d gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c59fcb2 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f1d799a kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x83da2d77 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88803b91 kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e7af94d kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8f36e917 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x921aca2f kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x928f9763 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95227719 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x961ffe31 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x969ef196 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9708edf7 kvm_read_guest_page_mmu +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 0xa1cd32e5 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa76d6f5a kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8391fe3 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaeff40ad kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf3ac130 hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb098a346 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0dbb30f kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0e6fb5e kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1ce2c8b gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc47f713d kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc51fa3a7 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xccc9261f kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcedef4ef kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd00e5993 __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 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xda768cbe kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdb9dc208 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdd77ade4 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xde99656e kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdef842f6 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdfe04c6e gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe38fa866 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe7d75283 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee09f620 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0c3dd6f kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf1a90198 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf778bdc9 kvm_release_page_dirty +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 0xa2dcbbbd crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/af_alg 0x02af1f96 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x3ee8f783 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x429dc591 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x63aba7d7 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xa03447f9 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xdc5f78cf af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xe27f8ad0 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xf10115fe af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xfe8f187c af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x89e75bbc async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x288b2776 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x696c099d async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x9bfba2ca async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xd67c66ac async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x059b9f2e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x3fc506b9 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa7c704a1 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xab72c982 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x103ab41a async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x2f0b56f2 async_xor_val +EXPORT_SYMBOL_GPL crypto/cryptd 0x05ac8144 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x462b374e cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x896f77a4 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x8e1928a3 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x986a91ab cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xad55b826 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xaed7fdba cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xc83726b4 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xe11a2231 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xfc1c9cfc cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x35c880d2 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 0x01c07db8 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x077d3fc4 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1d26806c ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2054ff89 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x24a70c89 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x27dada30 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x34672cda ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8661f949 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x87182979 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa407f98c ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb8641ae2 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd174c8b0 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd472fe35 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe3111789 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf57102b6 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6116c01 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x6e27d393 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xbaf2e927 __pata_platform_remove +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 0x01730939 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x042339c4 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x22470e58 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6dc66879 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7539f471 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7dbdc4f6 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc7261199 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe7a38d23 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x01725bc2 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x10974c7d tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1488ced6 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x37a68844 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x43293f6e tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x454a76d7 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x481b48cb tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4c8f45d8 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4f1ca387 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x54b04b3c tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5549f590 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x648d9131 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7319370c tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9456b761 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9874857a tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x98cb393f tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xad896132 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc464d548 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc556bc26 tpm_send +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc727a8ba tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd8ef7390 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xed446c75 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf851b49c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfc92d6c7 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x01ca916e tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xeb64910d tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/dca/dca 0x22798037 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 0x47ecdc2e dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5be03065 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x72e53168 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x86eba54d unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x9db61d0e dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xa854554a free_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x2ca2e240 amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0d9b69c4 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1168b423 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2018d26e edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6112deec edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7b434a7c edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7d948349 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7fbd02c4 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8113033e edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x92dcdf33 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa793d927 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa96c10a5 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa9993f04 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaed4e028 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb17c9f20 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb8382cfb edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb9664520 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbab60aba edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbb96095e edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbc7afd34 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc034432f edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc87656ac edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe69a171e edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xef847c82 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfbc51acb edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfdda7d44 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +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 0x1502296d 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 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xedbca0ae amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xff582b9a amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xc0bb404a cs5535_gpio_setup_event +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 0x710fce44 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xc9f75ef0 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa955a567 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xaf38d6d6 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 0x0617cf1a hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x087246a5 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x13620ef1 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x14a19583 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f0429ac hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2d45e2fb hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2eda791c hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x322d6c5c hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x324e06f9 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x37b61625 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x393f81f4 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4b659087 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4ecb8030 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x56f5a068 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x658ff0bf hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x66afb4c7 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x72614945 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x89c8bae7 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8cba1266 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8f742287 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb1484459 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd253880e __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd315fb57 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xde09a7d2 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec161dee hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf25da8e0 hid_output_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 0xa799ece2 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3c316d15 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xcc0dfa88 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xd095385d usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe761cf95 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x1ab78636 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x234b7e8e lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x2ed60f8c lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3fb0afd3 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xacfeb0c8 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xd4e98b51 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x203a4b7e i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x60f368a5 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf20d1be6 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf8b47c58 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xff344a4b input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x04d56320 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x3ffb1861 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x43a1b494 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe2db2f34 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x299fef0e wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x383932b1 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7df82d93 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8bc1437b wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9d36ad5d wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb5f51b52 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc8669b97 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe535ef90 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xea529bdf wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf20c01a2 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf23b7d49 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf88bf2ca 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 0x1acab528 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x28ceea65 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2cfa8fb0 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x324e904f gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3955efac gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x403893f8 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x56c0b709 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5d80d0eb gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6dfd71de gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6e12adf5 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbeefa047 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbf1b2584 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc5279f1b gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcd9eff6a gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcfa5b7e3 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd62955fd gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe3957f95 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfbe9f792 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/md/raid456 0x4490a1dc md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/md/raid456 0x991a5cfa md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4f61ae3d saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9a7cf6e3 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9b3f85b7 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xaa4b4f84 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc5b0ff9f saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc94d2ef0 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcba83b08 saa7146_devices_lock +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 0xebd6ff0d saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf415dd69 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf4c5ef78 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xff2b034b saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0e48d4f0 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x29de3d34 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x29e7909c saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x579ec846 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x91f43fa4 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xba07c972 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfa2a43e6 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x4b03c75a microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x392b3f85 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x92887311 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xdcaa0a7d tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xafdd080b tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xeea6673c tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xc506755c tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x0bb68305 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xcdb4720d tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x3b4321c9 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x7925da08 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x61a12881 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x08f719ed mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0adf8d56 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x35cf0523 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3dc31b54 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3f27aef2 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x542c9883 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x589ec085 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5a5a25ab mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x645a28d4 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6da53d27 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x718a607b mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x87f76cc8 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8b8cbc87 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc570a6f0 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd772c435 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe28ae791 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe2bbb246 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0b7b21d5 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0e6ec0a2 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x101fcd53 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1490dcc0 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x30d31d7d 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 0x48371f1a smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4bdc493e sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x61ff0d34 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x650ef5ab smscore_unregister_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 0x85f3fb14 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa8c60597 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb35d23fa sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb6bde100 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb775f759 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbc4bb68f smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbe1b46bd smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc2248604 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc6dd91dd smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcd9cbf5f smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x5ed750f9 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x66623dd2 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 0xa4ee3c8f ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xaaa6bf12 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbab624cf ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbd76e694 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd31189e6 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x08f318f3 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0c4d96bb rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0c923c12 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2b43213f rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x34580cef rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x51ca4f3d rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5aade221 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x65b05932 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x796a0510 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7be0e93f rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8b854978 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8db85f69 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9040860d ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9cb29fb8 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xac40077d rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe8d666d3 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf3a6eb84 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x024497df cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2c54121e cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2ef02569 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x47d7b66e cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x70754b06 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x721d860b cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x75853cf0 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x94366b2d cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x96acaa0c cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa80918eb cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xaab15177 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xac64faea cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb749ef81 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc998294c cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd3c061df cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xed3c18ec cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf286c375 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfb0d46a5 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfdbf2c62 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xf28afafa cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x1e78516b em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x86445029 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xb8030bcb em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc14d367a em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xe322acc1 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xfdfe13a8 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x0922e34d saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x7d3eed08 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x9d7b5b22 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd61306ff saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe4b00ac4 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/soc_camera 0xabd740ac soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x42dc69eb v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xabd95a6d v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc0535e1e v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xcab9234e v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xec1739da v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xef79b927 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-compat-ioctl32 0x5d83f23f v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5f2682ea v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5f9ddef5 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x8677ca6b v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x9d569242 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-mem2mem 0x157221f9 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x184e3552 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x240a8c7c v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x25ff60e9 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3d22232a v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x41c31882 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x439a6fec v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4fe53d9c v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5ea6681a v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x69a50884 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8bcee82f v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8f9491d6 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xbc85c0fc v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xcc7ff4a5 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0eb55fa0 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x25b286bf videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3ffea65f videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x52a0660e videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6b12f105 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x784bf84d videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7d1467c3 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7d7c5582 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8119ff40 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8b20eadb videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8caba638 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x930fdb32 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x96dc618d videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa7737fd1 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaeed9585 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaf0b7a9a videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb2c1edfc videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc4b88543 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd10dfc83 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd28790e7 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe29e634d videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf7c967ad videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf7f44778 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfa458096 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x52708daf videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x860dc2fc videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xdbb5ede4 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2af3dbdf videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2b6cd820 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3bcfe813 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x74b2b2ed videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7b0d6eb2 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa1f1e2de videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb4701894 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd33e5790 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdd52a93b videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x787f6457 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x88a06608 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xbeb0d7e9 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0c604c71 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x29585146 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2dd5491a v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x345357a6 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x571ee931 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x57b5610a v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5cf06f28 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7087178f v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xab955b29 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xacd86e6e v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb85b5f16 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc97c0daf v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcb643db7 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcfa46103 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdd0239fb v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe79d9b51 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xed43e0e1 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xffa208bc v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1c081a72 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8112a0d9 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa42b6dc9 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xad810910 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb56819e6 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc63ce69e i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xda9526ed i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfc5f81cf i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xdebe4874 mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x12b5fddb pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x19e2aac4 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2558ee97 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3cc5240f pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3d1287cc pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6aed535c pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7ed14735 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xab2cb47f pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd32b56da pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xda1d202f pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdf0b73aa pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xadb03fd5 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xc589412d pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x28592035 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x64765465 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x86a0fbfa pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbac473fb pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc471d70d pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x13de98b3 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x36e93809 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x41ac717a sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x817210e0 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8e24af6e sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xcaeb3c1a ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x39020e2a wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x4d30a094 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xd1efb1eb wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xf541eec2 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x1def36d7 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2afcba07 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x3a827a35 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa6e28835 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 0x314c0240 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4481ee24 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6894dbec enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x738c8ab6 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x77d91cb1 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x9d5c1374 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd1430727 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x8ffcd11e st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6b3b460e sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6c153f7a sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x71d22c78 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7c0bf3f6 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9f58b74b sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbbb07670 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdcd8125d sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x35f60a57 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x4a9ce2a1 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x63861902 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x1e9bdf7d cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb3a91c50 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe19ceb16 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xd5450f5a cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x06bf85b7 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x89444739 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xcf55cb2f cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x592d4978 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x3bc9fe7c DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xebb857cb DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00668c4b mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x01d697b8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0fdc32e7 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1463f3b4 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2cb9f5a2 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5574ec0a register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5608fb51 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x61387724 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7c450298 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7cfd4c96 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8a9b4498 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b864328 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8ea9f081 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x971c2ae4 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa61268a0 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae28b5fc deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcaa88182 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd029cf49 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd36e2579 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdd4ff6f2 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xedc456cf register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x20903d09 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x313bb90e del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe4cafad3 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xed36892d register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9eea47f5 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc2c96540 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x0368165f sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x8202e41a onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xced79aa0 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x28c4d3dc ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4303cf7b ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4bd348c4 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6591ef52 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85b958b8 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8c061598 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb78b6b69 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0e36989 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc961e8e5 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd7171d7a ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe4620d90 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe47a59cc ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xea6af3f7 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x14b4e0da register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2aa8a8c5 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x39922c26 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x401b8c41 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x47e9a016 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x49b5f35e can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x557563aa close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6d7d4d56 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x78f7ac3e can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb6cbde8a open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xde3934fd can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf81b85d4 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2c02f87f unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x407348dd alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5f6259ad register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x86f4c6e5 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x5335a6df macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x559d2f97 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xba63e465 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xbf66d4e0 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xec2cc43a macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x00981ab9 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0bf1fe4b mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0c97cdaa mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x14c7b8cf mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x17f28112 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1eadcd7b mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x20ac38f8 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x217ffbaa mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x28cc22b5 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2e4331b5 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3fadeb33 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4236efd9 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x43b20588 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44cfe8f4 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4b4bbb18 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4d9b5fe9 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5227362c mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x53abbf21 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5b52fba7 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e7f973b mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x623e7fff mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x62a845cb mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x65d0d702 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x74264ae5 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x77339d36 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x78360555 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a364532 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8678b410 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x87b8d22f mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8939e0e9 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b692406 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa194dc7c mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa2f4c80c mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa334ec25 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa44e91a5 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa7425f73 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb131afad mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb2b2dfd3 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb5728de3 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb68437c0 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbb807168 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc2db10cc mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc5bfcf83 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc75c75f4 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcf026fad mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd45339ef mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd5b85826 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd8e2180b mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd840015 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe8e1c6a7 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf1f6ce38 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf4eecc45 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf792f3ad mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb3bb80e mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfbda6481 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xccc63301 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe351a847 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0e2684a8 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0f44a649 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5522ea7e rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb98c312a rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc269bf73 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfe2a65bf generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0353f9c2 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x20c244d5 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4c74f535 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x502e5f9d usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x50e204d7 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x51de14c6 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x51f84962 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x52d91dbf usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5d740f9d usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x797a6017 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7eb07bb7 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x86331517 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x90a2742d usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9bf5cf2d usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa532ebf4 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb22aedeb usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb4876b1b usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcac5c107 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdc526bc5 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe2b732fa usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe93173d9 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xec3b59e0 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeceb0221 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf730562c usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0993f414 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1ac1ab41 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x27ac080b i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3f688a0a i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4c547452 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x66104859 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x76a22a03 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x936df7e6 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa11ab887 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaf6a8186 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb345335f i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb97a8754 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc876c39a i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcb5ed1ef i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xce9673fe i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xed0265e7 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x19939df8 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x3a346221 iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x6975350c iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xcd5072d1 iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xe89898ac iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1265d625 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x301d833b lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x354fb65e lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x40a7e3f8 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4254896a lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x52f8908a lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x556163f4 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x66a1beea lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6fc0c058 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7b713832 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x88b8aaaa lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbbdf1a99 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbc7c2e5f lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc38105a6 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcc661b79 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6a5d9c29 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7da5cb2e lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb5d0c815 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbfdbab1c 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 0xc8b04244 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd4557206 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xec0a4ee7 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xed887302 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x7ce54d9d if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xcbb6bd57 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0aee2f40 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x14197324 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x407170f9 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9eb9d332 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa1621a5e p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb5152cff p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe499dfaf p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe5b34ba7 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf162b404 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0b6502a4 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1d5a7aba rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x202236ee rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x24767572 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x28e27cbb rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a0cd701 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a2ebb43 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x347b4bb1 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x395a9cc1 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3abba216 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4191099a rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x465ac884 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48e8ccf4 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4ed9a889 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66bd12fa rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x77831b9d rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d90ddeb rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x810676d6 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8ebfc657 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9d9cd34c rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9ec69153 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa22cb207 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4a6a482 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa5b2d69b rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xac783364 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc2bb41e rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbe7b3b9b rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd550385a rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdaf5d562 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5431a43 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb32c756 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf80236b0 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfc48923b rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xff39d5f8 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0cc14b6c rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0eed3430 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f194f82 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1abe86ca rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1e25c26a rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2487f154 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x299b5fd3 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2f08fe8a rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37842df1 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4981560a rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x54af7d1f rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x597586d4 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5b9c50ab rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5e5be731 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6095d0e2 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x62d912d3 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69e97798 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a60edb8 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b757619 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6bfb8f96 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x710bb973 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x73b6aa5a rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7803cadf rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81a2c3cc rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8399216e rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8fec48cc rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x90bc8ac5 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98e36ede rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa677b43a rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa7816f77 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb4aef1ed rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb63d31ca rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbbd0fc83 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc8aac94c rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc918d7d2 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcb007761 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdbf311ce rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea4c25d5 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfce3a99d rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xffd3bce8 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x17b5b1f3 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x42ee62c8 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x57b108f3 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6df630dd rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb53a1836 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xcca0d448 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd6e3577c rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfc1e37c3 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0dfe93b4 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x293ba48f rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x29602638 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x371686e1 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4028cd1e rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6ffa57cb rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x83ac3f1d rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8a2eb765 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9ff2ddd3 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa93a2899 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xaa3545b0 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc66d5d0c rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe3be8d9a rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf569161a rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf9d46b22 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x323bdb11 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xccad13f3 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xff052aec wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x01c90f72 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x15158c1e wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x488de598 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x49db4926 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa1008453 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc4529350 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xd6ffda6c wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x2f5c9625 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xf11c5815 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x71b8c654 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x9be0c729 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xecb96d11 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x2ef3b5c6 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3518a11f mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3c3bc1c8 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3dea0625 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x431e062b mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x950bfb36 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb5ddc600 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x69cd1a74 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8db25352 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9a22d758 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9fb8da41 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xad457439 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xddb80632 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x39c50c1a wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x08854a4c cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0cb30584 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x15f99156 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x17b026bf cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1a82df6d cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x29110623 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2aad82f2 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x32684f63 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3694e9f4 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3ea758f1 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4963b4d9 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b726736 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4be8d091 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x577b92cc cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x589df539 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x625fc7cb cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x63f60782 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6559b74b cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x66e0a68f cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7d485d01 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x821ca183 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x87c47e1d cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8ce1d735 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x98edaea3 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xac0dd615 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xae9a36a8 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaefce988 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaf8669bc cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb91cc08b cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbdda1692 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc4de8413 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc92ee138 cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9e41970 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xceba5904 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd6ef11eb cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddc43c70 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe03fe1cc cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe7640ec2 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xede11dc8 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xee8103da cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef91d47b cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf2051264 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfc5f882e cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xff0dd520 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfaafc1c0 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x17e16efb iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1fc4c5b0 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x42bec74c iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x46cdc774 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x87acbde8 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf6fd5e28 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x014b46f5 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x091f2483 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b984a7d iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ea2cddc iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17437fe2 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ab7ee80 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2af79faa iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3031d862 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x40a0efd1 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x487fd823 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c587dae iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4e5131b3 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50316f87 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x55456143 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5df35568 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x658aed1f iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x681cb83f iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6ac7d246 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7241ea8e iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x73edff86 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8f077843 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96f24b39 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d45f216 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d60f740 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e2c467f __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa9ea52b9 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xad5dac0e iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb1e8bef1 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6b956ed iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf74d9f8 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc01811a7 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc699ee10 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7296f62 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd023df78 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd16ded92 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4dc980d iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd637c769 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdfa2b0ec iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdfc0d772 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeaa41b0c iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec4050cb iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8997ac8 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb4dae87 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0cd680cd iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x10a5f935 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x19e08ce2 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x26f4c201 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3d7d8532 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4d6be8c8 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5138d511 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5955c671 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x59d50294 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x62512748 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6bc56985 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x802d417d iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9c8caae0 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc3cf3d24 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd432440e iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf21299ed iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0e7dcbea sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1363d6b0 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x13f77399 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x16198697 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x39239cec sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3a9a5e6e sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x406c94b8 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x43202574 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x440bd34a sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x55046a40 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x552bdce9 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57a8535d __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x58d3fa04 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x68061a14 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x71cd310f sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x87db028d sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d351287 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa00b217e sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa2456121 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa85e6359 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc7927481 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd9d84669 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda05a0ff sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3f9da009 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x887aea39 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa36b906e srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xae93d7d9 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe2b9800c srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe96cad0f srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4a38d8f5 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6c2cf339 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6c705995 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x791d8677 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8b873d17 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xda48f72f scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe542e611 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf61b130f scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf8fe91d0 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x06deabff iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ba026c1 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0f5f3a5c iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17435d68 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x18e97a04 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x19eadf26 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b252c14 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x22889b68 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fe92f28 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x334ce071 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x392121f2 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4047c966 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6877e69c iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71fa1b9c iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x768ab075 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7d3c78ed iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8843e154 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa909392f iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcc559af9 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xce161d3d iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd3eefd88 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdb891cd4 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfd2489a3 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x07f5b165 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3871da07 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb81f1fdf sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf6634de2 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 0x09d27a87 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2aed4974 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x574fdaa0 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x929dd53b srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc719369c srp_rport_del +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x32489ef3 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x5da9acbe spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x94a6b5f0 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xcbfac4de spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xdaf586d0 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xebe0c174 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x54978770 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x72ac8320 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8a814d6c comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb5db9d28 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd68d7a40 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x54a0b659 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xc1deedc3 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 0x42d98184 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x7707895f labpc_common_attach +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 0x308925e0 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x35bb1d4b ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4aa1e3ad ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x6446c332 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x81ead9f9 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xb1e3f173 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xbab3afd7 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xdcb15e1e ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x09b5e9ea ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x47274a50 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x641911b7 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa4090937 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc94ca7b0 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xf6b4ac96 ni_tio_cancel +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 0x046fb741 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x195eb8ad osd_waitevent_waitex +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x1c874b26 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x1f473a1e osd_page_free +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x22e30b07 osd_waitevent_wait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x318af37c osd_page_alloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x3b5d1afc vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x53d3bcd7 vmbus_close +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x880aca87 vmbus_open +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8d552274 osd_waitevent_create +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xcef8fe90 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xcfd092ed vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xe95976b7 osd_waitevent_set +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x08fc7115 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0a8864bf spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1432ee06 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x347a2a1c serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x435d314f speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x66d4d3c1 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x77df87f5 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x81c0fb43 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x98527210 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa52f837b spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbe2213b2 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbeb2407d spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x33e5ac32 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x4552391d tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x956d8929 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x16ba0c78 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x1badfdcf usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x321ed118 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3ad630ae usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x48775bbf usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x52203be8 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5fb94ddd usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6097c325 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6bb763a9 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6e5249e5 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9b58570b usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa085394b usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xaa26b138 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 0xd219e70f usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe4c3e550 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe98fd7cb usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x05de8f83 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x4758055a max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x88f30c06 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x9a7098d2 max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xcdc6ee1e max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xe2cce99d max3107_resume +EXPORT_SYMBOL_GPL drivers/uio/uio 0x4d38594b uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x8b17659e __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xed5e19ad uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x0cacc7b8 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xad32147b usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x02e3e3b0 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x121328c4 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x149d31f1 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x23c090d5 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x325fb0ca usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6014b684 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6664bebf usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcf384f67 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe1bd7ab7 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00502bd5 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3dc9cdee usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x411cda1a usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5f82fb96 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6435770c ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6d9f8f5c usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7f2aa224 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x842ac105 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9f25a11f usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa342b2c2 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaa5c0e13 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xab3d4688 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb66a1b5b usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd7a7143 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc88f9c83 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd068d61f usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd12096db usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd5af8eb1 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdb67f067 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeb09bb2f usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xee87c7af usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x02a856a5 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x17aa9b3d usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1c627fad usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x23a0fa6c usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x39eac493 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3e09a002 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x43ba5d84 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4ca840d8 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5292575c usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x60780a9e usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x60f3ad42 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x79732e10 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x94655ac6 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x951b9cba usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9ae687f5 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa0d6a00e usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa9f73ad6 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb311768b usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb9f16111 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcf735d0f usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xda266708 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf2b4afea usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf92ec59e 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 0x18ac9008 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x84e418ec __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8899eafb wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9bf2f047 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc1f842ed wa_urb_enqueue +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 0x16ef7308 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1f1a1779 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x332d3238 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3ac9bfea wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3ed2c4d4 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x403182ea wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5f8cf53b wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8932d0ae wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x978f3863 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x99bd22de wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa01bd0ea wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa7ea5267 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xad07a3db wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xadc66b07 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcdce97ba wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe893693b wusbhc_reset_all +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 0x702deb8d i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x8a48bf18 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xd61d5f36 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x3fcc4a0d umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x42ac7379 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8ba02289 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8bbeb68f __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa5b867bb umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xdce975cd umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfbdc97eb umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfcca2e68 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0c7aa3ef uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20f3c4c8 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x217db4ff uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x33475272 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x56f6ff69 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x58e78570 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5a919309 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5f96b160 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62547ad2 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62c1341b uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x633d2fcb uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6a23d325 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6e8aff0b uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x711302cb uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x79afc6b3 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7f8e724f uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x87bdb9c0 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c731c6a uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d00ff0e uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x906be121 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x950e7517 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x97135fe2 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9bbb66e9 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9caf17e3 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f12f704 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa360bb01 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa572532a uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb38e9719 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb588b594 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc828ded7 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcbe98c3e uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe175761c uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe78ad06c uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf10fd448 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf44f242a uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf91fd882 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xffe36d24 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xfd261c92 whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x25b03bfe ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3f641a43 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x689bef62 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8de79b2e ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x99254347 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe9c5992a ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xeca75d94 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x627ab33a fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xd1bb3e69 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xed80d96f fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x11d7db52 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x73c291b5 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 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x3b38f163 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +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 0x06158958 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x1d20c488 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x63d448a3 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xb7d5e662 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xe669d9eb unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x08cf6cf2 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x44a61533 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x48bfdd36 vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x79ea0fd1 virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8bac002b virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xac6a23f9 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xcb6fadfa virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd6747e96 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xef6d2f8a virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/w1/wire 0x18ae17d7 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xac1bd591 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb676ce28 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb7f84c90 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe4a85010 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe8364672 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xef7701f3 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xffc6a6fd w1_next_pullup +EXPORT_SYMBOL_GPL drivers/xen/xenbus/xenbus_probe_frontend 0xf1bdc26b __xenbus_register_frontend +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x4ed455ae dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x596fc191 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa16dff72 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 0xc14509f7 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xfc8c21bd exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x0000d31c fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x0e6d6d59 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x0ea78694 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x102facd9 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x119da36f fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x242eda2d fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x38a417e0 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x54456cf1 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x5e4b45eb fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x7e67538e fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xb4f7e531 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xbe8368ce fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xbefd3195 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xbfa79ddc fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xddc24e19 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xe97ff206 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xf3752f0e fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xfeba9cf7 fat_search_long +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17b90181 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x41f1cea3 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5bdde238 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7fbcea62 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 0xeb4d4004 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a1cd5d7 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb74eec4e nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xc5c1c8a8 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 0x214bc0ca o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x232284dd 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 0x67df14ef o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x871cdbcd o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa06d87c3 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa7256794 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 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb4251c9c 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 0xc3679d7b o2hb_get_all_regions +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 0x3f9e0a32 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x485956d0 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 0x80b5629b dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x82eca5a5 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd12c6195 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd194fe61 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x54bc972e ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x739f3f78 ocfs2_plock +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 0xd293d311 ocfs2_stack_glue_register +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/raid6/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xdbab0c01 raid6_datap_recov +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 0x1b511fb4 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x460e4984 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x73bf00bf garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x8255f0e6 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xd009617c garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xdf514c54 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x63a559a4 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x9b7b4e7e stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x2e636bf0 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x450b4843 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x8f62dc4e 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 0x5d4a26fc bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e2bc3ed dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bb88351 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d7f8cb9 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33e562a8 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43a6c107 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ddf69b1 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x51b4ae57 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5904be30 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x605f3732 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x67770441 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x71015148 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c05df9e dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d5430b5 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7ee945d6 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f4d9bf2 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x809dbac6 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x826e884c dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x88a7cf23 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8a80c6ee dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x91105e3b dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9508ff87 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x98410df5 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa798a48c dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad4a02ff dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb6f8041f dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb8e4031f dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc2c0393 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc06522fe dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xccb23a46 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd744067e dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe17a9f4d dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe1f02ee4 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe20d8cd7 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe73fde03 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2d0b35ec dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7f1082b3 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8306e7e9 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa36fd964 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd34855ab dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf258fd3f dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ipv4/gre 0x1d5fb07b gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xf702f9a4 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x71f4352f arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x6295bb6b ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x506446eb 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 0x012bd868 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 0x2b812613 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x2d9b3ce4 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4268efde nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4bae6b44 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7b758647 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_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x26df91d3 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6c308746 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7fce971b tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc9f01814 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd77338ba tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x597fc7c4 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x095a2e19 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x111394dd l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1d97ec40 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x28ffbdbc l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x427f0d11 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6f5b40bc l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8333fded l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb4621e57 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb497f6b3 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb51b2fb1 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb73195ac l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfdc9592f l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3523965d ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7e35770c ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8981d23a ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe62b78e1 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf51744a9 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0fb32c16 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x392c6be7 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x6b35611f ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xf21e0307 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00bbe394 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01407f05 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a5afaba nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x190fda82 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x191c0c1d nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a51e739 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ba9c4ff print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24bb0815 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24ebb5d7 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a91d7af __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e0baa62 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3dcfaf41 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3efad62a __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3effb866 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40c68edd nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47f5d293 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49362a11 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d569c0d nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f0f8600 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5364b8ea nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x551d9d64 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5658d163 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x672bffe6 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67782f2b nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x691468f1 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x69a649c2 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x718008a4 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75f9f5e8 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a91ce50 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b8973c9 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7bfa7ad1 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f60fe8f nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81a6270e nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ae1fbb7 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d85750c nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f4a3dd8 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90afb9e9 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90bb6ff5 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96ca4706 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x998d7824 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x998dbb29 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c2c815d nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa52a7267 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa0af06d __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa134811 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb014e822 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe04949a nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf741b7a nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc17143fb nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc30a450f nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc816c6f7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc834626e nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce1c9271 nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb0e08a2 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd12bf9a nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe12279dd nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf27f711a nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4a7dd16 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7aa43bc seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf896eadf nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x06bc920a nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x93de7618 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x12e46727 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x21290655 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5c9f23d4 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6e1f9eaa nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x821a8218 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9acd1283 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc8110bab set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xda48bbdf set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe2ed42b0 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xef39b0f8 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xe39b4865 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9fe6bfb4 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb10c1a3c nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc7e0cb83 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xeb582bdd nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x4a86c4cf nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xd2602dd2 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x05410d9b nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0c55fded ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1c033bd8 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2936dc30 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x377e2810 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4a10e4b8 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x55a846b7 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7f321298 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7f97d776 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9896f691 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc7742a35 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdd41a134 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe14cb2b5 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xf7dd4c37 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x5499bdb9 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3e405e5a nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x68237583 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcd203e9b nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd92f069d nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd9871673 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdcd612b3 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xbda02231 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x03519a37 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x183d59f1 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2bf59bc4 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40c09362 xt_request_find_target +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 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6be3f1cf xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7103a826 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7345f666 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c8a76b2 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7ee5879a xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8548d42a xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8d6e03be xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9ee00d17 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa0103795 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa07a5c28 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa55895e5 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa5c5c6df xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc09f5404 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe2dc554b xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xefed882f xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf031ac2f xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x02d18bcf xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd995b363 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00607908 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x00e7d381 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x039e3465 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x06599e3b rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x169f1f2c rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x27b5a50b rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x296bb2f5 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2ac41c8b 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 0x34adf91e rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x3cf92e27 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x44a45210 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x4f9028d4 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x8290b486 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x85e4c7c7 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8c11f3cb rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x8d8f03ef rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x945ce0f1 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x9c23ab7a rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc7db174c rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xe20fcb03 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xec2b6d05 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xf0570cc9 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xff643687 rds_send_get_message +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x706e3afe rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xbb3061f1 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 0x041322d1 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1cb9f29c gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2987383d gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4369963b gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4c635204 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4e22934a 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 0xa5173911 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa857cb82 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb46881e0 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 0xbde8008e svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd6bb8963 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 0x00916611 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01f93233 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0261176d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04db40a9 put_rpccred +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 0x08b5367f xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c5fff5c svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cfc1f2f rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eeab8ce rpc_init_wait_queue +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 0x10514d20 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10f0fa15 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1108d49b xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11377f89 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x132bf1e7 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17948581 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1866943b rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21fe29ca svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23dcf0be cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x240b1ba0 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a1b1750 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2daa852e rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2fa4c06a cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32fa9283 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x336d79ed rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3561e901 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x374c1e16 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x399b165e rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b511c22 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d5e19b7 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fa75195 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x404983f3 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40e31fd0 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40e5ce67 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41981cb3 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41fc2bbc xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x444434d8 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44b0a148 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47c0ffe5 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48238c0a svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48fab037 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ac93560 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ae05371 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3ab923 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5007bfd7 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5076c976 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x535dc1ed cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53fc5027 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54a320e4 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54d8d120 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x559fad9e svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x562814cf rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd1b45f sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d5fd158 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d63455e xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e7fb12a rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fb9fdb2 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60cdc29c xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x632564b3 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63655edf svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69c741b1 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cdca4f2 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f0f6e3e rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70610705 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7074fb5f xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70d0625f rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70e77b44 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72936780 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x745a8b64 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76a68256 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77b22697 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb09b8 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82fc76d2 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84077b89 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8663cb06 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x869b2ccf svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8917a93f svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89a7e1a1 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8decc35e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8edb5d40 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f983403 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fdf33ef xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91282317 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95e8802b xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x992f22eb rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ad791cc xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d740041 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2793d69 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2abd146 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa63d1a7b rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa95e7c62 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab358ad0 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab98b729 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb05bcad2 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1ab892a svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb424b15c svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4fe4128 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb606cdbd svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6078b0d read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb64214a6 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaa84d15 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbffde577 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc154bd47 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1df6bf8 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc553f8f5 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9dacbde sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcab15726 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc0beb2d unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd83655c xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce7b2877 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3afba81 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3e4ef0e rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd44f1e8d rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd59ff2cd rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6285709 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6697409 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6742414 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6c3aaf0 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8a78b99 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9585af8 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb6d9a8e rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcc41f3d rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde9ffb35 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf54930a xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe07885bf xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5a0fb4f rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe63bf261 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe78af778 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7accd57 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecb6c3da xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecd9987b rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0315655 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf05a37ab rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf19c0eaf xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3440113 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf389ceb0 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4d6d396 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf736dde9 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf792cd58 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf809149b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf970eb3a xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbe34d25 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc63d754 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff745f76 svc_set_num_threads +EXPORT_SYMBOL_GPL net/wimax/wimax 0x073de46b wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0afcd8f7 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1fd0c2fe wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x496c1e6a wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4f6af3c4 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x528aae5f wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x54af54d8 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x57d0ff36 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7fca9dce wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x936993ea wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa30b5f1e wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbf7258f1 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xda3305a2 wimax_state_get +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0bedb25a cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x11ac28c3 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x18261cfc cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x19d1b70e cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1aa916df cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1bfe49ca cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1f33ad50 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x234e5fb4 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x33432a20 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5123ea87 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x54316366 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x559daf33 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ae2b385 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5b88aa90 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6afa99a3 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6eb55150 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6fc8713f cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x800f2c4b cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x80572003 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x806942c3 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8de4b177 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x92fcc358 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbd2bbf34 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbef3ea02 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc5bc9644 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc85fc9b5 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc9ee0ac3 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcc2f6f5d cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdc86bc15 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe44528d2 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe9f6b9a6 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf36a38f5 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf741ac88 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x12a17844 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x574a2d62 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x78c9c265 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdf52ef98 ipcomp_init_state +EXPORT_SYMBOL_GPL security/keys/encrypted 0x9e44abcb key_type_encrypted +EXPORT_SYMBOL_GPL security/keys/trusted 0x687de74f key_type_trusted +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x18494eec snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x37ebab86 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa83bcd56 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd96d79e9 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf03f077b snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf8d300ed snd_ak4113_create +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00738248 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0256a320 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0638ac9d snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0938f6d5 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bc83a66 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e37987b snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x115a031e snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15c95a74 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x184e7ece snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c327605 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d5ee841 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28e42f17 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c95d48d snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ef3fca6 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3075e34f snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30a73477 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x314c3b4a snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38212038 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39169ce5 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a7f9ef0 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f1224d3 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40e02b03 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4959c7ca snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x495d04f4 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4acf7176 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f73e5a4 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fba9b63 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5092dc91 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53ea5a56 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x557bd254 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56376117 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56dbf1f9 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59ac2124 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a13e564 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a24ba59 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fe99dfc hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6563e3c5 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6697399a __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a66dd29 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c785711 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f98ef8c snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70084695 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70a739c8 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x746b2265 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a13da7d snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x819bafe4 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8802652c snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8fae5cfc snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91cbe8ef snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9558e7cf hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95a1ed88 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95de4252 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9668c4ed snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9845fbae snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a2db80e snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9cb54f28 snd_hda_codec_amp_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 0xa515f638 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa88cba8b snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad527530 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 0xae586032 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb06f1a13 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc0e2148 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfbf8b06 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc010d2d1 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc28c9d2e snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3c5517e snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3ea23d8 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6ca0040 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6e85654 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb476ed6 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb667ba8 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdbc00e1b snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd972c66 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdda9deb2 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf0e5971 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf8c2cbd snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfe75006 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2050f63 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2542b6e snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe298fefd snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4e248ca snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xedc540f2 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefc9a7dd snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1c6942d snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4679a35 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4d504c7 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd4a5c97 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x67c2e3d6 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xa1f260e3 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0xa883ef18 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xf643a5d5 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x56a1d406 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa2dbdef8 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb30299aa aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe145087e aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xee86dbb4 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x7c9e04de tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x85750994 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x861f2210 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x078e28b2 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 0xc4dcf3da wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xdafce481 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x658d5feb wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xb0c23cf1 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xb163738b wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x2ad2abd2 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x60c24c34 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x210ee0f9 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xf900fd7c wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x023a5d5c snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x081b06fa snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1af60146 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e409335 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f95bc44 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x206fb840 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24a7e16d snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b1bb6e7 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ce3c594 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34a72630 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34cd3298 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3613f0a8 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3618fa9b snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38ea5d0d snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39af8a8b snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3bd074c5 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x439013ef snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4519d4aa snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47e370a4 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c9dc227 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ff9ae2d snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50126d4e snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x522e2fcf snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57df3a85 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58f11af9 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a09b45f snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ab9811f snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e78fe7d snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61cb70c7 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x625f0f9e snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63c42aa3 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x661b8bd3 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ec219fd snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ad3141c snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c33c661 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f05b275 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80a804e4 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x841b2b86 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8468af1e snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84879a22 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x857b7480 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85c7437f snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85ee0c61 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89987a35 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c9637e0 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x928f1c7e snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x990ead15 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9953e06f snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99fcdaa8 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa058d963 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1ecdabf snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa24f6516 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa39f1778 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa42f73c5 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabbc20ba snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0302162 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb144a385 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1f24b3a snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2c40693 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb685ca18 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb817d44f snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb83b9f3b snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbfa1311d snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3d9f8b1 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc53dd4b2 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8af08de snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcaea6aaf snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd334b5bf snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4bcf073 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8935bee snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc75f0fa snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfa5e5c9 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4f9996f snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe78444a3 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeaea08d9 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec7a546d snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xecf674bb snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3e3505e snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf91cb750 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf99fde7e snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9deb454 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa38349a snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd4f370a snd_soc_dai_set_channel_map +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 0x001a60a7 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x0054cdd4 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00944655 system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x009fb926 blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x00a07912 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x00ac7fa6 inet_csk_route_req +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 0x012a97b1 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x01429144 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x0171edcd pm_runtime_enable +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 0x01b89a05 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x01d32878 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x01d40695 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x021da848 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x0245f811 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x025a8b6c generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x0291691f blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x02d4e6fb sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x03243995 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x038d655e ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x03967794 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03fa13af crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x047d633d regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x048ab762 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c58d7c crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x04cacc94 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x051d90a6 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054691a0 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x054af6a9 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055024a8 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x05b28922 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x05c9a5ee ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x05e5e68a skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0611f1b4 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x063c0aab crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0669e26b dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x0671c948 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x0677d2a7 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x06870f20 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x06a51f7e fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x06a6f8fe fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x06b35137 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x06f789b7 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06f9395e rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x072fb2cf wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0760ee2c attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0768c276 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x076e437b sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x07711fe0 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d182bb bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x08186782 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x0826c9a5 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x085b82dc ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x088febc2 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x0896d1d1 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x0899d150 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x08c103a7 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x08f2308c rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x0904f6ea led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x094f9dd3 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x096873ae pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x09af546e sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x0a288348 flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x0a4b0818 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0a6da3c7 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x0a6dc2e5 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x0a996a3a xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x0abc73ab regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0ad6bbd9 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x0af17f3b wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b134aae sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b2f010e xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x0b60fa0f class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0bb36c85 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0bcef4e0 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x0bcfe6bb debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x0be063a4 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x0c1858d4 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd10a4e work_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0d1db07c swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d6cbc83 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0d8220e6 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0da3cb45 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x0dac77b8 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x0de08c4f __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x0e06f75d tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e160005 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x0e239afa mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0e3965ae bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0f168a0e usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x0f7a7744 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x0f93b186 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0faf86e7 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x0fb37a94 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x0fc4a051 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0ffacc15 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1031766e regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x109981c1 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x10c1dd4a init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x112bf3c2 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x11439f21 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11732a92 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x119af014 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x12140ae0 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x1269feb1 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x12aec3d4 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x12cc8763 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x12cdc09d simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x130b01c4 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x135aefab sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x136e7ae6 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x138829aa ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x138c298b ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13b53e50 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x13e895c8 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x13f2b3a3 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x143cd7f9 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x14639c0d crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x14ba33d3 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x14be3a70 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x14c6825b sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x14f31633 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +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 0x15b3615a ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x1631b5f0 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x163f5126 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x164d2395 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x165cad09 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x166cd910 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16c3707f security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x16f32360 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x16f77e3f hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x173998df debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1764b1fe queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x17c15b34 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x17c1f74a ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x17ebe06b xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x183e0d26 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x18622c53 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x187a1963 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x18ea7915 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x19116e77 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x192cec91 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x195e7fe6 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x19636b0c class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x19869add dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b786af put_driver +EXPORT_SYMBOL_GPL vmlinux 0x1a17b981 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x1a1c5da1 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a7ccca8 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x1a8f43e3 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x1a951695 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x1a9e7d29 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x1b1a1a71 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x1b6490c0 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x1b83a8db dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba230b1 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x1be4e3b3 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x1c04c744 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x1c228373 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x1c2f074e pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x1c64d19c pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x1c7230dd wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9851dc stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x1ca74aa2 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x1cb3d67c register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x1d01eba5 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x1d1838fe pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d7922e9 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1dbc1beb anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1dd4c63b tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1de82715 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x1df3b9bb hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3591b5 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e9ec8bd adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x1eb66e50 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1f344961 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x1f50b786 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1f7c7ecd relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fa2401d class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd7d5ef acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0x200a235e dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x2016dede set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x2031e51a cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x2045f92d default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x2074c448 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x20b7fa91 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c5e54a ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x20e47599 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x213e9571 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x2171b76b inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x21a72283 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x21bbfe7d regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x21bf9793 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x21c55da1 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x21ddf52a ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x22474981 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x2294de46 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x2299ec8d modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x22b1912f free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x22ca610a nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x22e2f12f acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x22f62a53 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23881159 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x2394a2ae power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x24036328 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x243198d6 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x2438bb4b sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24b69b5a console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f07d7f usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x252c4517 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x255f4a32 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x25a6c81d pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x25c568dd usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x25ec826c vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x25f35bb2 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x2691f00f tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x2692ce2f xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x269c3e0d class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x26c0dd21 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27c96944 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x280ddedd pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x28132eb0 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x286a9e2f sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x2875c500 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x288c35aa simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x289b2464 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x28a25cfd bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x28a99b41 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x28c9b091 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28d6d7ae usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x28d8258e trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28ea3728 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x2909fdb2 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x29546140 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x29951639 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x29c2e049 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x29f012b3 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x29f40f3b regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2abf6c4e tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x2aca5990 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x2adc634b inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x2b289532 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x2b379fc0 xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x2b514126 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2b55b80d xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b87b16a ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x2baf0401 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2bb3f75b tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x2bdcf2a6 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x2bee69e2 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3d1290 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2c66a862 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2cd62a46 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x2ce8cf1c ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea1ad4 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x2cfc48f9 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x2d07a31c sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x2d1748c0 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x2d506b1a __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6ff4de ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2dbf5bca relay_open +EXPORT_SYMBOL_GPL vmlinux 0x2dc1fe45 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x2e163ed5 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e85d6b2 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2ef9ccb8 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x2f0a4eea hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x2f1703be regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f176f40 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f4fbe11 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f5c4162 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x2f631b7f sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f70d7b2 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fa55204 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2fc767ef md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe22996 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x2ffa946e blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x3005254b device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3012c541 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x30231618 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x303f86eb input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x306bd383 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x307a8a57 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30f271c4 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x30f4070c inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31546f27 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31fdb959 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x322a9184 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x3234ee6f get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x329b990b ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x32bfc0e3 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32efc5b2 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x33299283 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x332b4fe5 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x334246aa da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x335b6738 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x3364d780 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x33a268d1 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x33b0e1bb ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33e9b13d bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x3427b5b4 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x343997a7 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x344d549b aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x34539ffe usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x345c55ad usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x349c1f1d adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x34bd8d36 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x34cb7834 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x34e21f2e pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x34e539a8 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x34e9465d tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x34eb5bc0 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x35599f34 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x35d47527 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35d99b29 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x360a714e kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3648afad sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x3660076a generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36b5abed debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x36c8a587 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x36d56238 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x36e1c0c4 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x36ea60d4 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x370cc6c0 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x3726a2c0 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x3759224e i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x37a8d29b scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x37aadaa7 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x37bf9286 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x37dad708 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x37f98b40 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x38206a5f hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x38343acf pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x38b30e9f pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x38b87f75 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x38e7deb9 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38fea2eb __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x396d7c29 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x396ea831 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x39ae0461 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x39ba4f11 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39ea55ae usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x39f2224a cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3ab262e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x3abf4c11 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x3aca364c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x3b16956e usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x3b1a2666 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3bd5ea55 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3be9808f usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x3c5a38ea vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x3c63cd3f skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x3c86111d pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cac2c31 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3cbee890 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x3cbf8db3 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd2202d ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x3cd44281 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3cffb07f shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x3d02ffb8 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3d367aa7 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d85d6f8 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x3dacec20 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3e261f32 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x3e2bf9aa tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x3e2f0557 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x3e310d76 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x3e3bfe19 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x3e55de6c blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3ee1d984 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3ef7f6ac platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3eff75e7 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f079ac5 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3fd50cdd spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x40104301 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x4015300d led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x401bb317 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4040b97c relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x405dd1fe udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x40a99a61 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x413d1d65 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x416b9026 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x418e9755 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x41b76c24 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x41bf9bcb crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x420eafff ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x420f2d6a spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x421342c1 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x42359ce5 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x425635fc ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x42574b17 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42aa6a57 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x42c41ca2 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x4308d493 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x434c7fe2 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x434d5e59 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x43637855 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x43dd9ea4 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x43de5aa8 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x43e984eb __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4403ad1a blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x440c7486 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x444c5b70 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x4463cb84 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448bd33c agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x448fc9ec regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x44a35960 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x44c2451d fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x44ccb034 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x44ed2572 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x4550757c debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x456c0991 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45a51a8d inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x45a6313a pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x45b2ee67 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d04260 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x46405ec7 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x4649ebe6 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x46503559 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46b669c6 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x46c333eb class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x46c6bd9d ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x46cd0052 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x46e3f3fe class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46e43ff9 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x4707f9bf mmput +EXPORT_SYMBOL_GPL vmlinux 0x470fb7f8 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x471278e8 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x474bbc42 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x474f699a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x478f55dc get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x47c14918 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x482f361c __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x4836a929 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x486abb9a pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x4883146c unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x4894674f dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x4894c4bc rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x48a095a9 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48d241f9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x48edcac3 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a404f6 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x49a438d4 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x49ba4a9e user_match +EXPORT_SYMBOL_GPL vmlinux 0x49e617f7 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x49f7582a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4a1acedf sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x4a3cf29b inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x4a3ecdf9 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x4aa5264c kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x4ae130aa workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x4af73faa tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x4b81f9b3 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x4be70600 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4bf91d3b __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4c39e766 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4c59e28a dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4cbada26 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4ce8541a blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x4cfae4ce hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x4d2f393d map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x4d619354 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x4d624244 put_device +EXPORT_SYMBOL_GPL vmlinux 0x4d8bf3f5 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4dabeda3 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x4e0a44ab wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4e100fab cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x4e187949 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x4e5e5f62 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4e89d0d0 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x4e8e1790 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x4eb78244 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x4ef3246b cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f3103c9 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x4f4cd1d5 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x4f4eed24 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4f4ef017 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe408e9 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4fe76afa unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x4fed50f6 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x50135b09 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x50282b6c sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x503afef1 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +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 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5126552a ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x5149ea07 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x515d7814 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51ba75c2 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x52fc1e00 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x53098ac5 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5359f988 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53792d7c pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x5391fe2a ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53af7a62 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x53c9ca3c driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x53ded5b8 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x53fb364e ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x5403f4c1 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x543b8d6d usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x544ee6a0 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546bf674 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x547d4e38 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54abe7e4 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x5500452a stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x55280cef led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x556a030f usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5570aeac crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x55751794 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x55fe244f ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5638c6c8 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x56412588 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56980a29 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x56b63f11 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x56bcb241 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x56d7543d vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56ec3acb cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x5720f85b cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x573482c3 platform_device_register_resndata +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 0x57f3007c rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x580e0d8a dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x58645c1f clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x5886bcfb kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5887ea3a pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x589fcb6c ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x58c39e83 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x593166cc get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x59511433 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x59d0d8b7 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x59e77be9 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x59fe8e45 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x5a103365 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x5a1ed0c7 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a202533 ata_sff_dev_classify +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 0x5ac2727f smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x5ac6611f PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x5adb9a95 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x5ae8e292 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5bb2ea55 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c92c66f device_move +EXPORT_SYMBOL_GPL vmlinux 0x5cfd7c4e xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x5d095ee9 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d428a90 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d6db7ca aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d7cf068 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e36c2f3 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x5e3a9864 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x5e3f871e sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x5e400583 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x5e601795 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x5e823af7 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x5e85a497 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x5ea79471 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x5eab7bc4 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x5eb3b8d8 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x5f01e9d1 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x5f091f2b bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f38680e dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x5f880b34 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fce868d dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x5fec9dd7 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x6008ea7f use_mm +EXPORT_SYMBOL_GPL vmlinux 0x60213ae9 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x603b95e1 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60619043 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a39cf6 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x60cc87ec da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60ec11e3 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x60f5728b __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x60f5abfd setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x61214e33 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x6145bdf2 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x614eb22e rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x617fe3c7 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x6196d8b4 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x619fe338 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x61e242de tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x61fd9970 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x620d820a usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x62110f3b dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x6224cbcf regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x6252e055 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62ce200c wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x630dfdf4 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632a5e92 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63b0d3a1 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x6419c0dc blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x642a4972 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x6449dc15 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x646e54aa locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x649d425e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x64eb2582 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x65539e94 find_module +EXPORT_SYMBOL_GPL vmlinux 0x65b09788 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c5cebf tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65f435c2 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x66042368 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66767aee skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x667ce91a unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66951c36 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e2f285 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x66f67499 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x670b5fed pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x6725d898 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x67366a8d tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x676b6b9c plugger_init +EXPORT_SYMBOL_GPL vmlinux 0x6794fc2d inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a369d2 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x67b89fde key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x67d1e9f5 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x67dfdf8b kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x67f12692 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x67fad7cd bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x683b5822 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x68549872 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x685f7d98 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x686e5901 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x687387fc ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68a8ed7a scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x68bb5173 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x68d26774 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x68e5fceb __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x697b76de dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a1a52f7 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6a3937fb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x6a4d295b fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a7ee004 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a88810b ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x6aada0f3 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6acc70c1 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x6af1a28d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b2c563c usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x6b35f6fb eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b90d463 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6be00058 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x6be582aa tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x6c01b171 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c30c759 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x6c499e22 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c512279 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6c5e53e3 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6c7a1f40 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cc32d2c blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x6cc97152 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6cdedff7 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d6eb69d hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6d9a837b pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6d9c56b1 md_run +EXPORT_SYMBOL_GPL vmlinux 0x6db0d173 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6dbef296 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6ddde572 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x6ded2e99 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x6dffefa5 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x6e154cf0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x6e2adf3a inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6e2f8fbb crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x6e4a4132 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e784139 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x6e874a16 edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x6ea98361 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6ee13322 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x6f0a3c90 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f5fa870 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6f6e3beb ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x6f8ec62f dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x6f9d07cc ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x6fe2db2b tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70627d9e wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70966cf4 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x70d908ed __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x70eda069 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x70ff7dab ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x71137a51 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x7125c0a6 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x715b9bb7 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71b9a22a dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x71d47e30 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x71dd3dfb i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x71dea487 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727942eb usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73f7d69d sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x74172dd4 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x741b05b9 sg_scsi_ioctl +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 0x745cc833 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x749455a6 spi_bus_type +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 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74e505d8 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x74e7d85b inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7512b6c0 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7574284d inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x758b0419 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7596d7d3 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x75cf1a66 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7633c1e9 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x767edcd2 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x768bc012 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x77aba75b unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77eeac01 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x780e66e4 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0x7825285a ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7846417f tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x784c6a4f sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x78513c08 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x78afe835 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x78b7e8bf led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x7933aa13 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79671796 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x798cafd6 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7992865e cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x79b4cfee vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x79c369d3 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x79ca1d86 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x79d2a713 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x79eec97b dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x7a16239b tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x7a2b4901 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7a3c6ee3 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7a3dc167 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7ab39603 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ac468da crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7afbabce ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x7b1006b3 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b205ecd device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7b2b98f3 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x7b53f377 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7b8479eb ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7bce10a7 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x7c39a09d wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7c422d74 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x7c6a3411 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7ca67853 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x7cd4a985 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7ce9e563 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x7d1d3104 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7d2b396b cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d755c48 tcp_reno_min_cwnd +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 0x7e124c7a sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e2886b3 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x7e470dba ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x7e535c08 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7e5df8c5 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6ae40a tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x7e8b8775 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ee43054 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x7ee500d4 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x7ef44adc ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x7f11ed4c __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7f49bbe3 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7f5d6074 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x7f5dde4a inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x7f7ea6ab sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x7f912d9b __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x7fcd90a4 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x7fdba633 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff7852d __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x7ffbd13b pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x7fffd2e2 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x80452cda ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x8050d04b srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x80864bc7 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80a4d616 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x80c0e402 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x80ede5d5 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x80f0f275 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x81087a4d ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x8139e566 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x81402571 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x8141102b mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x818fcf2b sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x81d5548d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x81e508d8 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x820510b0 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x8272f2ea pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82985b66 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x82b1102d sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x82c5bbc5 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82cebfdf vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x82fbc151 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x83255bf7 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x83522fdc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x83569310 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x836a064f dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x83bfb2df md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x83c1a491 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x83f96977 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x841ee9a4 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x842aadca kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8485ad2d driver_find +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x84b740bb sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x84c6d7b1 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84f56b8f input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x84f8d3a1 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x850537c0 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x85102ff4 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x852e3339 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x85463c33 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x85600ffd ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x85688923 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x856e862e platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x859aea9a xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x85b724b1 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c5d09d crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85ef45c6 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x85f22fef platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x862c1f78 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x864d440e vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x864ea3a1 xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x86545ea3 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86de0469 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x86f012b5 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x8700bc0c pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x8716f69d ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87641ea8 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87bbbcc1 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x87d65159 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x87ea3425 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x87fec50e rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x88084a1e tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x880983b5 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x888a4ab6 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88aee13d sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x88bf19a8 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x88ce43b8 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x893f1db2 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x89586903 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x89da89c5 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x8a361ad4 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x8a474b30 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x8a4938c9 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a917ad0 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x8a9d847c disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0x8aa8a26b sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8af2adac dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b3d9247 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b895f0d shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8bc11b4d fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x8bfa02a8 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c1688d3 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x8c29332c init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c59bf2b sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x8c7de037 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8c94a145 input_class +EXPORT_SYMBOL_GPL vmlinux 0x8ca62488 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x8ca9e5e5 xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8d318a1b acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0x8d6124a9 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x8db209ac register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x8dfc2cff gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x8e2d9fb9 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x8e2fe527 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x8e38dbed netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8e65e529 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x8e959afe ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ef0aa50 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f876c17 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fc6382a ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x8fe7f077 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x901eb7c8 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x9025e0fa usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x9059b88a unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x906cf46c ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x907c20d0 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b227a6 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x90b36e4b ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x90da9f7d da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x910cf0c7 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x91102064 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x91293003 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x9132dcb0 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x913adfa8 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x915d5e7f disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x915dc125 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x91668d5a pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x917a78fd transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9186ae5a sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x91c01b8e crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x91ead299 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x9208e1c2 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x9257683c simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x9258249e sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9263f02c sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x926568a7 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x9273bb00 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d55fd3 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x931bc1e7 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9391c009 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x939d122d spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93c55870 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x93d10b0b debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e35286 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x93fa7d22 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x93fe0a89 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x941a1664 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x947918b6 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x947dcd35 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x947e9fc7 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x9483c9dc dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94aa2a7c inet_csk_compat_setsockopt +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 0x953389c1 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x953f9b39 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955b8e8e __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x955cf9d3 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95755ed1 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x95c8f34f bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x95f8e105 sis_info133_for_sata +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 0x966d94bd pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x96b55c4e fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x96c0da53 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96d99742 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x97df4632 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x981b3157 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x981c6436 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x98252218 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98476423 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x986d042f xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x98f21f73 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x991a8496 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x991fa78f sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9937331b __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x99536c7c rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9964ae7a sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x9972833f sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x99867484 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x9988c4b4 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x998d9677 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x999e360e transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a1e0d94 device_register +EXPORT_SYMBOL_GPL vmlinux 0x9a34a0d9 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9aa98f2f __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x9ad4be63 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x9b429bf1 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x9b6ca76a __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b82a24f pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bab0f46 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9bb5e759 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x9bce7021 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9bd8ed32 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x9c23a640 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x9c27c02c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x9c286c5a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c324091 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x9c8480a5 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9c90d044 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x9c943417 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x9ca44cd2 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ceb69d1 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x9cfaeb64 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d30c036 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d633452 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d7ca994 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x9d7cf7b5 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x9d7f06c7 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x9e29b77b inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x9e390314 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9e72da27 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x9eee4c16 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x9f20d176 sysfs_put +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 0x9fe026b2 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xa012f843 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xa025434e dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xa06b8363 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa0bdc8c8 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xa0d809f8 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa0fd5f5c dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xa12e6f4f pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xa16377bb xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa1981af0 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xa1c4d02b crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa1ddf303 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xa1fc6aa0 xen_swiotlb_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xa215f8fa user_describe +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa2282520 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xa23cf355 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xa27f5893 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa2bbed89 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xa2bf1793 plugger_set_plug +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa33ee459 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3977e02 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa43bc971 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xa43ff061 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa46f4c0d dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4c237a3 __css_put +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa5097f8e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa50cc9ba regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xa5889a76 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xa5a2eac4 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xa5afbb7d xen_swiotlb_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa62130b7 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xa62e7583 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xa631e326 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xa675156b hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa6844d67 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xa689169a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa6ad8c54 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xa6c261e6 device_del +EXPORT_SYMBOL_GPL vmlinux 0xa70f21a0 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa758cb5a rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xa777d467 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xa7c52501 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xa816be1b regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8749349 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xa88159e8 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa93415ae blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0xa96f73d0 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa9812bc4 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xa9841fba __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xa9909b23 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xa9918828 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xa9a61f38 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9ea16d8 __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa556fbc scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xaa6da8c0 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xaa83484f user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xaa864332 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xaa92d0f7 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xaac0bec6 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xaac4e672 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6cbb4d flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xab6eb2cc debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacaa0aa9 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xaccda6ca usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf97034 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad0cd76b power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad37fe04 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad661143 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xad844cc7 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xad986012 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xad9e36ad pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xadaafe46 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadf63845 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae14a786 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xae3c052f __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xae3d087f noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae7c9bce sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xae8a156b ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xae972b32 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xae9e91dc skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xaeba385b rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xaed8df15 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xaee40835 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xaeea2c97 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xaf277bbb usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf80db21 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xafa247d6 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xafc5a928 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xafd6c248 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xaff1e321 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xb0130570 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb01d2be1 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb0334c00 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xb09f13bd fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xb0c0d8d1 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb137f9d6 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb1557d74 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xb163e7c6 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xb166d370 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1b03c17 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb1c349f5 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0xb1c34dab device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xb1ca13ff led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xb1dcc4ed crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xb214f177 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xb255abab crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xb26158ad page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xb2932c6e __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xb2d2c254 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xb2f200b6 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb3045178 xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb330831a wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb3646503 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xb3bd3ef6 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb4759adc stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xb47f7d83 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xb4a7169e br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f53cbd dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xb50dd254 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52efdb6 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb54211a5 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xb54d4eb6 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xb54f4044 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xb57f361f usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xb5858c36 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6221b3a pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb667bb9b __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xb677cd3d usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xb69c0b06 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6cdc293 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb6f12bce blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xb6fe79f6 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xb70f1262 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xb70fa8ae ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb72c92af shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb757c377 pci_dev_run_wake +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 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb7fe1974 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xb8122d58 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb816dd56 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xb82224bd edac_class +EXPORT_SYMBOL_GPL vmlinux 0xb83a7601 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xb8770b34 dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb89bae94 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xb8a281ca ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xb8d94cbf crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb8e7ea85 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb92997ea disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xb939b324 css_id +EXPORT_SYMBOL_GPL vmlinux 0xb9428581 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xb94caa9d get_device +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb989d163 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xb999c1fc elv_register +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9a32910 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xb9adb8c6 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b8595e sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xb9c2840a usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xb9d02fe6 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xb9e389d1 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xb9e48c95 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xb9fc808b device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xba050b29 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba48e652 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xba5fa366 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xba6c98ff bus_find_device_by_name +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 0xbb2b3a19 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xbb9e0a15 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xbba97729 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbecba8e stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbc063421 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xbc61d00e pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xbc9756e9 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xbc9eb3c8 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xbcb7ff59 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbcd76b57 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xbcf615cd sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xbd09ba41 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xbd1ece03 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xbd21e5af crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd5cf589 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xbd8a25ed ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xbda6d0e4 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2ea0b0 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbe926238 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xbea8e207 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xbede2c3f rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf51b25a unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xbf799231 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xbf94c41e pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc024e5c3 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xc03d80f5 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xc03f9725 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xc097a4ef led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xc0a89073 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xc0b6d671 device_create +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc14465fa __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc14c2824 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0xc1510e08 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xc154698f ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc1722f7f inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17ec9c0 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xc1999805 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xc1ce1982 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xc1f91c9c rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xc1fc1204 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc239b74f debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc27db799 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2a09b20 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xc2d55f6c sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc31fdaf1 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xc34e5a05 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35532ec regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xc3555775 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xc3584a09 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc374df53 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc40d4142 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4915d8e ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xc4aad546 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc4f47aea crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc55a4471 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xc55af783 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xc55c2e67 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xc55ddfb1 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc55e13fa md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xc56a89fb spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xc570cb5d xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xc59676e9 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5f651d9 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xc5fb34d2 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6178d7b user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc655aca0 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc68ffd64 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xc74b2466 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xc75f0797 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xc7633e38 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc775bcbd cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xc7de040a __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc827c7c9 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xc831d9c5 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xc84e8d97 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc8fe36eb class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc9112f86 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc91f3298 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xc93caad8 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc96af7f4 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc9a3e2d6 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xc9c66217 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9ecacf4 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc9f902b7 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xca224c2c sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xca374ffd sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xca63392b ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca82f078 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca8df7bf acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac6282a xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0xcb4b6bdf crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbfb4a8b tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc7678a6 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xcc8a41b3 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd4ce74 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xccdc0b31 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcd1da758 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xcd3da3e0 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xcd5cb281 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcd820ec0 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xcdb3da5b fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde06445 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xcdeccbc1 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xce02bec4 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xce06af34 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xce20decd stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce7a688e bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xce95a1fc pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xcea2e591 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xceb580bb shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xcf1ee780 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfbc1a94 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfe434ea ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd05c0356 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0xd05cabbb system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +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 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd0ff1850 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xd1010d76 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xd10f36f9 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd12eea5c sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xd14a493d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd16a7c81 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1b96994 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xd1d383b5 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd1dc3941 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd1f5ecc1 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xd2089e32 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd23fae5a platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd28295d7 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xd2a51521 is_hwpoison_address +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2b6d176 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xd2b732b3 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xd2bc0b53 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33f2d47 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xd34a06ec platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xd38154a5 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xd397beb6 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xd3aa11c8 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xd3cef9bf crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xd4009544 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xd41fe06a ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xd42df673 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd4332246 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd43850cc rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd44c2c22 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xd5237496 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xd5565197 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xd558f06f scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xd5724937 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xd57c86eb xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd599377a blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0xd5d2d771 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xd5d5bedd driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd6025e69 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xd6558e5f transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xd68d0ea6 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd6b1bbd0 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xd6c132c7 __class_create +EXPORT_SYMBOL_GPL vmlinux 0xd6df3a6c wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6f3b319 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd7320f9b ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd7368449 sysdev_store_int +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 0xd7b0ff42 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xd7c7cbcf led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd8351f2f rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd8a0d306 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xd8a3a2c2 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd90a65d8 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd929248a usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xd9ab6547 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xd9bda40f pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xd9bdfaba tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd9cec7a3 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xda4d3463 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xda936295 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xdab1ea3d register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xdae8a0c1 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb1afbd5 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xdb1d5090 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xdb21d8b3 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb2d6d4f usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xdb3d2b91 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xdb5909fc crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xdb65cc66 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xdb9d5a20 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xdbe1256c stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xdbe266b7 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xdc07073f uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdc281311 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xdc363768 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xdc36c988 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xdc6ff7cc udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdcd188bd find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdce8d2f6 device_add +EXPORT_SYMBOL_GPL vmlinux 0xdcf379ce usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xdd0bf1e8 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xdd0f37ff dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0xdd1e1d55 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xdd280986 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xdd57bfa0 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xdd861c03 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xdd960d53 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xdda7a795 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xddac327b attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xddb32a82 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde4518ce wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xde460078 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde7f8218 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xde883b6d wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdedef698 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xdefa2afb dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0xdf069361 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xdf5a1e30 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01e7ca8 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe05019cb pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xe081f5cf __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xe0879006 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe08eef75 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xe0b88cfb driver_register +EXPORT_SYMBOL_GPL vmlinux 0xe0c1a97d xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0c9b70f bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0e657b7 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xe0e65dbb sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe0ed8d1b platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe114f27d dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xe1811b2b inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xe185661e fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xe201b173 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xe21e81e0 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe246cdde crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a4d262 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe2c776dc platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xe2caa429 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0xe2d85add apic +EXPORT_SYMBOL_GPL vmlinux 0xe2ed6b58 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xe3532e7d pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xe36994ff rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe36edb46 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xe388f65e pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3da3e8a unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xe4074099 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xe42cbcde posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xe43bdd78 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe446e558 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xe44a3059 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xe48236da task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0xe48c2511 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xe48da31d usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xe49a64bd pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xe49a8e58 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xe51a050c devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xe59c67f7 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xe59d5653 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xe5b38706 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xe5d0bf60 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe5eeebf2 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xe6128754 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xe616ed44 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe63a6df1 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xe63c167a plugger_remove_plug +EXPORT_SYMBOL_GPL vmlinux 0xe64027c4 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xe6409cdd crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe68733e1 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xe69819d5 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xe6d080a4 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7072bda get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7663d71 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0xe793bc31 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xe7bfe9ae inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8346427 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xe84644e8 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xe8598056 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe91a7ef9 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe979cc28 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe988f111 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea0c8ceb ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea12b61b user_update +EXPORT_SYMBOL_GPL vmlinux 0xea22de0c mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea7e666b sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xeaab9459 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xeab038c4 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeaf40ed5 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xeb656805 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xebc914d9 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xebe0e99d ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xebe97ee3 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xec09b6d8 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec1e6fcb ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xec23cf94 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec423424 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xecd535ce regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xed26ee5c fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xedab77f2 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xedb08900 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xedb2502f elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xee356056 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xee5ee4cf usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xef071671 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xef1d25a0 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef436b7a __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xef541355 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xef6825f6 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefabb209 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xefd32599 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe4a59c crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xf01f16ac tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf0e5245f crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xf10aa093 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xf13e230f pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xf16c5f69 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf2136049 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xf22b6656 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xf267eaf3 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xf2c609d2 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xf2d83d52 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xf2f357ce shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf320e7aa regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf3252c2a anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xf340ced2 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf358093b crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf3912ffa crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xf3a7c838 user_read +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3be0d76 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xf3c823c6 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xf3dfbabe sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xf40e95d9 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xf41124e4 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf426a4cf register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xf44ec988 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf457f3ff xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0xf463611a n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xf4820009 acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0xf4961ea8 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a31cef vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4be4204 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xf4e1e2f8 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xf5135db4 dev_attr_em_message +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 0xf58a17fe ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5a7df76 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xf5c107fc usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xf5c98049 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xf5fbff57 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xf61434b8 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xf6241fbd fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xf635c949 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf65e8437 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf70ea259 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xf7107ac0 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf7275dba ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xf729d7c5 dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0xf759b92b net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xf761b827 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xf79ca3db pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7b8b6b2 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xf7c7d4da usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xf8200e9c uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xf83accce mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xf86134aa ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xf872c59b hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8cf4e90 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9090bbb ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xf9300c36 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xf948fcb2 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf99c61fd crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c7680b pci_configure_slot +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 0xfa602ade wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xfa895c5d sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xfa930e64 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xfaad4710 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xfadc7876 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb3bc1c8 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfb5bb95b dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0xfbae1e8f scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xfbeb357a add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xfbeb6afb ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc0892e1 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc7c9e46 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfc9aa8ec unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xfca98e00 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfcc5a491 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xfd345b05 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xfd34d3d7 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfdcf4bbc ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdf321f2 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xfe460922 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea34a5a crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xfeaf2e47 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xfec8f069 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff4087cb spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xff467a77 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xff4daf59 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff87bea4 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/amd64/virtual.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/amd64/virtual.modules @@ -0,0 +1,521 @@ +8021q +8139cp +8139too +8390 +acpi_ipmi +acpi_memhotplug +acpi_pad +acpiphp +act_csum +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_alg +af_key +af-rxrpc +ah4 +ah6 +ahci +algif_hash +algif_skcipher +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 +cachefiles +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 +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-raid +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 +ec_sys +einj +em_cmp +em_meta +em_nbyte +em_text +em_u32 +eql +erst-dbg +esp4 +esp6 +evbug +exportfs +fat +faulty +fb_sys_fops +fcrypt +floppy +fpu +fscache +gameport +garp +gcm +gf128mul +ghash-clmulni-intel +ghash-generic +ghes +gre +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_pe_sip +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 +mac80211 +mce-inject +mce-xeon75xx +md4 +michael_mic +microcode +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_defrag_ipv6 +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 +nls_cp437 +nls_iso8859-1 +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 +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 +test-kstrtox +tgr192 +tipc +ts_bm +ts_fsm +ts_kmp +tulip +tunnel4 +tunnel6 +twofish_common +twofish_generic +twofish-x86_64 +ufs +usb-storage +usbtouchscreen +vesafb +veth +vfat +vga16fb +vgastate +video +virtio_balloon +vmac +vmw_balloon +vmw_pvscsi +vmxnet3 +wanrouter +wp512 +x25 +xcbc +xen-evtchn +xen-fbfront +xenfs +xen-gntdev +xen-kbdfront +xen-platform-pci +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_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +zlib +zlib_deflate --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/amd64/virtual +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/amd64/virtual @@ -0,0 +1,11641 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x6ba93cfa kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0x83e6eefa 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 0x04808cdf 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 0xc895daf7 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x572abadb 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 0x33c19e03 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x51cb64fa pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x581c26cb pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x5b7e524a pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x6fadea6a pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x9074bd41 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x9996e5bf paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xbbce1697 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xc11977f7 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xd31ef58b pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xd56429da pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xfb6a7f30 paride_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x031644ab ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x041aca4b ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x06ec0295 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x344fb8d7 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37aa2688 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x396ed216 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4aa4e1aa ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x60e5c46b ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x618eb310 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6d8ec01c ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x84320ad7 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x87cdf1f8 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9c521f00 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xaef5b4d9 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb991eb0d ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc51cd8e8 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc81a3658 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc8da5e7a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd51d8318 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe1b051f4 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe8a501d7 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe988e92c ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xecac9204 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xedcff0f7 ipmi_poll_interface +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 0x5f821ef5 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x7ac78c5f edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xb7099cb9 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x000aadcc fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x20ebbeba fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x24d9bfde fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x25d8d1df fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x28df7023 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x320fba7c fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x40e99191 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4126106b fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x47fb70ed fw_core_remove_address_handler +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 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6d8884cf fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x74225605 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x75ee4cbd fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7852cca0 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8040cfaf fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8406d541 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x84c8d692 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x890b6faa fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb077f11b fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcca8b5a1 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdf038715 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe64afa8e fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf3d308f4 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfbf5cbf7 fw_card_initialize +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01ead0ec drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02339a6e drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05cb655c drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06777985 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09d8f376 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c754b56 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c7776a3 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf26c6f drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e9a74c1 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f006b23 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x128f7143 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12da4754 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1307156f drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x132272ed drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x173ce76e drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1830ca51 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e4c101e drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1fe4fe62 drm_get_last_vbltimestamp +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 0x21825fa3 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x231d5e72 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x231ff408 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25532e37 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x289b7040 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b64a147 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c07801f drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c893888 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2dc0de8f drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e270a3c drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ec4cdf4 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32e44dff drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x386fbed5 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb7aed0 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4363d16c drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x471b5356 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47ae8927 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47c63381 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498120ad drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b2d095e drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bc09a98 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c2523d5 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e5fdb5a drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50c8ac12 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x519528d6 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5211d206 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5712ee94 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57df4049 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57fd54fd drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ab0c437 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b69532e drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c6d6524 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e487f73 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fdc558a drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x650b8de7 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6608aa68 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x693a915f drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69c8ae7f drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69ed3209 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6becc332 drm_mode_destroy +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 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x794c8373 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ad9c092 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4a71bb drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f81016a drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80362135 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8113d65b drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81c5a7b9 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8223a038 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82635cb9 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83253d87 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83418a88 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8755701d drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x877964bd drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b9c9027 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d58a46e drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e203f25 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90a65e96 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91b5d948 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91d3392d drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92a89819 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94f69b74 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95bbf4c1 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ad75ae7 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d067402 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ff9c5db drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa02a18a5 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa10437e1 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1ee4253 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3b8fda0 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6a3bfae drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8396b02 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9669747 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad5e80eb drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae961277 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0c22b9d drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb125073e drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb131032f drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4c1cd00 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb62c616e drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb752f60b drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb881ea59 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb89e6f33 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9c2b9e7 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbaa7fe11 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe882cc4 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf2f8241 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1621dbe drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4352d7e drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5a5115f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6c3ec9e drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca35b1ff drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbda325d drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce38f47a drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd02eb6e6 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1104077 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd135aea9 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd345baa9 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb57b384 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde60b0d3 drm_mode_prune_invalid +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 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5d9e3d4 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6864c33 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe758bb57 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe807ea6b drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe835dc76 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8b35978 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9b5b446 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb0b3109 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebaef664 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec9aea6a drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed411ddc drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee7d20c7 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee99a42e drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0d126af drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0fd493b drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1a12e71 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1d15501 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf362c9b9 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4741088 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x021abe40 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x07270433 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0bd037ea drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1003cb98 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11a5f3ed drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e60e7fa drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2526bd29 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x44028c1e drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x63738315 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a6ac378 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x702c2a64 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x79ac4bde drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x81487562 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ccf52ce drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d23d49e drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9184d935 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x93ba79ff drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa6f65c4b drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaa317f64 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xae733fc3 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbeb14982 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc053cdac 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 0xc5376313 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xce46810c drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd256c00e drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd74d4c30 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda462c01 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec978284 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf22ec619 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe09a16d drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0296a185 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0680d864 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x06c7f5d9 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b46b380 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0f4eed70 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x10281dd1 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12644d5a ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1372c9b1 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x154a72b7 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1723f5cd ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d628572 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2d901ae5 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ede06e9 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x351d6157 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3541e94c ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x360f2d6a ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x363099b0 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36c02730 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3d4d5d61 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3e2ab0f7 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3e3a7b60 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4528099a ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4799d845 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b3892c3 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b51dbdf ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4cb50c0d ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x647b7751 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7111f09a ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7246fc1d ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c7cbc61 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7db1ccd8 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e29981f ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8f5d12de ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9500015f ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x958d54a2 ttm_bo_synccpu_write_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 0x9f064c4f ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2a56acd ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa46b2c41 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa4fc8a7 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb3e26a24 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a78d92 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xba3b204d ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc983b4eb ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd6130795 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4b69ae4 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe7b1df23 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf3914168 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf725daa0 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfca21653 ttm_fbdev_mmap +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 0x4bdecdf6 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x8567b60a i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x0e81b0c2 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x4be7a114 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x99ca2a91 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x2f3d6e67 amd756_smbus +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 0x65314db5 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xf81c8c6b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x199bb26d ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x329cfb1b ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x371c9b18 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5f74b8cd ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x66336406 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x82aaf8f6 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x893b24ea ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8a07219e ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa076dbcc ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb08e5c3f ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb5faf806 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb6526f70 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc1343bf5 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd30f53b8 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe0896cc4 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xea5ecbfa ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xec29bb96 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0313b98b ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05d24fcf ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x067e05f7 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b3af43e ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0de0e49b ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x139a6f05 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15c8d572 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1817d8f3 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1833f485 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x224bacf8 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x230ca19c ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23f992f9 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25e5a8d8 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26ef44ce ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2999b764 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33546854 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c451fd5 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d8d8a2e ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x41bd4026 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46d941b9 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48d2faea ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d0baa11 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x519ea733 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51e73b0e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55fad8e2 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66859a4a ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6c6119ca ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x731fda42 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74c1868c ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x774a2f9a ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c14a312 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84ed3bad ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x85311f26 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x85962987 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8725f8f2 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x897e0a0a ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b39bec6 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8c1d5790 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x994a76e7 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9cf01c77 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e65a6cb ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa00b7cb3 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xafae5453 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb0bec292 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb338160c ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe243d7c ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc17a9f83 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1880eca ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9d95d52 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xccb4267c ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd4c912d ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcea8bc0a ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd092fb5e ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3fe1242 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc9ac8bd ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd3cc151 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde9ee683 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe254697f ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2d204f3 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9ddb89e ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9e8e949 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf06bc420 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf66e4fde ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6e1cbca rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf893f4e2 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf90ae5e6 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfee8f6d7 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0b4d6478 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1a7bf976 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1b104a19 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2b3f6ac9 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x388bff9a ib_get_rmpp_segment +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 0x96ba5879 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb54a745b ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbc38279e ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xce08854e ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcfa2746d ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd98ce6b7 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdcabaa09 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbd90c02d ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbfea7890 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc870f1ba ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd563ae44 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xea42ac9b ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xebe8f1da ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xed9be464 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 0x198f5f80 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x27f73da6 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x433cab7c iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5a553663 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6c350f40 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8179647e iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb41de6c1 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfdc27ccf iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0ce975f1 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x173d1955 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x17d2dcbc rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1f0d4dc1 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2d372942 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3659fe07 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4a6c5288 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5680b9d5 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x610938d4 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ee50922 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7d1f9e95 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x954f13ff rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa9c12f67 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb7050d38 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb95114c2 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd4dbd2ef rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd678bdf8 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf64a4102 rdma_bind_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x11b7b6ca gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3e095e9e gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5664c7d7 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa021333a gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa8bdeae1 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd03c3849 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd52a446a gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe205ceaa __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xeac39b86 gameport_unregister_port +EXPORT_SYMBOL drivers/input/input-polldev 0x13f707ff input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x329467fb input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x5a663b53 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa3a1adda input_free_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x46f0f29d ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x736171c7 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7aea9bfd ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7fcdf948 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x1f82541e cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x2f7e2e36 cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xae28787f cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xc293f274 cma3000_exit +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1b422044 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x302770c5 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x5095b754 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7e65e9c7 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9cf83d2f sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf9c7b36a sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x3b531a02 ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xaf92dd78 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xc8d65a6c ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xe4772c49 ad7879_suspend +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xb25233f6 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xb50c3c97 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 0x277be18f attach_capi_ctr +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 0x4722fa2a capi_ctr_ready +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 0x53b6d673 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x69344255 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x750ca557 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9b766d7f capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa82d6b57 detach_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 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xccd509db capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe2c281e2 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfa1c2b43 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x27086b49 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x392dcace avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3940c8a9 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x43223b38 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x57924c53 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5b4be67c b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5c2a5501 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5e18d9c1 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x914cad27 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x960080e6 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9bb43286 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xabbfd3be b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb05e8cae b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb5ff5dfa b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe5955e0d b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x09ba0859 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x276e7811 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3b823c0f b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5c511998 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7893d34c b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa16e6bdd b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc61d971f b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xca1d4962 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd5b46b16 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 0xa48f7f87 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x661f6d73 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb7cd0015 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xddbaddf5 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe2db0996 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x70175b6a mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xec245a20 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 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xedae321d 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2b15b69a isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4a79d141 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x69a714f5 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x90c4265f isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xb2eed05c isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa0f48b70 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xeba3000c isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xf97dcb97 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 0x143e67cf create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x20b2743a mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x21a80824 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2854b86d get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2c2963b3 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3cf9384e bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3e0894db mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x52ae9f79 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x61dd9233 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x67d50db0 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x689adc70 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7643f72a mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x97e1ecde recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc12813c8 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xca712f12 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcd7e4d78 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd38f138f mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd78d50bb recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd9bbefe9 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdd36e668 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xde0ac098 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf16ca30d recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid456 0x6df10cfa raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x417cc12f max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xeb6da7f5 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x2fa9c7ce mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x9b718036 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x79592212 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xf7f8a9c9 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x16c87cf1 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x27209f7b tda18218_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 0xc7e8db50 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x32face5b xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0203172e flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0df21df4 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2bf5cecc flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ab6d8ba flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3f9f40d8 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x408a403e flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4d1186ba flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5857aa77 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x59981bba flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x782187b0 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x887ffbe3 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x969cda7a flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9f410cc1 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xafb96b4d flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb47a59c7 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc506e8ce flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc579d2e3 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd7dc5f49 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe69b8f63 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf670456d flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x27cde152 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x75a26162 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xa308db11 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd75908f6 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x04d139df rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x05bffd25 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x13af0ddb dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1b10ae42 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x22366a01 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x564f79df write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7279a77a dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb4a3ac65 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf39b327c dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x932bf386 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x03f50229 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 0x0ef7d451 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1847f98d dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1d3521d3 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f7bdd06 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x307bfb43 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3702553b dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39f61ddc dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5348a6cc dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x605ed1a6 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x64dbe0d6 dvb_dmxdev_init +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 0x76627e35 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 0x8d779349 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x979b2e4e dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9db9eddc dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa11130b0 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa91afe51 dvb_generic_ioctl +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 0xb58d4746 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 0xc3959c83 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc62a10a5 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcb9f5477 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd032f0b8 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd09b2b9d dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe47fe750 dvb_dmxdev_release +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 0xea19c5ff dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed36c24e dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfe033e85 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x59b26345 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6057cbac dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8e2929d9 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc11991fa dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd406c3de dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd4f39914 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe01e91cb dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x4e54418b af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0f4c761b dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0f59cc27 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2978abc9 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x43570610 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x486ebe6c dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4efdf638 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x53d4db1c dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x74b78a0d dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcfea48b6 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdcb0b76b dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfabbc8e0 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x78b7ae6b af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x77fa2a74 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x4478d91f au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xc074e3b8 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xd6b320fb cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x0b476594 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x755635a4 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x195d721c cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xacdcf975 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xf0b44f79 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x87ac97c6 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xe1ce5ffc cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x12bf8628 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x29de0fe3 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x29fdeb2b dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x328f2eed dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc272c853 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x09684096 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0a14872b dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x28c33dbf dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x5e7fab11 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6bdc6d14 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xa3c06637 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe59d57e8 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xec9010df dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xab246f69 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x00f0a89e dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x15454965 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x3aab709f dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x528a98c5 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x884b1e53 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xc7a5db8f dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x1faa9d12 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x95954e60 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xb6879822 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xcf1ee029 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2c6c2e0d dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x39ec10c1 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x847c2cef dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8b3f5a10 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa8390543 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb2e57639 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd0fe0c58 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xdc47ef8a dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x3b25929b dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x44f87d1a dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x495f7157 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x53f0dc6c dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5f694847 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8ee52927 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa3de26f5 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xaf63e00f dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc757a70f dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd0d33cc6 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf08b5c89 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x18d6a1f3 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x69d71566 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xe0b9806a dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf412a29a dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x3a80c5be ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x68afa62f dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x2df2801e isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xe5f2806b isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xc29d8f53 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xabda1c74 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xc6ed5e4a ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x03aa7e72 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xd9f9e420 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x07e56821 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x205e8568 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xaa7c994a lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xd0ae6ead lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x4d6e47f0 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x155c573d mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xee9bbe16 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xeb3caee8 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xf6d77d00 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xd26d9c78 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x40504985 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x0b1d5710 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xbabae058 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x1219f834 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x337d6e22 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xe8dcce10 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0xdf3e57c2 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x9fbf0e86 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x4855f5d8 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x9239bcef sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x599c4f61 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xd3faf414 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x65122436 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x22c947d0 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x33675c1f stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x24dc105a stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xb693e9e6 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x3b8b530e stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x678dcd81 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x5705ed90 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x8bc7f99d tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x0ac18b50 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x85e41664 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x651a5492 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x6fa3f98c tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x3644a268 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xeba97a5d tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x1cd1b664 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x84993410 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xa5df5689 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x63c22e10 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xfc03dabf ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x925e7160 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x66346b03 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x8f6c741e zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x16a59609 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xdaf8e9f8 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x1c0f9e93 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x37c89f59 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x1df405a6 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x3c0b114b lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x40a04fe0 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5f67640d lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x6f45c191 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x88a952cd lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xa2b8ae1a lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xdcfb44aa lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/rc-core 0x11ee2165 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x51c975cc ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x2416a8e3 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x74da5882 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xb32aa770 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x1a0b5011 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x2ca1fa4d 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/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x313b3836 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x990ef466 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9df202b3 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xb87f0837 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xdc3c6443 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x480d9b51 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xb3f7c0b6 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x17510eec cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1f7a3359 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x4ec05ea0 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +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/cx2341x 0xe58fd5f7 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xa1dd3c34 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xe8dfde66 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1a63a94e cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x6ab8d2b1 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xab91b5f5 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xcbfb37df cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd3310649 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd5715f7d cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x3ccec7a8 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x88e0c776 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb5d36fdd cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xcaacda16 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xcee48374 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd33805ad cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x062d308f cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x28b74d86 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2eb44cac cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2f9de66a cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x36981cec cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3f040017 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x40b3485a cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4d228499 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x512beb85 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5e5d74bd cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x71386dda cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x71b6284c cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x747cf72d cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x750a29c8 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7cc0e5e9 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8398e05c cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xacd692c5 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xca3a2125 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xccdd525c cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xed9cae9d cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf3b717ed cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf6314b4a cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x668ac440 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xdd61e335 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x14021c53 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x4cfa8b2d gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x58d7d3d6 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x5cab9529 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7652d11f gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xb59fc758 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd4c77769 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x04b977ab ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x059bc9ee ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x10725fe4 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2b30739c ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3e73e801 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x51a52f2d ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x72fd6d7e ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x98128293 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa21003d5 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa3a5147f ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb8d6c742 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xdd2cadb0 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0fdc4d27 saa7134_pgtable_free +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 0x2589cc44 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x26d573f0 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x297dae99 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3861d7f5 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x871becc1 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xaec0cadb saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb94b0844 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb984b41a saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbada6137 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd34e3d8c saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe06c834b saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/soc_camera 0x05f4a7c2 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x0c0ab58f soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x2d815130 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x92f483af 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 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x590b1102 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0x66d170fc tveeprom_hauppauge_analog +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 0x1abb5fd2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2cdacb7f 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 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 0x89c13da5 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa4bf0ba4 v4l2_ctrl_query_menu +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-mem2mem 0x005cc467 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x5628dc07 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x920cfd76 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xe57ea096 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x2e67a553 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x4c56b919 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x66356576 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x7021b971 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x95490818 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xfb7e6b23 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videodev 0x04b300fb v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0c0d274e v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x1d819743 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x1e13368c video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x2b1348fd video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x33db41b2 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x36183a27 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x36d61f8e v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x3a833608 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x48ef711b v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x50f778cf v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x53932b4f v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x53a4bfc5 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x602d409b v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x70cb906e v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x756e3c66 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x78f938bb v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x79d7af2b v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7bc3bebb v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x7ce70213 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x88a1173a v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xa3b83b15 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xa40cf74b video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xa50bcebc v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0xa6667337 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xa8a2eedf v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xb70f869f v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xc45cdd92 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xc60857f8 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xc6357640 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xc8adbcc3 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xd3ff4c30 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xdf42ad5f v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3fc8f08 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0xea9a63d0 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf771ecb4 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xfbf2fa9a v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xfca7ffb5 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x46a92856 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x57cd6c7c videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x7442c026 videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd6afdbf9 videocodec_unregister +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00381507 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x50174014 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x79415e06 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x88bac574 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8a097e67 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa49a5ef0 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb38248f9 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcdd07d89 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xeddd7c2b memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf0256ab5 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf09cf5f0 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf60da766 memstick_detect_change +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0d11949c mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0d2e9c2d mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x16be10ec mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x291ea355 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2c35da12 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x425e7f22 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x43986da7 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x48b83dfc mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x512a7418 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5bd2af6b mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5e97a92f mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6b522506 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x71e0baba mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x84838e63 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8ffaec1e mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x93093ac6 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9a542112 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7d50477 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa94e0d3d mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xae39312c mpt_config +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 0xcdb426a5 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd270dfe2 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd2a07cf6 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd38af041 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd8a91aa5 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd490aa4 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe4fe0389 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe5e3cf38 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xef3cdda3 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0885db6d mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2c051846 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x39c5bfc8 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ee188c6 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3efb573d mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5578a7a1 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5bca4441 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x604f611e mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x682f485c mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x75a09012 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7ce23b95 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7dc3958c mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x87dbe857 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x939d4f0f mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x97078afa mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9b68d44f mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9e6cd4de mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaf45d094 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb2fd9fb5 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb942f919 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbccba156 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcb8a79da mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd3cf330e mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfcb9558d mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfcf6837b mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xffc4113f mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x284eb1e6 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x31479f24 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4211e612 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4971f6c1 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x55fa6344 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c01fe65 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5f58dd26 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x626f64ac i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x62e85360 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x75bc92a7 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x75ee4563 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x78015bf2 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb055e1c7 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbbb07fed i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc86117c2 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc8dd07b6 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xca4e5ef2 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdd039acc i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe377070f i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe57499b3 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf1b6b94b i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xff5353b1 i2o_event_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x09b035e0 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x2d7a4427 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x330ac4a7 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3eddc3cb mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3f506e42 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x67704bf3 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7285b138 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x78684ccd mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7cc1fbcc mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x83a05208 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x86e8960c mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8885f4db mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa056e794 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdf522630 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf956801f mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfd62a59a mc13783_to_mc13xxx +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 0xcd9fdda2 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xdc5215c8 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x32919404 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x79ca1858 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x3b616050 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xa6a3e037 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x050e6b99 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x180b8ec4 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x319a6e1b tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x5224caab tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x6a42f574 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x74d593b6 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7c0d0073 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x7d1efa3c tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x7f0e29e0 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x9d241356 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa84688f2 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xb9694805 tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x6256370d mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x199c9bef cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x2fa14c7b cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7dd8b1a6 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x031be7c7 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb121cf4a do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xce0f9801 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xdec7d1af register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xe77281b7 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x9f31cf5d lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x46cedd26 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x00bb12de add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x430e6b3d del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x6ddfa2ef mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xdb87335f mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x035e67f2 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x5ed5cb3e nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x6e05b620 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8eed47d9 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xa0120e3c nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb09a3827 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xfa145815 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x1dbdda6f nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x80300887 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x0115dd82 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x05ee66db onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x641d08ec onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xed5bbd19 onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x13318596 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x181e3e90 ei_open +EXPORT_SYMBOL drivers/net/8390 0x223b1581 ei_close +EXPORT_SYMBOL drivers/net/8390 0x583e2c99 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x97966c24 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xb36db334 ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xcc4e7a12 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xd4eae44d ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xe5382030 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xed16137f NS8390_init +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1edfc882 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x228caaca arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2ad3b182 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5458f593 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x65f5297c alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6b8cb68b arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xace557cc arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd4873d75 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd66ef99d arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe61dc056 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x0fe5dd45 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x2ce38706 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x596c256e com20020_check +EXPORT_SYMBOL drivers/net/bnx2 0x53314944 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0x47751e68 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0xd3703011 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x048197b8 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0eeb2129 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x11c5c9d4 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1d2f4ea8 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x280e6a33 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x43e6f683 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x92f375f4 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa0605890 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb404d359 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc7a31b9c dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xcb2a8483 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xce347a56 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe0ba118c cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe5e9c740 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe7ac3e08 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xee2e383b cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x01ad4828 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x077339a9 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x24d4755b cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2de154ee cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x4b22944b cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x75b4d7ae cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x845a561f cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x846eb9b2 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 0x9d55760f cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe46c2b3c cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xebb3f869 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xee318d78 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1ebd3c28 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x61a7e293 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x8c2e8d60 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa2e51015 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf81323b3 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x20b5e63c sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x329b4ed1 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x35018553 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6ebbfb09 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x82a14c12 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8891f0c0 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x923aa6a8 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb640e55a sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe2970c0f sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xeece2eb2 sirdev_get_instance +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mlx4/mlx4_core 0xfae0adf1 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/pppox 0x3fd97479 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x795b15f2 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xc68cb0e0 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0xa5da4ba8 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x036bb287 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xdd425438 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf053a320 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf0b34117 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xfc4d8da4 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 0x03d62691 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1813c305 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x19596ece hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2ab9167f unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4904a1d4 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x579ce403 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x58497dc8 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5e2b9b5a hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8a366e08 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc63bf196 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xde8dff57 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xe0cb401e i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x0d42995a stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x11868f76 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x1d1ef80b init_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a69831b ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x25fc85db ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e34b537 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5a934342 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x84ddf87b ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xae61f1b4 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc4453844 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe4e41fea ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xeca6e639 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfa2385cf ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8de9a0c1 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xab7c141b ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf65697bc ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x037627c1 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d96f424 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11b1f959 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x196f57f0 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f506140 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f5c0a5a ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f74f952 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x225af47f ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x284e12da ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29c0aa0e ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31c79566 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x349b6047 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4387c102 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43e2381d ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x455c29b3 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47ae8857 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4da5b055 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fc667c5 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5279554b ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53a36d52 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x547bc75a ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57c0c0b0 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5996d395 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59b239ed ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a87f65e ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5cc3affe ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5eb03976 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65555356 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65669134 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x663b2ce8 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fd6be7b ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7573e632 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x789cc39c ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7daac34d ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8089a7d9 ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8263c182 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x84ae7196 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x84dd5ef6 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88b9a4ed ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89b6f8ee ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8aa14798 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8abb6ff0 ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b91695f ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8bc5f571 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d1d7cc9 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8de12311 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f2a946a ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x984eea17 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c53accd ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa678e64c ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac1006fc ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac1cff3c ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad56c048 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb21d141e ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2879ed3 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3477028 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb921e5fe ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbacef06a ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf7df2bc ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1d5a7e4 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2139114 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4ab2b7b ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5911b29 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf07952c ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd315b1cc ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3966e91 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd399461e ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd455c6d0 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb19540f ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd0adb1d ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd574a9b ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe11aec5a ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1990d9c ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1cac015 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4ae1ebc ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe698bf01 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe95c1343 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe960fdcb ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeea73d7f ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef927998 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf33109f2 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4a6204e ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5adf125 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf670add1 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8113204 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc2fa15d ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/atmel 0x71ee9331 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xc70141e1 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf8be47e2 atmel_open +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c348e81 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0dab5b90 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0e2c414c hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27951417 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x40083b46 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x44f66c99 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x568b4d5e hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x590138ff hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x598a7fa1 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5aad81c1 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5ed0764b hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6ff6693c hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x79d8ceb2 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8c6a3d15 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9ff89396 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa0027b8d hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb8fe7697 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc8cd3f83 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd143eaa hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd2f23e64 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe673b0cb hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf352d84b hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf56a728f hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf66c143c hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xffed6cf4 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0279a8c6 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0367c56e libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0f5edd08 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1ea6e46e libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2dbb5902 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b232c66 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x45cae884 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x52027438 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x79000049 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa662d56e libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa7ef490e libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb0489ab8 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc0b0c914 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc5664259 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc724e082 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc9ac2b77 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcff3f378 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe23e71f5 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7d6de8d libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf1fd63ce libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf9bd0d3f libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x047e606d iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x066dd340 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0820aece iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09ec650d iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0fc7d3b4 iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x112a71a8 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x179f9502 iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19ae5903 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x250a38ac iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x29068d87 iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x297d608d iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x29a9ee74 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b8f2c9b iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35511a24 iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3653ab97 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3959ac3a iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f9e55da iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3fd7464e iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4200402e iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x431c1d3d iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4839cfd8 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48820aab iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b7d454f iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x517dc8ab iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5365d47d iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58e1a9be iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x59889f09 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a6f395b iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e723653 iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e948477 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5f632122 iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x60774702 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x66cef0cf iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6850075b iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x698ca766 iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6aecdfd6 iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6d5344bb iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6fadeb18 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6fb7926a iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7080e3f6 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x724b17ff iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72887ed1 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7305b5b0 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x75072f2c iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x751bd6ab iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x76612bda iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x77f9faa3 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7af6c50c iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7bfca450 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x880bc540 iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x903321f0 iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x90ed27bd iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x91b6a866 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92667d87 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94c690b8 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x950e5bac iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9521d7c6 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99855aa2 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9d89dd8f iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa3ee3d2f iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa41b8d15 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6c79b07 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xade9983b iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaee1d261 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb2e04662 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb30ab8a1 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb4b64139 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb540744e iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb585a07a iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb78a0ee5 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbb5bb013 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf897e7d iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf9fd7e4 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc0110eb1 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc37c576d iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc5be68ea iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc6c39fcc iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc8ed09a5 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd0f0a17 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf75275b iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd8df7a1a iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xda098141 iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde28ed9a iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe0442189 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe24d8c28 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe31ffbc4 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe5538402 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe77d6deb iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe93335e8 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe9bcc5cc iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe9d05465 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea3916a9 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xecf2c0a4 iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed293176 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xededea15 iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xee15bde6 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf101928e iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf3a05227 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa00eacd iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfff09733 iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x013c49fd orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x167d0088 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x22de5e91 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3d67da09 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4217c1e6 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x42ef0557 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x69b020fe orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x923323d2 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x954c5b94 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9b87fcf5 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa61ae188 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc076a10e __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc34b4f07 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc795a453 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdfb584f5 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf2d6175e orinoco_open +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x07f58a8c efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0b29e202 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x22172c77 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x27abb233 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x44b6b41e rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6a4f31d5 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x70032110 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7c15677f rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x853a90c2 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa6aedf07 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcb862a6e rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcb8e26a0 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdaba863e rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xef52358a rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfc738057 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/parport/parport 0x06e06b59 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x28c149ff parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x30df6b27 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x35a9820a parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x46fd2bd7 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5195d95e parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x551a92d9 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x5ac90bef parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x5e1bbcd8 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x5f93f998 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x6187763b parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x64705834 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x6b6b7094 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x7e07f38e parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x82e64195 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa6a482dd parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xa7933c8e parport_write +EXPORT_SYMBOL drivers/parport/parport 0xaaf0786c parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xaaf6926d parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xae369a85 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xb6fe17af parport_read +EXPORT_SYMBOL drivers/parport/parport 0xbba7fc20 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xbe327c68 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xbfd5c2a8 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xc6b70b5d parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xca1068cf parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xd2feed0e parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xe55b7a06 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xec32708b parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xf07b8c23 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport_pc 0x123c03fd parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf6b2b244 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x01c99b3c pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0804f2de pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x19b7f43a pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x29866667 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x30a775dd pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5da9268f pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x71e682a5 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8411ae5c __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x91c8a4d6 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9462fd0c pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x96a4d998 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9b028155 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9cf6fdeb pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb7b92887 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb9f7ae72 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc0dcc34e pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc57c0ff1 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe7b87885 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xed010828 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0e96dccc pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x32a396ff pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3858d772 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x56587df2 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x701d9505 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7e653f42 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa4e3df92 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac1283fd pcmcia_unregister_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 0xd13ead08 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xef2d488d pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x2cf2dbfd pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x4c17535c pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x0f9c43fc pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xa4e32d98 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xa754b35e pps_register_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x03821ec0 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0bdedb5b fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x61b0dc43 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x773f7b13 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x95ed3257 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe3b18303 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xef56657d fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x04275a5e fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0cd13e1a fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x105d03e4 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1370554f fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1427d183 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1481af3a fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1af5eb67 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2d9e6e1f fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x314efae4 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3379964a fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x337f061d fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x44f8e8cd fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x480ab5ba fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ecf7a99 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f2c974c fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fe23caa fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57682fb7 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5881181e fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6662c533 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x679b61a2 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67d291e5 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x681a489a fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a6b916f fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e61858e fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79d2a653 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x84ed76b8 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x895cea7b fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d55c2cc fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fdee7e7 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa199d7b7 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7e9ef7f fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa93e45b4 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa9599ef6 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xad9fd926 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb390e38e fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6756b07 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5ae21e7 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xda21d73f fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde0a244e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0c00174 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe319d2fb fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeac8db6f fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xefd41ecd fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa69f379 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfe720fef fc_elsct_send +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 0xd6c98438 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06b1d57a osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x14cdb080 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x17449f93 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1fad567e osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x21aab931 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x229c9797 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x25008afe osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2921c1a1 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f823345 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x390e4734 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3b9cd802 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x50d00a7a osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5508ee63 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x55cacadc osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5632b85b osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5afec554 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7b5a454c osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f56052c osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8103e0d9 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x85fbe9fd osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e683f6d osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8ff507f8 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa05cbbfc osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb2ac605b osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb35f19b7 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb92090c5 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbe9c9a73 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf0ec42b osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd2d8ca27 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdf2bfc4c osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe3f711e1 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe6facf9b osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe921d038 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf4095fee osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf5264f00 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf54a0463 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2b5a1073 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3a620c97 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x71b529bc osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x8d2559fc osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9b3e1269 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xdd8a5b7e osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x213794dc qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2c9a138a qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5713257e qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x94215da7 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x9e39a3ab qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc4582858 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 0x0a6c6da1 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x3e9d6263 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xe198f971 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0f3c2a0b fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2b070438 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x37a410da fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3c5abe03 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x482553f5 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x53a2322d scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6b102f35 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x702770e7 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8122d79e fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x90f68ba3 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd6b7b3cd fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdb0e77a8 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdc74d4b7 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x029d9326 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x08d9bb51 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0dbeabe6 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1f1313ef sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x29590050 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ee3cba7 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x34c7140a sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4045d542 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x56d3a01d sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6354eee3 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x69056165 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6de5dc34 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x72ec75ff sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7e1404e9 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x891bd82b sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9115c5c8 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9121b9ba scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xab6aeb5f sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xacbbb575 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc26a0963 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xce3dcf33 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd7b0824 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe1d32fc0 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xed2e27e8 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf130b514 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf503ac91 scsi_is_sas_phy +EXPORT_SYMBOL drivers/ssb/ssb 0x1216c876 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x1a2c3930 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x23f414ed __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x267c82f3 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x37a417c0 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x4baf1a30 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x6366ba58 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x75f7ac0c ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x8adf71fd ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x9920a1a8 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x9b4919d3 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x9f0f29cc ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x9f245d13 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xaca13bcd ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xafe2bea9 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb992700b ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xbb679066 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xbd2e73c2 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xe03798f6 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xf7104ea3 ssb_bus_resume +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x232c3216 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2cb7e0f8 comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x3fc39835 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x56ab96a0 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x5d810d18 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x85f2479c comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x90987973 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9dfa666b comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa23bd6c2 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa483b9d7 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa770eb77 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xb741b468 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc33a7a4e comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc7c338b0 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdddc3ae8 comedi_event +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x29012dbf subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x2f0a8679 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x30f92192 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x387be27e subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x24a9270d cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x76c0b34d cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x802950eb cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0666a03b mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1b3ce35a mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x28684eff mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x31601443 mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x33d55d1f mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3b242bcc mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3d93439d mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x42e0b525 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4f317464 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x53fd6a3a mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5e6c404f mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x8f4d47a8 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc091aea9 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc7697d85 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd3ddcb9a mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xec7763ae mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xee94c59e mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xef6bdd62 mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf6647033 mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfa4867c5 mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x95cff820 subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xb2db8940 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xc6ea8864 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xcd2953bf subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x20d4e2cc comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x392f47e0 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x4b651872 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x761d50f3 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xa647ed5f comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xcf706ea5 comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xeb0e797b comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x09135395 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x5011845a cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x5e8e9e1c cx25821_sram_channel_dump_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 0x78c5777a cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xa75721c9 cx25821_dev_get +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xb03d5701 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xbf5ace97 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xeaa44f8f cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x10137a22 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x190daeca go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x1e029c75 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x4ed664ab go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x51a77c24 go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x6293bfc9 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x9f813703 go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xa8fe373e go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbd9bad8f go7007_snd_remove +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4aeb4fc4 vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x9919ebae vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdedce636 vmbus_recvpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xf3c40cce vmbus_sendpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xfad3d0a6 hv_cb_utils +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x4e44ce59 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xa913c0b5 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xb5d0baf8 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xd6366fa0 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0263f0fe iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x03e17554 iio_free_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x096d5e7f iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x10ff3a08 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1ecfcd93 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x26a6a62a iio_alloc_pollfunc +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2b2ffb05 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3056dcb0 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x315aa5e3 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x40dcb9e5 iio_get_new_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4235a9fa iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4358c93c iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e7b04b2 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x54684ed1 iio_triggered_ring_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x54fae305 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5fbf7d7d __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x68db3221 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6acffff9 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x735c274f iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x790075c9 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x81d57649 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x82ed8456 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8e865f5b iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x98cf3c31 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa0d1d0d3 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa5860026 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0ceb1f3 iio_read_ring_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb46f9bab iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb5c57873 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb8c9b065 iio_triggered_ring_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba008d77 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbb2c1732 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbec8b701 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc6d1ab65 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcf73823c iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd210b4b7 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd21a28c8 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd2c6cb20 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd7f35934 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe1cef5b6 iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xed8fc9a1 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfa4d0456 iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xffacd657 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x79c77b34 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xdb1925da ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x07a6b03a iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x29c65b86 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x324e3d75 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x375b345c iio_sw_trigger_bh_to_ring +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3e33405a iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x439d999f iio_sw_ring_preenable +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x461fa577 iio_get_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x674ee099 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x782d7cff iio_set_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x86e0e6a1 iio_sw_poll_func_th +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8dd17166 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9ef422d4 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa57b64d4 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xafc029be iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb1136985 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc0d2bc30 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x03260a5c ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04abd32e DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06bba5d5 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0a00ed56 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0eb68ef6 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1a1a9e8e ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2c49806a IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2f147c90 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x325fcba3 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x423d1ef9 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42d0e165 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x464fc79e ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ed77bf6 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x524bddf8 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x54171ea3 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x54550685 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x56c8de22 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5c5988ab ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f4788a6 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x60c0aca6 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x618689b9 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x62f63d2b Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x68f7e5d2 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6a779eed ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d6d3dc5 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ed9213c ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7438dd75 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x76c2e690 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x830778a0 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b6c1c36 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c396204 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x908394a8 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x95a58295 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x971bae70 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9757fc6f ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x984c215a ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c092053 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c90927c ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbcea7a9a ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xccb542c0 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcf015e39 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfeaa71a ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd52f5bed ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xddbc4055 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe123bd9a ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe12b3d86 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4c91e34 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe628e525 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe9289d36 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xea3133b9 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed3a6b06 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf2217675 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf51398b5 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffccf1cf ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x129a42c3 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x7485529d tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x998ae265 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x08396a6f usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x36325616 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x4beedf9d usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x6c5f76ca usbvideo_register +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xa5e9aff5 usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xb3b78ab6 usbvideo_TestPattern +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x042d740d vme_dma_list_add +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 0x2c0f57d4 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x3267a542 vme_slave_request +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 0x4fb03a8c vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x6169afb4 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x690e540f vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x6d1baa4b vme_slot_get +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 0x7c7ce1e7 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7f4e85d7 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x8107010a vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x8a8ccca9 vme_dma_list_free +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 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xa769fb12 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xa76d1237 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0xc4ffe0c3 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8f66f1a vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xd1e6573a vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0xd9eed486 vme_new_dma_list +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 0xeda7061a vme_lm_request +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/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x07313758 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x090a62d1 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x095e8acf transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x0b8db6c2 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x0f5b15ce core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x0fcb6e3a transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x10e25531 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x1bdfa93a transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x1ff0fb94 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x25e5c3ba transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x28ade261 transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2bbf03c0 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3192e484 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x33b1e49e transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x35c9707b target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a5b186a transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x3c50405d core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d221a1b transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x3f163092 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x49874555 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a63433d transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x50a9d5b8 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x56c10f93 transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0x5955222e transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5a14baac transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d5ace3f transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x600336d8 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6810d164 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x69e9f251 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a19b3f0 transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6b445eac transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x70f7bbdd transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x73ee9816 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7df9384f target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x84d77b2a transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b015ae9 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0x8c41a245 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x92bcb5c1 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x94618084 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xa24fd8a6 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xbcb960ad fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xbf1d3139 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xbf7efbf1 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xc15a8eab iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3a4b80e target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xd36d6a59 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xd5f07df3 transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/target/target_core_mod 0xd67b3a0f iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xd77b7712 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7aa56d8 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xddf9b942 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xde454ea4 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xde5f1785 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf98786fa __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xfdd3acb9 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/telephony/ixj 0xd4296325 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0xa4fd5699 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xc60b71be phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x4339017e usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x691205d4 usb_gadget_probe_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x9b5b1a19 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x2e39ec97 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 0x0297b229 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x096d7706 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0ad6a8c8 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3a2680cc usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3d0d3b8e usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3e34ca06 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x66b16d1b usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x78e90f40 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8880e60b usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x90a0f60a usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x94c7dcb8 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb4fa1c15 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd2b591df usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe1340ff2 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xeaeb8bec usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xb0619804 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc2446fcc usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x3d7b9ed6 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xc3c3c1fa lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x2ef97446 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x441de593 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x9ae4cdf7 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd61c8d56 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x24733fc6 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x43abb866 display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x20ec69a3 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x23d53865 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xaa763ae8 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd87bd102 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x238bd431 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x569a83dc DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6270f36d matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x8b941069 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xa73bfa7d matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x36e3abd4 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x16cb77c9 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x24c67a94 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x457e3945 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xeb3448fc matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x0d8ec1d2 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xcd5da132 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x799911e3 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb854649c matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcaaa79ed matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xdf29b921 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xf5c4b138 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xe9ca5d2f mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x3453de9f video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xa6923ee4 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 0x0effbed7 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x2bf262a3 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x2fa804ba svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x471e9545 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x72115057 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xb2f474f9 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 0xf116c006 svga_tileblit +EXPORT_SYMBOL drivers/video/syscopyarea 0x7f776262 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xd56b00f7 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xece8babf 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 0x02a708c4 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x3f1e1ee2 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2eec1500 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xcd259025 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xdd6dd1ca w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe070de4f w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x1ca7aee9 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x7517e395 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xb28394ce w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xe79cb490 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 0x063001b3 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x297d7171 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x3391b90a config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x342fcab0 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x3d28f094 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x4168184f configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x5447b232 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x5fe1db1c config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x74e63024 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x912bae03 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x9e7afd58 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xe928a8ae config_group_init +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0c0ec253 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x187702fc fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x230fbf3a __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x23d7caac __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4d6872c4 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x596d1ac7 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x5ca8f2f0 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x6907e098 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x6eaabe2c __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x72ca4457 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x768c183e fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x778b8063 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x82f21abd __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x87d7d29a __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x896b58d5 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x8b3b78b0 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xa6784df6 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xadd9a896 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xb19e60a8 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xb6b345ee __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xc1d0b433 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcceb3c43 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xd92f3eb7 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xe2e6f723 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xf3a44c07 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xfcb68264 __fscache_register_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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x0edd9c97 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x17cbe0ce qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xa4bb344c qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xdd361f68 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xde4f51ea qtree_write_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 0x225629c8 lc_put +EXPORT_SYMBOL lib/lru_cache 0x2786fb37 lc_del +EXPORT_SYMBOL lib/lru_cache 0x2a2c41a6 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x39824484 lc_find +EXPORT_SYMBOL lib/lru_cache 0x3d03f8a1 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x56e0adec lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x5de6f4a3 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x6c2ed45c lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x95ea7673 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xa85ef365 lc_changed +EXPORT_SYMBOL lib/lru_cache 0xb0d91088 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xbcb216e5 lc_get +EXPORT_SYMBOL lib/lru_cache 0xc9bc2538 lc_set +EXPORT_SYMBOL lib/lru_cache 0xefb447fb lc_create +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0x62e7c2e1 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x8b4603bf make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x06a685f1 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x0780d95f p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x0a165ca6 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0x0b610612 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x0da48ee6 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x16dc18be p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1df0147f p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x1f36dfd2 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x2210e106 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x289f6384 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x2ca4d3fb p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2ccbc1e0 p9_client_fsync +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 0x4dd77ef6 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x58211658 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x668eb5eb p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x6a3d52ba p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x89ac9763 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x8c8d3f1e p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x8e28792e p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x9429ed2f p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x9c831e88 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9f42a685 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xa2544bd3 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xa61a6877 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xb286d5d9 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xb587fd69 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xb8089844 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xcf388c84 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd9cddc10 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xdd828e5a p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe71ebb09 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe78c90b4 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xf2313657 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xf6ee8c6c p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xfd66925f p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xfed4230a v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xffc87ebe p9_client_clunk +EXPORT_SYMBOL net/appletalk/appletalk 0x0cdeedd7 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x4cc5aa84 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x99fb33d2 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xe618f335 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x0e3c5f90 atm_charge +EXPORT_SYMBOL net/atm/atm 0x142cda52 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2046f615 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3511610f vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x804984e7 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x96c7765d register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9d04e2ad atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa786e2ff atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xa9db7c75 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xba96aac5 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xbef93319 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xd4265f43 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xe5c91eaf atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x0e79bb64 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x438cc6fd ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x886dfad0 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x88fd064c ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xab01f6e7 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc35ecdfb ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdb4a4453 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xe969f5d6 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xf37aff98 ax25_linkfail_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x014d73df hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x026ff355 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x16becb2a bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ca5f1c4 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x25a7982e hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2d045a61 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x305e0d93 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39b6dc48 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4743d7d1 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f3243be hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4fba6caa hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x571461ab bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d4a1d2a bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f8f4af7 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x844dba8f bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x84fa5025 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8983ef5a hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8b2ade5d hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8f0f1958 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9004695d hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x981fee69 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9ceb6af7 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4ccf279 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xabd7e813 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xae237e70 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb7cc6b1d hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbe8afff hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc633730d hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc18c41b hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5af7a9d bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe9492315 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe9559214 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeee2bf26 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfe135e15 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x58f29827 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x40e1e380 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x811207b9 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf2964c44 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x01fed052 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x05118cf5 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x16178a56 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x19722811 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x1b21fcb7 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x1d7f6451 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x2829e735 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x43adacb3 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4c539906 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x4db9f1d6 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x6217b255 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x7022ecd8 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x75395032 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x7df983b1 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x88a8d5c6 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x9426d1cd cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x977bebcd cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x98ccb9a2 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x9cd1190b cfpkt_create +EXPORT_SYMBOL net/caif/caif 0xa418b639 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0xba367be0 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xbec21b0e cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xc309c376 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xc5163214 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xce96b81f cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0xd36a5627 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xd828c1be cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xdfbe6aca cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xeb2b3739 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0xef2f24c5 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0xf3ffd853 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/can/can 0x4b0f0b81 can_proto_register +EXPORT_SYMBOL net/can/can 0xb8fc8230 can_rx_register +EXPORT_SYMBOL net/can/can 0xdc3003e8 can_send +EXPORT_SYMBOL net/can/can 0xf975d084 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xfa0798cf can_proto_unregister +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0a2dfbec ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x0d495c3e ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x0e0265a7 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x0f046aa9 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x153231f2 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x2383ca27 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x2a2c7f14 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x386920e5 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x392430a6 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x480331b6 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x49d1a2f9 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x49df0570 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x4dbd935e ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57355416 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x581434a3 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x5cd578cf ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x5d3e4610 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x76222f51 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x7754e6bf ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x77ae5692 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x787a6286 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x7a24ae3b ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x7b62d096 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x835c9b80 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x84a8fcfb ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x8542d820 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x8d15bea6 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x91742005 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x9b827d96 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa4925fe1 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa5990b19 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb1f71eca ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xb3587ebb ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xbcc336c5 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xbd378876 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xbe90bbb4 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc5c7ad86 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0xc91eb32a ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xd64bec4b ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0xdd3a1490 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xdf2a92e3 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xe66da465 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xe891b649 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xe99ff617 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe9bfe467 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xebde58fa ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0xf5cf771c ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0xf8090901 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xff23bca4 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xffc916e8 ceph_monc_validate_auth +EXPORT_SYMBOL net/ieee802154/ieee802154 0x176b532e ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1921a4ad wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x268927a3 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4f8468ab wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x66f8fb67 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x716acffd ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x77e427b6 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa1436c81 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa21b0b3f ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa2328242 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb120f7fb wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf2e52428 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf9ab4adc ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1d083a76 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x6b662c1c arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xeb80fe3f arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x0d01e5cd ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x1d3928d4 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x33ea1320 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1634a0ab nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x543d5567 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x546ce719 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x56c5a248 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x72466523 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb292fd0a nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe48e4a9b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/tunnel4 0x0688c4a7 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xb12b71dd xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0c39e056 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2084fa65 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4b6c769d ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x87790a82 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x5f6802ec xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xcd704276 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x8de7dd67 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe0ba3b5c xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x06861545 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1121f68d ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2e54521a ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8026a9fd ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x92a2f842 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xce260a7f ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd0d2d9f8 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd86155ad ircomm_disconnect_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 0x126f3c3d proc_irda +EXPORT_SYMBOL net/irda/irda 0x1d7c260f irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2154c9d8 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x31afbf8c irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x41d0197f iriap_getvaluebyclass_request +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 0x479c1564 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x49a7ff3a irlap_close +EXPORT_SYMBOL net/irda/irda 0x505cd58e irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x598806a9 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x608c18b6 iriap_open +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 0x72c8e9b0 irttp_dup +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 0x866ee0ff irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x890db1e2 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x91587749 async_wrap_skb +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 0x9eaba092 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa61581b9 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xb086a69f irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xb6b303e4 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xb96d7c2d irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xbb80fe81 irttp_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 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xcdcc4706 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xdcb26895 iriap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xdec33dc8 irlap_open +EXPORT_SYMBOL net/irda/irda 0xe64f680d irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xeb56b92c irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xffcd9ee9 alloc_irdadev +EXPORT_SYMBOL net/l2tp/l2tp_core 0x676454ef l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x5b108413 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x5f454537 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x8c06498d lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xa357ef8d lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xae076541 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xd6cbe5ea lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xe581384d lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xf7c6cce4 lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x07281d11 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x0e7847a5 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x158f1d11 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x18826e13 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x2b86396d __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x2cb10d2a ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x2fd03f47 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x2fd25945 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x322c5aed ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x32e70352 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x335b8b56 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x38460564 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x3ace9b07 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x43d6bf00 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x483d8945 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x4db6ef32 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x5a44ce81 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x5fcced48 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x793bc282 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7e9b8b47 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x810ef92f ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85286284 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x8cf1ab26 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x94566119 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x94e759da ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x9a2e5cb9 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xb576e52e ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xbc43b465 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xc918e3c3 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd360c349 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd49b858f ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd93ca7a0 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdc3d1021 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdf4f43d7 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xe433c721 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe88ef93e ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xeb5c5806 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xed142fba ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xf397b23e ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf5a5f80f ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xf62c274d ieee80211_probereq_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0d64412d unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x11132b00 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x29124e5f register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x37e61ea4 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x40948de7 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x782e5683 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x85e0778f ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbbc1a2ed unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd11010f9 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf12a4d25 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf1ad5a9f ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf735b061 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x73b7b2a1 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x969fca37 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb20dafdb __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x94ad8a8d nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x0c9f01f1 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x59651d23 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x6cb45bd7 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x7efa6d2e xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x9b3fcf40 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xa0bab47a xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xa550f697 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc72ec6c8 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xcb12bd78 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd6cca636 xt_unregister_match +EXPORT_SYMBOL net/phonet/phonet 0x0e20451a phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x31e4a74a phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x4800d146 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x4a3e6b86 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x7e14113b pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x88b3a328 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xa2e7c375 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xbf7960c9 pn_skb_send +EXPORT_SYMBOL net/rds/rds 0x1c9be661 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x257544f8 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x385b90eb rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x46940ff4 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x527656dd rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7b0ead73 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8368d7ba rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9167b210 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x979291db key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa293d555 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbb77dafe rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xca065b9c rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd6a3fa06 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd9cc3b38 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xde0b9554 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe942a07e rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/sunrpc/sunrpc 0x03f8cb1e xdr_terminate_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x799b98d3 svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x3eb6922e register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x2e4acdbf wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x3262b27f wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0b494855 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x194d6f7a wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x20d48be5 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x2b292c8c wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x2d4ce33e cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x2f77245e cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x2fc3a700 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x30c5b200 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x3491ce7b cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x34ec5389 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x39d9fb87 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x3ad1973e cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x42d0d352 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x528ad956 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x5518f84a ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x563294ae ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x74a01722 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x7746dddf wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x7884d3f3 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x78e32c25 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x7e080ea4 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x81c3d007 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x822497f1 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x8e9236e5 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x9122d795 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x92ca7411 cfg80211_send_rx_assoc +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 0x9d22e2a8 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xa6023d5a cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xafa3004a cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xb5a9a120 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xbc51fe3d __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xc3d77730 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xcadf2003 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xccc108ca cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xd206d12f wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xd862d0c0 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xdc8761e7 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xdd50f13c cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xde6d63e6 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe0689a1d cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xe129bcb2 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xe637eb6b wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xefcbaa57 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xf076cc27 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf9b7bee8 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2cd91f68 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x6c3c5f94 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x78e0c56d lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xb005e52a lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xc68924b9 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xe5672598 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe8c124d4 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xec95dfad lib80211_crypt_quiescing +EXPORT_SYMBOL sound/ac97_bus 0x47b211e7 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x0d152b79 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xa88ca12c 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 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe92ba817 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xf98b2f70 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 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb0394033 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-device 0xf4785fff 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 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 0x5e7b56e5 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x07091cc6 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x0c0fd625 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x12ed6004 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x203c7051 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x22ac4d76 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x23dffa8f _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x25540223 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x3694893b snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x38c95a12 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x45ce5d80 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x48e66ffa snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4c2853b2 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x5052fb70 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x5b198ad7 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x65934121 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x67b3debc snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x6eb10da2 snd_cards +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x8f5bd772 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x8fbe0795 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x933b3c59 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x9398b033 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x940f1f19 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x97ccff4e snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x9f844328 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa4b4725e snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xab7d17ce snd_device_new +EXPORT_SYMBOL sound/core/snd 0xadae0759 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xc00ca8ed snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xc221a11b snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xcff342fd snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xd5cbb8ba snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xd64bb26b snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xd76f8d31 snd_card_create +EXPORT_SYMBOL sound/core/snd 0xdba05c8e snd_component_add +EXPORT_SYMBOL sound/core/snd 0xe1c7ce78 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 0xe6bcddba snd_card_register +EXPORT_SYMBOL sound/core/snd 0xeae1ac9d snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xeed19eb2 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xf0f353f0 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xf3750d8c snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xf7ab3d25 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xf7fab380 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xf8f414ee snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0xfb59e6a7 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xffb57bf3 snd_card_file_add +EXPORT_SYMBOL sound/core/snd-hwdep 0x7ef40e29 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x603cbaa6 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x9abcc73b snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xbba087dc snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xe21af5bf snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf17b675d snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x05eb712a snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x0f87302d snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x26928d8c snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x28e41095 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x2d3db552 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x32b826ac snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x354431d9 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3f41cf37 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x448fc459 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x466223fe snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x4873e068 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x4913a052 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5435b37e snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x5f58543c snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x668610cf snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6a2ecfcd snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x6dd16348 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x6ff8c174 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x74e8d34e snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x81df1c98 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x85afb244 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x87a64964 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x898ea7d1 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x911bab82 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x9942f0eb snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x9949647d snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x9f5a25e7 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xa3f6307b snd_pcm_release_substream +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 0xa61f737c snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xb26a8094 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc40f7992 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xc4c1c9ab snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xc932ee64 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xcd2ab842 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd3956a61 snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0xd3d38254 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xdf76b55b snd_pcm_lib_preallocate_free_for_all +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 0xe84dca1f snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xed87aaac snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xf09c170d snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf7a34aa6 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xfd4020eb snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0c486c6f snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1f74f55f snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1fe5464c snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2522b8e7 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2c40957a snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4c2bdb34 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6488f1ae snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x67f4aa41 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x72575cd3 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7472e2d4 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x99d5b597 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa406816a snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbb344208 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc2c10e14 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcd009328 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf2645edc snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xff657165 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-timer 0x02aa4b4b snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x0dae36dd snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x20e8dea7 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x64a423b9 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x79d28155 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xbaab9a72 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xc67fc452 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xc722ff31 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xc9c5c6dd snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xd885d71e snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xe8cb8e65 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xfb5a8543 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xfef0ea2a snd_timer_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x9e0529b6 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 0x02e3023b snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1754df1f snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x20b015fc snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x28c1b55e snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2f33b53c snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3f8b92cd snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x76b9de68 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe570da7c snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe913d1d8 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x054088d9 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0fb0eb2a snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1a5d91f9 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 0xa3891b24 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc682e0f8 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdfb7fde8 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe4690058 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe8a9e9a7 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xef1ac91d snd_vx_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x02012b52 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1bb351f3 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x65f3a8e0 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x695e49c1 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9e92b56c snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc185c668 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x180c05fd snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x21fc286c snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xacc2e7d7 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc330a8ef snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe36ab401 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe48d1126 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2b3382a7 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x63d76d00 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xa66929e8 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xdc55248a snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x590a7632 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x9ac1f419 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x20869116 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x37eeaa05 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x067ea0aa snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x27260cc9 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x5b29f9b4 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x67fc60f3 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x701fe386 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0dd36943 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x31481089 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x82c76160 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x86e51eb9 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x86ea6e03 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa8e2f796 snd_i2c_readbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0318ef4a snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2a68f6ad snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2cd3bde7 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x900d3e23 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc43ff4af snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdcbfaf72 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe24c85cf snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xefc359ac snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf5fd5220 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf66c2a5a snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x1dc92344 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x604b0641 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xb5a8f873 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1b72873d snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2d0593a2 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x30e26f58 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x504de6a6 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x56273926 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5fe13c7d snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x61c17a82 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6ac9d560 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x76dbb7be snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x843ea361 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x852766d9 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x88bdd7c7 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x943dd154 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb9df4b79 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd326c3ba snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe3caf16d snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xec8708c8 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x66d74a4a hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x22a3b933 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x283a0c4c snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2e2dd495 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3680fc0a snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x505568a0 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x590c09c1 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7e6f202a snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa1b979e5 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf90d3487 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x1b8a3b09 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x726bac3d snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7fc32736 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x88689a5c snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x12c7faad oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1d85f853 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3fd9a374 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4511ac93 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4e846c00 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x534ece90 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x58c1d2f5 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6191b778 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x719f6ff4 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7706346c oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x798444db oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x87f6d8a4 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x95fa4932 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9b31c780 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xba0b72b6 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcb9f9f88 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xddb01c81 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf100572b oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf2ed52ba oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf612f46f oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfcea652a oxygen_read16 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x309047a9 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x3dacfa26 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x51078282 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7e027624 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf3b6117a snd_trident_stop_voice +EXPORT_SYMBOL sound/soundcore 0x28108503 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x2e7111c0 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x3d7ba439 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 0x91402662 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb226ccbc snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf7784a08 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xfb6093cf snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2cec72d7 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5a288170 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x72e24df4 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x83a3b2a7 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x83b2c917 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x8a40eaa0 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb6f90e16 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xcfb0a230 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 0xeeb27df8 snd_usbmidi_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x056b01a9 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x5b239333 dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x5ee8a7b9 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x64bb63bc dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xb23beb91 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xfaf9a444 dm_mem_cache_grow +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0013c9d7 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x003b2b9c ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00a63102 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x00dd259a register_key_type +EXPORT_SYMBOL vmlinux 0x00de6ad5 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x00e3d6ad input_register_handler +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01012d6a spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x016d4345 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0x017fd607 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x01883f4c acpi_root_dir +EXPORT_SYMBOL vmlinux 0x018e84a9 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01bc5e8b wait_iff_congested +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01f24c5c truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x021d3347 cpu_info +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x024ba930 open_exec +EXPORT_SYMBOL vmlinux 0x0250b74b kmem_cache_name +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02867268 fd_install +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aed39a arp_tbl +EXPORT_SYMBOL vmlinux 0x02b92682 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x02bb3e0f __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x02c9a21b default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x02d3d4cf keyring_clear +EXPORT_SYMBOL vmlinux 0x02d44491 dev_mc_del +EXPORT_SYMBOL vmlinux 0x02d4738b nf_log_packet +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02de61fc replace_mount_options +EXPORT_SYMBOL vmlinux 0x02f89e6f unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x0332c91a kill_fasync +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03423bc6 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03593166 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x035b3c99 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x0363df58 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x03647070 blk_init_tags +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037a7bbf netdev_alert +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03f52ddd dev_uc_add +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04001718 tty_devnum +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042dcd95 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x0450adbf max8925_set_bits +EXPORT_SYMBOL vmlinux 0x0465de1f security_path_mknod +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x049856de posix_test_lock +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x0505597f get_sb_bdev +EXPORT_SYMBOL vmlinux 0x050e03c9 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0540cf1c uart_resume_port +EXPORT_SYMBOL vmlinux 0x055dd31c scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x056581a3 vfs_unlink +EXPORT_SYMBOL vmlinux 0x05781d79 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x0587c975 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x05a1d2fa datagram_poll +EXPORT_SYMBOL vmlinux 0x05a328ae tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x05adb7ab netlink_unicast +EXPORT_SYMBOL vmlinux 0x05c24601 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x05d6c165 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu +EXPORT_SYMBOL vmlinux 0x05f1e471 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x0607cb98 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x065c8038 tcp_close +EXPORT_SYMBOL vmlinux 0x0663dc4a genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x067b57b9 node_data +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06b5c0ed genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x06bf9a4f inode_permission +EXPORT_SYMBOL vmlinux 0x06ca1f12 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x06d0b9df generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070af6fe setattr_copy +EXPORT_SYMBOL vmlinux 0x071de2f6 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x078e3c42 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079b39b5 d_add_ci +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b792a1 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07db36c0 set_pages_uc +EXPORT_SYMBOL vmlinux 0x07ed48d1 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x07f57fe5 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x082257f5 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x085408f5 bh_submit_read +EXPORT_SYMBOL vmlinux 0x085db0a9 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x0883d1bb gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x08917955 skb_trim +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08981a47 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x08ad9c46 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x08d28085 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x092fedf2 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x09389462 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x09469d6b flex_array_shrink +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x096912a8 mmc_erase +EXPORT_SYMBOL vmlinux 0x0969e888 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x0972d5a2 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09adb829 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c0fb35 blk_start_queue +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cca3c0 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x09d057b5 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e23187 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x09f49bac __pagevec_release +EXPORT_SYMBOL vmlinux 0x0a219345 journal_wipe +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a4be956 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x0a582569 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x0a62200f grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x0a631ccb input_free_device +EXPORT_SYMBOL vmlinux 0x0a8a7be3 pci_iomap +EXPORT_SYMBOL vmlinux 0x0a8fd480 icmpv6_send +EXPORT_SYMBOL vmlinux 0x0aacd352 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x0ab7b41a override_creds +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ae49654 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x0aeaa2b2 seq_release +EXPORT_SYMBOL vmlinux 0x0af39d44 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x0b08c2e5 is_bad_inode +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b259fdf dev_addr_init +EXPORT_SYMBOL vmlinux 0x0b38d14e sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x0b3dd25e udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x0b46adeb sk_reset_timer +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b85b90f sk_stop_timer +EXPORT_SYMBOL vmlinux 0x0b981cca dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x0c08cbb3 journal_create +EXPORT_SYMBOL vmlinux 0x0c1e2621 pci_iounmap +EXPORT_SYMBOL vmlinux 0x0c21242a acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x0c212e7d scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6e3811 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x0c7762d4 load_nls +EXPORT_SYMBOL vmlinux 0x0c7b42cd mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x0c847efe tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca460e4 ipv4_specific +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0caf2b06 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x0cc50b26 put_tty_driver +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cea8b99 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x0d00906f elv_abort_queue +EXPORT_SYMBOL vmlinux 0x0d12a104 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x0d22b679 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d41ab53 sock_no_connect +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d7d2b18 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x0d8e42cb pci_find_capability +EXPORT_SYMBOL vmlinux 0x0d8e9838 simple_fill_super +EXPORT_SYMBOL vmlinux 0x0d93fc46 rtnl_notify +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbc3a63 fasync_helper +EXPORT_SYMBOL vmlinux 0x0dbd580d splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x0de5306f swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x0df4fcbd key_payload_reserve +EXPORT_SYMBOL vmlinux 0x0e064bc1 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e588b8c generic_fillattr +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e923e74 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x0e9737bd writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x0e990f4b vc_resize +EXPORT_SYMBOL vmlinux 0x0ead1bc0 i2c_master_send +EXPORT_SYMBOL vmlinux 0x0eb685f0 iget5_locked +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0edfda2b scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x0f37541c dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x0f66b247 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x0f91203c fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x0faaeb4f dm_register_target +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc1ea98 pci_release_regions +EXPORT_SYMBOL vmlinux 0x0fcde308 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x0fcf834e ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd70277 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff4ee98 set_bh_page +EXPORT_SYMBOL vmlinux 0x0ffa42dc agp_put_bridge +EXPORT_SYMBOL vmlinux 0x0ffd1d04 __napi_complete +EXPORT_SYMBOL vmlinux 0x100de75d key_negate_and_link +EXPORT_SYMBOL vmlinux 0x104aa399 block_sync_page +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107c9d87 setup_new_exec +EXPORT_SYMBOL vmlinux 0x1092d6dd dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x109c00c8 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x10d97a60 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ddf98b tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111c73de i2c_del_driver +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112df14f ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x1133f895 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x1136ce89 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x114cd139 iget_locked +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11657fb0 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11752c79 start_tty +EXPORT_SYMBOL vmlinux 0x117ac24f kthread_stop +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11946398 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x119a52e3 current_fs_time +EXPORT_SYMBOL vmlinux 0x11b20462 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x11b6364c fget +EXPORT_SYMBOL vmlinux 0x11bd2205 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x11c3c54a kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x11ec4f63 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x11f64070 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120dccd4 vga_get +EXPORT_SYMBOL vmlinux 0x12143f91 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x12248d3c unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x123ee456 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x12537630 redraw_screen +EXPORT_SYMBOL vmlinux 0x12538895 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x127781b4 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x127a373f try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12c26b1c agp_enable +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x1312fec7 netlink_ack +EXPORT_SYMBOL vmlinux 0x131a16c2 phy_detach +EXPORT_SYMBOL vmlinux 0x13241de4 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x1327f302 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x134170a6 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x135bfdb6 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x138419b4 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13cbe126 module_put +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d2aed6 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x13de3903 request_key +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x14170f96 napi_complete +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x145d9221 generic_write_checks +EXPORT_SYMBOL vmlinux 0x146f445c unload_nls +EXPORT_SYMBOL vmlinux 0x14748267 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x1497993d skb_clone +EXPORT_SYMBOL vmlinux 0x14c3d165 phy_device_register +EXPORT_SYMBOL vmlinux 0x14df0082 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x14e38a37 request_firmware +EXPORT_SYMBOL vmlinux 0x14e4a207 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x14ee274b jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x15123a3f mdiobus_free +EXPORT_SYMBOL vmlinux 0x1521c2fa pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x1521f7df unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15653f29 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x1574c0b9 del_timer +EXPORT_SYMBOL vmlinux 0x158f1879 softnet_data +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x1607d7a3 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1637425f dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x1641a705 __kfree_skb +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x166303af serio_open +EXPORT_SYMBOL vmlinux 0x166ddf69 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x16704920 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x167d03c4 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x169d6410 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x16a2276a lookup_one_len +EXPORT_SYMBOL vmlinux 0x16abbe0f find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x16bb6774 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x16c09cf7 nobh_write_end +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17237b4d d_find_alias +EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove +EXPORT_SYMBOL vmlinux 0x178d5710 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x17dd4379 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17ef5f25 mmc_release_host +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1827c422 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184db96b qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x18582252 fb_class +EXPORT_SYMBOL vmlinux 0x185a3882 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18a848d3 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x18b0c126 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x18b602ff take_over_console +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18e49929 d_alloc_name +EXPORT_SYMBOL vmlinux 0x18eda4f8 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x18f8d9eb devm_iounmap +EXPORT_SYMBOL vmlinux 0x19153383 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x191fc38c test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x193394fc skb_queue_head +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x197255b2 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x199dde79 simple_rename +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x199f4e96 led_brightness_set +EXPORT_SYMBOL vmlinux 0x199f754a i8042_install_filter +EXPORT_SYMBOL vmlinux 0x19a039f9 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19e92440 flex_array_put +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a060fd2 neigh_for_each +EXPORT_SYMBOL vmlinux 0x1a1975c1 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x1a42d30b tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a4c9c57 ip6_route_output +EXPORT_SYMBOL vmlinux 0x1a5b66b8 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a651922 blk_unplug +EXPORT_SYMBOL vmlinux 0x1a7598e5 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x1a797525 elevator_change +EXPORT_SYMBOL vmlinux 0x1a8dcca5 freeze_super +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1a9d87b4 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x1aab7e31 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x1ab0eed8 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x1aca8eb9 netdev_warn +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1af202b9 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b054687 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x1b05b10f scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x1b1fd78d udp_disconnect +EXPORT_SYMBOL vmlinux 0x1b393bba set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x1b535436 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x1b5d7d62 get_write_access +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b7112b1 hex2bin +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b96eaef pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bac028b padata_do_serial +EXPORT_SYMBOL vmlinux 0x1bdb9bfe agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x1be89273 cad_pid +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c192d67 serio_interrupt +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c61542d blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x1c638165 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x1c684153 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1c708e2e __scsi_add_device +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c8a70da inet_frags_fini +EXPORT_SYMBOL vmlinux 0x1ca2366d dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x1cbd83cc netdev_printk +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ccd118a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x1cce6565 dev_close +EXPORT_SYMBOL vmlinux 0x1ce3ddbc blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x1d045cfe xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2dbf1d inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d2f2a8b md_error +EXPORT_SYMBOL vmlinux 0x1d3f06fe __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x1d4a02c7 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x1d4a238a bdi_destroy +EXPORT_SYMBOL vmlinux 0x1d792217 journal_init_inode +EXPORT_SYMBOL vmlinux 0x1d7982e4 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x1d8ff6e7 sock_no_listen +EXPORT_SYMBOL vmlinux 0x1da0f5d0 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x1da8b334 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd2eee1 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dfc3e46 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x1e08c51b tcf_em_register +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e0d9183 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x1e1f6314 dump_seek +EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and +EXPORT_SYMBOL vmlinux 0x1e34608b radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x1e3dfd09 xfrm_input +EXPORT_SYMBOL vmlinux 0x1e61ed97 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e897537 xrlim_allow +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ebd7e37 md_write_start +EXPORT_SYMBOL vmlinux 0x1ed600b7 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x1ef8c911 sk_filter +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f1a995d pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x1f310682 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x1f40f7d3 ps2_command +EXPORT_SYMBOL vmlinux 0x1f4524c1 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x1f4de661 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x1f5c1834 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x1f741ab1 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x1f7d7006 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x1f809257 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x1f8f7422 key_link +EXPORT_SYMBOL vmlinux 0x1f9c279d __pci_register_driver +EXPORT_SYMBOL vmlinux 0x1f9f52a5 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x1fb184f2 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fdafa4b compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x1fe98628 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff41137 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x1ffe99bf seq_bitmap +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 0x202dce06 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x204a728b security_path_symlink +EXPORT_SYMBOL vmlinux 0x20642b9e pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20c5fa79 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x20d0de19 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x20d7f410 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x20dc5c05 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20ec89b4 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x20edde01 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x212e38ed wireless_send_event +EXPORT_SYMBOL vmlinux 0x21442ce4 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x214cc333 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216c6a21 blk_run_queue +EXPORT_SYMBOL vmlinux 0x2186bb56 d_genocide +EXPORT_SYMBOL vmlinux 0x21bb9b79 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x21c8605b llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x21df7c76 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f9073d locks_free_lock +EXPORT_SYMBOL vmlinux 0x22254708 end_page_writeback +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2244dc16 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x22461f74 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x2258bb71 task_nice +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x227f1bd8 __mutex_init +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a88c45 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x22afff77 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22cc9c4b get_user_pages +EXPORT_SYMBOL vmlinux 0x22d7b550 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x231b201e radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x234cf422 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x23656846 skb_copy +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x236d5a86 register_qdisc +EXPORT_SYMBOL vmlinux 0x237f17c9 sock_i_uid +EXPORT_SYMBOL vmlinux 0x237fd09a scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x23a48c1b simple_pin_fs +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b99e92 node_states +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23cdb8fd prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x23f8be56 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241c9757 is_container_init +EXPORT_SYMBOL vmlinux 0x24277109 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x2432c2dd sg_miter_stop +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2470d8f1 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x24785f55 d_invalidate +EXPORT_SYMBOL vmlinux 0x249338a9 input_unregister_device +EXPORT_SYMBOL vmlinux 0x24b72f37 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x24bcaa1f inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x24c5f065 bio_alloc +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24e89711 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x24eacaca ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x25072633 simple_setattr +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x251e7215 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x252f4a22 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x25300c35 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x255ec292 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x25652e7e dquot_enable +EXPORT_SYMBOL vmlinux 0x2571e2f8 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25ad3dfe inet_listen +EXPORT_SYMBOL vmlinux 0x25c46329 simple_release_fs +EXPORT_SYMBOL vmlinux 0x25ce4412 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x25e45c8e abx500_register_ops +EXPORT_SYMBOL vmlinux 0x25e9ffe2 generic_show_options +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x260e08a9 mmc_add_host +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x26519b64 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x266ac476 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x26726961 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x2678cde9 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x269905f4 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x26b14bc1 pcim_iomap +EXPORT_SYMBOL vmlinux 0x26b7d093 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x26b94764 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x26c72c1d mutex_unlock +EXPORT_SYMBOL vmlinux 0x26cde8f1 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26d86139 ip_options_compile +EXPORT_SYMBOL vmlinux 0x26e18c34 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26ee7441 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x271fd4b4 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2776b1ed file_sb_list_del +EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x2786152f do_splice_from +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2787351d nobh_writepage +EXPORT_SYMBOL vmlinux 0x2797bf21 unlock_page +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bcda22 find_or_create_page +EXPORT_SYMBOL vmlinux 0x27c1b473 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27d1c97e pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x27d22a8a xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x27e0e517 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x28318a24 nonseekable_open +EXPORT_SYMBOL vmlinux 0x2857570c uart_get_divisor +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x289199cb pci_find_bus +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a44975 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x28a54df7 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x28c45425 unregister_console +EXPORT_SYMBOL vmlinux 0x28d299b4 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x28d378ad fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x29115f23 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x2920bfb4 input_get_keycode +EXPORT_SYMBOL vmlinux 0x2935b5f2 inet_addr_type +EXPORT_SYMBOL vmlinux 0x293f383b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295566ce pnp_device_attach +EXPORT_SYMBOL vmlinux 0x295c8701 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x298efdb3 skb_dequeue +EXPORT_SYMBOL vmlinux 0x29b72530 phy_find_first +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29ef4a51 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x29f3c28d free_netdev +EXPORT_SYMBOL vmlinux 0x2a1327a2 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a2c2b9f simple_write_begin +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37eb2f agp_bind_memory +EXPORT_SYMBOL vmlinux 0x2a43ef48 init_task +EXPORT_SYMBOL vmlinux 0x2a61e8de __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x2a645d4c agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x2a7e99d3 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x2a7fe208 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x2ad13f77 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x2ad669c3 dev_crit +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0d9332 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b2e05b9 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x2b2eaae3 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x2b33ff53 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x2b39336c first_ec +EXPORT_SYMBOL vmlinux 0x2b41a8ba del_gendisk +EXPORT_SYMBOL vmlinux 0x2b441bec mount_nodev +EXPORT_SYMBOL vmlinux 0x2b597b42 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x2b92485f compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb19752 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bcfa2bd sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x2be588bb i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c4b79de tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x2c53a95a get_super +EXPORT_SYMBOL vmlinux 0x2c778f69 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c870d57 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x2cb17fe0 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x2cbe94b0 pci_get_slot +EXPORT_SYMBOL vmlinux 0x2cd24072 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x2cf462f4 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x2cff665e dev_alert +EXPORT_SYMBOL vmlinux 0x2d02ed1d qdisc_destroy +EXPORT_SYMBOL vmlinux 0x2d036ecc tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d3c094f journal_flush +EXPORT_SYMBOL vmlinux 0x2d51d7e0 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d5d8003 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x2d6c1db0 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8d13b6 agp_backend_release +EXPORT_SYMBOL vmlinux 0x2d91dcfe jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x2da44358 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x2db0c5d3 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x2db4c99b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd44f65 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x2ddc665d radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2dde0463 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x2de367a5 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x2de54fd9 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2e1336cd register_netdev +EXPORT_SYMBOL vmlinux 0x2e2ba0af log_start_commit +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e33750f load_nls_default +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e74f365 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x2e78a847 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x2eb95cb6 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x2ecae876 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2ee19c89 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x2ee5438d kmem_cache_size +EXPORT_SYMBOL vmlinux 0x2eff6d04 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f4b5485 blk_complete_request +EXPORT_SYMBOL vmlinux 0x2f83e4a5 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x2f870d0e blk_sync_queue +EXPORT_SYMBOL vmlinux 0x2f9b04fc vfs_create +EXPORT_SYMBOL vmlinux 0x2f9b0a8c serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fb7fba0 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x2fc377d2 i2c_use_client +EXPORT_SYMBOL vmlinux 0x2fc453d0 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x2fdc5296 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x2fe2f96b __nla_put +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x301f309a blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x302a4c92 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x304d3695 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x30636643 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x3064a583 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308f3e5e set_security_override +EXPORT_SYMBOL vmlinux 0x308f4b64 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30c4f328 block_write_full_page +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e0c3c5 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ea5eee ip6_xmit +EXPORT_SYMBOL vmlinux 0x31192b58 do_splice_to +EXPORT_SYMBOL vmlinux 0x31289cf7 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x313f3559 blk_insert_request +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x314637e1 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31517ecb jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x31578d35 __scm_destroy +EXPORT_SYMBOL vmlinux 0x316664aa ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x317f1dd8 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31cc8c7b path_get +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc +EXPORT_SYMBOL vmlinux 0x31f15cb3 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x32160736 __brelse +EXPORT_SYMBOL vmlinux 0x321d0504 d_validate +EXPORT_SYMBOL vmlinux 0x32326ed6 km_state_expired +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x325a751c acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace +EXPORT_SYMBOL vmlinux 0x327ee2c9 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x32804e3c qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x328c2846 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x329ea56e pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x33023a9c register_gifconf +EXPORT_SYMBOL vmlinux 0x33077e7b __bforget +EXPORT_SYMBOL vmlinux 0x330cbc18 unregister_key_type +EXPORT_SYMBOL vmlinux 0x332d233d init_net +EXPORT_SYMBOL vmlinux 0x33781481 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x33796498 security_path_chmod +EXPORT_SYMBOL vmlinux 0x339d4650 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x339daff6 netdev_set_master +EXPORT_SYMBOL vmlinux 0x33a91ee0 blk_free_tags +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33d07377 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x33eb5383 get_gendisk +EXPORT_SYMBOL vmlinux 0x33f8b85d mapping_tagged +EXPORT_SYMBOL vmlinux 0x3419906f xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x342beede scsi_unregister +EXPORT_SYMBOL vmlinux 0x3430f068 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x3437e7d1 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x344f1859 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x34569380 user_revoke +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x3462c322 md_done_sync +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x3472d9d0 phy_device_free +EXPORT_SYMBOL vmlinux 0x34862a7c dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x348fd109 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x34906e48 dev_addr_del +EXPORT_SYMBOL vmlinux 0x34916f02 security_file_mmap +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a5f5c2 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x34cb0cea mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x34f833bb flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x353da60a input_grab_device +EXPORT_SYMBOL vmlinux 0x35762f89 proc_create_data +EXPORT_SYMBOL vmlinux 0x35a970e1 rename_lock +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35d4dec2 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x35eb7f05 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x35f91b88 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x35fd7bda tcp_child_process +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x36238e3c bmap +EXPORT_SYMBOL vmlinux 0x36290f57 dquot_alloc +EXPORT_SYMBOL vmlinux 0x365956a4 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x3661a624 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x367e5283 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x368af72d textsearch_unregister +EXPORT_SYMBOL vmlinux 0x368b46a7 d_instantiate +EXPORT_SYMBOL vmlinux 0x36a83fd9 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36e3cd4e inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x36f29bd7 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x36f849b5 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x370070ab swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x37152463 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x3728bc56 security_file_permission +EXPORT_SYMBOL vmlinux 0x373ba747 inet_accept +EXPORT_SYMBOL vmlinux 0x374189bd x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x378e7ab2 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c9190f pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x37d92729 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x37da3a9b xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37dd4fcf mii_check_link +EXPORT_SYMBOL vmlinux 0x37e6b136 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37ed3c77 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x37effef3 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x383cda0e inet_register_protosw +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x390af922 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x39124757 arp_xmit +EXPORT_SYMBOL vmlinux 0x392b00f7 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x3967fd81 register_console +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3980d55b pci_request_regions +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39c2f11c tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x39c3c13c __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x39c4428b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x39fe78c1 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a0dce87 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a327243 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a527ac1 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x3a596026 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x3a5bcb22 do_sync_write +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa8a5f7 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x3aab5793 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x3af77328 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove +EXPORT_SYMBOL vmlinux 0x3b221190 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x3b2288f1 register_filesystem +EXPORT_SYMBOL vmlinux 0x3b22a187 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x3b2997fa xfrm_lookup +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b55624f sockfd_lookup +EXPORT_SYMBOL vmlinux 0x3b5796fa __invalidate_device +EXPORT_SYMBOL vmlinux 0x3b5a8882 pskb_copy +EXPORT_SYMBOL vmlinux 0x3b7d603f tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x3b8357e7 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x3b9e9639 tty_set_operations +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bdd8617 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x3c0b4eee __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x3c14d050 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x3c16e66f tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x3c1a2122 sync_blockdev +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c558f23 do_munmap +EXPORT_SYMBOL vmlinux 0x3c648aec inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x3c7bbc3e __dquot_free_space +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca9f258 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x3cc11985 dev_warn +EXPORT_SYMBOL vmlinux 0x3cdf8f15 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d1fb468 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d486713 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x3d608920 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d7db979 inet_ioctl +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 0x3dc73a47 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x3dd679f5 kfree_skb +EXPORT_SYMBOL vmlinux 0x3deac75e vfs_rename +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e324bf2 md_integrity_register +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e655541 get_agp_version +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e9672a6 iunique +EXPORT_SYMBOL vmlinux 0x3eb4d465 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x3ecd555b set_device_ro +EXPORT_SYMBOL vmlinux 0x3ed2df08 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edef53d buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x3ee0f4c4 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x3ee649bc machine_to_phys_order +EXPORT_SYMBOL vmlinux 0x3ef30ee7 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x3efd7bf3 address_space_init_once +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f1cc7d3 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x3f24a667 scsi_get_command +EXPORT_SYMBOL vmlinux 0x3f2fff0f vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f605feb find_inode_number +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f735ae8 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x3f8667b4 tty_register_device +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fada243 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x3fe6b7de fifo_set_limit +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4004e394 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x40526da3 napi_get_frags +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4066d2e3 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x4072df50 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x40730bea security_path_unlink +EXPORT_SYMBOL vmlinux 0x4087828a blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x408951ff __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x408a8596 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +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 0x40a30275 sk_run_filter +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40ce2813 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d694e5 phy_connect +EXPORT_SYMBOL vmlinux 0x40dde864 da903x_query_status +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410ef826 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x41167671 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x4118c5d4 cdev_del +EXPORT_SYMBOL vmlinux 0x4139caf0 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414e39c8 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x41578ce9 mount_ns +EXPORT_SYMBOL vmlinux 0x41598040 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x41622fcd bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x41765a7d km_new_mapping +EXPORT_SYMBOL vmlinux 0x41802684 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x4183ede2 elv_rb_find +EXPORT_SYMBOL vmlinux 0x4186a365 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418c6244 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x41aa39fe scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x41b052eb blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x41e61b45 pci_enable_device +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x42044844 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x42119ae6 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x4225cf9a icmp_send +EXPORT_SYMBOL vmlinux 0x422aeb4d sock_release +EXPORT_SYMBOL vmlinux 0x425034f4 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x42620a95 vfs_fsync +EXPORT_SYMBOL vmlinux 0x42774cac dquot_transfer +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a48a4f __ip_select_ident +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42dbd9fa tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x42ea8fc5 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x42fc0aa2 inode_init_once +EXPORT_SYMBOL vmlinux 0x42fe556a qdisc_reset +EXPORT_SYMBOL vmlinux 0x4302378a d_alloc_root +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4303036e path_lookup +EXPORT_SYMBOL vmlinux 0x430c6a86 vfs_stat +EXPORT_SYMBOL vmlinux 0x431b3e2a unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x431e5bb7 generic_readlink +EXPORT_SYMBOL vmlinux 0x432b38d9 inode_init_owner +EXPORT_SYMBOL vmlinux 0x43372f5c dma_async_device_register +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x434892c2 blk_start_request +EXPORT_SYMBOL vmlinux 0x4367fd0e pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x438c0f1b filp_close +EXPORT_SYMBOL vmlinux 0x4396040b sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x43cf9bfe get_fs_type +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x440faa92 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x441f03cc tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x442c4e50 dm_snap_cow +EXPORT_SYMBOL vmlinux 0x443637d3 __serio_register_port +EXPORT_SYMBOL vmlinux 0x444a965d fb_set_cmap +EXPORT_SYMBOL vmlinux 0x4484628c seq_open +EXPORT_SYMBOL vmlinux 0x448a0ba3 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c3ae8a f_setown +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f3702c insert_inode_locked +EXPORT_SYMBOL vmlinux 0x451af829 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x452e9c14 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x452ebe86 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x45421cee scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x454cb2c0 __napi_schedule +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x455bd47c km_policy_expired +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4573b36d ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4577096f devm_free_irq +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457d0652 idr_remove_all +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45ca9869 journal_forget +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x462a2f35 bdi_unregister +EXPORT_SYMBOL vmlinux 0x464f95f8 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x4658d580 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x46595c8a vfs_lstat +EXPORT_SYMBOL vmlinux 0x46686c9b tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4697a82d dma_pool_free +EXPORT_SYMBOL vmlinux 0x46a5a965 kernel_bind +EXPORT_SYMBOL vmlinux 0x46a9d8b5 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x46b66204 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x46c2f7e5 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46e6b984 pci_save_state +EXPORT_SYMBOL vmlinux 0x47128500 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x47502673 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475bea72 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x4766a87b __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x4769e944 fddi_change_mtu +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 0x47dc3950 prepare_binprm +EXPORT_SYMBOL vmlinux 0x47e459b2 arp_invalidate +EXPORT_SYMBOL vmlinux 0x47f56efe filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x47f911d5 genphy_read_status +EXPORT_SYMBOL vmlinux 0x480e45e9 scsi_host_get +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x48241197 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x483d3c54 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486b347e dquot_resume +EXPORT_SYMBOL vmlinux 0x486fe763 km_policy_notify +EXPORT_SYMBOL vmlinux 0x487ac8e5 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x48bc1251 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x48cca47b xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x48dcc040 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x492bbfbe pci_set_mwi +EXPORT_SYMBOL vmlinux 0x493db847 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4991b02c mfd_add_devices +EXPORT_SYMBOL vmlinux 0x4996fe49 sock_create_lite +EXPORT_SYMBOL vmlinux 0x499d566d devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b9dfd3 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x49e04fbd uart_add_one_port +EXPORT_SYMBOL vmlinux 0x49e634d5 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x49f3dc1e acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x4a149b62 seq_open_private +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a59822e fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x4a72c139 input_register_device +EXPORT_SYMBOL vmlinux 0x4a77ff20 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x4a83932f pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x4a9b140c may_umount +EXPORT_SYMBOL vmlinux 0x4a9b7a36 get_disk +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ab4e4ae pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ae732bf ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1b388b swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x4b1e8ad5 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x4b463012 framebuffer_release +EXPORT_SYMBOL vmlinux 0x4b5814ef kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x4b669e79 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x4b715fd3 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x4b7ea806 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x4ba4aab3 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc0435f dev_err +EXPORT_SYMBOL vmlinux 0x4bd4078a tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x4bd9e7f4 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x4c0a5ed6 bio_copy_user +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c13f7e1 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x4c24ff5b eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x4c34747a scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c7aa70c pci_match_id +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4ccd6bb0 skb_make_writable +EXPORT_SYMBOL vmlinux 0x4ccec18d security_path_truncate +EXPORT_SYMBOL vmlinux 0x4cefd2e1 default_llseek +EXPORT_SYMBOL vmlinux 0x4d0a2883 lock_rename +EXPORT_SYMBOL vmlinux 0x4d0ac1bf fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x4d4aa78c posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x4d738c4e iterate_mounts +EXPORT_SYMBOL vmlinux 0x4d795ad9 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4db76c2f i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dd539e4 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df1c786 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x4dfd31b2 skb_split +EXPORT_SYMBOL vmlinux 0x4dfffa0f skb_recycle_check +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e32ae08 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3a7ae1 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x4e43443c blk_stop_queue +EXPORT_SYMBOL vmlinux 0x4e4a2c91 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x4e56b1fa i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e6ef508 bioset_free +EXPORT_SYMBOL vmlinux 0x4e963717 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x4ebb1265 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ee87ec3 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x4eeb6b39 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f62c7ad pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4f906a59 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x4ff248e1 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x500e867d kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x501921f8 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x503aa208 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x50440111 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x5054c597 vga_client_register +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506a906d inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x50884a26 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x509a03ff ht_create_irq +EXPORT_SYMBOL vmlinux 0x50ab3567 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50d731aa dcache_readdir +EXPORT_SYMBOL vmlinux 0x510c2535 xz_dec_run +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5162a3c1 tty_throttle +EXPORT_SYMBOL vmlinux 0x516830b1 scsi_add_device +EXPORT_SYMBOL vmlinux 0x518b2832 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x51c04e21 sock_no_poll +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x5251cd1f fb_set_var +EXPORT_SYMBOL vmlinux 0x5269eaa9 journal_start +EXPORT_SYMBOL vmlinux 0x526a8e59 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5281f466 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x5287d6b7 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x5288bf46 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x528c3aac wake_up_process +EXPORT_SYMBOL vmlinux 0x528e91c6 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x52921126 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b2f421 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x52d260d7 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53caacbd inet_sendpage +EXPORT_SYMBOL vmlinux 0x53d96072 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x53f04062 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x53ffba38 netdev_info +EXPORT_SYMBOL vmlinux 0x5430f39b unlock_new_inode +EXPORT_SYMBOL vmlinux 0x543bd954 tcp_poll +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x545334de ppp_input_error +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x54598cf2 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x5498ceea xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54cc8893 dcb_getapp +EXPORT_SYMBOL vmlinux 0x54cd412e mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x54d11909 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x54d872ba percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f0969e blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x55047658 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5542bda3 dump_write +EXPORT_SYMBOL vmlinux 0x5544f87c dev_get_stats +EXPORT_SYMBOL vmlinux 0x554516d1 module_layout +EXPORT_SYMBOL vmlinux 0x554b65ed __alloc_skb +EXPORT_SYMBOL vmlinux 0x556d23d9 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x55730671 kick_iocb +EXPORT_SYMBOL vmlinux 0x557cc613 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x5598def5 mutex_lock +EXPORT_SYMBOL vmlinux 0x55aefae4 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x55faf36c pci_bus_type +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5613dac6 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5644da44 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new +EXPORT_SYMBOL vmlinux 0x565c6024 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x56867898 i2c_transfer +EXPORT_SYMBOL vmlinux 0x569ac1d6 netdev_err +EXPORT_SYMBOL vmlinux 0x56b5774e journal_check_available_features +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56e3015c pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x56e96e88 __lock_page +EXPORT_SYMBOL vmlinux 0x56f14166 locks_init_lock +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x572f36c3 vfs_readlink +EXPORT_SYMBOL vmlinux 0x57381ad1 block_write_end +EXPORT_SYMBOL vmlinux 0x5740a0b4 dquot_acquire +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x57973f11 flex_array_get +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57db2de7 __bio_clone +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5842036c bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5859658c ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x5861dbd7 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x5863cfe3 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x5885d85f fb_find_mode +EXPORT_SYMBOL vmlinux 0x58a2ad34 read_dev_sector +EXPORT_SYMBOL vmlinux 0x58cda3b7 bdput +EXPORT_SYMBOL vmlinux 0x58ef1b5f dev_uc_init +EXPORT_SYMBOL vmlinux 0x59032bc1 vfs_link +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x593c8770 mmc_free_host +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5951b414 __quota_error +EXPORT_SYMBOL vmlinux 0x5974ff68 soft_cursor +EXPORT_SYMBOL vmlinux 0x5979c436 journal_destroy +EXPORT_SYMBOL vmlinux 0x5993e1d8 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59bd960d noop_llseek +EXPORT_SYMBOL vmlinux 0x59cb2b57 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x59d26fb5 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59e59550 search_binary_handler +EXPORT_SYMBOL vmlinux 0x59e6b1e4 inet_put_port +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x59f413b4 set_blocksize +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5c821b pci_dev_put +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a6d4ac2 neigh_table_init +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ae1b98f tr_type_trans +EXPORT_SYMBOL vmlinux 0x5aee2489 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x5b126365 _dev_info +EXPORT_SYMBOL vmlinux 0x5b1d8b47 may_umount_tree +EXPORT_SYMBOL vmlinux 0x5b299c69 register_md_personality +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5bcc77ef sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x5bd46e6a security_inode_permission +EXPORT_SYMBOL vmlinux 0x5be9c644 tcp_connect +EXPORT_SYMBOL vmlinux 0x5bf020d6 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x5c05358a compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x5c10ddc4 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c882973 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5cab1b70 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x5cbef133 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x5cc20d3e netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5cf02aed netif_napi_del +EXPORT_SYMBOL vmlinux 0x5cfc46bb __block_write_begin +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d332578 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x5d38bffe devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x5d569388 pci_target_state +EXPORT_SYMBOL vmlinux 0x5d5f1782 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d90c539 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x5da35732 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dab69d3 generic_getxattr +EXPORT_SYMBOL vmlinux 0x5daeae9d sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x5db05550 bio_endio +EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get +EXPORT_SYMBOL vmlinux 0x5de0ddef xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x5de98459 udp_ioctl +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e30c107 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x5e494014 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e6d92f4 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e804947 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x5e928dae tty_name +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb1e2a4 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x5ecabfb8 commit_creds +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5eec736c scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x5ef4b275 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f077c55 tcp_prot +EXPORT_SYMBOL vmlinux 0x5f20550f i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f651c76 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x5f80cdbf agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5faf3930 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x5fce52c7 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fd8228e vmap +EXPORT_SYMBOL vmlinux 0x5ff216ed find_lock_page +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601412f2 __netif_schedule +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x6020d0ef tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6030404d otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x603c7ce7 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x6044d334 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x605c164d padata_do_parallel +EXPORT_SYMBOL vmlinux 0x6068708d blk_end_request +EXPORT_SYMBOL vmlinux 0x607d0560 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ca1420 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x60dc1a93 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x60de3f69 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x60e1997d simple_dir_operations +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6125cd10 acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x613329ab md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x615ad2bc flush_old_exec +EXPORT_SYMBOL vmlinux 0x617b5749 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x617d088a mark_page_accessed +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c113d9 get_io_context +EXPORT_SYMBOL vmlinux 0x61c43c10 save_mount_options +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x621ed94c set_page_dirty +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x6269e5b3 amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x629f2b47 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0x62bc14eb serio_reconnect +EXPORT_SYMBOL vmlinux 0x62d3bcc8 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x62e09181 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x62f54765 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x62f91d7d simple_unlink +EXPORT_SYMBOL vmlinux 0x63124be4 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6321933c abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x6353af12 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x6374c229 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x63804019 nla_append +EXPORT_SYMBOL vmlinux 0x638d0906 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x63a6fec8 vfs_write +EXPORT_SYMBOL vmlinux 0x63c67d2f llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x63fc39b6 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x6400b476 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64343875 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x64359a87 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x64493fe0 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64634217 seq_puts +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64971b37 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a02a3d pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x64a7f32a scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x64e1fefd dev_disable_lro +EXPORT_SYMBOL vmlinux 0x64e24b8f xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x65058e31 generic_removexattr +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x6522c813 pipe_lock +EXPORT_SYMBOL vmlinux 0x65403e5d i2c_master_recv +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6547bea5 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x65740936 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x65cedac4 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e6c676 mount_pseudo +EXPORT_SYMBOL vmlinux 0x65efb8a5 follow_pfn +EXPORT_SYMBOL vmlinux 0x65f9c637 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x65fdb3f3 send_sig_info +EXPORT_SYMBOL vmlinux 0x66118df3 vm_map_ram +EXPORT_SYMBOL vmlinux 0x6613931f filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x663cba5c filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x666a1b3d dput +EXPORT_SYMBOL vmlinux 0x6680f212 pci_get_device +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66b32fae force_sig +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673573a3 d_splice_alias +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x677584ce filemap_flush +EXPORT_SYMBOL vmlinux 0x67765014 vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67bc9783 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x6804138f genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x680b7163 vfs_llseek +EXPORT_SYMBOL vmlinux 0x6877c05d __register_chrdev +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68957f55 sock_i_ino +EXPORT_SYMBOL vmlinux 0x68983fe0 d_lookup +EXPORT_SYMBOL vmlinux 0x68ef0bae tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x691539df rt6_lookup +EXPORT_SYMBOL vmlinux 0x691e14bc pipe_unlock +EXPORT_SYMBOL vmlinux 0x691e6d97 registered_fb +EXPORT_SYMBOL vmlinux 0x695bc52c mpage_writepages +EXPORT_SYMBOL vmlinux 0x695c0140 console_start +EXPORT_SYMBOL vmlinux 0x69701b2a abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697f6e29 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x69871b97 dentry_unhash +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69921202 ida_init +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69a98f67 kset_unregister +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69ad6a76 pci_get_class +EXPORT_SYMBOL vmlinux 0x69cdae6c llc_sap_close +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e442b5 simple_link +EXPORT_SYMBOL vmlinux 0x69e5e914 rwsem_wake +EXPORT_SYMBOL vmlinux 0x69e7318c jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x69e752b2 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x69ea9fb1 pci_dev_get +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0417bb make_bad_inode +EXPORT_SYMBOL vmlinux 0x6a0f936f skb_queue_tail +EXPORT_SYMBOL vmlinux 0x6a142089 ilookup5 +EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find +EXPORT_SYMBOL vmlinux 0x6a4138e6 kernel_accept +EXPORT_SYMBOL vmlinux 0x6a449740 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x6a592278 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a78004b inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x6a7c85e0 inet_select_addr +EXPORT_SYMBOL vmlinux 0x6a9ff576 elv_rb_add +EXPORT_SYMBOL vmlinux 0x6aa7aca5 genl_register_family +EXPORT_SYMBOL vmlinux 0x6ab49e76 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x6ab57660 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x6ab6fc83 nf_register_hook +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae04879 netdev_state_change +EXPORT_SYMBOL vmlinux 0x6ae28a67 __lock_buffer +EXPORT_SYMBOL vmlinux 0x6ae9d44f phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x6aeaa151 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x6aed3d24 register_exec_domain +EXPORT_SYMBOL vmlinux 0x6aefb56c ip_route_input_common +EXPORT_SYMBOL vmlinux 0x6b1acc01 init_special_inode +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1e456e jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b38337a netdev_features_change +EXPORT_SYMBOL vmlinux 0x6b3cd6ed mdiobus_scan +EXPORT_SYMBOL vmlinux 0x6b691ef1 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b7271bd pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x6b7cfbdb km_report +EXPORT_SYMBOL vmlinux 0x6b858ae5 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x6ba1ee13 fput +EXPORT_SYMBOL vmlinux 0x6bad318b no_llseek +EXPORT_SYMBOL vmlinux 0x6bc19c48 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c1d7a23 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x6c263602 __devm_request_region +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 0x6c654caa ip_fragment +EXPORT_SYMBOL vmlinux 0x6c69adba km_state_notify +EXPORT_SYMBOL vmlinux 0x6c6c9836 input_open_device +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c74d097 kdb_current_task +EXPORT_SYMBOL vmlinux 0x6cad4c34 boot_cpu_data +EXPORT_SYMBOL vmlinux 0x6cb6ea80 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cc355e0 elevator_exit +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6d0a0239 misc_deregister +EXPORT_SYMBOL vmlinux 0x6d1ad153 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x6d1c9af1 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d301ad7 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d4008f9 deactivate_super +EXPORT_SYMBOL vmlinux 0x6d420cc9 dm_get_device +EXPORT_SYMBOL vmlinux 0x6d462a68 scsi_device_put +EXPORT_SYMBOL vmlinux 0x6d5c044f rfkill_set_states +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6db5e9e6 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x6dbe2448 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x6dbe602c tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x6dc31e78 proto_unregister +EXPORT_SYMBOL vmlinux 0x6dc5c6c0 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e0522b1 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x6e2295db set_pages_x +EXPORT_SYMBOL vmlinux 0x6e479490 thaw_process +EXPORT_SYMBOL vmlinux 0x6e4bcc91 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e8df569 release_pages +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ec679bb i2c_release_client +EXPORT_SYMBOL vmlinux 0x6ecda811 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x6ef2a839 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x6efb594d i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x6f031505 init_buffer +EXPORT_SYMBOL vmlinux 0x6f095477 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x6f2e12c9 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x6f310208 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f4836ec mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fa257c9 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x6fc3505e pci_select_bars +EXPORT_SYMBOL vmlinux 0x6fc50e19 ether_setup +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6feeb884 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x6ff30c10 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x701d5bbe jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x70381511 netpoll_poll +EXPORT_SYMBOL vmlinux 0x7047d500 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x707bdc11 set_pages_wb +EXPORT_SYMBOL vmlinux 0x709968b9 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x70b0a153 netif_napi_add +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70ccba7f kernel_connect +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e0d61f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x70eaa01c fsync_bdev +EXPORT_SYMBOL vmlinux 0x71144033 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x71205378 add_timer +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7150d5d4 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x7151dd1d fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x715f5086 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718a27e8 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71b62aae security_path_chown +EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x71d0b248 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x71d3f360 tty_free_termios +EXPORT_SYMBOL vmlinux 0x71e48851 __dst_free +EXPORT_SYMBOL vmlinux 0x71f50df0 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x71f750f9 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x71f80d4b phy_start +EXPORT_SYMBOL vmlinux 0x722917c6 kill_block_super +EXPORT_SYMBOL vmlinux 0x7232ed3e journal_get_write_access +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x7253164b genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x7257560d grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x725a2f92 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x725aca1a iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x725b2e77 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x726c1c5f kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x72815b31 dquot_file_open +EXPORT_SYMBOL vmlinux 0x72a8d44b blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72ae85c1 bioset_create +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c1310b kobject_put +EXPORT_SYMBOL vmlinux 0x72de34fa sock_create +EXPORT_SYMBOL vmlinux 0x72e3c600 pnp_is_active +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7301a112 unregister_netdev +EXPORT_SYMBOL vmlinux 0x730298a9 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x7308ecf5 key_task_permission +EXPORT_SYMBOL vmlinux 0x732dc579 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x7334f69e __destroy_inode +EXPORT_SYMBOL vmlinux 0x7344c056 file_remove_suid +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7381ffbb flex_array_clear +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73b00a98 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x73b9ce87 page_put_link +EXPORT_SYMBOL vmlinux 0x73d6f52b udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x73d833d0 inet_frag_find +EXPORT_SYMBOL vmlinux 0x73d9fc05 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x73e8ac77 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x74378651 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x745727f4 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x745dab58 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x747154af pci_disable_msi +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c30361 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x74ca9081 netpoll_setup +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d36428 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x74f111a7 current_task +EXPORT_SYMBOL vmlinux 0x75078bad tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x7512cb59 set_disk_ro +EXPORT_SYMBOL vmlinux 0x752dcb53 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75434353 __find_get_block +EXPORT_SYMBOL vmlinux 0x75554ea3 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x75689ddd pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x757a6393 dev_get_flags +EXPORT_SYMBOL vmlinux 0x7580888f ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75d6d596 skb_insert +EXPORT_SYMBOL vmlinux 0x75ddd283 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x761b9dff lock_may_write +EXPORT_SYMBOL vmlinux 0x762042f1 inode_init_always +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x76ae584b framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e4a94c scsi_remove_host +EXPORT_SYMBOL vmlinux 0x76e97357 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x76efd918 register_cdrom +EXPORT_SYMBOL vmlinux 0x7717cc91 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x771e737d brioctl_set +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77401aa1 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x774994b8 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x7762e32e scsi_put_command +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c6980a skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77f909c9 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7829d7bd pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x783bbb98 dns_query +EXPORT_SYMBOL vmlinux 0x78404a79 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x7846f6d0 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x78587b3a compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x78758686 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x78907c32 blk_register_region +EXPORT_SYMBOL vmlinux 0x78ae2f6d generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f15cc6 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x792c1098 dst_release +EXPORT_SYMBOL vmlinux 0x7956817c __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x79688e47 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7976db4e vfs_getattr +EXPORT_SYMBOL vmlinux 0x798c2de6 register_8022_client +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b1fd23 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x79bbdf87 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x79bc8beb tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x79cbaf15 submit_bh +EXPORT_SYMBOL vmlinux 0x79d5542e input_unregister_handler +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3b754a scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a4fa617 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x7a504706 put_disk +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a5abeb0 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x7a7350e3 __register_binfmt +EXPORT_SYMBOL vmlinux 0x7a810c44 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x7a9fdff8 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x7aa41792 vc_cons +EXPORT_SYMBOL vmlinux 0x7ac05b93 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x7ae6f536 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b209f65 key_unlink +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b84de87 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b928292 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7b9c2c2c flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x7ba171cc prepare_creds +EXPORT_SYMBOL vmlinux 0x7bc3d8b7 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x7bc43bc3 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be01b7c simple_readpage +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c2582e4 should_remove_suid +EXPORT_SYMBOL vmlinux 0x7c2f6aea filemap_fault +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb61d07 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x7ce7376e gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x7ce94405 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x7cf0843b pcim_pin_device +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d516476 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x7d6bb587 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x7d7e4296 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7d996101 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x7dc638e2 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7e00f985 padata_free +EXPORT_SYMBOL vmlinux 0x7e0dad50 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x7e1fd42a end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x7e36276f blk_execute_rq +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e3bb181 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x7e4a8748 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x7e92c6f2 set_create_files_as +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea70ee9 bio_map_user +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7ec4f652 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7f104917 add_disk +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f4ff45e textsearch_prepare +EXPORT_SYMBOL vmlinux 0x7f8171f0 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x7f8455ce sock_register +EXPORT_SYMBOL vmlinux 0x7f93b6c0 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x7fa9abeb pneigh_lookup +EXPORT_SYMBOL vmlinux 0x7fe4dfbf alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x7ff18a0e set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x8006abb4 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x8006ac33 fb_blank +EXPORT_SYMBOL vmlinux 0x803ce4eb posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x803dc714 end_writeback +EXPORT_SYMBOL vmlinux 0x804f1043 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x804f9947 dm_table_event +EXPORT_SYMBOL vmlinux 0x804f9dd8 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x805485ab __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x80793f39 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x80a20f1d mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x80a55e3e inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x80ae20f6 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x80b5437b ps2_handle_response +EXPORT_SYMBOL vmlinux 0x80ce0170 tc_classify +EXPORT_SYMBOL vmlinux 0x80d766c1 netdev_notice +EXPORT_SYMBOL vmlinux 0x80d9fadb i2c_verify_client +EXPORT_SYMBOL vmlinux 0x810d3c6d kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x81198486 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x813dd965 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814c830b tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x815a5b34 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x817b54c7 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x818d7ab9 netlink_set_err +EXPORT_SYMBOL vmlinux 0x81d0f157 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dc1d92 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x81dd70bd get_phy_device +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8213b972 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x822629b8 generic_file_open +EXPORT_SYMBOL vmlinux 0x822b3839 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x82317dd5 backlight_force_update +EXPORT_SYMBOL vmlinux 0x824fc90b napi_skb_finish +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82559f72 dst_alloc +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x826b5dcc alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x827f207d phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x82909105 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x829dd661 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x82a9046e ip_route_output_key +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82c2e002 pci_pme_active +EXPORT_SYMBOL vmlinux 0x82c5a9a4 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x82d426b3 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x82dec909 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82f3534f tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x837074ec journal_set_features +EXPORT_SYMBOL vmlinux 0x837beb97 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83ad1e17 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x83ae0716 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x83b65eac sk_wait_data +EXPORT_SYMBOL vmlinux 0x83f62bbc vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x844da606 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x84577111 padata_stop +EXPORT_SYMBOL vmlinux 0x84895068 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84a62d05 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x84af06f5 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x84ee2dc7 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x85006393 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x851a258b __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x85309302 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x853a6ccc page_readlink +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x85a72e6c tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85ae4bf5 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x85d9c53f kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85f62649 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x85fd8c2f simple_transaction_read +EXPORT_SYMBOL vmlinux 0x8606710f serio_rescan +EXPORT_SYMBOL vmlinux 0x8608f4ef mount_bdev +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86529268 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x867b3ec7 input_set_capability +EXPORT_SYMBOL vmlinux 0x867d79f6 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x8683ccec tcp_disconnect +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x8692a9b5 dma_supported +EXPORT_SYMBOL vmlinux 0x8694c25f d_obtain_alias +EXPORT_SYMBOL vmlinux 0x86b2f615 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x86b4575b kernel_read +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86dba88d pagevec_lookup +EXPORT_SYMBOL vmlinux 0x86dce477 revert_creds +EXPORT_SYMBOL vmlinux 0x86e37c8f follow_down_one +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x86fbae8e md_register_thread +EXPORT_SYMBOL vmlinux 0x870e2dbc names_cachep +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x872429e1 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x876fafa0 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x877480dc dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878f1a4b block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87b3aa7f llc_sap_open +EXPORT_SYMBOL vmlinux 0x87baef70 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x87bb2248 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x87cde7bc md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x87f5ad7d dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8833bc7e __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x88517c66 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x887a3a1e xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88b23899 I_BDEV +EXPORT_SYMBOL vmlinux 0x88b24d0a tcf_exts_change +EXPORT_SYMBOL vmlinux 0x8921abd9 llc_sap_find +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x893e5c21 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x89542517 cdrom_open +EXPORT_SYMBOL vmlinux 0x89603f3d unregister_8022_client +EXPORT_SYMBOL vmlinux 0x8963da08 __elv_add_request +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x898831ae check_disk_size_change +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89dc6800 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x89e0e01d ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x89e6f095 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x8a0a102c eth_type_trans +EXPORT_SYMBOL vmlinux 0x8a1b0f04 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x8a207811 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x8a27af32 eth_header_cache +EXPORT_SYMBOL vmlinux 0x8a40a9b4 noop_qdisc +EXPORT_SYMBOL vmlinux 0x8a4966dd give_up_console +EXPORT_SYMBOL vmlinux 0x8a5db607 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x8a6961a9 udp_proc_register +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab9bd55 sk_dst_check +EXPORT_SYMBOL vmlinux 0x8acdaf28 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x8ad23320 __inet6_hash +EXPORT_SYMBOL vmlinux 0x8ade9681 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x8af40a62 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b288569 audit_log_start +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b37858b pci_get_subsys +EXPORT_SYMBOL vmlinux 0x8b410595 bio_put +EXPORT_SYMBOL vmlinux 0x8b42a7d4 put_page +EXPORT_SYMBOL vmlinux 0x8b50be7e dst_discard +EXPORT_SYMBOL vmlinux 0x8b5782f3 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b64d82c input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x8b7f1e2e skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b824caa dma_pool_create +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +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 0x8bbb67b5 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x8bcb600f inet_del_protocol +EXPORT_SYMBOL vmlinux 0x8bfaae8e kill_anon_super +EXPORT_SYMBOL vmlinux 0x8c150b38 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1d4953 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x8c37cd4a dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x8c3bfa38 proc_symlink +EXPORT_SYMBOL vmlinux 0x8c73bdeb iget_failed +EXPORT_SYMBOL vmlinux 0x8c7887a0 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8d0a55c8 dev_add_pack +EXPORT_SYMBOL vmlinux 0x8d17a87b unlock_rename +EXPORT_SYMBOL vmlinux 0x8d2e8050 alloc_disk +EXPORT_SYMBOL vmlinux 0x8d45f4c7 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d54203c inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5c3576 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x8d79fe43 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d9d873b scsi_register_driver +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8dba15f1 ihold +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dbad4fb dquot_drop +EXPORT_SYMBOL vmlinux 0x8dde3cb9 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x8df2f947 vga_tryget +EXPORT_SYMBOL vmlinux 0x8e001f1c file_update_time +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e225b0f generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x8e550451 dma_find_channel +EXPORT_SYMBOL vmlinux 0x8e5dbdb6 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x8e6c70fc inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x8e6db8f8 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x8e708363 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x8e7be58b journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x8e8793be alloc_trdev +EXPORT_SYMBOL vmlinux 0x8e8cc7af vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x8e9539e4 agp_bridge +EXPORT_SYMBOL vmlinux 0x8ea369ff mpage_readpage +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ed55e2f __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x8ed90b3c vm_insert_page +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f03c64a pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x8f09de38 simple_getattr +EXPORT_SYMBOL vmlinux 0x8f1854df kobject_set_name +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f87a629 set_trace_device +EXPORT_SYMBOL vmlinux 0x8f8b662d __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x8f975426 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa3a3a6 generic_writepages +EXPORT_SYMBOL vmlinux 0x8fc02d4a xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x8ff4bd32 secpath_dup +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900dfdb0 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x90201e22 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x9031868d dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x90813c4e unregister_nls +EXPORT_SYMBOL vmlinux 0x90832dce neigh_update +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a58a33 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x90cf0474 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x90dde687 journal_ack_err +EXPORT_SYMBOL vmlinux 0x90f019df blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x910e35c3 tty_write_room +EXPORT_SYMBOL vmlinux 0x911a993b rtnl_create_link +EXPORT_SYMBOL vmlinux 0x9135aad1 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9152102e uart_suspend_port +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91650948 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x9175ce4b blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy +EXPORT_SYMBOL vmlinux 0x91a2993a __ps2_command +EXPORT_SYMBOL vmlinux 0x91ef4e2e bdev_read_only +EXPORT_SYMBOL vmlinux 0x91f090b8 have_submounts +EXPORT_SYMBOL vmlinux 0x9215b54a blk_remove_plug +EXPORT_SYMBOL vmlinux 0x921788af set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x9229e3c1 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x9234aaa6 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923d4f0e pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x9261967d pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x92890bd2 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x928a4e11 input_close_device +EXPORT_SYMBOL vmlinux 0x929ca782 ll_rw_block +EXPORT_SYMBOL vmlinux 0x92b934c9 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x92e09b19 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x92f74a3a acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x931b087c input_allocate_device +EXPORT_SYMBOL vmlinux 0x9321046a pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x93621074 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x9383a6a4 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x93956b85 __rta_fill +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93caa865 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x93d1939c scsi_scan_target +EXPORT_SYMBOL vmlinux 0x93d19d3e scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93f5d1ea mdiobus_register +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x946f1534 vmtruncate +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949ee776 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x94a7e32f jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94e8a074 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x94ff0005 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x9530da28 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9549acc5 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x9582aa86 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x9588716a padata_start +EXPORT_SYMBOL vmlinux 0x95caacbe kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d9a7b7 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x95da3dbe tty_port_close +EXPORT_SYMBOL vmlinux 0x95da82c7 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x95db3d88 udp_prot +EXPORT_SYMBOL vmlinux 0x95e51144 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x95e95cfd qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x95ff0d3d blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x96011682 lookup_hash +EXPORT_SYMBOL vmlinux 0x960ab49d dquot_commit_info +EXPORT_SYMBOL vmlinux 0x962f0d83 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x96351e72 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x963537ba pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x965dc69c mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x9663dc89 inet6_getname +EXPORT_SYMBOL vmlinux 0x967266cf phy_connect_direct +EXPORT_SYMBOL vmlinux 0x967dbd1d blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x968789eb journal_load +EXPORT_SYMBOL vmlinux 0x968d158b mddev_congested +EXPORT_SYMBOL vmlinux 0x96b74202 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96f2977d blk_put_request +EXPORT_SYMBOL vmlinux 0x970b51e8 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x97100a02 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x972b2d59 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x9731236a pnp_register_driver +EXPORT_SYMBOL vmlinux 0x973e3e09 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x97531b62 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9769d6c9 netif_device_detach +EXPORT_SYMBOL vmlinux 0x9775c7e2 mntget +EXPORT_SYMBOL vmlinux 0x97c8af83 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next +EXPORT_SYMBOL vmlinux 0x9815a901 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x983018d4 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x9831e9e4 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x9836b48d udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98910091 __nla_reserve +EXPORT_SYMBOL vmlinux 0x98941403 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x9895dddf vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x989f11a1 write_inode_now +EXPORT_SYMBOL vmlinux 0x98b1bb25 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x98d64d97 __free_pages +EXPORT_SYMBOL vmlinux 0x99069fed mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x99150364 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9960a27d input_reset_device +EXPORT_SYMBOL vmlinux 0x9982ac73 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999b38d8 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x999cdb0a kernel_listen +EXPORT_SYMBOL vmlinux 0x999cf1b6 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a7898b tty_kref_put +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c14b5a blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x99c61ead swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cd02ff blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d387ee put_io_context +EXPORT_SYMBOL vmlinux 0x99d6c8c9 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x99e006d8 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x99e814cf dquot_release +EXPORT_SYMBOL vmlinux 0x99ed9a2d blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99f48069 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x9a02ccf9 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a329fbe bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x9a3f4aed neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x9a4c8b1f intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0x9a53bbdf blk_integrity_register +EXPORT_SYMBOL vmlinux 0x9a7d15a0 release_firmware +EXPORT_SYMBOL vmlinux 0x9a9570d6 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x9a9904d3 skb_checksum +EXPORT_SYMBOL vmlinux 0x9aa05da2 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9af8b75d jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x9b06bf71 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x9b1eb950 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b426eb6 journal_clear_err +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b63f88e freeze_bdev +EXPORT_SYMBOL vmlinux 0x9ba38b42 set_irq_chip +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9baea1d3 proto_register +EXPORT_SYMBOL vmlinux 0x9bda18ea acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x9be4e76a intel_gtt_get +EXPORT_SYMBOL vmlinux 0x9be8258c alloc_fddidev +EXPORT_SYMBOL vmlinux 0x9bff4bba dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c2a2da2 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4e1656 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x9c79dfc4 bio_add_page +EXPORT_SYMBOL vmlinux 0x9c87f3d7 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x9ca6a2fe sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cadfb9b __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above +EXPORT_SYMBOL vmlinux 0x9d2b5ec2 netif_skb_features +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d410896 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x9d83a4b3 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x9daa9983 register_framebuffer +EXPORT_SYMBOL vmlinux 0x9dae3f2e unregister_quota_format +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dcb059a ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x9dce90e9 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x9dd22e59 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x9de3feef blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x9df90ac5 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e10f700 dev_addr_add +EXPORT_SYMBOL vmlinux 0x9e1bdc28 init_timer_key +EXPORT_SYMBOL vmlinux 0x9e2503db tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4ec2a2 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x9e570db6 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e735a1c genphy_update_link +EXPORT_SYMBOL vmlinux 0x9e775fb9 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e809fc4 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x9e847814 __sock_create +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ed818df register_sysctl_paths +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 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2c5462 cdev_add +EXPORT_SYMBOL vmlinux 0x9f3d5a99 thermal_cooling_device_register +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 0x9f9937dd log_wait_commit +EXPORT_SYMBOL vmlinux 0x9faeac88 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x9fc2be73 account_page_writeback +EXPORT_SYMBOL vmlinux 0x9fce37ae llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x9fcf7b68 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0x9ffb4b8b input_flush_device +EXPORT_SYMBOL vmlinux 0xa005e044 radix_tree_delete +EXPORT_SYMBOL vmlinux 0xa0076e29 dev_uc_del +EXPORT_SYMBOL vmlinux 0xa022569f tcp_make_synack +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04e8004 scsi_print_result +EXPORT_SYMBOL vmlinux 0xa0590d4c qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa07e7e7d qdisc_list_del +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa08b5606 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xa08d7f64 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xa08dbb62 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0a7cf40 bio_clone +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b192e2 follow_down +EXPORT_SYMBOL vmlinux 0xa0c6fdc0 dm_io +EXPORT_SYMBOL vmlinux 0xa0c9d567 kill_litter_super +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0cf1575 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0xa0d28f35 install_exec_creds +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa1034e1a __getblk +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1260765 dev_mc_add +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa16b1491 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xa1826921 d_delete +EXPORT_SYMBOL vmlinux 0xa18dcfde simple_write_end +EXPORT_SYMBOL vmlinux 0xa1a15a02 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b1b5a9 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1b8de3a inet_stream_ops +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1dd1b95 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xa1ec8f1c __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa227e4a8 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xa243e10a tty_port_close_start +EXPORT_SYMBOL vmlinux 0xa27d4240 read_cache_page +EXPORT_SYMBOL vmlinux 0xa29a3b9b bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2abe7ad xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xa2b5c1de nf_log_register +EXPORT_SYMBOL vmlinux 0xa2b6c0ce find_vma +EXPORT_SYMBOL vmlinux 0xa2c70aa3 scsi_host_put +EXPORT_SYMBOL vmlinux 0xa2d3188d cdev_init +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa3234f93 mmc_host_disable +EXPORT_SYMBOL vmlinux 0xa3241ee7 fb_show_logo +EXPORT_SYMBOL vmlinux 0xa3273359 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0xa330ca2d swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa335cae3 elv_queue_empty +EXPORT_SYMBOL vmlinux 0xa335f14c drop_super +EXPORT_SYMBOL vmlinux 0xa33f0f1b mnt_unpin +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa34478a8 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xa34ed22d security_path_rename +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa3514ca2 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa371b588 vfs_readdir +EXPORT_SYMBOL vmlinux 0xa37843a8 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xa3801aa5 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3e439eb block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xa3e5aaad generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xa3f76bbf acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xa3fed86b tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa448b3c1 phy_print_status +EXPORT_SYMBOL vmlinux 0xa46c3081 kill_pgrp +EXPORT_SYMBOL vmlinux 0xa470fce8 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xa4893893 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xa48a5003 pci_request_region +EXPORT_SYMBOL vmlinux 0xa48fd040 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xa490abbe mii_nway_restart +EXPORT_SYMBOL vmlinux 0xa4a8d57e sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4b9dcd8 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xa4c140f8 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e3440b dget_parent +EXPORT_SYMBOL vmlinux 0xa4f0e4cf balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xa4fbf53a blk_end_request_all +EXPORT_SYMBOL vmlinux 0xa52c94bf pid_task +EXPORT_SYMBOL vmlinux 0xa5363d18 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xa53b75de sk_alloc +EXPORT_SYMBOL vmlinux 0xa54b79d7 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa54c228d generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xa550c6be ip_setsockopt +EXPORT_SYMBOL vmlinux 0xa5536e35 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5bac51f genphy_resume +EXPORT_SYMBOL vmlinux 0xa5e3aec9 dev_emerg +EXPORT_SYMBOL vmlinux 0xa5e83750 elevator_init +EXPORT_SYMBOL vmlinux 0xa5e97614 journal_extend +EXPORT_SYMBOL vmlinux 0xa6111bd9 lookup_bdev +EXPORT_SYMBOL vmlinux 0xa623b8df acpi_bus_start +EXPORT_SYMBOL vmlinux 0xa62d82d7 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xa630c913 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa64c299e agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xa64fa8a7 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xa67440e4 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xa67d9749 bdget_disk +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6aacbce tty_hangup +EXPORT_SYMBOL vmlinux 0xa6c82e27 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6dd098c unregister_binfmt +EXPORT_SYMBOL vmlinux 0xa6e414ea i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xa6ebce73 kthread_bind +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa714e48f dm_table_get_md +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa76172d0 notify_change +EXPORT_SYMBOL vmlinux 0xa7687623 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xa76f1304 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xa782383c bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xa795bb78 fb_get_mode +EXPORT_SYMBOL vmlinux 0xa7c252e4 filp_open +EXPORT_SYMBOL vmlinux 0xa7ca1f7e vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xa7dc8417 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa86fa407 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xa87f2a00 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa888da2b dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xa88fdde7 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xa89741fa d_drop +EXPORT_SYMBOL vmlinux 0xa8a172ac netif_rx +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8daa6f7 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xa8e2fc0c nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xa8ea9661 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa950c8b7 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xa9530f84 file_permission +EXPORT_SYMBOL vmlinux 0xa966034c vfs_read +EXPORT_SYMBOL vmlinux 0xa96a35f5 pnp_device_detach +EXPORT_SYMBOL vmlinux 0xa983aca7 dev_load +EXPORT_SYMBOL vmlinux 0xa9a8266f uart_update_timeout +EXPORT_SYMBOL vmlinux 0xa9afc359 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xa9b583c5 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c1b627 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xaa1c80af blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xaa2a0541 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xaa4c5ec9 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa87961d i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xaaa23a52 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xaaac24ae ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaef6c6d dm_table_get_size +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab062043 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xab1731c8 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0xab2e59d1 __devm_release_region +EXPORT_SYMBOL vmlinux 0xab526cad blk_plug_device +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab62e01b end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab7325c0 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab9aa4a0 sk_stream_error +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabab1cac ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xabb3f1ce writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xabc0f0a2 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd1daf0 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xabdf9034 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xac005201 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xac08e896 blkdev_get +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac27ae1b unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xac30dc37 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xac4e5f1d km_query +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac599149 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac786339 arp_send +EXPORT_SYMBOL vmlinux 0xac8c5854 tcf_register_action +EXPORT_SYMBOL vmlinux 0xac91913b user_path_at +EXPORT_SYMBOL vmlinux 0xacb95205 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xacc12f63 agp_free_memory +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xacc5babe serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacdc852d scsi_remove_target +EXPORT_SYMBOL vmlinux 0xacee73bd mmc_request_done +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad1dfca1 led_blink_set +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad282d1f pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad7f5892 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xad832b64 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xada0c0fe set_binfmt +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadbfd419 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xade3af82 intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0xae01f90c sock_no_accept +EXPORT_SYMBOL vmlinux 0xae787aff tty_register_driver +EXPORT_SYMBOL vmlinux 0xae856005 skb_pull +EXPORT_SYMBOL vmlinux 0xae8a1283 revalidate_disk +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae8b8f9c swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xae8fc3c4 uart_register_driver +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeaa4907 do_sync_read +EXPORT_SYMBOL vmlinux 0xaed45a5c scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xaed8107a spi_dv_device +EXPORT_SYMBOL vmlinux 0xaed91d1c blk_make_request +EXPORT_SYMBOL vmlinux 0xaee86afa misc_register +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf42a6f4 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf533bc9 padata_alloc +EXPORT_SYMBOL vmlinux 0xaf6bd5c2 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xaf6cebc7 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xaf71686e compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafbb98dd fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xafc4e6f3 netdev_emerg +EXPORT_SYMBOL vmlinux 0xafd9b5df pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xafd9ef79 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xaff8fcc0 inode_change_ok +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb01913cd d_rehash +EXPORT_SYMBOL vmlinux 0xb0334d51 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xb0360ac8 audit_log_end +EXPORT_SYMBOL vmlinux 0xb0496f98 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xb053bbb3 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xb0572b7e dma_set_mask +EXPORT_SYMBOL vmlinux 0xb07f622d blk_init_queue +EXPORT_SYMBOL vmlinux 0xb0a8fd0a intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0b95a57 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xb0df7d74 kobject_del +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f7d583 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb14319f6 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb19111d9 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1a3b8a9 ilookup +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb2012f54 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb21d105d seq_release_private +EXPORT_SYMBOL vmlinux 0xb22d32b4 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2ae07bc cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xb2b0d772 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0xb2b71de4 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb329b97f netif_carrier_on +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb36b84ba skb_push +EXPORT_SYMBOL vmlinux 0xb36e056e ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0xb398fa1e bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xb39ae089 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3b3c184 module_refcount +EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb3cd2346 skb_append +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb416c4b4 udp_poll +EXPORT_SYMBOL vmlinux 0xb41b7f4e register_snap_client +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47c159d dma_ops +EXPORT_SYMBOL vmlinux 0xb483a9b4 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xb48b4836 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xb4a5d567 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xb4aaaf2a dev_set_mtu +EXPORT_SYMBOL vmlinux 0xb4ad4766 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xb4d5d187 generic_listxattr +EXPORT_SYMBOL vmlinux 0xb4dc90ea skb_gso_segment +EXPORT_SYMBOL vmlinux 0xb4f1d2a4 ps2_end_command +EXPORT_SYMBOL vmlinux 0xb500ff84 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb50a3a80 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5499c82 key_revoke +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb555a31a truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xb5659fc3 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xb571aedc blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5beef48 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xb5c464df scsi_execute +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d37a61 kstat +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5dc9f34 register_nls +EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu +EXPORT_SYMBOL vmlinux 0xb5fc0bdf pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xb6112c8a vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xb61835ef rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb63f8e7c write_one_page +EXPORT_SYMBOL vmlinux 0xb6523c71 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xb674dac1 skb_seq_read +EXPORT_SYMBOL vmlinux 0xb675773a blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6877307 mdiobus_read +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6caff7a bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6ddf410 inode_lock +EXPORT_SYMBOL vmlinux 0xb6e90937 md_flush_request +EXPORT_SYMBOL vmlinux 0xb6f9008e xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xb7265cec jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xb729dc14 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xb7328510 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xb7421bc0 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xb74ef15f ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xb7537767 dst_destroy +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb75b88dc mdiobus_write +EXPORT_SYMBOL vmlinux 0xb77b18ee journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb789bdfa dm_put_device +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7c138d4 neigh_create +EXPORT_SYMBOL vmlinux 0xb7dac754 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xb7e5aa32 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xb80bdadd sget +EXPORT_SYMBOL vmlinux 0xb8102753 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xb814f6c1 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xb81be351 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xb8274d66 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xb82b1b89 do_SAK +EXPORT_SYMBOL vmlinux 0xb8499188 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xb85275de lock_super +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb88ab53c ppp_unit_number +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8b29c56 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xb8bbbd8d vfs_statfs +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb90acf71 nla_put +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb91935d9 sock_rfree +EXPORT_SYMBOL vmlinux 0xb92f63f1 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xb94abe43 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98a5401 keyring_search +EXPORT_SYMBOL vmlinux 0xb99829d4 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xb9c0a9e8 mii_link_ok +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xb9ff73e6 journal_force_commit +EXPORT_SYMBOL vmlinux 0xba0e1e7e locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xba20364f hippi_type_trans +EXPORT_SYMBOL vmlinux 0xba225b19 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba3b09ea __scm_send +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba4fd535 lock_may_read +EXPORT_SYMBOL vmlinux 0xba56ae40 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xba63f250 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xba76acc7 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xba9ef231 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbad487bf max8925_reg_read +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbaed716c dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xbaeeaba3 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xbb049f56 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb6a07f6 alloc_file +EXPORT_SYMBOL vmlinux 0xbb74105f gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb94640d simple_statfs +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba14090 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbaa5f6b nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbe0b115 ps2_init +EXPORT_SYMBOL vmlinux 0xbbf59a22 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xbc00c554 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xbc05012d mutex_trylock +EXPORT_SYMBOL vmlinux 0xbc19b8bf generic_write_sync +EXPORT_SYMBOL vmlinux 0xbc19ee37 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbcab5217 agp_create_memory +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcee9a26 unlock_super +EXPORT_SYMBOL vmlinux 0xbd017fe1 simple_rmdir +EXPORT_SYMBOL vmlinux 0xbd2767a8 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xbd29799b netlink_dump_start +EXPORT_SYMBOL vmlinux 0xbd3b3453 sg_miter_start +EXPORT_SYMBOL vmlinux 0xbd3c0230 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xbd426b54 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xbd63d3d2 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xbd77125e blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xbd812a3f inet_release +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc033ce unlock_buffer +EXPORT_SYMBOL vmlinux 0xbdc32593 cont_write_begin +EXPORT_SYMBOL vmlinux 0xbde49ad5 deny_write_access +EXPORT_SYMBOL vmlinux 0xbdeec3a1 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdf63eca pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xbe2fe391 neigh_lookup +EXPORT_SYMBOL vmlinux 0xbe3460f3 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe368992 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xbe3c58e2 cdev_alloc +EXPORT_SYMBOL vmlinux 0xbe69236a path_put +EXPORT_SYMBOL vmlinux 0xbe745aaf udplite_prot +EXPORT_SYMBOL vmlinux 0xbe90da8e x86_hyper +EXPORT_SYMBOL vmlinux 0xbeb0efdb cdrom_check_events +EXPORT_SYMBOL vmlinux 0xbebaedec lock_fb_info +EXPORT_SYMBOL vmlinux 0xbebfb842 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xbedaf7a2 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xbeeb1e2e blk_peek_request +EXPORT_SYMBOL vmlinux 0xbeed1706 thaw_bdev +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbeff8907 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xbf1864c1 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0xbf1e9025 uart_match_port +EXPORT_SYMBOL vmlinux 0xbf1f5cea sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b908b nla_reserve +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf90fdf5 pci_set_master +EXPORT_SYMBOL vmlinux 0xbf937861 pci_choose_state +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfab7b0b tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc010a1e8 vga_put +EXPORT_SYMBOL vmlinux 0xc04edced simple_transaction_get +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0671ac0 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xc07584ce compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc09c01da sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0abdeca bdevname +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0b602e1 iput +EXPORT_SYMBOL vmlinux 0xc0fd0c8c scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xc1268644 idr_init +EXPORT_SYMBOL vmlinux 0xc136eeb7 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xc1470e24 blkdev_put +EXPORT_SYMBOL vmlinux 0xc1669dec stop_tty +EXPORT_SYMBOL vmlinux 0xc1766051 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xc181d6fd get_sb_single +EXPORT_SYMBOL vmlinux 0xc19219c2 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xc1960eff __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xc1b091a3 amd_northbridges +EXPORT_SYMBOL vmlinux 0xc1b3c414 arp_create +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1cfe680 scsi_register +EXPORT_SYMBOL vmlinux 0xc1d0fe66 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xc1d7d179 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc22d3250 scsi_execute_req +EXPORT_SYMBOL vmlinux 0xc2346567 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xc23c978a blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc2529cb7 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc27e7736 try_to_release_page +EXPORT_SYMBOL vmlinux 0xc28ea9c7 sock_init_data +EXPORT_SYMBOL vmlinux 0xc28f0b99 d_set_d_op +EXPORT_SYMBOL vmlinux 0xc2ad107e proc_mkdir +EXPORT_SYMBOL vmlinux 0xc2be34e7 input_register_handle +EXPORT_SYMBOL vmlinux 0xc2c3782c __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xc2d86d02 cdrom_release +EXPORT_SYMBOL vmlinux 0xc2d96b60 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xc2dd7e11 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc31ee590 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xc348012b neigh_destroy +EXPORT_SYMBOL vmlinux 0xc3509d2b page_follow_link_light +EXPORT_SYMBOL vmlinux 0xc369a59d ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xc36c3600 sk_common_release +EXPORT_SYMBOL vmlinux 0xc3891be5 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3c5b322 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xc3c5ef54 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xc3f2f144 tty_port_close_end +EXPORT_SYMBOL vmlinux 0xc3f57f47 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc3fe1fdb splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc4306319 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xc43f5adc put_mnt_ns +EXPORT_SYMBOL vmlinux 0xc44e02cc kobject_init +EXPORT_SYMBOL vmlinux 0xc45c2f00 netdev_crit +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a118dc tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xc4ba6929 mount_single +EXPORT_SYMBOL vmlinux 0xc4c7df1e scsi_prep_return +EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask +EXPORT_SYMBOL vmlinux 0xc4f33980 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xc5174cef bio_map_kern +EXPORT_SYMBOL vmlinux 0xc51f013a neigh_ifdown +EXPORT_SYMBOL vmlinux 0xc524141d llc_add_pack +EXPORT_SYMBOL vmlinux 0xc52d1cd9 dev_notice +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5419712 dquot_disable +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5543df7 make_EII_client +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xc5c2f32e thaw_super +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc642db02 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xc6441fad scsi_ioctl +EXPORT_SYMBOL vmlinux 0xc64a627e neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc66f930a dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xc6813f94 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xc682d102 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6a45933 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xc6ce8367 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xc6d67cc2 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xc6f623ce dquot_free_inode +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7265bec kill_pid +EXPORT_SYMBOL vmlinux 0xc7308fc6 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xc73b48c9 __f_setown +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc75638e6 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xc7670cf3 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc77f670b security_d_instantiate +EXPORT_SYMBOL vmlinux 0xc78c3f32 input_set_keycode +EXPORT_SYMBOL vmlinux 0xc78efa6f mb_cache_create +EXPORT_SYMBOL vmlinux 0xc791cb56 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7bd2461 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xc7c5dd24 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xc7e37025 generic_setxattr +EXPORT_SYMBOL vmlinux 0xc8006e5a iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xc81c9841 simple_lookup +EXPORT_SYMBOL vmlinux 0xc833b1d3 consume_skb +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc86a6174 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8b4f42d __dquot_transfer +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bb6a4f netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xc8c6c7d4 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xc8cbfcc3 vfs_mknod +EXPORT_SYMBOL vmlinux 0xc8d7d93b mpage_readpages +EXPORT_SYMBOL vmlinux 0xc9475da3 bio_free +EXPORT_SYMBOL vmlinux 0xc94aefd8 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc9683571 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xc96ca519 input_release_device +EXPORT_SYMBOL vmlinux 0xc9711032 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xc9784c47 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xc98061a3 dm_table_get +EXPORT_SYMBOL vmlinux 0xc985f8e5 compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xc9976922 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0xc9993c00 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc99ab3ba arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9ba7c43 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xc9d16606 tty_port_open +EXPORT_SYMBOL vmlinux 0xc9f45dfc block_commit_write +EXPORT_SYMBOL vmlinux 0xca085c94 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xca2f1226 simple_empty +EXPORT_SYMBOL vmlinux 0xca37be9f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca7fd2bf skb_store_bits +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xcaa7a9fa kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xcaa99bd7 netif_device_attach +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcaf8b1d8 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xcb14c465 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xcb1dc684 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xcb2fcb41 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xcb522f70 eth_header_parse +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb878fa6 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0xcbc3e7c4 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbe71c34 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xcbe8e6a6 elv_add_request +EXPORT_SYMBOL vmlinux 0xcc03af4c mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc3d0bde skb_copy_bits +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc54ca5f abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8e959c dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xccacbe87 dqput +EXPORT_SYMBOL vmlinux 0xccd7e624 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xcceb78d3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xccfafccf follow_up +EXPORT_SYMBOL vmlinux 0xccfeb108 generic_permission +EXPORT_SYMBOL vmlinux 0xcd0ef210 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2a76c3 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xcd4692b1 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcd534b56 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xcda36d42 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xcdfe4999 bio_split +EXPORT_SYMBOL vmlinux 0xce095088 mod_timer +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce7149f3 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xce84504e sock_setsockopt +EXPORT_SYMBOL vmlinux 0xcecef285 flex_array_free +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf013b33 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xcf018c53 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xcf0b59cf ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf4039aa nf_afinfo +EXPORT_SYMBOL vmlinux 0xcf68a382 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcfb0f390 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xcfb86e87 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xcfb8db05 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd100e9 generic_write_end +EXPORT_SYMBOL vmlinux 0xcfe28b81 pci_release_region +EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcff1493f generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0395f1a blk_get_request +EXPORT_SYMBOL vmlinux 0xd0616a98 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xd0718746 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xd07268d1 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xd0760b42 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xd07b397f update_region +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0820433 path_is_under +EXPORT_SYMBOL vmlinux 0xd08208f3 tcp_check_req +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b001ce nlmsg_notify +EXPORT_SYMBOL vmlinux 0xd0ec48e5 con_is_bound +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 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1294710 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd14b0019 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd196ca84 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xd1c0b64a request_key_async +EXPORT_SYMBOL vmlinux 0xd1c67259 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xd1d32cd2 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xd1d7d2f9 tty_mutex +EXPORT_SYMBOL vmlinux 0xd1e0fa6e abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd2198cc2 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd24e337c bd_set_size +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2545323 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd26a314b mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2cb1127 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xd2d6eef7 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xd2dbeb5a tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xd2e09d2f jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xd2e67ea5 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xd2f782ed kernel_getpeername +EXPORT_SYMBOL vmlinux 0xd3071634 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xd3186866 release_sock +EXPORT_SYMBOL vmlinux 0xd32de6af single_release +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd33e285d pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd3597ae0 dev_change_flags +EXPORT_SYMBOL vmlinux 0xd363b87e netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xd3696a2d pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xd36d3521 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3923426 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd39f5748 seq_printf +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3d2a7d7 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xd3fe7739 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xd410b756 submit_bio +EXPORT_SYMBOL vmlinux 0xd43763aa abort_creds +EXPORT_SYMBOL vmlinux 0xd44180cc xfrm_register_km +EXPORT_SYMBOL vmlinux 0xd4544514 sg_miter_next +EXPORT_SYMBOL vmlinux 0xd4580602 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xd469fcdc kmem_cache_free +EXPORT_SYMBOL vmlinux 0xd47ff76e pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xd481630e tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd4991d34 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xd4b1bfd4 truncate_setsize +EXPORT_SYMBOL vmlinux 0xd4c82d48 input_event +EXPORT_SYMBOL vmlinux 0xd4c85b65 key_alloc +EXPORT_SYMBOL vmlinux 0xd4fb05ce security_path_link +EXPORT_SYMBOL vmlinux 0xd507a9cf padata_add_cpu +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd511a443 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xd5255453 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xd528e344 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xd531b436 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xd54764d6 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd57dd950 free_buffer_head +EXPORT_SYMBOL vmlinux 0xd57fff92 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5bc04d6 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xd5c82763 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xd5f6d07e page_symlink +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd61ef619 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xd62c287b __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63c9d04 seq_putc +EXPORT_SYMBOL vmlinux 0xd65523e5 skb_unlink +EXPORT_SYMBOL vmlinux 0xd662734b __put_cred +EXPORT_SYMBOL vmlinux 0xd679311d mpage_writepage +EXPORT_SYMBOL vmlinux 0xd67d9f5e dentry_open +EXPORT_SYMBOL vmlinux 0xd6976832 journal_abort +EXPORT_SYMBOL vmlinux 0xd6a921e3 __breadahead +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6d4a041 phy_attach +EXPORT_SYMBOL vmlinux 0xd6e0ee73 block_truncate_page +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f54a2b sync_inode +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd7231abf ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xd7367a3e compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd768fbe9 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xd76c029a __d_drop +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd78f4368 inet_getname +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a06669 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e0a048 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ed3e83 __blk_end_request +EXPORT_SYMBOL vmlinux 0xd7f0bb97 pci_restore_state +EXPORT_SYMBOL vmlinux 0xd87de644 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xd87f3650 journal_errno +EXPORT_SYMBOL vmlinux 0xd88279c3 nf_reinject +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd900e80b bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd91bb6a2 genphy_suspend +EXPORT_SYMBOL vmlinux 0xd92a2454 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd976f134 inet_shutdown +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd999af8a arp_find +EXPORT_SYMBOL vmlinux 0xd9b31513 register_netdevice +EXPORT_SYMBOL vmlinux 0xd9e6794b tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xda094021 d_alloc +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0b678d seq_read +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda202510 ps2_drain +EXPORT_SYMBOL vmlinux 0xda495c86 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda6354f5 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xda6435b7 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda878922 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda919f2f blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xdaa6bee7 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xdab33586 devm_ioremap +EXPORT_SYMBOL vmlinux 0xdaba6d61 kthread_create +EXPORT_SYMBOL vmlinux 0xdae178e3 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xdaf073d9 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb185e7b __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xdb3e9f6c scsi_init_io +EXPORT_SYMBOL vmlinux 0xdb4219b2 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xdb5f5d8b sock_create_kern +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb7acfbf get_phy_id +EXPORT_SYMBOL vmlinux 0xdbb5ad5c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xdbb5afe6 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe56ffe agp_free_page_array +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdbeaed71 igrab +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc09e88e read_cache_pages +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc161c74 elv_rb_del +EXPORT_SYMBOL vmlinux 0xdc18f8c7 scsi_free_command +EXPORT_SYMBOL vmlinux 0xdc2ad351 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc346af1 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xdc34c2a5 __ht_create_irq +EXPORT_SYMBOL vmlinux 0xdc3bed3b lro_receive_skb +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc5f833f dev_mc_init +EXPORT_SYMBOL vmlinux 0xdc6de050 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xdc8c77fe radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xdca11b13 complete_request_key +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcd8c96d rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xdcec1d22 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xdd03580a elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xdd056ccc __break_lease +EXPORT_SYMBOL vmlinux 0xdd3188a6 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xdd67a264 rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdd7417f3 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd954928 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde286922 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xde3444f7 lease_modify +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde69f8d4 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xde6ee998 noop_fsync +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde8faf7e set_groups +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea86e52 dquot_initialize +EXPORT_SYMBOL vmlinux 0xdead2f96 tty_port_put +EXPORT_SYMBOL vmlinux 0xded06772 poll_freewait +EXPORT_SYMBOL vmlinux 0xded89fc2 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xdee4642c textsearch_register +EXPORT_SYMBOL vmlinux 0xdef17173 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf225524 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xdf347689 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf6007af __bread +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6f0a8b sock_wfree +EXPORT_SYMBOL vmlinux 0xdf7c745e locks_remove_posix +EXPORT_SYMBOL vmlinux 0xdf88dd9b dump_trace +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfb86ae7 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd7401f mntput +EXPORT_SYMBOL vmlinux 0xe001f7c2 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xe00b74a1 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xe0111673 block_read_full_page +EXPORT_SYMBOL vmlinux 0xe0426596 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xe056dd37 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xe075d36e dquot_destroy +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe084d722 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b04651 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0cc83ac key_put +EXPORT_SYMBOL vmlinux 0xe0d73ae1 console_stop +EXPORT_SYMBOL vmlinux 0xe0f8390e dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xe104d898 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xe10bef86 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1293993 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1423843 c1e_detected +EXPORT_SYMBOL vmlinux 0xe14aa3c8 simple_set_mnt +EXPORT_SYMBOL vmlinux 0xe1533014 generic_setlease +EXPORT_SYMBOL vmlinux 0xe1723bd2 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe190ed8e kern_path +EXPORT_SYMBOL vmlinux 0xe1addd31 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xe1b4e71a pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xe1bc7ede del_timer_sync +EXPORT_SYMBOL vmlinux 0xe1bed919 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xe1c3e985 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xe2106c5b skb_set_dev +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe25cca00 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xe278e945 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe2796763 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe2afcb84 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xe2b72a26 journal_init_dev +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2f60b07 do_truncate +EXPORT_SYMBOL vmlinux 0xe302e76c jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xe30681c0 tty_vhangup +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe331deee key_type_keyring +EXPORT_SYMBOL vmlinux 0xe33beaab ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0xe344bab6 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xe34c7e42 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map +EXPORT_SYMBOL vmlinux 0xe35ccbea sock_update_classid +EXPORT_SYMBOL vmlinux 0xe372b3ab fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xe39981c9 new_inode +EXPORT_SYMBOL vmlinux 0xe39b60b4 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3bbedc7 block_write_begin +EXPORT_SYMBOL vmlinux 0xe3bdf4ca tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xe3c10563 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xe3cb8927 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xe3dfa8e0 posix_lock_file +EXPORT_SYMBOL vmlinux 0xe3e8123a ppp_input +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe413238f skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43bf63a generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe460ecbe scsi_print_command +EXPORT_SYMBOL vmlinux 0xe4709df7 skb_pad +EXPORT_SYMBOL vmlinux 0xe477ff76 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xe47d3b4e abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe48b556f phy_disconnect +EXPORT_SYMBOL vmlinux 0xe4971bca generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu +EXPORT_SYMBOL vmlinux 0xe4cbf3e7 audit_log_format +EXPORT_SYMBOL vmlinux 0xe500b4f0 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe527beb5 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe53622c9 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xe54b601c padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xe56388dc ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xe56e244b page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5794e2d destroy_EII_client +EXPORT_SYMBOL vmlinux 0xe57d1f37 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5b10669 elv_register_queue +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ce2913 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xe5d5720b n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe61e16ed dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xe66db783 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a96862 d_move +EXPORT_SYMBOL vmlinux 0xe6ba391a vfs_symlink +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe7106c64 aio_complete +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe71a6fe3 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xe726b64c spi_attach_transport +EXPORT_SYMBOL vmlinux 0xe7425af4 inet6_bind +EXPORT_SYMBOL vmlinux 0xe747d171 agp_copy_info +EXPORT_SYMBOL vmlinux 0xe748541a scsi_block_requests +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe752c040 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe79af955 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xe7a16ecb elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xe7a7769e scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xe7c3f837 journal_revoke +EXPORT_SYMBOL vmlinux 0xe7c6db26 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e84f9b __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe812c747 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe854b87c task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe865d4ff max8998_read_reg +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe881adf4 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xe8aa25d2 __seq_open_private +EXPORT_SYMBOL vmlinux 0xe8c1bff9 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xe8d837d9 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xe8db4cf2 send_sig +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91cc5a7 register_con_driver +EXPORT_SYMBOL vmlinux 0xe92cbb86 ip_defrag +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe959eeda check_disk_change +EXPORT_SYMBOL vmlinux 0xe987ced7 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9bc449a bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xe9e8fc87 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1f7d8f bio_init +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea7e1c4a jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea96e880 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeaa21d21 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xeabd3ddc fb_set_suspend +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xeace9f3d pcim_iounmap +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeafa796a truncate_pagecache +EXPORT_SYMBOL vmlinux 0xeb216727 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb662714 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xeb862d7b bitmap_unplug +EXPORT_SYMBOL vmlinux 0xeb9b3b3a elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xeb9d8997 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xebb9d67a md_check_recovery +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebc50ac1 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xebe970a9 set_anon_super +EXPORT_SYMBOL vmlinux 0xebf0191c lro_flush_all +EXPORT_SYMBOL vmlinux 0xec049a93 vfs_writev +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec1b3500 rfkill_unregister +EXPORT_SYMBOL vmlinux 0xec1faecb generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec317920 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xec34d978 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xec38f3f1 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xec405368 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec6394d0 seq_lseek +EXPORT_SYMBOL vmlinux 0xec9dc7b5 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xec9fcd37 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xecb53cd0 seq_escape +EXPORT_SYMBOL vmlinux 0xecc97a87 blk_rq_init +EXPORT_SYMBOL vmlinux 0xed1b10d8 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xed2a5c2b pipe_to_file +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed3d0d9f seq_write +EXPORT_SYMBOL vmlinux 0xed3d896f skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xed4b900e vfs_fstatat +EXPORT_SYMBOL vmlinux 0xed8197a7 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed9ca27a dev_open +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xeddec09a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xee14eca0 radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xee21ee78 pci_disable_device +EXPORT_SYMBOL vmlinux 0xee24dbd1 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3d2f38 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee840c1d copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xeea44adb scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xef45d32c __kfifo_init +EXPORT_SYMBOL vmlinux 0xef4b6989 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xef57aa0e security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xef5f54b3 journal_stop +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef8f14ba rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xef90a8aa inet_frags_init +EXPORT_SYMBOL vmlinux 0xef92796e tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xef9c437c set_pages_nx +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefdf19c7 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xefef78bd register_sysctl_table +EXPORT_SYMBOL vmlinux 0xeff3b341 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf01afb57 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xf01b7c1e acpi_bus_add +EXPORT_SYMBOL vmlinux 0xf03952b0 sock_wake_async +EXPORT_SYMBOL vmlinux 0xf0554dd9 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06a5b37 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xf080db5b cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +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 0xf1087ba8 migrate_page +EXPORT_SYMBOL vmlinux 0xf10acdba sock_no_getname +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 0xf1243795 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xf158e56c set_user_nice +EXPORT_SYMBOL vmlinux 0xf15db4bf dquot_operations +EXPORT_SYMBOL vmlinux 0xf1773298 single_open +EXPORT_SYMBOL vmlinux 0xf17849d1 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xf17eceda journal_start_commit +EXPORT_SYMBOL vmlinux 0xf183c102 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1acb223 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xf1bea6f1 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1efb018 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xf1f88c03 create_proc_entry +EXPORT_SYMBOL vmlinux 0xf20c2637 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf273f882 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xf2808184 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29dbad7 journal_restart +EXPORT_SYMBOL vmlinux 0xf2a5a978 serio_close +EXPORT_SYMBOL vmlinux 0xf2c099e6 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xf2c96e72 journal_update_format +EXPORT_SYMBOL vmlinux 0xf303b3b3 generic_make_request +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf3295d55 sock_map_fd +EXPORT_SYMBOL vmlinux 0xf32d44bc __page_symlink +EXPORT_SYMBOL vmlinux 0xf32dabd5 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf3384052 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf341383b skb_put +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf361c9a8 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ce9217 dm_table_put +EXPORT_SYMBOL vmlinux 0xf3d24711 aio_put_req +EXPORT_SYMBOL vmlinux 0xf3e3da92 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf42ae397 d_path +EXPORT_SYMBOL vmlinux 0xf42e9650 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf475f3ea pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xf493927a generic_block_bmap +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4cf6d19 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xf4d37114 spi_release_transport +EXPORT_SYMBOL vmlinux 0xf4d9ab76 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f1d73f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xf50675e2 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xf50cb688 kset_register +EXPORT_SYMBOL vmlinux 0xf50f175d journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xf5247b8a vfs_readv +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53c2e48 kobject_add +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5697178 register_quota_format +EXPORT_SYMBOL vmlinux 0xf57615b3 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xf58e91b3 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf62acaca mmc_card_awake +EXPORT_SYMBOL vmlinux 0xf6324dd6 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf64689b4 processors +EXPORT_SYMBOL vmlinux 0xf64b809f invalidate_partition +EXPORT_SYMBOL vmlinux 0xf6673c04 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xf6798985 eth_header +EXPORT_SYMBOL vmlinux 0xf685b227 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xf685c07e skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xf68d7a9d dev_gro_receive +EXPORT_SYMBOL vmlinux 0xf69b91e1 genl_register_ops +EXPORT_SYMBOL vmlinux 0xf69f0c2a wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf6a49394 free_task +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c6bd5a poll_initwait +EXPORT_SYMBOL vmlinux 0xf6cefd9f inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xf6dee0ae flush_signals +EXPORT_SYMBOL vmlinux 0xf6e1fea0 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xf6e5a6da mmc_remove_host +EXPORT_SYMBOL vmlinux 0xf6e5ddbd pci_map_rom +EXPORT_SYMBOL vmlinux 0xf6e96417 tty_shutdown +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf704b5d4 kobject_get +EXPORT_SYMBOL vmlinux 0xf707c798 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xf70e4a5c dcb_setapp +EXPORT_SYMBOL vmlinux 0xf7236fb5 inet6_release +EXPORT_SYMBOL vmlinux 0xf753df12 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7920842 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xf7ae4214 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xf7d71918 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf8092288 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82aa1b8 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf833d646 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xf8433370 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xf86528de find_get_page +EXPORT_SYMBOL vmlinux 0xf86c1b8c pci_clear_master +EXPORT_SYMBOL vmlinux 0xf887704d sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8a93f13 sk_free +EXPORT_SYMBOL vmlinux 0xf8bbd3da dqget +EXPORT_SYMBOL vmlinux 0xf8bc1aba elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xf8cc3eb7 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xf8ed14ab nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xf903f6c0 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xf94293ea inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xf960a245 sock_no_bind +EXPORT_SYMBOL vmlinux 0xf980ffab security_task_getsecid +EXPORT_SYMBOL vmlinux 0xf9889267 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b7e017 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xf9bf6bc0 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xf9f1fe28 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xf9f78ad8 write_cache_pages +EXPORT_SYMBOL vmlinux 0xfa06701a mii_check_media +EXPORT_SYMBOL vmlinux 0xfa06a3ba agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xfa0d210a touch_atime +EXPORT_SYMBOL vmlinux 0xfa11feda devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xfa1975fc vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xfa232706 phy_driver_register +EXPORT_SYMBOL vmlinux 0xfa250b15 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xfa2db8f7 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xfa53fd2b create_mnt_ns +EXPORT_SYMBOL vmlinux 0xfa8ea52a bdi_register +EXPORT_SYMBOL vmlinux 0xfa90f684 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xfab171f9 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0c663a skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xfb212aff bdi_init +EXPORT_SYMBOL vmlinux 0xfb2631ed phy_stop +EXPORT_SYMBOL vmlinux 0xfb338a66 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xfb4aa7ee sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xfb5d2028 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xfb5d2555 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xfb5f846a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb70cef0 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xfb727f3c mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb8c983e scsi_device_get +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbbac8ef compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xfbc0516e agp_generic_alloc_page +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 0xfc2310cd dquot_commit +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc496468 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xfc4966d3 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xfc49a958 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xfc505baa pci_scan_slot +EXPORT_SYMBOL vmlinux 0xfc50827b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xfc563ca5 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xfc9f4f8e vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcba5056 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0xfcc06e8e mnt_pin +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc628e0 key_validate +EXPORT_SYMBOL vmlinux 0xfccc43db tty_check_change +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfceded0f agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd2c8784 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xfd36e00f bio_pair_release +EXPORT_SYMBOL vmlinux 0xfd43c34f ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xfd51b923 backlight_device_register +EXPORT_SYMBOL vmlinux 0xfd66e8b9 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xfd6a20a6 flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd80b45e fb_pan_display +EXPORT_SYMBOL vmlinux 0xfd8f3e1a sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfde7c04b bdget +EXPORT_SYMBOL vmlinux 0xfdeea50c abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe09f45b bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe3e9d28 md_write_end +EXPORT_SYMBOL vmlinux 0xfe414d77 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xfe49bbe0 dev_driver_string +EXPORT_SYMBOL vmlinux 0xfe52137e generic_read_dir +EXPORT_SYMBOL vmlinux 0xfe52b9ae dev_trans_start +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe7da904 tty_port_init +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed1d779 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfed65a9e input_inject_event +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeeae2b9 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff004775 rfkill_register +EXPORT_SYMBOL vmlinux 0xff0115ad inet_bind +EXPORT_SYMBOL vmlinux 0xff168855 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2aea99 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xff2c11e7 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xff453312 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xff4a932a skb_find_text +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff86a320 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xff984224 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xff9c687b dev_alloc_name +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa0373b call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xffaa886b dev_printk +EXPORT_SYMBOL vmlinux 0xffb4924d bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xffd04333 seq_path +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff12d23 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xfffad9a9 kernel_getsockname +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 0x05df5282 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x066e6185 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x081cf745 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x081ed97d kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f176e2b kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x10a5a1ed kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x125a8ffa gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x161d6f6e kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18fdd2cd kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b290eb7 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b64f98f kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1f0a80fd kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x24a79af5 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x284c4b53 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x299a299e kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f487733 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30cc4816 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30da7755 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3306ec67 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3780cc5e kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3784e75f kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c9fa14b kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e1e5fa7 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e9b7e2c kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x422be224 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45d3cfa8 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x480979d3 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x492b632a kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x492de54b kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x507216c2 kvm_write_tsc +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 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5bccba83 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e4e79cb kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f767889 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63952727 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6582107f kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x736e15fa x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74ab3106 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7a899f5c gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7e14b8fc gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7e708a37 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8152bb80 hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82251530 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x866a5e1a kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8931d338 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8b7bf782 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8cf37ec4 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x91cc2616 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x940ac442 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x949f5284 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x957d3972 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96d2c1a8 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96d7592c kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9845af22 kvm_after_handle_nmi +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 0x9ca56238 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2793ca0 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa49c24bf kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa548d8aa kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa5c82c91 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb176a097 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3e3fe22 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb478fa06 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4926df3 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb547a359 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb69106e4 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb871c6b3 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc074a4c kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc4cf8958 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc51a93d3 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc53f472e kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6d69777 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xca960d3a is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcae4b528 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc567e7a gfn_to_hva +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 0xd7296035 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd9bce4ed kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe6d74f82 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe973c3c4 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xebb93cde kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xecb358ef kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef635b6b kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf5c1b3b0 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf8b2178b kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfca76870 kvm_require_cpl +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 0xa2dcbbbd crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/af_alg 0x4c67ec1e af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x63aba7d7 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x91bea2ff af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0xc05a3c32 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xe27f8ad0 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4a4961c af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xe918485d af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xf3dfb60e af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xf5fc5e5a af_alg_release +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x2048ab30 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x708beb33 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x9b893839 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x20b5a716 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc9a00b77 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x3d246968 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x692be392 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc383e27d async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf514b78e async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xad8e7383 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc8fa78a6 async_xor_val +EXPORT_SYMBOL_GPL crypto/cryptd 0x14ed3844 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x150293d6 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x26695da6 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x271c565c cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7ee33133 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x96072018 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x9bbd47bf cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xaa5f811e cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xd219e75f cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xd9ca519e cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x35c880d2 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 0x276802f4 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3764a787 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5e77ea98 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5f70ead8 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6f3a78f4 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7e6f35e6 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8fc9bc33 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x91dc9e25 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x944615da ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd3fa723b ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd4661a1e ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd8324ec0 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdf91795b ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe01d0b18 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe715c303 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf4109e2a ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x348cc70c __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xd9b1ec66 __pata_platform_probe +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 0x088e7b6c btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x387fe570 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4acbed65 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x69d2a2e3 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x81ddc21a btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa958aef6 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa97418ed btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd51f3b87 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0a4eb5dc tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1117a2c8 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x21864e31 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x33806fdb tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3f6f3420 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x536e4a8a tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5cb50c6f tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5d76106e tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6645fe1a tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x665e357f tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x83bc85ec tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x89f19002 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8baa3e4f tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8cf986d1 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8fb93e33 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9a41045d tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa1732fad tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc2de2d57 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc556bc26 tpm_send +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc89c2fa4 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xee5ba7ab tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf0b8b136 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf2ddd410 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf679c6ed tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x258a989c tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x4b52fd8c tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/dca/dca 0x082581ec register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2067a599 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2aaa9c92 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x30257954 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x40ea8cc8 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5655cac8 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xd204f5fa unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0xd5b3a27f amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x03342b3e edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x04c327d1 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1145b7b3 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x240e2bb9 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x27d2dcb3 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2f46a25c edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3fbee5a2 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x539b69e9 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5ce3e7a9 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x626c6fd0 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x634e694c edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x678d99a2 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7204d283 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x828b12cd find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x94896e5a edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb0c59efc edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcd3aeb2e edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xce142eda edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd07cfaf1 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe2031465 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe35879d2 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe4c36f10 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe58de84f edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeded7c5a edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xef913a38 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +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 0x1502296d 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 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xedbca0ae amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xff582b9a amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xc0bb404a cs5535_gpio_setup_event +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 0x710fce44 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xc9f75ef0 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x0a5eddf5 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd19873b0 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 0x11c80613 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f0429ac hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x30de5ef6 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x324e06f9 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4c0a2b6e hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4ecb8030 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5ab3d3e0 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x637edc25 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7d68a628 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8124505a hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x909a1594 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x947126de hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x960e0f92 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa0ec1ac3 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa465b354 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa61c2bf3 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa68e3687 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xba41308a hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc4dec1a7 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcc15a762 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd7a3bd55 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd9599999 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd9d4ce52 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe95ed573 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec161dee hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf8f4e9cf hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x3931e69c roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6749b3aa usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc57751c8 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe9bb6923 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xf598a21a hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3902b4e0 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xad47545e lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xaeb28bb1 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xc649ce03 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xc919886a lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x581cb042 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7ac8a781 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xe0113751 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x34e1ce62 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xd8238dcb i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xff344a4b input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x04d56320 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x3ffb1861 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x43a1b494 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe2db2f34 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00238d24 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0206cec0 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1976ef3d wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1bfbb9ba wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4ae79132 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6490770c wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x65df8bd3 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7718e974 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x864d91ac wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9bf38cf6 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9ea8581a wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbb7e6a04 wm97xx_read_aux_adc +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 0x0cfd38d6 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1acab528 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1d631fc1 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x315ae178 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7e139537 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x851c5c3e gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8b452bfe gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8e7be758 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3f498d8 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xae5e512f gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb4f1e3b5 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc70370e7 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc78ce728 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd6d81575 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd89bd0d3 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xee5fb4a1 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf447dc0a gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf76f1592 gigaset_start +EXPORT_SYMBOL_GPL drivers/md/raid456 0x1e582000 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xf40fedc5 md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x23aec168 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3cda0c46 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4650712a saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x46f1486f saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x61936752 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8a074333 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8f703c56 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa60d16d1 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb568eafa saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb90fc5e7 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd77f5c34 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2636e5d1 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x27f670c1 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x41d820fb saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4b423fa5 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7fd90a61 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xeda278b5 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf2729a1d saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xd2d0bdef microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x891e72a9 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x56bc1d76 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xaf94113f tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x21f00a53 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xddcbf271 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x0718faad tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x8603a166 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x9bbf6935 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x32920963 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xdbe24cda tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x7d033607 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x00124155 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x02665468 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3c42d7c1 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x48bbf527 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5125e2f6 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5c255291 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6477b6df mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x683ea80d mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x68409a4e mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x71c989e9 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7977cab4 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8c330c40 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x950f0a23 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9c777dae mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd1fc2386 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd81c1c49 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf1104899 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x01ec9f63 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x04d23914 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0c1df779 smscore_onresponse +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 0x4a77eca0 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x558da1fe smscore_start_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 0x83e8949b sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8dcbd517 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9b1d3cac smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb64664b6 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc466a850 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd1d0cc97 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd6f7c6ad smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdcdb8b48 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe71867fd smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xecb43b6f sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xed10cac8 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf0b7b5e8 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfd9165e8 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfe42582e smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x044d3ae2 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x20363326 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x3cc7455f ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x64a8f178 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa1adc6e9 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xcbcd8d81 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xccb86f56 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x008934fc rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x02fbcb12 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x08f318f3 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0c7f1a8d rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x164fd258 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x22576088 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x235b5a9a ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x34580cef rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9cb29fb8 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9ceba88a ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa630088c rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb097f23e ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd3d5b38d rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe3bd9e77 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf9246d91 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfe850261 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xff2fcf51 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1f9e5504 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3f4a78aa cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x51dc0bf1 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5ab53fe3 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6c20937e cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x75745589 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x770c45c2 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x92a767e6 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x952adbdb cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9c0076b9 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa0db7419 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa436da36 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xad218308 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbce41919 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc4bdd715 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcdcbf023 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe6bf80a5 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe6c6ee52 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf46f5792 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xc53a5580 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x281c1f1e em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4db9f3ff em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x6495ca18 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x6ffde5d2 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fae5d71 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xdf3ce6f6 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x4bf1bdc8 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x6d7e043e saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x745337ac saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd98fe82f saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xf33edf94 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/soc_camera 0x266c095b soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x2b9a4482 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x70735680 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x77d08306 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc1856acf v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc193ed4f v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf01df28d v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0xab9c1006 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5f2682ea v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5f9ddef5 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x8677ca6b v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x9d569242 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-mem2mem 0x02d670de v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x053e0ca7 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0de65d63 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1e7ff55e v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x303242ad v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x48778021 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4c72f2b0 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaef835c2 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaf438bb6 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb176caf0 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb3ff6544 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xed9840f9 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf4e58ea2 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf7d6ebd3 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0a2de967 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3244f1ff videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5264d1cc videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x52ce33cf videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5cfbe08e videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x602339ad videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6f707978 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x71c8cd7e videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x72f1b13a videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9f4cf729 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa18c50c6 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa5169615 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xac7e43dc videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xba731a8a videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbb092084 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc3a432ae videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xced9fb03 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd150a35b videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd4a8f0ef videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe341ccd3 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe38cdd5f videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4b0881d videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xee3280a8 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfe561e3c videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x7c09bfc7 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x7c6c73b5 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xe6d0667c videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0e3bf6fb videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x13722fb7 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3be29ae9 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3e19f5fb videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6068c65b videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbad1bf23 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd021860d videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd0579623 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf9403928 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6f7032de videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xbfe1294e videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xc8c5dd46 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x29585146 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3467d1cc v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x42e59121 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5007a6a9 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x50830165 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5cf06f28 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x763de9ad v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7c6a2a60 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x83298a27 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8b319197 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8dcce4cf v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9de4fa0f v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xab955b29 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xacd86e6e v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc09bc84c v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd8dbd3ed v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf228b78c v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfc3165df v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0fe0d26d i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x651e38e5 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6e2fe63c i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6ea53b31 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x9eda9e3e i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa42b6dc9 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa6683fb4 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb56819e6 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xdebe4874 mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x032a0851 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2cb28a29 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x61a9a2df pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6cfa72ab pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7bb53596 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7c2acb85 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7ca67c63 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8310d65d pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x833bd115 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8975d86c pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xafc5d002 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x59ccc7eb pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xe7665729 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x424e9f3b pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x569d7ec5 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x977ecf99 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9e913511 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xf3c252a3 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x06769fc5 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1fb93e10 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5cb1699d sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x92c85892 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf6c56fed sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xd2458cad ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x25ecb97f wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x2e63edc8 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x2eb8661d wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x74053d15 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x315ca156 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x79fe669d cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x7e6d74cb cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb243fcbb 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 0x314c0240 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4481ee24 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6894dbec enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x738c8ab6 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x77d91cb1 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x9d5c1374 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd1430727 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x93c252fb st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x15a348f7 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2bff67e4 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x37a9985e sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x41e8ecc0 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x92a8f369 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa116f87d sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcca09b17 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x36295aa8 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x4943b25e cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x605949fd cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x1d448f82 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb0764caf cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe243bbe9 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xd69a5fa5 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x378a1c6e cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4fb873c1 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x8cb41fe0 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x3a1ce7d4 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x03b63c88 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x12097c6d DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00668c4b mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x03f35623 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x06a0bcea add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x26857c99 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x426d191a default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x49cc39c4 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5335ff18 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5574ec0a register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5608fb51 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x628647d2 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6db03af5 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7cfd4c96 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x971c2ae4 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae28b5fc deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb28ad412 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc2987b1b unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcaa88182 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd029cf49 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd36e2579 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xea154020 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf0148f2d get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x12cb746c deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x2483952b del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x6379c399 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb581ac09 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2b589586 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xbb10243d nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x8948a681 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x93f61456 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xaf9a18d7 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0bf3a8e6 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1eb363d7 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1f238287 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2c5a7284 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3b9caede ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3f9066df ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5ce93219 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x79545baa ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xba58d8e2 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0f52e9f ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc2cf14e5 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd275203d ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdf8ca9f0 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x06494856 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x077f9457 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1d0ea277 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x29ec19d5 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x40988900 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4dc2832a unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x58d7ab23 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x65399601 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9d2ebb88 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa3d6e66d can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf44e7348 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf6779a60 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x14555de4 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x1e809f36 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5e450bdf free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa237ceb1 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x12678eb7 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x2db91b2d macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x61a1bf97 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd3b324c1 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf20c3777 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x02b5bf0a mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x071c75b5 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x120d4cff mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1a94f9ae mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1d0057e2 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x21c3cca3 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x25f4b48c mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x288e2f51 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2a12183a mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x343c3977 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x390aa779 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3f5300f2 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4536c454 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4a2f4b6a mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c39a395 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x52ead41f mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x543e59c5 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5c27d932 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x61de1dd2 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x62ae12d1 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x691a3c38 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6e93ba9c mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6f9bbf45 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x83c1854b mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x846611e1 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x871e9a3f mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8795a9a9 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x88746615 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x96905bc8 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x96b8ed2f mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9a86f7b6 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9ad5134a mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa430c423 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa574db93 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa79091f6 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb39f3c80 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb46c926e mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc08cd476 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc330576b mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4653910 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4ebc537 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd0cf4a38 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd39a0960 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3b42897 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd419b38c mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd722fc63 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd926076c mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdb04fc28 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe1ebc392 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xebe4b5ad mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xedefacdb mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf5c531d0 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf62e660a mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfad64a31 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd45d7a4 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7eb441ff usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x865380c3 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x198c24f3 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x517c8200 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5aed5f51 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6bdb45c0 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8c1c06be rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcaf169a2 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x09fb9a40 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x140181d0 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x15933d37 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1ec32978 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3136a2f8 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5a7c7043 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5f18623e usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x78563002 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x819e7882 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x82f90243 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x93dba67c usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9e24d17f usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa6365dd0 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa79df1e3 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa83914d9 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa90cdaf5 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xba04ae78 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe0e4563 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd020a4b8 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe85ca7cf usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf1a13dce usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf58416f3 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf66dc510 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf876adec usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x23aacc94 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x33d3eb70 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x57f76444 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x62a33c64 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6806ba28 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x787960d8 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7cef93dc i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7e882e2c i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x804d8872 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8dc03936 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8ec65b78 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x94834904 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb7477484 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbaa1105f i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xee8b810b i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf2244dc3 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xbab0db24 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x385de6c6 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x47584845 iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x7ca5552a iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xe56b72f3 iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0a960e35 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x28b97e0e lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x392eca61 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4dde964f lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5f2cdddb lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x80d61c72 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8b17a669 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9329df6d lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xaa50eb6b __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xabafe68e lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbf9f3c42 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcf5e9547 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd585c025 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdddae719 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xded1e8ba lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x18a45733 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4ce6fe61 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x870fa02f lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa2b0cb3b lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc3f6956c __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 0xcb18dbc3 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xde36f7ef lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xea433a3b lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x6e0761c3 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x80ab90bd if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x15507051 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2a949b93 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4cd1c374 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x51bb781f p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x54641e6f p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x55aa8835 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb76fbe30 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd2720f9f p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe3fe7cc3 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x03d60f52 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0577a502 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1182772b rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2813b865 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2cb4be64 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3189ef51 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x33616358 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x47a4743d rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4839169a rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4b50077a rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4b7847e3 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4cf6b209 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4ecf7424 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5a20b649 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x70f92032 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x84f102ef rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8724beab rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x872f5084 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8c269e5e rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8c2e6177 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x95c8c86b rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9a411c9d rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9f5a7dd9 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae20363a rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb5453fab rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4b22926 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd00ef99d rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd0f86529 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdf2213d5 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe2fad48d rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe8b43591 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xef0fa74a rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd9a7450 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe5d1bdf rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x03faefc8 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05b03dfd rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08ce0c2a rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b7c2293 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f48150c rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x15e8e0ed rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1abd5911 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x223e96f9 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x34c68aed rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3b674a8e rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3ce3fa1b rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46255079 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4ed5df18 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5b158230 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5e9ecd23 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x62b3fb5b rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x65c5585a rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x67f0fcfb rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x82623631 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8d42242c rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e734381 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x99c9dbcc rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e876aba rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa2b4bb23 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9cad4ef rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba590a5c rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbfcf50f8 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc2debc9c rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc7b361fb rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xca9f759d rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd6d15d7 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd160aa4d rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd16ca253 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd16cc9f6 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd281b54c rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd8c9055b rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdfe1154d rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe6758e2a rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xedf233f5 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf95b19e3 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3ef75754 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x72a860fc rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xacffef6a rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xba9e5c85 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd2be1580 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd79bc891 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdc040dd6 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf5df8b5d rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x10b6aca3 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1fe69dc0 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x489d5d5b rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x54774e87 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x588d77a4 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x681d29b0 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x789ba3cd rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8fbf9154 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x942b979e rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb3bff0d4 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbfb8491b rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc5637b3a rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd7edc1ae rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xed9ba970 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfe7decda rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x0f8546f6 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x1157a76a wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xba735d07 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x10c0f3a9 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x2f56887d wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x31e0f281 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x4c4fce3a wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x7a189552 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc192767b wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xeb41478b wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x202da9cc acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xdb7d5c21 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x4e6f426f pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x9db3a8ea pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe9db37e9 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x09d4b1a4 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x24f0514e mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x28d805c0 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x2a272412 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x42db8025 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6c0c931a mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xca8a4404 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x14e37590 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x15f9d399 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2cae3e51 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3b491210 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7688f3ef wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x84f97916 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x3569b5ba wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x056db24f cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x06d1e51d cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0feb954c cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x163a40b3 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x16661c11 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x17cf8f69 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1ff2029b cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2440bb35 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2772202d cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x36b9d1f3 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5676cc04 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6362695f cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x64d4a1fb cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x64fc3726 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6621e75e cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x69410370 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x706c9620 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x72f66d77 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x744e2a73 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x764bc7e4 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x797d686c cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x82fe883c cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x87a45476 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x889dcf7f cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x91eed700 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x97d5e83c cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9a23d393 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9ce2fb09 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9fcfc4a0 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa3c066f7 cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa61ac267 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa8df8a66 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb5646311 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb816263c cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb96bb8f6 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbb66f000 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc10454b2 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc2e111d3 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcbfabcae cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xec25ebc0 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xed452277 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf29329f2 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf297b843 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf3fbe494 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2ac3996c fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x17e16efb iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1fc4c5b0 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x42bec74c iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x46cdc774 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x87acbde8 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf6fd5e28 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x090031f1 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x122b8085 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x135a24db iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x18108732 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20966275 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2396e75a iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x246e3f5c iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36ff5179 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3724be06 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3afc695c iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3cb420c4 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c520ab5 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d4eae09 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x54f9b80f __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5bd41fde iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5f74a9dd iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x668925ea iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bd8d019 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e16c4fd iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7421c828 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7626fe96 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x76c8f2e8 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7832a2e1 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x792a7231 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b3146ea iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e4ec237 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e7fee70 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9fb848e1 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa864575b __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab0073d8 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4690396 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc351b437 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc4ef70f3 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc6f4c00c iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9572125 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xce67af42 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdadae5c5 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf44ca013 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf68e8704 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9e159ca iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb5a24ce iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfe1ea0ed iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfe9b2a03 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x11d86ab6 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1a9f6173 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3fa72242 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x44b817d4 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x56e48ad5 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6fa94ffa iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7094a3fb iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x793917c7 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9a02aae9 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb8004ce5 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd1b8e772 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd2dad2fb iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd944234c iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdf0ba780 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf792317a iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfbeaa2d5 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x02f1de99 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0c5a047c sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x13b7df7c sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3004789a sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4a0c0e6c sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x55d22098 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57e0360a sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5b824562 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5dc0e5e1 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5fe12259 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x680adbaf sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x78b2b3e0 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7ef237d1 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8a119962 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d05b56f sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9d544957 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb152b8f4 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb33ab180 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb757974a sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd93340f2 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe238880e sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf24462e9 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfe49cd2c sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x10be5823 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1e7def27 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x36d9d520 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7aa9c552 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x82556b46 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb75639b0 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x550ee160 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x72928b02 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7ef89010 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x89210a49 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb704ec3f scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbb9e1ce0 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc0f76383 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe6b404ee scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xee748cd0 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0eb750dc iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13992589 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b73c68d iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x24be636b iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x389fb71a iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4eccad6f iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5a1d9982 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5bc053af iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x820589fc iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8eafa192 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3c41b5b iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa9206ce0 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc00c6a8a iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xceea77ce iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xda92ad5f iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdab70ac3 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd352875 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd474a30 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6d0bdf0 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xec26dad4 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xefababd1 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf492db9b iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xface5e07 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x107a4760 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1bd854f5 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2117f8c6 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x63093d17 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2e55da25 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x32ce65d9 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3f9f4df4 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xbcabdca8 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xffd2bdca srp_attach_transport +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x32489ef3 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x5da9acbe spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x94a6b5f0 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xcbfac4de spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xdaf586d0 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xebe0c174 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x079131ab comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7cb02101 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa5f630cb comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xae5c58cc comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdde64bb9 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x543c5360 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xf55ee7a4 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x58056812 labpc_common_attach +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 0xe0a67f7b labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x175f8ceb ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2a3f374b ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3481cfda ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x7eb9eced ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xa5461c06 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xb075672b ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xb9469770 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xdf7cdd8e ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x0938199a ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x469cc291 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x4bf80ba1 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x9eb9e3eb ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xf6c4e618 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xf9c0ddf3 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x046fb741 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x195eb8ad osd_waitevent_waitex +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x1c874b26 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x1f473a1e osd_page_free +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x22e30b07 osd_waitevent_wait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x318af37c osd_page_alloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x3b5d1afc vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x53d3bcd7 vmbus_close +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x880aca87 vmbus_open +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8d552274 osd_waitevent_create +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xcef8fe90 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xcfd092ed vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xe95976b7 osd_waitevent_set +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x08fc7115 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0a8864bf spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1432ee06 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x347a2a1c serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x435d314f speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x66d4d3c1 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x77df87f5 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x81c0fb43 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x98527210 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa52f837b spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbe2213b2 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbeb2407d spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x0480df7c tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x55ccabb5 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x5b261c99 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0ecfb4a1 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x12fcf451 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x144012dd usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x292b3cd6 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x37a7e1ee usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x47186015 usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x74dc0ea1 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7cf59a54 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x97d12130 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9f968e1b usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb4b6e09a usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbb304121 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbc3c8a14 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbf8f5fcd 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 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf4e7f44d usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xfc16c047 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x0b4f107a max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x345bca43 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x715fca1b max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x750dec40 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xbb9ea352 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xdd6a9368 max3107_rw +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2f7a655d uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x43d8fbbd uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xf8917381 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xb49a8c83 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xbb67ba19 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1828e751 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x635af87c usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6d3a79a8 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x83057390 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8a6153ce usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9db233ba usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb23d22ed usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb9101683 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbd7f2724 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x210b7fef usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x30af4e25 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x37510902 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x48363c9d usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x498fdcd8 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x585875e9 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5bc579b7 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x65c6445d usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7bc0b251 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x849feae9 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8e014b6f ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x962bc86c usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x98c5ee49 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9bcca4ea ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc5d5d95f usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc5ec068c usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc62623bb usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd8b3ebae usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdb3bf74b usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe7c8f84b usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf7d99ed1 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x04dbc6df usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1136d7d6 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1dcd313c usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2178ad83 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x280a7b18 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x34f64204 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x37375b29 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3a67340b usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4fd43619 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x504eef6d usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x68ccb991 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6bfb1a19 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x76498d94 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x820afceb usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8684a5ef usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x88ae3e30 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8c3b17d2 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9eb1b556 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa30635ff usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb3c1c7d0 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe1015bcf usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf0ab3674 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf42cb92f usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x65f6273b __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x66b93887 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xbb4fb8cd wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xdfed7a23 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xe5fab8ea rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0be50d38 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1593cfcb wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2967f9e1 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2b0f4abb wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x316a979f wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x48db8eb5 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4c520c9a wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6ba28942 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7afc02b2 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x94dfea0b wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x97a3993c wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb6a99ac3 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xde1b94f6 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe66b3ed8 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf24c3252 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf45e1332 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 0x79715a2a i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xe463e4d8 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xf62d24a8 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x08ea1289 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x2c3c99e9 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x32c26afc umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x87721b17 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x995f70df umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb0d19766 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe1ae086d umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfc0f8113 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x013d5bfd uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0c7aa3ef uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x162c812a uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1da6b400 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20f3c4c8 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2914adb1 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x33475272 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x58e78570 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5a919309 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5f96b160 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62c1341b uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x630f3e93 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x633d2fcb uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x711302cb uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7f8e724f uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x84985b60 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x87bdb9c0 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c731c6a uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d00ff0e uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x906be121 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x950e7517 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x97135fe2 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9bbb66e9 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa360bb01 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa572532a uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb588b594 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc6bc24d7 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc828ded7 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc8413765 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcbe98c3e uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd71f08f8 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe175761c uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe78ad06c uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf44f242a uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf91fd882 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfe046a59 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xffe36d24 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x60489b4b whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3288770e ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x42cc9293 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x58c610df ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc173d4bf ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd04761b6 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe7b24ec0 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe9bdbf9e ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x2e69a460 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x0c63f0a4 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x65d88727 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x31a852ca sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x77a82fce 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 0x2369d169 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +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 0x18ae17d7 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xac1bd591 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb676ce28 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb7f84c90 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe4a85010 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe8364672 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xef7701f3 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xffc6a6fd w1_next_pullup +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x56f8f37e dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xf02c1ac2 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xfc06665c dlm_posix_get +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x1d7dd4eb exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xa72dc02d exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x242ad4d7 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x2a2aa175 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x4545bb83 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x4bc73580 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x544f3f52 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x6d6830e8 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x76c36121 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x778885a4 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x8b4a9f8f fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xac778e2c fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xbd35acf2 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xca9b1da2 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xcd0d42ef fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xce9994d7 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xd04d2d51 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xdbb5abf1 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xee8fac54 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xf65f33cf fat_attach +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0bb97f6e nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1559f0ae nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8a95493d 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 0xd7fded9f nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe130f6bf nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3febb6e nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x68c196f1 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xeb0c38b2 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x030eae74 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4311780b o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x45126830 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8f40960b o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xaeaeac1d 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 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd550e244 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe769bc01 o2nm_node_put +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 0x083c9f7d dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3c7324d3 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x55a7a1dd dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x587c9e7a 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 0x8f3cc174 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 0xf0542d78 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x54bc972e ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x739f3f78 ocfs2_plock +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 0xd293d311 ocfs2_stack_glue_register +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/raid6/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xdbab0c01 raid6_datap_recov +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 0x0a770ff6 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x122bd659 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x26587aea garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x5c2365f5 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x8a214915 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xb98dbac7 garp_request_leave +EXPORT_SYMBOL_GPL net/802/stp 0x6750a32e stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xdbe910f3 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0xa409ccd2 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xbd6b70ad p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xef9b8ba8 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x19e1b561 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x161ed8a1 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x29539906 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a48618c dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a530fcb dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x436c9f00 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x46e29b89 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x472d1f11 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5884210f dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a8f301a dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ec481c2 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64c5cec4 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6579d2ba dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x70000e9b dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7b06278e dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8769faa4 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x87ccedd6 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x87eefa16 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8fce41f3 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa18198be compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa2c9268b dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb01f8a32 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb87d2ffe dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbbd46bd0 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc258951c dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc7b7642f dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc7f63635 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xca769f44 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xceb37351 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd097cba6 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd372a288 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe64ef1ba dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe897f681 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb9bbb1f dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfa632d9d dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x53006944 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xacccb9d2 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb1ca6421 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xfa56716a dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xfc93905d dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xfced4f1f dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/ipv4/gre 0x04218d8e gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x8c2f6b0a gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x7d339ce3 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xab9c93a0 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x63db5f3a 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 0x055a2902 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 0x0ff2c8d1 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x333cd1f7 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 0xcc3a169c nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xec57edbc nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xff567c46 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 0x3b91d896 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x617fde34 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb7dc16c6 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd8888ecc tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xde41018d tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x0053441e ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1dbd7f4f l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x44cf444b l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4aa958f1 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6846cacf l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x85297a19 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x871370e9 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8bf836a6 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9102e66e l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd70d8c9f l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe0ce5328 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe9f27347 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf4667e7a l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6defb0f7 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fdaa6d2 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x927d1bad ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb22a7854 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf8535c9a ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x269f51f9 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5ba9b28b ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xb2d93ec0 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe1025270 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0115771b nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x028be6ea nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0294810b nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x03be6b50 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05797651 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a9b289d nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x11848b4d nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1562f292 nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16282075 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ebd75d4 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x251cf2c3 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2828dd8f nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2bef2929 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30c288fd nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x365be075 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3db0dd1a nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3de2bd79 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e0d687e nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f1c2b21 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x41e2f3b6 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x426724f3 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47f5f22f __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x502aafc7 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57da8417 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65ece695 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f8ed0a0 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73d49134 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f6a8c0 nf_conntrack_helper_unregister +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 0x7fafc52d nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8018d5b9 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x819ff2e7 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x86402265 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x87670057 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e732e5b nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90228f5c nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9182e3eb nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95529d00 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x974ce5cb nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a093bd4 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e65a770 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaaadd796 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab1c439b __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad6985df nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaea6e839 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf366701 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb604b511 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb61aa654 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb67ceb55 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd8c2796 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe1008d2 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfdfc2a5 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc64e3f83 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcce401e0 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xced08413 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcfc2533a __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9c427f2 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe164df79 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4d5248f nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeca64789 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf0c6b2de nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x2845f7ff nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x7aa53c51 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x13026111 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2b1c1858 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x428c0453 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4df28c99 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x741b2551 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x77052e3b nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x862fd97b set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbc36eca2 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd78dd3e7 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd9820013 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xdc2c5646 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x355cae75 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4b9d4e23 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7b0d6163 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf996b7a4 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x93d72328 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xed63d69e nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x25547567 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2708a822 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5ff5bb32 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x604f0a79 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x68df0f1b ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x744acd0b ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x77f6258f nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x820774de ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa0b549f2 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa1be10b2 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa6200466 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf3dcff58 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfcfc1d9d ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x10c17f87 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x44d58e6a nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x497ef39d nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x539488d4 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5d79d451 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x658f1538 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x745b9823 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x837b72e1 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x25a72e29 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0d94d952 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0e94522e xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1fa9ee44 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40100946 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x51c115a7 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x575c8d83 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x58208168 xt_check_target +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 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6da64bd6 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x72c985fe xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c4f3e06 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c8a76b2 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x83926da7 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x839792c8 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x85346ce3 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8801be81 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa7fc467e xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa9b01269 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb7c100f1 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdbb5c3ab xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xedee5803 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x02d18bcf xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd995b363 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x088ea9e3 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x0b9cdb6e rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x0c4dffdf rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x40ee7855 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x4c63a0ad rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5537bba5 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x5e3076ed rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x6f61b48a rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7a59e714 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x81acaddf rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x84450239 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x869f4f77 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x9d6fc778 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xa20008b3 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xb00a94c0 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xb1babfe1 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbea06b4d rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xcfbf970f rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xdafecd9b rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xdb5117ac rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xe4125398 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xeb18b753 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xf09b71f9 rds_info_register_func +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x15a45ce1 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x2a4cdf51 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 0x15219d13 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x20e0858e gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x34a0856d gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4e05f75a gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x615cc82f svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x73cb85df 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 0x9189e360 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9cb9c693 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe1283bcc gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe2541294 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfe9e6668 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0172af79 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x036afa4d auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x037ff293 rpc_peeraddr2str +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 0x065e51f5 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08da8987 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0affcf85 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c6ecccb xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eaa7d62 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eeab8ce rpc_init_wait_queue +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 0x0f7aa717 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fc65098 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10514d20 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13c712a5 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14f7d5cf xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x177a3fbe rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x195ec826 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bf19b8c put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c6824ae xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d685632 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e29b729 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fa06243 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20d6c342 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2262c8e7 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2426ee42 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x257520d5 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2655217d xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a3b0738 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ad30e72 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d098481 svc_sock_update_bufs +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 0x32b22a2b svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32d5ad2d xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x345aadb0 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x389ab2ce rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39c9cc2e xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b5828e6 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ddf3f0b rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fa75195 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40650b9f rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40bc2291 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x434470e3 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x441048e2 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x446f879c auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47831cc8 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b57f765 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5052a435 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a2520e7 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b9c89f4 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ebb1255 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ee1f799 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6096ae7d xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61089eeb xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62100b94 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63ae1389 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65e7fd61 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b835a98 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e24bbc1 xdr_encode_word +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 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73b108bf svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7814923d rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x783e205b svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ade305b rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b067f01 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bae26a8 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d0a8e17 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d0e2705 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8098fc2e rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82536319 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82775ac5 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84b5dd1f auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8551c1bd xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x877f5f1a rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87977017 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87bb4f96 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89015a25 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8aad6531 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d7739da rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f2948fb xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92751dec svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93af8372 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94ffd5ff svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95c484eb svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96263678 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97513063 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9758b298 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9821c7d1 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d506508 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa03ee5a9 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa15fa6fc sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa257c827 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3476776 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8a5c495 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xade34f09 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf894a8f xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb11067eb xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb30e3b46 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb56cf39c xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7d18a74 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe210839 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbeb64d5e xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbed25637 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf33c832 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0d177f9 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1a6a299 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1edbc53 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7e105e7 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc872a327 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc87a2dcf rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca1b6af2 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcaa7b37b svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcac38efd svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb60ff1b sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd2f081e xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd2f5795 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcdd063dc rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcea39135 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf39d3c7 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd018c536 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0514690 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd07507cd svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5059974 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd54e7234 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6285709 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd798c87d svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd838dcf0 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb4d13b2 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd28c552 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdffe3f2a read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3630ed7 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8c20e09 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe977a2cb svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9ee2d76 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea005fa3 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeaf11ef4 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb21f273 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb26a00d rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebf5a91b rpc_sleep_on +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 0xf05a37ab rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3378c2f sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4fa684c xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7052e06 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf809149b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8b2cc3c svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf92cfba9 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/wimax/wimax 0x09533db7 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1b17901f wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x24c902af wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x27222c27 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x30ed3309 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x33ad322e wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x49b46fe1 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x76148d74 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x771965e0 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x79f86a68 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7d908ffc wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xae64425e wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xccc4fbcf wimax_msg_len +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x001fb10b cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x033183ee cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x056b3c02 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x08dd2a5a cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0a912577 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0bcfadea cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x203d132e cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x24cf30ca cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4b14bd02 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4cdb6903 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x53a24634 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x61327b6d cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6330bcd2 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x63a3b9fa cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x726fbcf3 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8a2e7c8c cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9e7fc3f1 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa2023115 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa744ea98 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xac94f679 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xae08dca4 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb7cb6241 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbe19f521 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbfc4c533 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd0d5848d cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd534e760 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd6655c96 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdb7a54a7 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xddd0be21 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xde6afbe4 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xeca87669 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf43849a8 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfc61cbb2 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x128c1cb0 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1d44c4a0 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x26854f9d ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe14f5844 ipcomp_init_state +EXPORT_SYMBOL_GPL security/keys/encrypted 0x9e44abcb key_type_encrypted +EXPORT_SYMBOL_GPL security/keys/trusted 0x687de74f key_type_trusted +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x33c3cc59 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x853f8a09 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x91406dca snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa6dac272 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc9de7e32 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xfdc651f7 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x091bebcd snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ab6ad33 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0afa54b3 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x109023b1 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11d1f5b1 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12be858d query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x132ebb8f snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15fbb984 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19236aea snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1adcad24 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20478877 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2468041b snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2801b436 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2933ff34 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29c7fd13 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b8a9ff6 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2cf5cc78 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2de14864 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34fcb9c1 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x362d4dcf snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36d2f6bd snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x37f13fa7 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38e6a163 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c02239b snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c2fd044 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41ff9440 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4605e8d9 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c48b7a2 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e51fffd snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50525adb snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x510a928c snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52fa4222 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55fb8ce9 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57550dc0 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5924d541 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59b35dc5 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5eaea924 hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x673936f6 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x674806d5 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c5e69f1 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7179458f snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x783517c9 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78c83278 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b94f6b2 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x815d55ab snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8302554c snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83439a39 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85a706e4 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x873c71a8 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ce3f2a7 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d2cc4d9 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e04b68a snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e5afb39 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91f3bfb7 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x921fe66e snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x934e6e48 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x944c172c snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x96d599d4 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97daa5f7 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x996c2311 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9afb8002 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c97bc5f snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d917153 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa36a2a43 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa41104c8 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa62b1442 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa796157b snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa994c3c8 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa48d465 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae32cba7 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6f3fe17 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbac181a0 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf4c191b snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc161ba3e snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc244c2b8 snd_hda_set_vmaster_tlv +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 0xcfe28c21 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd951ed18 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd01467c snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd96cef8 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xddd7fd39 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe36d95e8 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8e84477 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec39ced6 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 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefe75fb9 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1075103 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1227d56 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4f01be5 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x3bfdc7d6 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xa4f3c3d8 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x594ff4c3 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x72e823f3 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x4c2465cb aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x638277f3 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9699dad6 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb76ecf0a aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb9ea3865 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x492a2ce7 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xe243127c tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x0c8154a9 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x6b870622 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 0x77e7e431 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x9bf8e62d wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xcffc7376 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x48788051 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x8f9bde36 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x28689e90 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x55a2c789 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x8a37237a wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xd0af3725 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01496b82 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0607096a snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06af35a1 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d322e61 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1006725c snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1155d893 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1284ddff snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x156dab34 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15a2016a snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x160e3922 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x19727496 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20417b9f snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21e83762 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25442d7c snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25ebf3c0 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x263d24ad snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26f4ac10 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29f4ca58 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ac5c83d snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b998bee snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c77da47 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x328f519e snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3323bf81 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3eda7f05 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40efe147 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44017525 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x446d745b snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47980a75 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cbd19ad snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5101ae4d snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54331e1b snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5982f9aa snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59d5d91e snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f2a237d snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62684799 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x683f815a snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6eb5ad30 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71347ded snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x781650d4 snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ff201ab snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ffb4ff5 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x809fada9 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84e0fe3f snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x857f26b1 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85d09b75 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9404b170 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9552a296 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98549b44 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98b08455 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b5269a0 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9be89b27 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa73edef4 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab170f09 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac39aaa2 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xada41122 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3d5eee6 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6774816 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2bd97c3 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc356db07 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3dc9cc8 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc533eb52 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc65d673d snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6cf4501 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce92ab84 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd35c385c snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd39c1794 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda79b9e2 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc5ccca6 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde61e34f snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0fc3cd9 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe79221c8 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea8799a0 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb0fac9d snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec3e067c snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeed8c56c snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf059c840 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2216313 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf536bec1 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5ce5e53 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5e918b5 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8e52116 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd17da89 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff278867 snd_soc_jack_free_gpios +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 0x0063d446 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x007a5031 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x008cba39 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x0090af56 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x009b6c6b ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00bacef8 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x00be10be cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00c4fe35 bio_clone_mddev +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 0x012c80db device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x013cc89b platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x0156e6cb pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x0161f863 ata_eh_freeze_port +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 0x01a35d37 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01d40695 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01fbfd32 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x020fd446 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x021efa45 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x022ba71e pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x0245f811 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x025f94e7 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x02afb8b7 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x02b87096 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x02d4e6fb sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x02efe2bd usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x02fe9452 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03456412 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x035b9005 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x03818a33 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x038ea1d0 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x03ae8b55 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x03ba78dd tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x03c2685b sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x040ae006 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x0420c72d device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x043b3917 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x045d2fb3 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x04a2bc08 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x04ea88d6 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x04f9388e usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x052f701b rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x053960dc __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x053e0d06 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055024a8 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x05b28922 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x05b5850a usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x0602cb4a inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0611f1b4 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x069ee036 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x06f789b7 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06f99424 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x075a1365 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x0760ee2c attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x078b030c tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d16135 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x07d182bb bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x07facee9 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x0855c61d task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x0870ac4e pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x0882fc2a crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08944d91 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x0899d150 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x08a3451b md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x08c103a7 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x08cbae83 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x08e65e65 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x0904f6ea led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x094582d0 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x094e4596 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x094f9dd3 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x099cde5f da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x09af546e sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x09ec068e virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x09fba3d3 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x09fd13ce crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x0a288348 flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x0a4b0818 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0a571c04 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x0a74e8c1 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0ac7fcd9 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x0af17f3b wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x0af5588b wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b134aae sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b1af6a0 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x0b60fa0f class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x0b823ab0 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x0b9f645b __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x0ba8f514 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0bb36c85 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0bd8e49d ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x0bf4f1f4 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c49c9f2 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0c504607 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0ccede29 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd10a4e work_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0cecb302 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x0d1db07c swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d6cbc83 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0da371d5 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x0dc5fcc0 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x0ddee07f scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x0df294c4 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x0e127f46 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e17eb92 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x0e4aa060 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x0e4cd0a4 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0e50b24c regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x0e66fc55 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0e9cb4e4 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x0eadea54 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x0eb93a8d __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f186f5c apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x0f1c843c rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x0f698b4d ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x0f6ae471 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x0f7f9820 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fc4b45d wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x0fc62710 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x0fcf2737 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x0fdde412 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0fff8ea4 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x103ba677 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x1054cb5b usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x1090e10a unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x109bbd92 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x10c28393 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x10c74770 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x10ef4bc3 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x110eb3c1 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x114e106d pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x1155ee44 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x1190eaf8 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11b53ecc sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x11d241fb securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x11e6c195 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x11fd72c2 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x1206c06f ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x12140ae0 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x1228d20e n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x12674f29 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x126c041a device_attach +EXPORT_SYMBOL_GPL vmlinux 0x12a53742 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x12f3ddbb wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13852def xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x14353761 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x144832ff __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x14567609 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x14a2ddf5 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x14c6825b sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x14e25b2c sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x15232040 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x154ab164 virtqueue_kick +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 0x15d6db98 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x15f0d329 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x16074882 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x167c7aa3 css_id +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16aa8347 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x16f2db10 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x16f77e3f hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x17466450 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17745d8a pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x17a47e18 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x18070fa0 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x180c8fac wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x180f9f3a __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x1817a9e3 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x181e5a9b pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x181fe8fd disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18a5b13f usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x19000830 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x191c4bf7 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194c01e0 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x19636b0c class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x196fdd79 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b786af put_driver +EXPORT_SYMBOL_GPL vmlinux 0x19d59f83 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19d855a0 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a5f1384 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x1a8bf28f vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x1a9880d8 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x1a9b8020 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x1ab05ed6 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x1ab615b4 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x1ad95dc2 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x1afa5aac dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x1b1f9131 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x1b58a31b dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x1b6490c0 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x1b73cc84 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1b9e7aef cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x1b9f479e ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1bc6eefc ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x1bdfeff0 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x1be00ce4 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x1c07a96a crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x1c3b3d28 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c91731b ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1cdbd45f ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1cecd6d4 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1d01eba5 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x1d186c2c sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d7922e9 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1d905a7d inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x1dbc1beb anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1dee2611 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x1df3b9bb hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1f50b786 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fa2401d class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1faee474 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fdba7d8 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x1fef2344 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2031e51a cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x20534774 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x2061f437 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x2079ca3e crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x208675cd debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20bfef39 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x20e47599 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x20e68173 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x21117b94 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2115a8ed crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x2119925b sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x215d7bf0 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x21879082 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x2197b311 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x21d5a79a dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0x21e7bbf5 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x225d8256 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22ccb71b usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x22cfe543 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x22d5cf2d sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x22ec81ee usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x233df7a2 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x235d2820 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x237faf86 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2394a2ae power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x23fb1ebb md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x2415cca4 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x2442bc94 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x249547c6 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24e94b4a ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24ed0a2d usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x250e8f30 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x252ee000 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x254e13f8 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x255ef7b6 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x260a9a5b usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x26103b81 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x2629812e ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2649f5d7 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x26699f74 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x269c3e0d class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x26c14f46 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0x274ba992 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x27825483 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27a43ec3 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x27adc980 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27f98a9e input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x280ddedd pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x284e622a dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x28570092 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x2888fd34 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x28a25cfd bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x295ee8a0 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x29a3e085 apic +EXPORT_SYMBOL_GPL vmlinux 0x29a926f5 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x29b0e0e7 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x29c957f7 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a1bc3d0 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x2a59feb6 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aaba530 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x2aafface shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x2ac9f380 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x2aca5990 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x2b30c3c3 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x2b373c0e dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x2b514126 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2b674a1d netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x2b6a3eeb __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x2b7bd090 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2baf0401 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2bee69e2 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3d1290 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2cdc1e31 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cef2caf cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2d0469f9 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x2d1748c0 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x2d4cde09 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x2d506b1a __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db26e03 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x2dbe9118 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2de3b2dd virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x2e0d6fa4 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e31fc7a ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2f03a64b setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x2f05abed user_read +EXPORT_SYMBOL_GPL vmlinux 0x2f0a4eea hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x2f0f36a3 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x2f42750f da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f631b7f sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30ac2a41 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x30cea77f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x30ef3a62 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x315495ad cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x315dd190 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31d5ff4a device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x31e5cd29 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x31ea68f0 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x320d1b8c pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x3234ee6f get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x325de263 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x3266f55b ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x3281d1ce mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x3298db05 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x32b92245 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32d9615c skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x32efc5b2 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x331bae87 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3327e6d8 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x333d75f6 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x337d5137 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x338a862e regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x33ac6ec3 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x343997a7 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x344d3c66 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x34589f5c __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x348f218f sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x34948d27 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x34cb7834 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x34cea8ad da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x34e539a8 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x3508f5ce ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x35103764 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x353fae71 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x3577f445 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x35a3c4ae relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x35a8551b blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x35a9df7b i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x35d616fe usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x35d70dbd __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e3a8f3 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x360a714e kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x365e3d3d i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x36684323 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x3672bdd2 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x3731988a dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x373b923c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x37781bd0 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x377c0332 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x37d6a0cc fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x38243164 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x38280152 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x382f2e43 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x3889a7bf wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x3896cc43 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x38aa75ba dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3901cedb inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x395cbc79 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x395d1b48 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x3999c758 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x399fe87f xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x39e15d58 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39f359ee platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x39feced5 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x3a06229d ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x3a18e2b4 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a4c8d2f ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x3a4fea80 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a937c3c usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x3ab262e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x3b1a2666 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x3b225493 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3baf6949 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x3bcad170 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x3bd5ea55 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3be9dfef usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x3c500f32 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x3c7fb96a __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x3c86111d pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x3c91ccf3 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cb40db5 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x3cb61c5b dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d02ffb8 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d96587d fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x3db504c6 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x3dd9d696 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3dec22ed tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x3dedefcf debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x3e0a923e platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3e2f0557 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x3e3bfe19 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x3e4ef828 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x3e8f7a73 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x3ebc0caa srcu_init_notifier_head +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 0x3f029f8c ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x3f079ac5 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f31408c ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f84e774 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x3fc9e4a3 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x3fd50cdd spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x4015300d led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x40375255 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4047fbfb ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x4055e013 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x40845bde securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c9cb4b inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x40ef8ab9 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x40f399b1 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x412ddf9f sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x41681bdf tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x4189f60a stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x418ff2d1 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x41abd72a inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x41bf9bcb crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x41cd347b debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x420f2d6a spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426a1eaa dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x426f7742 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42eee679 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x42f99c98 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x433880cd fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x434c7fe2 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x43a45c4d crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x43bc0651 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x43be18b0 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4433ea7f get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x446419e3 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x449b5e21 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x44a43296 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x44de3ac9 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x4531f16d perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x454826a5 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45a6313a pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x45a8a054 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45f2f5c9 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x461853d4 __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x4647d485 platform_device_register_resndata +EXPORT_SYMBOL_GPL vmlinux 0x464d186e vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x46503559 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46c333eb class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x46e3f3fe class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46f510e9 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x474ac872 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x479d1ffc zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x47c14918 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x47ffdaed cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x48540d05 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x486fd3ed uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x4874712d debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x48a04609 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x48a095a9 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48ae726a xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x48c74bb5 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x48d296b9 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x48e05464 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x48edcac3 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a438d4 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x4a703e46 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x4aa51517 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x4aa5264c kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x4b14fc6e wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x4b5fb163 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x4ba438ed fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4be70600 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4c084326 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x4c38b69f xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x4c445cae crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4ce03e57 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x4cfae4ce hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x4d0d3c3c rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x4d33e00f rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x4d505033 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x4d624244 put_device +EXPORT_SYMBOL_GPL vmlinux 0x4d98b352 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x4e0a44ab wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4e14f356 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x4e1c143d PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x4e25bcd0 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x4e43590e regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4e90740d usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x4eb78244 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efde474 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x4f10eab3 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x4f173c98 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x4f3f8b2a relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x4f4ae122 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4f4eed24 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4fb57014 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fc0405b scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fc69938 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fed18d7 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x50135b09 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x502c9113 pci_hp_deregister +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 0x50e36149 usb_get_intf +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 0x51147308 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x515d7814 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x516c97e7 dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x519337bc relay_close +EXPORT_SYMBOL_GPL vmlinux 0x5212ab47 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x52136e03 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x5217c09e __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x523041a2 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x527fc4f6 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x52eaea1c ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x52fce427 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x53088b21 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x533e95ce ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5397053a crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53c2c958 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x53eaeeee dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5422ce49 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x544ee6a0 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x54563359 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x547d4e38 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x547d8d53 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x54903517 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54c0968a ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x5509dcfc pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x55280cef led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x5531a5a0 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x556bff13 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x557b99ab sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x55f747f6 ip6_local_out +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 0x56412588 spi_write_then_read +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 0x56793bc0 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56ec3acb cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x571b4850 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x573064af vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x57499a4e sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x5755a14f register_virtio_driver +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 0x57c22086 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x57cf9e68 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5808a49e crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x584279a2 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x5886bcfb kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x58c1ed69 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x590c906d xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x591199cd md_stop +EXPORT_SYMBOL_GPL vmlinux 0x592e4163 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x598437ec regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x59902dec sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x5996c581 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x59a5759d xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x59eadcae unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x59fe8e45 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x5a108615 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x5a1ed0c7 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a2a8161 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a408a5f ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5aa86e88 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x5aca43ff ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b12de82 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5b4b7644 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5b717862 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x5b71ed5a xen_swiotlb_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x5b87220a regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5ba09e3c sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x5ba241da inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x5ba5f2e4 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bc74d04 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c4c5c97 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x5c4ddec8 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x5c6d9f79 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x5c9025d0 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c92c66f device_move +EXPORT_SYMBOL_GPL vmlinux 0x5cb09b2c acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0x5cb93acd each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x5d06545f xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d3f70f9 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d5abf22 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x5d616746 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d8d44c7 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x5da9f70c ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x5dabaebd crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e0785a0 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x5e1adee8 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x5e305418 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x5e3a9864 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x5e3ceab9 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5eab7bc4 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x5ed09e6f ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x5f091f2b bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f5fc849 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x5f880b34 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x5f8d84e2 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x5fbb8496 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fce868d dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x5fcfc855 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x5fe808f6 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x60454c7c task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60633ed8 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x609e79f3 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60b20259 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x60c96c8e blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x611ca15d inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x619fe338 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x61b4c820 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x61c5e4ad regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x6213d232 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x622549ba pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x6238c609 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62ce200c wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x631b94a9 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x634e5987 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63a53e66 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x63ec9f73 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x63f66bc8 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x640354d3 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x641e8ded virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0x644c380b swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x6460213e pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x64784785 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x649d425e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x64acfa68 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x64d00a7e ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x64de1289 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6551c5d0 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x655d5f18 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x658f77ab fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x65b09788 hrtimer_forward +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 0x65f17636 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6666cb12 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6685b74f remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x668fcba2 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66c80aea anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f42289 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x670ec181 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x671b36a6 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x671f353a pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x676b6b9c plugger_init +EXPORT_SYMBOL_GPL vmlinux 0x67744110 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x677c954e usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67ccb04a ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67e1d0d6 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x67fad7cd bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x6813b4f9 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x6825421f sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x6849f86c pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x685c3f4a blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x685f7d98 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6882a26a inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x68852d71 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68a6b3f0 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x6910157e blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x6936f2a5 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x693a7c31 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x695ee33d system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x698d0e94 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x699c8a34 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x69c9041e crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f58f8c scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x6a2bf27f raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x6a5d4db0 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a681c7b simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x6a7dbaff mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b4d62b3 find_module +EXPORT_SYMBOL_GPL vmlinux 0x6b67c2ce default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b9338e0 xenbus_unmap_ring_vfree +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 0x6c3d86bb inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x6c499e22 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c824a25 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cc32d2c blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x6cf7867b hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d908adb bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x6d9a837b pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6dbef296 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6ded2e99 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x6def12e9 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x6dff292a crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x6e0b0586 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x6e154cf0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x6e19e60a debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x6e293259 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e59b1fc sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e874a16 edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x6ea98361 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6eab5aa9 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f5afbc3 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x6f9cffe8 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x6fc8323f md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70152d53 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x70477af6 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x70512b09 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x7055e3f1 bitmap_load +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 0x70ad3fc6 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x70eda069 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x70fd1aa9 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x70febe1c usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x71134078 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71bd7027 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x72327e06 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7288e40a fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x72a3fd11 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x72e3d61a inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x7311c347 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x733b133a blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x734e0731 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0x73510d77 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x736701dd xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73f7d69d sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x74056c68 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x74394735 sdio_unregister_driver +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 0x74571ce4 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x745e2a6a ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x7464f1ff __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x747fb736 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x74813adc queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x748f5295 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x749455a6 spi_bus_type +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 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74d509d8 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74f65a36 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x752ae2b3 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x7539a67d ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75facd74 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x76763439 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x767cbf3a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7685b214 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0x7690f90a ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x76d84546 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x7700e570 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x773d4cca workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x77c002db unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77e19db9 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0x7815b8e8 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x788824fc tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x7892fa76 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x78a3ced3 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x78b7e8bf led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x7900e0cd __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x790a74f4 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7973ec8a pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x798cafd6 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x799cc036 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x79bfff77 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x79d2a713 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x79d2bd1a part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x7a00e734 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a67959e crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7a9d1912 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ae3b794 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x7afeee27 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b205ecd device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7b2b98f3 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x7b42b9d3 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x7b4f005d usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x7b8fd94f hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x7bc1e1ac xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x7c00f7f6 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x7c2251a4 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7c39a09d wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7c69a949 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x7c6c50f2 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7c987a9a xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ca67853 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x7cc33df8 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7d35edbd xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d7e7047 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7db9b49d usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x7dbaa9c7 xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7de1171a sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x7df910ec __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e535c08 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7e5af036 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7e626dd3 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e7db294 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x7eaa2dc7 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x7eb23c7b ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x7eb5bf97 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ef5cac4 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x7f600da0 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7f6f5a52 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x7f764b5f dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fcd90a4 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x7feeeac5 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff41137 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x804bbbaf sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x8092b6fd sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x80f0f275 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81b6f9c4 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x81e508d8 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x81e91c38 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x81e9f2e6 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x822dca00 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x824c8bc1 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x825dffbf __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x829927fd sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x82a51669 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x82bed33a sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x82c3a5b6 ata_sff_lost_interrupt +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 0x82f404f3 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x8323f2c9 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x835357fd ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x83a5b95f crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x83d03cc4 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x8401229d sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x8437074e mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x843b7c3d usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8485ad2d driver_find +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x849238d5 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x8495a15f __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x849f84a8 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x84c098a2 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x84c6ee69 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x850537c0 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x852e3339 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x8537a5f5 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x854111f2 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x855e8622 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x85723308 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x85796bfc input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x859aea9a xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85f19a2c task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x8659f343 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x865c5504 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x86610016 md_run +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x8662f52f fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86ce520b usb_string +EXPORT_SYMBOL_GPL vmlinux 0x86dceb5b relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x86f012b5 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x8703d428 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x872e0a46 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x8736ec8b inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x876ae8b9 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87b9270f xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x883ea6d6 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x888a4ab6 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b32a62 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x88bf19a8 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x88d6b6fb crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892b7bdd ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x89387462 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x89561f17 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x895a6de9 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x8989c0bf ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x89a183c7 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x89aba9e9 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x89cdd18d dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x89db7c43 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x89f39ef3 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8a361ad4 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8bf2ca58 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x8bfa02a8 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c1688d3 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x8c1a53d5 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x8c2139e4 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8c35fcb0 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8c8b6d63 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8d4272b5 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x8d463865 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x8d758859 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x8d79acc2 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x8d7d9f98 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x8db911a2 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x8dfc2cff gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x8e2cc110 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x8e4dc68a sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8e5b26fb xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x8e9667f9 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ef4c31c crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x8f06b01f pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x8f5e7215 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x8fd37fbe pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x8feecb4c scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x8fff356e __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x900ca3d1 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x90545e3a sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x9059dcd1 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x905bb9af virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x908e3110 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a447d0 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x90b20398 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x90d8a4b5 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x91013a9c dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9140f44b regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x917a78fd transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x91fe3d6a ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x923905c4 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x92a15993 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x92a949bf ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x92ba7f0e xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x92bea597 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92f188be crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9329402e platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x93553b97 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x936aa8f2 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x939d122d spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93babad2 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x93c55870 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x94217f76 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x9430706c acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x94361aab unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x94710cd9 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x947e9fc7 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x948b10ef ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x949c72ec user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x94a461f0 disk_get_part +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 0x95028532 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x953d4d17 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9570a521 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x957196e9 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x95c8f34f bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x95cb9e45 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96393234 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x963d33b0 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x969fd2fe platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x96b55c4e fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96d0706b tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x96d6604c fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x96d7a05b print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x96d99742 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x96ffb55a usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x97492817 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x974a17d4 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x9768f8fb skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x97a657b3 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98d4487f cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x991a8496 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9968dbb1 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x99706d7a acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x9972833f sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x998c7c1d ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x999e360e transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x999f75b0 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x99e9b82c alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a1e0d94 device_register +EXPORT_SYMBOL_GPL vmlinux 0x9a34a0d9 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9b17f5a5 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x9b7e3b20 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bd8ed32 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x9c0d4307 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x9c286c5a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c6f5d6e crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x9c7c5d2a __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x9ca449f7 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cbedea8 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x9ceb69d1 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d30c036 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d633452 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d8d87b0 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x9dc46929 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x9dc88dbe dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x9e390314 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9e502b73 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x9e51fb43 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x9e6848c7 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x9e72da27 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x9e778712 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x9ebf7d7e usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x9ed4d627 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x9eee075f dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x9f0950fc tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f457324 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x9f5aeda7 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe7cc34 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa00e6971 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xa07d482a __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0d8fdbc ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa0db7b9a platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xa12e6f4f pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xa161e2e6 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa19c1ff8 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xa1a6474f ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xa1ddf303 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xa20540ef ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa2bcc8a8 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xa2bf1793 plugger_set_plug +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2e921e6 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xa3174b92 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3977e02 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xa3ab4658 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xa3e9effc stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa3ef3636 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa405c51c ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa4304cfa ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa4646f15 dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4cc6000 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa50e9936 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xa52907f1 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xa55b419b xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xa55c6f44 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xa570d86e input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa5b2961f shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xa5b74728 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xa5c4c8f4 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa5ca244c xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa62130b7 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xa64ae803 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xa690a91a stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa6a007c3 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xa6b647e7 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xa6c261e6 device_del +EXPORT_SYMBOL_GPL vmlinux 0xa6df17e8 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xa6fb4d85 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa72bb44b ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xa7329cd1 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0xa7894282 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xa7d379c4 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xa7efb7fe debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xa810edbb pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0xa81427fe ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xa815b8f9 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8ab039d skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xa8b15f6e ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xa8b7d63a crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xa8b80079 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8deb25d ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa90df34a pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa92be0c4 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xa92fba26 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xa93415ae blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0xa9445b32 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xa967dda6 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xa9812bc4 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9e86a45 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xa9edd8d6 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa3dff86 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0xaa95c1ff __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xaac4e672 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0xaad630a5 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xaaeea9f4 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xaaf90f69 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab1219ee rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xab1d9590 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xab1fffb1 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab296b9f rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xab564899 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6cbb4d flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xab79d904 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xab990e89 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabe44214 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xabeb0cc4 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xabf35cf1 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xabfbb995 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xac2ced54 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0xac391540 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xac53cc32 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf46dcf usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xacfed4e7 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad0cd76b power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad0f39cd dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad6681a6 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xad728e34 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xadacd68a event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadf63845 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xae972b32 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaec7b9eb ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xaed8df15 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xaee40835 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xaf3d1c9c sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf41ff48 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf5b1574 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xaf5cf8d7 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xaf5f4f49 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xaf7f66d5 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xaf9534b0 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xaf968647 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xaf9e852c crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xafb21523 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xafc5a928 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xafd49be7 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xb006c1bc mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0xb0298bf7 ref_module +EXPORT_SYMBOL_GPL vmlinux 0xb0775d6b ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xb0def67d ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb13f46fe usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb17183ef __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb194d2d5 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1b03c17 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb1bc8e6f ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xb1c34dab device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xb1c4d3f3 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xb1ca13ff led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xb1ee8dff pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xb1f23469 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xb2116bb9 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xb236a7dc rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb26a1ed3 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xb29a25fc ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xb29b77dc use_mm +EXPORT_SYMBOL_GPL vmlinux 0xb2a0a215 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xb2b130cb sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xb2c93da4 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb3280146 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb34fe4cf dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0xb39eb664 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xb3acbe14 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb3ca45cb unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb427df7a usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xb474268b da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xb49a8ee0 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xb4aa32e7 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0xb4d8ca31 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f53cbd dm_send_uevents +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 0xb5858c36 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xb586f971 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb59667ad xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xb5a57848 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5bb8336 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb608c281 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xb609fc40 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb63b9ed7 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xb6572a1b register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b7378c crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xb6c0d4c7 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xb6cdc293 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb707dc79 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb716b3b9 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb720728a xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xb729e366 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xb73c6eef destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7555441 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xb7a5bb1b ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xb7a6b490 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xb7d5ec77 locks_release_private +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 0xb7f6e5c7 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb8060cb5 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb82224bd edac_class +EXPORT_SYMBOL_GPL vmlinux 0xb84a4323 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xb865cba0 unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xb8863810 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xb8e583f4 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb8e8fad8 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xb8f2b6f3 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9051899 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xb93643f1 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xb94caa9d get_device +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb95475ed crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9c7bdd8 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xb9fc808b device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba33ca4b usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xba48bf0a pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xba5da44a crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xba653450 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xba6c98ff bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xba863611 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xba87b300 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xba955f2f xenbus_alloc_evtchn +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 0xbb3e6e1f pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xbb8c3a3a da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xbbaad302 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbd9efd7 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbbf20164 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbc47be3c ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xbc47e188 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xbc779fb1 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xbc9756e9 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbce237b1 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd57ba34 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xbd6357ba blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xbd76b0b7 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xbda6d0e4 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbdb71e6e trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xbdc5937c xen_swiotlb_unmap_page +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 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe22e8e7 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xbe5d1524 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xbe608951 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xbe70b832 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xbe74ad26 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xbe796d1a xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbea70fc7 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xbea8e207 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xbeb3d449 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xbf059370 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf35a9cd screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xbf4c067b preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc04102ea synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc048fa80 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xc0695368 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xc097a4ef led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xc0b6d671 device_create +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0bfb684 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xc0d0d470 init_srcu_struct +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 0xc14465fa __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc144db09 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xc14c2824 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17204d7 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1999805 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xc1b75918 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xc1d2ef16 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc22f22b8 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xc23cca02 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xc23ed4e7 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xc2465d67 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xc2495c91 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xc251d4fe inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc26ba45c find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xc2796432 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xc27d0dc7 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc28cbdc0 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc2a4649c ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xc2c16267 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc33dd8c1 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3555775 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc374d68c crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xc378e7e2 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3ab108a regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc446c53c find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xc468c326 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc471645c dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4952d60 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xc496700a inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xc4a13601 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc4aaf460 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc52d3595 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xc5332472 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc56a89fb spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xc570ea15 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xc57e0899 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc5a33c89 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5eedcf5 mmput +EXPORT_SYMBOL_GPL vmlinux 0xc5f651d9 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6362fcc regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc7229fa0 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xc74b7f3b queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc758b16a dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xc7788e71 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xc79e5133 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xc7aaf67a scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xc7b7c242 queue_work +EXPORT_SYMBOL_GPL vmlinux 0xc814d14b xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xc84e8d97 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc85fc238 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xc868b4a6 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8dee985 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc8fe36eb class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc9112f86 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc91ed352 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xc94b2fe3 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc96af7f4 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc96c3454 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc97a282c scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xc9aeb08c ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca1377f1 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xca340828 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xca5dc5c7 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xca6959f9 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xca80d675 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcaa47235 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xcab7138e perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac3023e add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xcaf79e73 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xcb0ba105 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xcb446075 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xcb9d5ebe hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xcb9dfdf2 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xcbe33eaa mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc312d2c stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcca4d7c2 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd5a422 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xccfb82d1 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcd1da758 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xcd396242 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xcd8e7eff virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xcda422e6 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xcdad2abb blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdeccbc1 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xce058a40 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xce0802b1 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xcead49f7 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xceec724b sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xcf0adda8 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xcf1ee780 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xcf2131ea tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf86d466 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xcf99015c device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfea7c50 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd07e9d1d dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd08cd8cd sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xd090dd5d system_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +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 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd12eea5c sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xd14a493d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd171447d rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1cc3fe3 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xd1ce28e0 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd23f24fd mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a51521 is_hwpoison_address +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2ca8fb8 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xd2e20603 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xd2f250cd pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xd301ddbf crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33e3cce dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0xd38625dc xen_swiotlb_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xd3a8b382 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xd3aa11c8 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xd3c4bab1 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd3cef9bf crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xd4149f38 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xd42adb37 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd42df673 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd4322776 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xd4b7532f xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0xd4c1799c mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd4f3bb13 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xd52bb572 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd54bdb36 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd58fa23a page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5a20a1e pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xd5d2d771 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xd5d5bedd driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd5e4b14d fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd60add7d platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xd6558e5f transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xd6a588e6 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd6b1bbd0 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xd6b4fa6b usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd6c132c7 __class_create +EXPORT_SYMBOL_GPL vmlinux 0xd6d436d1 ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xd6e46d15 ata_msleep +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 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd7368449 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd75b981d rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77bd3af usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7bbd183 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd7c7cbcf led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7e09f6a locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xd7f9c7f9 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xd7fd44a0 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xd87b2c8c securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd8f26433 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd90a65d8 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xd916f68f bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd9867713 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xd9cec7a3 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd9cf7e42 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xd9dba4f7 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xda4d3463 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xda694006 user_update +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb07f3d9 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb2e1c28 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xdb4d0e86 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1ec26d platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdc363768 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xdc668fcf generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xdca8c35a __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xdcc1fce1 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdce87acf elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdce8d2f6 device_add +EXPORT_SYMBOL_GPL vmlinux 0xdd0bf1e8 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xdd6acff1 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xdd861c03 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xdda528ec ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xdda7a795 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xddac327b attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xddddeac1 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xddeaa8ad cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde45eb87 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xde460c48 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde5e8721 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xde883b6d wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xded4c8e4 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdf050432 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xdf65fbb0 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xdf94266e blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xdf95c016 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xdfe4c84e fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe029092c fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xe04ddc83 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xe0661f1a aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xe07338f0 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe08eef75 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xe0b88cfb driver_register +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0c9b70f bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0e657b7 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xe0e65dbb sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe0e81a9d adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xe11cb3b0 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe1545f28 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xe155cf29 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xe1978b21 unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xe1b98765 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xe1ecb9da tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xe1ef0740 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xe1f40b0c ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xe1f713c7 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xe201b173 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2caa429 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0xe2f3fc68 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xe3031529 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xe324cf51 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xe36994ff rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe37bcf1f nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xe38eeb27 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3aefa25 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xe3c7f242 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xe3d554a5 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xe4272345 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xe430b83f ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe43bdd78 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe44d69a2 input_class +EXPORT_SYMBOL_GPL vmlinux 0xe45226bf pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xe4894d5e crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xe49a64bd pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xe51a050c devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xe52a1a69 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe52acf3f usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xe539664b ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xe548be54 dm_put +EXPORT_SYMBOL_GPL vmlinux 0xe56ffa7c invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe63c167a plugger_remove_plug +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe654e5ef wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe67a2a86 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xe68add94 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xe6bd90a2 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe752c4a9 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0xe78eca18 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe793bc31 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8a67bf5 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xe8c14637 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xe8dd10ab swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9702439 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xe9f1e1bd tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xe9f3aee4 vfs_removexattr +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 0xea62f590 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xea725414 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xea728a38 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xea7e666b sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb10f6b6 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xeb2bfed3 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xeb3e7086 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xebafb450 user_match +EXPORT_SYMBOL_GPL vmlinux 0xebce8b74 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xebdbd826 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xebe111ad ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec41a57c crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xec5fa784 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xecc4ed87 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xecd13615 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xecf7a6ac usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xed003047 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xed0d45ff rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xed2ffdad xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xed304483 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xee0278d3 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xee152db8 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xee6a955d sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xee7c90cb sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xee9ba4b6 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeed0c0b9 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xeefad342 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef72b4c4 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xef7ac872 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xef7aee96 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xef7cc305 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xefa468e3 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xefad7c57 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xefcd6a92 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xefd32599 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe8451e sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xeff6720e get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xf064ed39 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf0f0d0a1 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xf1164de1 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xf143e40a i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xf147fb88 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf19f17d2 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1d428f7 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xf1d7eec9 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xf22c20b7 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xf22edc23 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xf2fb4988 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3831e25 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b7fdee __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3bc22df regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xf3d04617 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xf42600a0 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xf473d874 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4e1e2f8 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xf4e8e716 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54635f4 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54f4d24 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf581fa5d netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5a831f0 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf5d41bc5 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xf5e086cc disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0xf5fbff57 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xf6130c5a dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xf62debf7 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf635c949 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf65101ff i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6919004 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e862b3 vring_transport_features +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 0xf766b872 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xf76b8fe4 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7b8b6b2 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xf7e6b843 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xf815e5ce usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xf849dccd __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf872c59b hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8abbcaf cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xf8f2ffca pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8f6693d cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xf9151d48 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xf934f5b3 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf9968221 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d1f67e ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf9fd9da0 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa238ab7 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xfa602ade wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xfabaec65 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xfaeeef11 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xfb0a61e0 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xfb1f64f1 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb4c1c3c blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xfb6b4ba8 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbfa9382 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xfc056508 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xfc1c10a5 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xfc232595 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfc25ac73 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc6fb209 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc7c9e46 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xfc9684d4 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcf867b8 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xfd358257 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd603d61 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfda21340 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xfdafebd8 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdef54e3 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xfe616fd7 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfec301bd crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfee83cef scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff2c5aa1 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xff4087cb spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xff503356 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff66e320 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xff964193 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffdebe24 dequeue_signal --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/amd64/server.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/amd64/server.modules @@ -0,0 +1,3074 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +74x164 +8021q +8139cp +8139too +8255 +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abituguru +abituguru3 +abyss +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_ipmi +acpi_memhotplug +acpi_pad +acpiphp +acpiphp_ibm +acquirewdt +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s120x +ad2s1210 +ad2s90 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5398 +ad5446 +ad5624r_spi +ad5930 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7745 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +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 +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16251 +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 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt75 +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +aes_generic +aesni-intel +aes-x86_64 +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +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 +apds9802als +apds990x +appledisplay +applesmc +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +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 +basic_mmio_gpio +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcm63xx +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bmp085 +bna +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcm80211 +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +bu21013_ts +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 +carl9170 +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_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +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 +cpia2 +cpqarray +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-gpio +cs5535-mfd +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +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-raid +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 +ds620 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy_hcd +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-lmedm04 +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_midpci +dynapro +e100 +e1000 +e1000e +e752x_edac +earth-pt1 +easycap +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 +ec_sys +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 +emc2103 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +encrypted +ene_ir +eni +enic +epat +epca +epia +epic100 +eql +erst-dbg +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +ethoc +eurotechwdt +evbug +exofs +exportfs +f71805f +f71808e_wdt +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 +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +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_ncm +g_nokia +go7007 +go7007-usb +gpio-addr-flash +gpio-charger +gpio-fan +gpio-i2cmux +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_vbus +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_konica +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_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +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-axff +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +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_timesource +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +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-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +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_edac +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 +ibmpex +ibm_rtl +ib_mthca +ibmtr_cs +ib_qib +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +ii_pci20kc +ili9320 +imm +imon +imx074 +industrialio +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +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_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +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_boot_sysfs +iscsi_ibft +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +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 +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +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 +leds-88pm860x +leds-adp5520 +leds-alix2 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lp3944 +leds-lp5521 +leds-lp5523 +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 +libceph +libcrc32c +libcxgbi +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_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 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lxfb +lzo +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 +max17042_battery +max2165 +max3100 +max3107 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8998 +mb862xxfb +mb862xxfb_accel +mb86a16 +mb86a20s +mbp_nvidia_bl +mc13783-adc +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc33880 +mc44s803 +mce_amd_inj +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +metronomefb +meye +mfd +mga +michael_mic +micrel +microcode +microtek +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +ml_ioh_gpio +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mmc_spi +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mrst_max3110 +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_defrag_ipv6 +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 +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 +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntfs +nuvoton-cir +nvidiafb +nvram +nv_tco +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +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 +ov2640 +ov6650 +ov7670 +ov772x +ov9640 +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_cs5536 +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_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pbe5 +pc87360 +pc87413_wdt +pc87427 +pca953x +pca9541 +pca954x +pcbc +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pch_can +pch_dma +pch_gbe +pch_gpio +pch_phub +pch_uart +pci +pci200syn +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 +pn544 +pn_pep +pohmelfs +poseidon +poulsbo +powermate +power_meter +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +progear_bl +ps2mult +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qt1010 +qt602240_ts +quatech_daqp_cs +quatech_usb2 +quickstart +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192se_pci +r8192u_usb +r852 +r8712u +r8a66597-hcd +radeon +radeonfb +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +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-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +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-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-msi-digivox-ii +rc-msi-digivox-iii +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-002t +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-terratec-slim +rc-tevii-nec +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +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 +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-ds3232 +rtc-ds3234 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +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-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl8150 +rtl8180 +rtl8187 +rtl8192ce +rtlwifi +rts_pstor +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +s921 +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 +sam-ba +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 +sbe-2t3e3 +sbni +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-platform +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 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +sm_ftl +smm665 +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-aloop +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-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +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-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-88pm860x +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-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max98088 +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-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +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-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +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 +softing +softing_cs +solos-pci +sony-laptop +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +specialix +spectrum_cs +speedfax +speedstep-lib +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +spi_topcliff_pch +squashfs +sr030pc30 +ssb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c500_cs +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +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 +tda18218 +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-kstrtox +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tm6000 +tm6000-alsa +tm6000-dvb +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 +tps6524x-regulator +tps6586x-regulator +trancevibrator +tranzport +tridentfb +trusted +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 +twofish_common +twofish_generic +twofish-x86_64 +typhoon +u132-hcd +uartlite +uas +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 +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 +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-compat-ioctl32 +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +vicam +video +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio_balloon +virtio_console +virtio-rng +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt6656_stage +vt8231 +vt8623fb +vx855 +vx855_gpio +vxge +w1_bq27000 +w1_ds2423 +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 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +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 +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +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 +xenbus_probe_frontend +xen-evtchn +xen-fbfront +xenfs +xen-gntdev +xen-kbdfront +xen-netfront +xen-pcifront +xen-platform-pci +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_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/amd64/generic.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/amd64/generic.modules @@ -0,0 +1,3080 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6pack +74x164 +8021q +8139cp +8139too +8255 +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abituguru +abituguru3 +abyss +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_ipmi +acpi_pad +acpiphp +acpiphp_ibm +acquirewdt +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s120x +ad2s1210 +ad2s90 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5398 +ad5446 +ad5624r_spi +ad5930 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7745 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +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 +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16251 +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 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt75 +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +aes_generic +aesni-intel +aes-x86_64 +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +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 +apds9802als +apds990x +appledisplay +applesmc +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +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 +basic_mmio_gpio +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcm63xx +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bmp085 +bna +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcm80211 +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +bu21013_ts +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 +carl9170 +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_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +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 +cpia2 +cpqarray +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535-gpio +cs5535-mfd +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +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-raid +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 +ds620 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy_hcd +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-lmedm04 +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_midpci +dynapro +e100 +e1000 +e1000e +e752x_edac +earth-pt1 +easycap +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 +ec_sys +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 +emc2103 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +encrypted +ene_ir +eni +enic +epat +epca +epia +epic100 +eql +erst-dbg +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +ethoc +eurotechwdt +evbug +exofs +exportfs +f71805f +f71808e_wdt +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 +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +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_ncm +g_nokia +go7007 +go7007-usb +gpio-addr-flash +gpio-charger +gpio-fan +gpio-i2cmux +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_vbus +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_konica +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_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +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-axff +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +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_timesource +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +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-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +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_edac +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 +ibmpex +ibm_rtl +ib_mthca +ibmtr_cs +ib_qib +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +ii_pci20kc +ili9320 +imm +imon +imx074 +industrialio +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +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_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +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_boot_sysfs +iscsi_ibft +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +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 +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +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 +leds-88pm860x +leds-adp5520 +leds-alix2 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lp3944 +leds-lp5521 +leds-lp5523 +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 +libceph +libcrc32c +libcxgbi +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_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 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lxfb +lzo +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 +max17042_battery +max2165 +max3100 +max3107 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8998 +mb862xxfb +mb862xxfb_accel +mb86a16 +mb86a20s +mbp_nvidia_bl +mc13783-adc +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc33880 +mc44s803 +mce_amd_inj +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +metronomefb +meye +mfd +mga +michael_mic +micrel +microcode +microtek +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +ml_ioh_gpio +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mmc_spi +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mrst_max3110 +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_defrag_ipv6 +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 +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 +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntfs +nuvoton-cir +nvidiafb +nvram +nv_tco +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +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 +ov2640 +ov6650 +ov7670 +ov772x +ov9640 +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_cs5536 +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_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pbe5 +pc87360 +pc87413_wdt +pc87427 +pca953x +pca9541 +pca954x +pcbc +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pch_can +pch_dma +pch_gbe +pch_gpio +pch_phub +pch_uart +pci +pci200syn +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 +pn544 +pn_pep +pohmelfs +poseidon +poulsbo +powermate +power_meter +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +progear_bl +ps2mult +psmouse +pt +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qt1010 +qt602240_ts +quatech_daqp_cs +quatech_usb2 +quickstart +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192se_pci +r8192u_usb +r852 +r8712u +r8a66597-hcd +radeon +radeonfb +radio-i2c-si470x +radio-maestro +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +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-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +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-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-msi-digivox-ii +rc-msi-digivox-iii +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-002t +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-terratec-slim +rc-tevii-nec +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +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 +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-ds3232 +rtc-ds3234 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +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-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl8150 +rtl8180 +rtl8187 +rtl8192ce +rtlwifi +rts_pstor +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +s921 +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 +sam-ba +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 +sbe-2t3e3 +sbni +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-platform +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 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc91c92_cs +sm_common +sm_ftl +smm665 +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-aloop +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-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +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-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-88pm860x +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-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max98088 +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-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +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-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +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 +softing +softing_cs +solos-pci +sony-laptop +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +specialix +spectrum_cs +speedfax +speedstep-lib +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +spi_topcliff_pch +squashfs +sr030pc30 +ssb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +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 +tda18218 +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-kstrtox +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tm6000 +tm6000-alsa +tm6000-dvb +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 +tps6524x-regulator +tps6586x-regulator +trancevibrator +tranzport +tridentfb +trusted +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 +twofish_common +twofish_generic +twofish-x86_64 +typhoon +u132-hcd +uartlite +uas +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 +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 +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-compat-ioctl32 +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +vicam +video +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 +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt6656_stage +vt8231 +vt8623fb +vx855 +vx855_gpio +vxge +w1_bq27000 +w1_ds2423 +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 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +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 +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +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 +xenbus_probe_frontend +xen-evtchn +xen-fbfront +xenfs +xen-gntdev +xen-kbdfront +xen-netfront +xen-pcifront +xen-platform-pci +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_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/amd64/server +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/amd64/server @@ -0,0 +1,11642 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x3ddba347 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xbf38da52 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 0x7c5776b8 acpi_video_get_edid +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/atm/suni 0x2776e9a5 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x15313a26 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 0x067aecc7 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x13b124c3 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x233a4968 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x4edb9519 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x5b992fee pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x5e5f2b43 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x713c2de6 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x7e546b1e pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x9010d9b4 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x9841c2b3 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xd589748a pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xf78883ec pi_write_block +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0119151c ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0633f7db ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x069fd9d7 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x22882251 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2fc8be2b ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x33809a4b ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3c02b1a0 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3ea3ef10 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x49ebae00 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x51f4f4d0 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5cfe3605 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5d7d9c91 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6235731d ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7b9829cc ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8a4b9f98 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x99257ca3 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa24e369a ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb86ca169 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc43b6c83 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd03745e9 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd0baf574 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe05ca476 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf5f36adf ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xff6a8f52 ipmi_smi_add_proc_entry +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 0x2dea1b11 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0x6c9feca7 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x8e42fbc2 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0af50ec9 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x18d158a3 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1b1001ea fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2040fc36 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2381a1ea fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x242b2460 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x307289a9 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x37ca4848 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x388813d2 fw_fill_response +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 0x5c635dd1 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8fb49f16 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x93dbdf86 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa63a32c5 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xab7371c5 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaf3c15a1 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd024af40 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd47ff0fa fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd4b20ed1 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd6a93175 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd83d6135 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe091aeba fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe0a9c96d fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfea05e36 fw_core_remove_card +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0201e14b drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0464fdd4 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08b9200b drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09d8f376 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b627116 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b91b7a6 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b9542b9 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d5c2953 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14100e53 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1419ec0c drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1534d22d drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x169fe7db drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19f03b43 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e5bb23b drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f71757d drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1feee5a1 drm_agp_acquire +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 0x21b002aa drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21f45952 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x231d5e72 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x234d0459 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a314b4f drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b24168e drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b58ba8a drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b7cba48 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b939fb6 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ba4ac0e drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c893888 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x303e40a5 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30e177f3 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32e44dff drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36a4814a drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a0cdbcb drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a2fe458 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cfca0c0 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb7aed0 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f062fad drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fc69281 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43467966 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48a667d2 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48da7749 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b2b536f drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bc09a98 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5438c4d2 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x570b2440 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5712ee94 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57d1bd81 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b69532e drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5dc88e8d drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f79807b drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61b756fe drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x639b4da8 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x642ef4c8 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6608aa68 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x683c637a drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69cadde7 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a9834c6 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +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 0x6fe1469b drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x744d2fab drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74be5658 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x752f1013 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x754e0355 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76bce196 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77318021 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77d43ea5 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a24a3f5 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a96f2b8 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b86e430 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bc6520b drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cf21238 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cfe06c5 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e69c2f9 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eae2318 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x810622ac drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81c5a7b9 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81e0c440 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82047f5c drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8266c920 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82925f67 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89c29eb3 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b49d5ea drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b9c9027 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dc235ba drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e3f839e drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f27f527 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x916e1f50 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91733a01 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91b1e878 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d1876f2 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d32a2ba drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa20fecc9 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa248e278 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa333eeab drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa363e01e drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6b4fe58 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9669747 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabe171d4 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7f8c68e drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbfb1ffb drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf2f8241 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2b0f0db drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3e2412e drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5a5115f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6ab38a4 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8acee50 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca2ab066 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca76650d drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca97a8e1 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcae2cfda drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb78fb3e drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc04e069 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd177c465 drm_open +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 0xd60050e4 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd806bfeb drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd981dbf0 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdab48565 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc701878 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf54f764 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe03cf86a drm_mode_config_cleanup +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 0xe2aec621 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe41681bd drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6930898 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe83af4bb drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe95f3b03 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe984085c drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed411ddc drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee045e7d drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeec2ade3 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef3942db drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf02987ec drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0fd493b drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0fe7b52 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf39871be drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf77a5966 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9ac5862 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc79dc9f drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffe6b68e drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08c67d4e drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a8518ce drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x158a8032 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x19af1fd7 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2c8b2019 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x308f31ce drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34028e6a drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x372b5c41 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4b1af55a drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56012eb8 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x61803306 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6583f3eb drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6d2cf7f6 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x83887dd5 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85ce2487 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8c2a0269 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x92cdcb5c drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d324478 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf78ddd8 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb0d65122 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb25999f0 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbd6cd152 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf45268c drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc37f8766 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd4bc4a22 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4f996d8 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfa22ccfd drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfc98cf9f drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe567823 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfff8eddb drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0296a185 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x02e4f5fd ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x05af1fe4 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0680d864 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0718185b ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0864e6f3 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b995bf4 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x10281dd1 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12080f05 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x154a72b7 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16356e22 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a7382fd ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24cfe1aa ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x26a4f9af ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2aecd56c ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f8ba6f0 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32915d02 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x360f2d6a ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36c02730 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3e3a7b60 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x43da6fac ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4528099a ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b3892c3 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4bff8da5 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5abeed8f ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x658d1b25 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88a88f57 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8aa3e0ba ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8c315f0b ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e29981f ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9500015f ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x951eb8e0 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x95a99de2 ttm_bo_clean_mm +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 0x9e9e58c4 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2f44d60 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa46b2c41 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa7e4c98c ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa4fc8a7 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabd993b9 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb00b4629 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb1149fdb ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a78d92 ttm_bo_global_release +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 0xc983b4eb ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xccfc301f ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcd21d384 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4b69ae4 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe79cf055 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf6c31707 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa4decbf ttm_bo_move_memcpy +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 0x5aafbec7 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xee6ab98b i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xa06e03b3 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xcf9b1243 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x3d6e5997 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x9b5afd60 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x2163fd01 rdma_copy_addr +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 0x65314db5 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x09e1df1b ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0f9e03db ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x26472368 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3d3d5445 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4ac6e71a ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4c973317 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x617d4d37 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6929bf6a ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6d0084a7 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x77b89e05 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7d725ddd ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8bda2604 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8eff2c5a ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc6176fdc ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe953bca5 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf2d10e0a ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfdd7e854 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x036676b1 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0486b1c7 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09f58430 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a535809 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c18d79a ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c286970 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10df675c ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x146a1b25 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15af48f3 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a7f0301 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x213e9a92 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c7cad51 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e678d6d ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31208bf5 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3332caca ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3443cb0f ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3901abb4 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39f6f2c5 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44dc4b89 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46e3b2a8 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4fec297d ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x500296c9 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50130c7a ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5134c6f6 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52abc6e0 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5891ea13 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ce1c7e8 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60a2a25a ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x657debd5 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x666569c3 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d88ff14 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e68e192 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ee83ff4 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74e0af83 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75d98ba8 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76a1bceb ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ef6fd03 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e37092a ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b4d7401 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb0d13d81 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb6f709bc ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7ec11bb ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba23eb11 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbc4253dd ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdac31ef ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf08d3ae ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc27fc47b ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc29733ed ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6b906fe ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc81c9844 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8bbc929 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc72a049 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd490077a ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda45fe73 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe266589a ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe58c88ed ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6a9aaa9 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6d7bd87 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeaea2214 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec3345bf ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef45c62a ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5a2c160 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf61b9303 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf77a221c ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb018394 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb7669e4 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbddc041 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0b8d2e99 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0d909910 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x21ea2f0f ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3dd58df8 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4b09f3f3 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4e6d457f ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5ecd69ad ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x71a102f0 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8a754f3d ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb0f45a34 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb40a5d52 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb92c4db6 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x19564db5 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2b97b404 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5cd8e459 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e80c8bc ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa43a1378 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa4caa0a2 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa8e49111 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 0x1f892d38 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2a47fd07 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2b311eb8 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2dd1b9a2 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8ed5b856 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8f80a8e9 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb8fdb66e iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf070ed9d iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0466ecf5 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0817edd3 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1fd96445 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x239e7e0a rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x26473d5f rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3a8c3fda rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3ce2f9c4 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50b0e3e8 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x51b04d3c rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ed4b215 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7c5283f2 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8b9c768b rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9fc78bd0 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbb898b42 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc60fd15c rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd4c2c1d7 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe198956f rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfcc9066f rdma_resolve_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00f67311 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2c34e972 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x678f3731 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6be82992 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x82d1d8ad __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb723995a gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc26b6e1e gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc317df23 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xdebba820 gameport_close +EXPORT_SYMBOL drivers/input/input-polldev 0x13f707ff input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x329467fb input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x5a663b53 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa3a1adda input_free_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x46f0f29d ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x736171c7 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7aea9bfd ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7fcdf948 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x1f82541e cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x2f7e2e36 cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xae28787f cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xc293f274 cma3000_exit +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1b422044 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x302770c5 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x5095b754 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7e65e9c7 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9cf83d2f sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf9c7b36a sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x1c1e4703 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x251bc998 ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x8fe20087 ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xc4ca75b6 ad7879_suspend +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x57f7df6e capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xb3698331 capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x06c4f93e capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2df935ac attach_capi_ctr +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 0x5d26f465 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x866f7f9c capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8b253bd0 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x998646ac capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa57e39c0 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa5a3180e capi_ctr_suspend_output +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 0xbff6dcfd capi_ctr_down +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 0xf6ac3eaf capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x25b6ccc5 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x286a1be3 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x68869e6c b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6d32b2cb avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7545927f b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8319d240 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8c84d25e avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8f19a89b b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9889d85f b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9f70fe2a b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbe354bdf b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcea607aa b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd10afdb5 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdaade422 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe8eb7e52 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x087cd5dd b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3b8e574d t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6cf94b4a b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6d1a3db4 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6e7c57b3 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa645aa5f b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xac0fc651 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xce0024e8 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd7b95c06 b1dmactl_proc_fops +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 0x40f4bf0f proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1fd1e54d mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x23ed6aa2 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x2c04d3e9 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x57adbd56 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x64aae13e mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xd7988d9f 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 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x8429669e 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 0xe227344e 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5dc7c48c isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x6b3ded48 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa7124418 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xb6722323 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xc4ecbfc0 isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x3bb020d1 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa55d110d isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfca57b91 isdn_ppp_unregister_compressor +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 0x009f9891 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0220d95b queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x04bd4fb5 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0f969d15 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2d982f84 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x32c37119 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x38630580 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5168d0be mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x60d9331c recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x66e407bc l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6f081e90 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7bf6c1e8 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x916d2a12 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c8bd171 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa462f08c mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa6ad88e7 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc23f2345 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc54ce32f recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcf152e02 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd4dca5ed recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe5c72b73 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe60bdccb mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +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_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/raid456 0xc401eed4 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xf3209e5b max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x5beae53e mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x42584a67 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xf6800d9f mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x7d1de038 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xb6eb8818 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x128cbedb qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xc48e15ec tda18218_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 0x70b7735b xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xc7b66558 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0265c1ee flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1b4d0ffd flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x261fc87f flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x29051971 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x316b3933 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x317e989b flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x31fee26f flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3971d50f flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ffc1daf flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x52cff10d flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x52db7890 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5d45f149 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x66ac8554 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7cf7a884 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8c048b90 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa822860f flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb2cdf1c3 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe71a8b9c flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xea208c2e flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeffea093 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x048bfa20 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x1fe03ff1 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x26b6406b bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x786fa4c9 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x121e2dca read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1a4d4913 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x59460c55 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9ced9de4 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9ec1eb2c dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa2e5866a dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd488dbab dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe1913744 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xff8cf3ac rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x5405a82d dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x03f50229 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x09141336 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 0x2474d6f2 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f7bdd06 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3702553b dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39f61ddc dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3c64ecc2 dvb_net_init +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 0x6e1fd271 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x709785e9 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x751dd6d1 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 0x7b57f76c dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x852a5138 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e693dc0 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa91afe51 dvb_generic_ioctl +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 0xb1498dd8 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb67d2343 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb7ed5d1a dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc3959c83 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc62a10a5 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd09b2b9d dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd7e4fa4c dvb_dmx_init +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 0xeda5a1b5 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf4abd064 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf6913001 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf99a3da9 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfa524e3f dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0deb7f14 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x53da949e dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x63fe53a0 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x9e7a7e87 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa2cf9ae9 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb5b39e7f dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd2e3d562 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xaf2b36c5 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x02876b12 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x38cbc730 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4513850a dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x536ab65c dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x77a5e798 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x82928d23 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb077dbe8 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb76276e5 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbec4b913 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd9474c82 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe88fb4be dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xae0ee865 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x0ad0d285 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xc81db3a0 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xd96b8d97 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xcfb52c2b cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xb6e096e3 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x6c503974 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x043fbc34 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x35343009 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xb7c18ff0 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x2605aa7c cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x66c72f98 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7286c719 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7bb78d24 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xd65c97f8 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xebb4d4ce dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfa75f495 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3043a84a dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x327cba2b dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4e12ba27 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6126df20 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6ab854ff dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x702734af dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x884a08b9 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9ce28017 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xfd5326bc dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x05a2cb6d dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x3967cb27 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6b97e78e dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9952a745 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xe2842f0f dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf2a66358 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x2db51867 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x673ef284 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x84930593 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xe7d41e2b dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1a550380 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4c49ffef dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x89321793 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9685088a dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa34b9c95 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc32fec8c dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcff1c955 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd7881332 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x22f84a89 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2644838e dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4a87736a dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x60ab38d1 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7b9793f0 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa452ce54 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb484af48 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc06e8c72 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcff2ee7b dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd716d23e dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe78678ef dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x1417fba8 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x2095e657 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x344d08e1 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x40f46539 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xb001a1af ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xcd7a517b dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xb340fc58 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x7b40fc2d isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xdeb0a307 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xb1db7784 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x6c389a84 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x892b1a63 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x4465a5b9 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x829e6c1a lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xcec5a213 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x06478baa lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x831ec246 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xd15e62d8 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x5196a60d mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xe29d226c mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x4d7a9695 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xc5bae84d nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xcd20c946 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x733ddcc8 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xaef7f396 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x70c23c5d s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x723e3e2a s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x09b7764e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x6eaa2ffe s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x7129cc5f s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x2218fdf1 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xcc1de05f sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x1671a968 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x72aacc66 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x09d1fb17 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x82383773 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x67ae8cbb stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x5deff472 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x4044f704 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x2663a111 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x4b30a1c0 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x84234716 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xe274d69d stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xcf0d08ad tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xd0e4544b tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x1c29954c tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xc1bbd9d6 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xcb0274c8 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x9c9166a6 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x2ca68cb3 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x05d7bab4 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x69e67cc5 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x56362b2f tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xb9e92113 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xf78badfa ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xc584981a ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x7dc394f1 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xc4dba775 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x82c26fbe zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x1af8e2f5 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xc831d695 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xe3f6d75f ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2a184247 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x31fcf6f8 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8b3a1549 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x94517f59 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x96f3c5f5 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x97a15936 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe900e405 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xff298df1 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/rc-core 0x6848619a ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xc7025d82 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x81283cc9 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xb7115948 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xe00f160d bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x2a04b8bc btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xabc37e69 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/cx18/cx18 0x0b779fb8 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x1bd650ec cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x3274cb52 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9609212d cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xdb5d7a48 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x13c6d5bb cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x2d53583b cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x17510eec cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1f7a3359 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x4ec05ea0 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +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/cx2341x 0xe58fd5f7 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x2207b006 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xa72b823c vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0aeae1ca cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8890624a cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa40248bf cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb9351230 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xf8f5ed7d cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xfd592d9e cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x03480c82 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x11dfc4db cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x6297dd51 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x6c1cb01a cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8e866a4c cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa3139484 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1b971ffc cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x22ec5bf9 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2ec6f998 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3bab41bc cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3e82f06f cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4500420f cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x53fe5707 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x58d096af cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5bf28d26 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5ece739f cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8f956bd9 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x929f10c7 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xac3c4e3e cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2fa820f cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb379d270 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb92a0bc0 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbc86fdc7 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcc227675 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2da5b4a cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd7555640 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf3834a84 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfd77f819 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xd7a1d8f6 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xf775b662 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x21c378cb gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6de51c42 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x79578c7c gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8e2bea58 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc9b861ee gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xda08028d gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xe4c92e1c gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x09e3ed61 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0e7759f1 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x34444418 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4aefd11f ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6528267e ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x733f6a83 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x87d18b1a ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xabc1a23c ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xace2c84e ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcf7acbae ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe5e37222 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf63e0d03 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x03b299b6 saa7134_pgtable_free +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 0x1b2cd7ff saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x67ed0d60 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7a4ca828 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8a7bbc4f saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x92cce9b0 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xab7032c1 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xce6e8d45 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd8602b69 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe5149a65 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xeb3ebe2f saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xff93a465 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/soc_camera 0x095ed424 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x52a1f1dd soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb87a4cbc soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xf46b9ac6 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 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0xac805426 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf250ccd2 tveeprom_read +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 0x1abb5fd2 v4l2_ctrl_check +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 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 0x6e66658b v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x784f150f v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa4bf0ba4 v4l2_ctrl_query_menu +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-mem2mem 0x0faaed50 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x8253ee52 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xb3cf9369 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xc3601661 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x2df72834 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6034e364 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x96e20e10 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xbcaa9212 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xbd13fc71 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc394ee08 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videodev 0x003f3320 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x04b300fb v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0c0d274e v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x18f9e9ec video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x1d819743 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x270872f4 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x36d61f8e v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x3a833608 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x48ef711b v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x50f778cf v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x53932b4f v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x53a4bfc5 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x602d409b v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x63cd2811 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x65195b65 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x70cb906e v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x756e3c66 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x78ef4e35 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x78f938bb v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x79d7af2b v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7bc3bebb v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x7ce70213 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x88a1173a v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xa3b83b15 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xa50bcebc v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0xa6667337 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xa8a2eedf v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xb70f869f v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xc45cdd92 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xc60857f8 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xc6357640 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xc8adbcc3 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xd3ff4c30 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xdc0f74e2 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xdf42ad5f v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3fc8f08 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0xea9a63d0 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xfbf2fa9a v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x46a92856 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x57cd6c7c videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x7442c026 videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd6afdbf9 videocodec_unregister +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0805be50 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x113b1fd8 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x17d915f3 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x388b9c63 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7f7e8a1f memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb6a8b4a7 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbe37555a memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcc39bea5 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xde4f475a memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xed52d0f2 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xef107dfa memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfbc2787a memstick_remove_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x03394030 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0533116e mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x09447e97 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2d9f3273 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x31dd7bca mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x46f26643 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x484a1471 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x65701bfd mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x66c2d838 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x712d4c11 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x743b90b6 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74d77491 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7f66d432 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x82ab628c mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x875cbb05 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x957f08c6 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9ab5ad4c mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa2721ab3 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbe5c7516 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0656cd6 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc6a61d38 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcb85c1f7 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce375fcb mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd70dc4f1 mpt_device_driver_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 0xea6d70c2 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf5a141d8 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf65b4c4b mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfd9cbc51 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xff257391 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x010391eb mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0e0faebd mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x166a4a91 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1c960ecc mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28cf1d7e mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x40e05525 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x47c63ff1 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b44ccd3 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4c43455a mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4eb5db26 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4f5f3446 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5c3b1b11 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x62a395b7 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x637c5a07 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x74156022 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x774e435c mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x93c1d009 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x964a54f0 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9845242e mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa80560b4 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbb439486 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbb8d2c5d mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xccab7c6c mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd0de2dd6 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf7372bfb mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfc2fad40 mptscsih_io_done +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0c7dac22 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0f8c1e63 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x12506454 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1b191bb9 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x283118ce i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2933b6d3 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2b44b906 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x340ae691 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3969a9f2 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3fd05fa3 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x54777756 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5d78c5ff i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6a5aef2f i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x869c47b9 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8826fee5 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x927209bd i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x96ccc9a3 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa13f36ba i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa44a4507 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa545bcc2 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xca6a1dea i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0361670 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x09b035e0 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x2d7a4427 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x330ac4a7 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3eddc3cb mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3f506e42 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x67704bf3 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7285b138 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x78684ccd mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7cc1fbcc mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x83a05208 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x86e8960c mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8885f4db mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa056e794 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdf522630 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf956801f mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfd62a59a mc13783_to_mc13xxx +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 0xcd9fdda2 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xdc5215c8 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x26a824c1 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x90cbbbd3 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x5d7c2692 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x8e3710e9 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0e5b38d9 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x2179fd05 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x24a3d55e tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39de3e9d tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x426bc5ed tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x579a024a tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x58472fa2 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x7418dda4 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x8440c6a6 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8f0333ff tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x947aa64b tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xb3abcc5c tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x1f9735da mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1a82bf8d cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xcbe3243b cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd88581c6 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x031be7c7 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb121cf4a do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xce0f9801 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xdec7d1af register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x4461f82d mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xfda098a6 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x46cedd26 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x00bb12de add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x430e6b3d del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x1c70ab3d mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x6699967e mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x1ffc5522 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2022e1cf nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x50f19968 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x9306ab46 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xa11a1c0b nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc93d0322 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf7662ddb nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x394a52a0 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xbf9eadd6 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 0x3816e253 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x56ba36e8 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbb483424 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbc2fb02f onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x0a5bc408 ei_close +EXPORT_SYMBOL drivers/net/8390 0x194d5967 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x4c602b8b __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x60d1c1d1 ei_open +EXPORT_SYMBOL drivers/net/8390 0x8d62fda8 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0xac523e16 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xb1c1d5ad ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xb6fa4427 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0xd30f9d53 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xf40873dc NS8390_init +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1c6bf8ec arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x51905027 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5921733f arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x76703aa3 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9d3b3e89 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa7aec01e arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb15eceed arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdd932845 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xebe41a7d arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf61ce56c arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3a956cd1 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x65c7c456 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xdd104fd0 com20020_found +EXPORT_SYMBOL drivers/net/bnx2 0xd4c3cedd bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0xce21c70f bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0xc0e08337 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x08953e91 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x09a72bbf t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x183c0a4d cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1dc820af cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1e46e94d cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x22b898c3 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2502a58a cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6f4eabab t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8b0d60ec t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8d712db2 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa6924260 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb306ab73 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb9d9b0d4 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbc8776d1 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd17aaeb8 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf3142acc cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3bf76b80 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x4f071048 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5983f9b2 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +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 0x98b2c2c3 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa5291353 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaba07d5d cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb3a8fe03 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb5ab86fe cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd3652dde cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe6b0bfcd cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xebec6d9a cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf8b61b6b cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x811e0b97 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x859a588e hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9a34e64e hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe2a1bc5d hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf9a129b7 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2a3d19e3 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x59211eba irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5ad0a9fa sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x69dbc76a sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6bd7c5be sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x74d91b70 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8843d273 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa1d3718c sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc0814992 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd3a8cde1 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/mlx4/mlx4_core 0xf87599b8 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/pppox 0x16c75a8e register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x9334eb9b pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe2916fda pppox_unbind_sock +EXPORT_SYMBOL drivers/net/sungem_phy 0xa9068196 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x418166d7 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4b9959e5 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xab583fc0 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xb7604d2b tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xe319319a 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 0x0c3f2ded alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2492fb62 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6f6f9997 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7b7f8804 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x80652bf2 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9db99be4 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc6e473f0 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc7fe8bbd unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe0c935a7 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf706003c hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf732867b hdlc_close +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x734f8a56 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x1e8fd94f init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x8466f573 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xbc4f234b 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 0x32b3f4e8 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x33a7a793 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6029fdd4 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8cea3942 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x97e097aa ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9dca4170 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb04ab16c ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb9923356 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf6be0557 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfda6a297 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x82cfd903 ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa582c957 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf139db84 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 0x032c7147 ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03366d57 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04162504 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08982842 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x094cdea5 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x094d5a2f ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a3cef98 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a76f234 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x126bac9a ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x141df391 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1721d167 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x172d19a3 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a9f4cfa ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b9813be ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1cb00c5b ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ea634d6 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26e7b6af ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a96db53 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2de3bde3 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f94bfde ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x30f22432 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3216b5e1 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36626a45 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36e631d1 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39a6b9dd ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a6f18a2 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ab121cf ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e2e3e19 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f060395 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f89913a ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x41c3fa9c ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42f43367 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47d0ac19 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48449823 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55409472 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ae5b963 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e1b671e ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61f0780c ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66337a54 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dacc8cc ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e731db8 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e81a3a1 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fa72beb ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fec9544 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73e3c692 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75248fd3 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78eac3ca ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b4dc78e ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e7db95e ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83bdb911 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85b7b012 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a2652bd ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cd7cbf8 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8dd518ad ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8edf0bfa ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ef970bb ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9183e511 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9376fbe1 ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93e52fd9 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f017f55 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa22d06cb ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5802ed6 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa64989de ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7a88d29 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab866268 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb87348ee ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8d288c3 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb97db469 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb99eb8ba ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf871d13 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0ac9fe6 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc94459b5 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdad1645 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdf48280 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdcc65ffe ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1f17621 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3dee933 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7350141 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea55d5ad ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf011f53d ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3c0407d ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4ca8eb9 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4d1c481 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa244aca ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa2dc690 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc8bc756 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/atmel 0x5315efe3 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x6cbe495c stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x73ed9ae6 atmel_open +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00448cb9 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1913c2e2 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1ed03cd0 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2cd91e09 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2d4f79b2 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2e47f2cc hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2ec5269c hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3adabaf9 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x42f3cdd4 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x49eef38b hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4b7826b2 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4c7838b9 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x53c25f64 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x586e3587 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7c7d4b43 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8756db4c hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x879b976b hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9e06ea85 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa5232f97 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaad53c75 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xac395549 hostap_set_encryption +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 0xb57ec2a2 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd0a2dee1 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd1f73d3d hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdab38dd6 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x02b9c31b libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0359bd52 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x043eca0b libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0a8688dd libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0c4f339f libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x12e4b3ef alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x29906a4a libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x59ac4163 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x60826804 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7096676e libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7b3bc30f libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x89572daf libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa6e7f6dc libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb6ab4c17 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc01e3a2a libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd4440222 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd5c13f2d libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdccfb831 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdda9d48b libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf071a905 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf42d74fd libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00f33abd iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01f4caf5 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f8d98d iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0484c8e8 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x06f57e5f iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x089c7e41 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09926a00 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0bfac9eb iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e68e4ba iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0f05eec4 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0fc2ecf3 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x17add02d iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18387546 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1923c5e5 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d58d170 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23d20dee iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x25e9ba4a iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2a08fa0c iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2c51f63e iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ff1de8a iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3388ba20 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35093598 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37789ea7 iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37d6097b iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c5c7d21 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3dc4f7f1 iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x408f385f iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40b41fe7 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41681580 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x437634c8 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4448d175 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a91c523 iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4d218d86 iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4f2dba36 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51ab8720 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x580b9b3b iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ab5d597 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ad4dbe1 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5b334a96 iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x60774702 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x635d9e1c iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x64867668 iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6f1f5002 iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6f3be045 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x70f3285e iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x724c5016 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7395baf7 iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d89771c iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7df60abe iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7e368e07 iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7eddfc5b iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80da1d42 iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x829203be iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x920d75d4 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92aafd32 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92fdd609 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9325ad2c iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x97b75c12 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x993c9a4f iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9d598518 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9fcb6f44 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa207dd4e iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5d57095 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa841f0d3 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa8515023 iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9489ebc iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaed1c272 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf48416e iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf4ea0da iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8a8d788 iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbbe07ee5 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbcf7feca iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc65050ab iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcc0d104d iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd4bbd10 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd057c4d3 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd22ebdde iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2dc71cf iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd31546f2 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3e88213 iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3ecc131 iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd649654a iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd6e8d444 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xddb2f33d iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdf0f1cfc iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe05182f9 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3306eee iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3806a8d iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe4888a53 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7906d10 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea46c629 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec23ab33 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed2a74b3 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2faff6d iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf4bbd7c0 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf6fabd71 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf7a2d2f4 iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfaf00f68 iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc33dfe3 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe6292b0 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1a83ae03 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1f67a8bf orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x31aa0a5b orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4c13aa6d orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x52af022d orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x708313a8 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7122b268 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7b88c4c0 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x870f2e0a orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9341d374 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x95b4757e __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9664b3fa free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb589e9c0 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc6a55ef8 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xebb61b04 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfd8e4644 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0b500d17 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2f35d8aa rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x422d1e2c rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x470ab920 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8855252e rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa53966f4 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaa95683e rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaf352d83 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb6cea591 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe30c478c rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe364a985 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xed944787 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf892569c rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfb4f1383 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfc097073 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/parport/parport 0x025bbc33 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x036db3f2 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x054920fb parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x0d1a6c34 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x10667dcf parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x1e2af2e9 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x4100afe2 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x49c3a3ae parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4a07239b parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x58883013 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x5baa57cd parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x5f293a19 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x6302e80a parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x7a18c721 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xb03b2afd parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xb351e645 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xb47c794c parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xb7a34265 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xba375896 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xbebd8d12 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xbf4a5872 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xc3eb5ed8 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xca842dbd parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xccfb6365 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xd3562753 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xd3941a3d parport_write +EXPORT_SYMBOL drivers/parport/parport 0xe0456619 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xea6e163e parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xf178d4b5 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xf3b802b5 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport_pc 0x158b7cc8 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xb1491a42 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1c59b326 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x28493f88 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3e212c53 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3e236c17 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3f7b2d6d pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x471c28ad pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4dabbbb2 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6503cd86 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6992b205 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7f2b9b34 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x826c48a7 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x93951d3c pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xceeee4e7 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcf72cf5c pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd36da0e0 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd417f3ce pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe2cac79c __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe3a7ebd1 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe6b7fe16 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x473130d6 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5dd976fb pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8918910b pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa227915e pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa5f7c18b pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xba25f2b3 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc7565b34 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdcf21608 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf48b45ee pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe22a2e0 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x44cb2d32 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x927fec5f pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x8362e76b pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xb7f397b7 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xd07ee5ce pps_register_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x63f3d7e0 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7bd217f4 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x815ad90c fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9b74509f fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb32a103a fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe2a8f9a8 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xed2a1050 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x08c4bcc4 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0a24b494 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d963d38 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x10fede60 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15b5ad2b fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x18432c79 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x186ca747 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x19292617 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c11862c fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c3095d5 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x34d0fe9d fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3912eb24 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3ef26028 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f42d8ed fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x438b22cb fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47c3b49e fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x49277151 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c380910 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e582b86 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4eb37d0f fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ecf7a99 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f2c974c fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fe23caa fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x58aafc5e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x59c6e76a fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x65637009 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x679b61a2 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67d291e5 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x681a489a fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d16d11a fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e5c975d fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79e07588 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81d5c38a fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85ee1f37 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa2455d25 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa29f0973 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6207749 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb5975472 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca4d1a2a fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcc522fe4 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xceb623b6 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde0a244e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde34b34e fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0c00174 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe8801727 fc_rport_init +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x92399bfc mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x010fa1ce osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c162621 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0ddaecc1 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x14444b66 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x16edb55b osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x20a9280c osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x23765dc5 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x240f0086 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2a836952 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ad04a39 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x352c1e17 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x469b5827 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4fd2f941 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x683fc2f9 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6e9929aa osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x75a0f09c osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x77ddf264 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7ab434d8 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7fc9c8d0 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e2a0dc5 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x927be575 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97904e3f osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa1e79dc3 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa8b9dce5 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa8c33bf8 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb1297b17 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb515a51a osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf0ab7a3 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc4209eb7 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc74de061 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd915b8ab osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdc506ea1 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf26c2201 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf42c3e9e osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf9327023 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xffd14991 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2c6d2916 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3c37a59b osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5110fc28 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6e1fcc80 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xdea26da1 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe8f94c97 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x01b2ae77 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x22b7ffe2 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x391c4802 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x9d5ff4b1 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 0xf3dd5b33 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xfd970d76 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/raid_class 0x187abb5c raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x3d2cc990 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xdd7926eb raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0057ada7 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1338cfeb fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1b37c8dd fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2934d89b fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4f1ddc8f fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x89e08936 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x99b5258a scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x99f13809 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb1cba251 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc450c26d fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd1ee4631 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xde308267 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xebcb7fc6 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x011e207a sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x079e8dba sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x10b0bc5b sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16837e61 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1c258dba sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x20173d69 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x22db17c6 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2fc77e6a sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3362f432 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4366eaf8 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x446728ec scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4e14844b sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x535436a5 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5d56a160 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x807f24fc sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x92dc30a9 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x93707f5b sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa8d88066 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb019e89a sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbcd8a223 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb13dd9b sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe24399fb scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe415a1fe sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe8bff3b9 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf0971609 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xff8ba97a sas_port_delete +EXPORT_SYMBOL drivers/ssb/ssb 0x148c0d0b ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x15269e4c ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x18d6620a ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x1ea90701 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x247e6c78 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x422b4fb7 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4dbba0f9 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x567034a8 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x56f07dae ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x5ac850f1 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x65410f81 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x86a097bc ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x8922b07c ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x8eb3d44a ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc58cb687 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xc8588dd1 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xc9388253 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xcdfddcc2 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdf4c601c ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xe2afd35e ssb_device_is_enabled +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x32cdb652 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x35aecc34 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x46f416ea comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x60dc5032 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7093f3ea comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7bedd99e comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x81371b70 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x95b52fde comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x97d552ec comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9a1ee6a7 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xae4f9c82 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xb42a768f comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc5be14d0 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf37b8b5d comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf902d905 comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x175b4caa subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x18a88c01 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x529de8d3 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x86db68c6 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x77ff9279 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xd3b44695 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xecf7a9ab cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x043c038c mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2368b972 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x32b3fc2b mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x454197b4 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4acbc850 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7862b7e6 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7f718ab2 mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x906bafc2 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xbaac401b mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc14d263f mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc7a19a95 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc85d2ef7 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd873e88d mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdeedb42c mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe12f32a6 mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe445bfa1 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe6adf13a mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xea6e3543 mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf61b5b8c mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfa82bac7 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x85ba4466 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xa7fa06fb subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xb6f0ce7c subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xc82f314f subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x8934ab43 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x00480382 comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x48cb2e80 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x4b6fb63b comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x6ae3cd46 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xd9f15391 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xee267902 comedi_close +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x3420cdde cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x4eab4326 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x50379b19 cx25821_risc_databuffer_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 0x8945bcae cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x940ee03a cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xb2034895 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xc9eefa74 cx25821_dev_get +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd699a99a cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x01804e80 go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x0de991a1 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x2efa9b96 go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x5899a1f9 go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x714e5f13 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x7cda9bb8 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xc9e343fd go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xcc7851bb go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe5ac9b11 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x0ae7149e vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xa7536e7c vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdedce636 vmbus_recvpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xf3c40cce vmbus_sendpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xfad3d0a6 hv_cb_utils +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x6d60bad9 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x81137460 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xe4c04b73 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xecb1b524 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00473cc0 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x03e17554 iio_free_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x10ff3a08 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1943b8f1 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x19ce304d iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x26a6a62a iio_alloc_pollfunc +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x28cda366 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2b2ffb05 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3056dcb0 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x38398301 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x40dcb9e5 iio_get_new_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e7b04b2 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x54684ed1 iio_triggered_ring_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x55c1ac69 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6acffff9 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70586624 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x735c274f iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x747a6d6d iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x790075c9 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x82ed8456 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8e865f5b iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x98cf3c31 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9db04e44 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa0d1d0d3 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa9ceb76e iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0ceb1f3 iio_read_ring_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb5c57873 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb8c9b065 iio_triggered_ring_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba008d77 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba21c8a9 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbb2c1732 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbec8b701 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc6d1ab65 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc9b40a41 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcf73823c iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd210b4b7 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd21a28c8 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd2c6cb20 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd7f35934 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe1cef5b6 iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xed8fc9a1 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfa4d0456 iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xffacd657 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x79c77b34 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xdb1925da ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x07a6b03a iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x29c65b86 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x324e3d75 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x375b345c iio_sw_trigger_bh_to_ring +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3e33405a iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x439d999f iio_sw_ring_preenable +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x461fa577 iio_get_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x674ee099 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x782d7cff iio_set_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x86e0e6a1 iio_sw_poll_func_th +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8dd17166 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9ef422d4 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa57b64d4 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xafc029be iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb1136985 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc0d2bc30 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x01eaf087 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0719e957 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0bf1af2d ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0ec3dba8 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10b5b89c ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10d7fc1d ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1ba736bf ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1cd1f4cb Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1fcc7fe2 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x222952c4 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x293bdce7 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2942c7fb ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d7a4877 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x33b701b5 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x34e71a1b ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x360ade47 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3b290f7d ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x402f7c8e ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x418f42c1 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x420263b0 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4236909b ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x442c36eb ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6cdd5daa DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d58ccb8 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6dd37b02 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ede12ed ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x804ec84f ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86abec9c ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f162b8b ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x901446d8 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x915fc61d notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9466bdbb ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x98903799 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d7cbe28 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7fe0a32 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb4d1f13d ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7ee06cd ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb8540355 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb2be866 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcaaad469 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcdf9dcb6 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfbf18fe ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfe2d139 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8babfab ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdbbe4c31 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe06e004c ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4df1a11 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe85046db ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xea718ab1 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed1ca7cf HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf085e4bf ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf157d85e ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff841efa ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffe2562f ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x20e7d40a tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x51c20eef tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x6efc1892 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x0eaa8c82 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x2deee615 usbvideo_TestPattern +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x37e8306b usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x913c3af7 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd707b3f8 usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xf19c07e9 usbvideo_register +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 0x1483855e vme_dma_list_exec +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 0x556be5c6 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x5f6953c7 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x6c28a610 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x75f55bf1 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7e80c2b1 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x91ca1f12 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x966c379a vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x9a2af0f8 vme_dma_list_free +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 0x9de30245 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xa715efa7 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xaeaeeda9 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xb47f6fe2 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xb7ded289 vme_register_driver +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 0xdbd5eccd vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xdc02a88d vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xea35b0b6 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0xff590930 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x07a5b133 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x09c4bd99 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x18be5720 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x1e398c87 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ee8eaf8 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f5cc925 transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x30684f0b core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x316b7176 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x31a066d2 transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/target/target_core_mod 0x332189c8 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x400a55e6 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x423355f0 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x51fbcb9f fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x538954bd transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x539d407a transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x53e671ad transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x585bad18 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x5f768099 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x6827da9b transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x68d2d907 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x691281ab core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x694d5312 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x71ff5d1a sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x768fcc46 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x77cab00d target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x786d418d core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7c9136f8 transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x80b3cfb3 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x85343548 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8c41a245 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x8eb59062 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x934fc0f1 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9af43f65 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9efa5da6 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xa69a3893 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa816dea6 transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xac44d7d7 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xaebd719e transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xb03d8151 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xb0836a8b transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xb2aa1397 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xb575a9ea transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xc06b55b2 transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3375bd9 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc6337cbc sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xcafbce70 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc9c6e8f transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xcdfb7c6e transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd09ba9e5 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf5293c2 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xe480330d core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf75e52ce core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xf7b91e93 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9307b9a transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9446998 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/telephony/ixj 0x8a3d7aa6 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x3e8ac2f7 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xbdd40fb3 phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x90fe359b net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xb1e25787 usb_gadget_probe_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xfab9e2de usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xc5484dba 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 0x1ce1307b usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x352f5b15 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3bdf2a78 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x67365458 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6c293bd2 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x712e94f2 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x78a34ea1 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7bb58d90 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9879e441 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xba5b34bc usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd694b240 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdd2c1613 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdf932afc usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe6d277e2 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf406e7f6 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x22487d34 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x9dc94853 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x57d36e28 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xef0da37d lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x1fec81dd cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x7408ce6a cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x77e828d9 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd67543e7 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x24733fc6 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x43abb866 display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x2f72efb0 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x8c2e1930 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa6fac519 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe657c394 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6336fb1d matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x7e236fc1 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x90410cd4 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc5f52651 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x86df0aff matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xf7d9d94e matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x477d6d8e matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x70da814c matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xef2f2ead matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xf56e2cd7 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x22161f14 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x82dc2e0c matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x63d0adbe matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x94b71691 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa8140a03 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb3c7a926 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd19b6c47 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xa9df29dd mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x3453de9f video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xa6923ee4 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 0x4d7a8f91 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x589dab73 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x5ca7c40c svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x692888c3 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x69579bfc svga_settile +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 0xd919e5e5 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe7265938 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0x26bf6416 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xe7b52381 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xd32fe1fe 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 0x02a708c4 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x3f1e1ee2 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2eec1500 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xcd259025 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xdd6dd1ca w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe070de4f w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x05fcd286 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x1c87d8a9 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x2cde2004 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xe0f9c4a2 w1_unregister_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x063001b3 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x297d7171 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x3391b90a config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x342fcab0 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x3d28f094 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x4168184f configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x5447b232 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x5fe1db1c config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x74e63024 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x912bae03 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x9e7afd58 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xe928a8ae config_group_init +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x09be08ae __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x0d0b2f89 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x19e27906 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x2915a3c7 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x2b957a1d fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x2bc19a93 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x30856cf8 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x33a01ca8 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x341df8bd __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x3f40cce8 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4537d69f __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x4fd3745e __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x56bf9a5a __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x6afbbd3b fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x810131b6 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x92186a2f fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x95491557 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x9a953bba fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x9cec0082 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xa0b63d20 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xb2c147b4 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xcceb3c43 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xd4b0b47b __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xe0fb787f __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xe5f8129d fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xfad832da fscache_check_aux +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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x0edd9c97 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x17cbe0ce qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xa4bb344c qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xdd361f68 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xde4f51ea qtree_write_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 0x225629c8 lc_put +EXPORT_SYMBOL lib/lru_cache 0x2786fb37 lc_del +EXPORT_SYMBOL lib/lru_cache 0x2a2c41a6 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x39824484 lc_find +EXPORT_SYMBOL lib/lru_cache 0x3d03f8a1 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x56e0adec lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x5de6f4a3 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x6c2ed45c lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x95ea7673 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xa85ef365 lc_changed +EXPORT_SYMBOL lib/lru_cache 0xb0d91088 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xbcb216e5 lc_get +EXPORT_SYMBOL lib/lru_cache 0xc9bc2538 lc_set +EXPORT_SYMBOL lib/lru_cache 0xefb447fb lc_create +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0xd79cce6c make_8023_client +EXPORT_SYMBOL net/802/p8023 0xe456aa58 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x07306492 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0x0da48ee6 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x126746ea p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x1dde6ce9 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x22d5d146 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x266714d9 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x274a6bb5 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x289f6384 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x370524cc p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x3a92bcae p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x48fcbfcd p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x4c494e6b p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4f2dc329 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x77d4cf88 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x7f7fd83d p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x8dbe78fd p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x987fdde5 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x9c831e88 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9d075715 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xaf087e90 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xb17be234 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbc205475 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbcbb25f8 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xbeaa1442 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xc3d2c6f9 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xc67ade20 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xc7e418f9 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xcdd698b4 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xd2941e9c p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xd88848d9 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xd9cddc10 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xe3491f3a p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe816a326 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xef406db2 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xfc5ef2c5 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfd0e8e25 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xfed4230a v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xfef2e29f p9_client_rename +EXPORT_SYMBOL net/appletalk/appletalk 0x6efd5695 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xc6a66ce8 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xc6aa0c14 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xcbd580ac atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x24a1450f atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4356ef09 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x5bfd73c6 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x611d2e0c atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x61352608 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x61adf54b atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x65ffa738 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x6618fb48 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x79186226 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 0xb58e2d5e atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xc7262d88 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xd36b1934 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xefd3bb55 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x133aee5a ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2464d0e8 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x50707a3f ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9c739a64 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x9d946210 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xb40e31cd ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcc82b1a3 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe822a198 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xf1ead24d ax25_linkfail_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x23a3acbe hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e29f872 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x33eace84 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x382c7372 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3aa7fa4a bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3e6543c2 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x413c3df3 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x456cea2e bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e7b5658 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f39159f hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x50cdfa43 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5558252c hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b6bce8e hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7224013d hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d54dad9 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a894cd6 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x921923a1 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9b1260be hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9f5b70ed hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa643d2fe bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac9e427e bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb181ad99 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc006b72c hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2c75119 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc3bf3bea bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9c2e0f6 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd08ecf46 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5877ffe hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde400d49 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe62cebf9 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeef09aa8 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf40722f1 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf9c11c73 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xffdb9255 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x82e56019 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x485ce6ef ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc9a13fe3 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf45d5e9d ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x01fed052 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0x05118cf5 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x16178a56 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x19722811 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x1b21fcb7 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x1d7f6451 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x2829e735 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x43adacb3 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4c539906 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x4db9f1d6 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x6217b255 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x7022ecd8 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x75395032 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x7df983b1 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x84280576 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x9426d1cd cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x977bebcd cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x98ccb9a2 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x9cd1190b cfpkt_create +EXPORT_SYMBOL net/caif/caif 0xa418b639 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0xba367be0 cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xbec21b0e cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xc309c376 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0xc5163214 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xce96b81f cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0xd36a5627 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xd828c1be cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xdfbe6aca cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xeb2b3739 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0xef2f24c5 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0xf3ffd853 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/can/can 0x19aa94e1 can_proto_register +EXPORT_SYMBOL net/can/can 0x47d471c9 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x887ff0e5 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x99deb88a can_send +EXPORT_SYMBOL net/can/can 0xbf2ef8eb can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x0276737a ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x0364fd2a ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x068b09f9 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0bd50b93 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x0d495c3e ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x12c1b7b2 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x22b8a98e ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x2a76922c ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x2f70f02a ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x30c89177 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x318aa4b3 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x37091991 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3c11a32a ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x463f0ba3 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x4b945b2b ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x4c5d2f97 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x51b6ad5c ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x53bf955c ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x55947b54 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x57d20e8a ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x5cd578cf ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x62dfed53 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x696ab3ce ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6b4ad9ac ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7a391185 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x7ab9e8ef ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x84fbf597 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x89d92d0e ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x89e07ae1 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x8bc2da06 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x8ead6de6 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x91742005 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x9776544a ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9ff31f88 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa3c2341b ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb44c9456 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xb4bdea7a ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xbe90bbb4 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcaab917e ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xcb695afd ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xcc04edb4 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xcd3a0997 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xce033ea9 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xd64bec4b ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0xd64c0a55 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xe1d0e256 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xe66da465 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xe891b649 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xe9ad20e9 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0xf1d2717b ceph_create_client +EXPORT_SYMBOL net/ieee802154/ieee802154 0x11aea782 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x43e3f32f wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x48cdb336 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x50a1c907 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x543ff289 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x80ba2010 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbdb70fb7 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc4908d28 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc9e8ff40 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd267553a wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd3e77339 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf8a4e812 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf9e6138f wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5ce08f12 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x670d2b6d arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x9968fec7 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x07937d9e ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb33168fc ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xefd88d28 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0023e695 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x375dcabc nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x483b4db8 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4c5c772d nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9c8e0f12 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe7e3c1bb nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xefbd1fd2 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/tunnel4 0x4f66c1db xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xff01fa4c xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x29846df1 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x60a0b67e ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x69512841 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa1e03934 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x24456a4b xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x340d0851 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0eda2360 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xbfbc97a2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5fcb9aa0 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x77f90214 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x90456e29 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa0ba526d ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbbb3449a ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc24c089c ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xee7db5c5 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf5494145 ircomm_data_request +EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x04ce34d8 irlmp_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 0x0a14a9c5 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x0bd65335 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x0edb39a1 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x1572e4bb async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x18c99804 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x1e5da8af irttp_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 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x2c464423 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x2e3035cb irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3e6b7944 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x41ed78c5 irlap_open +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 0x4db64f9d irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x55d13f39 iriap_close +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x686bbe81 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6d1dfb2d irda_notify_init +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 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x937bc99b alloc_irdadev +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 0x997ea70a iriap_open +EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x9b243a16 proc_irda +EXPORT_SYMBOL net/irda/irda 0x9e3ca79d irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa65f6f35 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 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xccdba939 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xd1e7d65f irlap_close +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xddaaa0d3 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe1caef86 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xe41d0562 irttp_open_tsap +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 0xf3628d0a async_unwrap_char +EXPORT_SYMBOL net/l2tp/l2tp_core 0x62b2a31d l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x36a3ee69 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x663db007 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x8b09e676 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x8f2b00df lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xbb3e19a6 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xca755096 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xd657ec58 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xea505d48 lapb_disconnect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x0077ff23 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x0813431f ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x0c8d4479 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x100e7914 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1672a5cb ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x194487a5 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x220ab9ca ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x25bf858e __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x32935dd4 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3e541dd3 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x419e67ed ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x45a64b66 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x471f4df4 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4e5e5753 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x5463a99c ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x55e4cbbf ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x56abd4d2 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x5749e586 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x66662aa2 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x67787873 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x72300a7e ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x80465264 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x811e7e8a ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x8784a311 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9231dde2 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x9c8d2ff2 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x9ef6e3d3 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa09858a3 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xa9b1c022 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xb8460091 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbc7114ba ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xc1e1dbfe ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc341fed3 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc49f9e3e ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc5b355be ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xca34f3e5 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xd4dceb85 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe1fd6a43 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe81da51e rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xedb23f81 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xff484e2a ieee80211_ctstoself_duration +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x001dab18 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3b5599fe ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x53a0bde0 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x577b4a12 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7a984648 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7e0a65ce ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x95d04c7c ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb755f623 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd0c8faa6 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe8432191 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xed8fdbff register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfcb5d54b ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7c328cc4 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7c43f6bd __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xcff206dc nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x81df1027 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x00c521f8 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x128b1701 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x2af6ebc2 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x3b705c5c xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4c8f63bd xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x53cd36a1 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x61646127 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x97be322f xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xcd579bd3 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xd82cd585 xt_register_target +EXPORT_SYMBOL net/phonet/phonet 0x04233646 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x40b49fa2 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x4538cfcd phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x54809b42 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x7a028203 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x95977e11 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xedc02031 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xfddef707 phonet_proto_register +EXPORT_SYMBOL net/rds/rds 0x1c9be661 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0a3516bd rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2f265f2b rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6457793e rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6861a5f0 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6c2804e5 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x99320ed4 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa88f6424 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb3ed2513 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb47ea42a rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb7fa34e2 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc253f3aa rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd335645a rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdad75c7a rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf1a7a51b rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf4c81319 rxrpc_get_null_key +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0244acf2 svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0x563f4a04 xdr_terminate_string +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xf471dd59 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x1d6b40e1 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x1fdd11bb wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x00b68607 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x1063ca0b cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x18e9e879 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x1a7a95fb cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x23bbd3fd __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x2aac6f52 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x2aff39db __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x313283b6 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x3bec6795 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x472c107c cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x4fb9ba75 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x518457c8 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x5e55707f cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x682610a5 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x7512f51d cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x759c0888 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x82501483 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x84e9141e wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x892e1f80 cfg80211_send_disassoc +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 0x9d47ba9f cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xa30070a1 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xa42a4701 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xa62d695a regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xa6b3f051 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xafded65c cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xb156066e ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xb323be81 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xbbdbdb5f cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xbd96dfc5 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xbe3bb4ac wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xbef63e15 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xbf453884 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xc11b2d0a cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc907d00d freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xccbed970 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xd21ebc21 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xd579fc8e cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0xd66268d9 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xdc54f388 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xddd106d9 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xdef85d2b cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xead787c6 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf5f86188 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xfa486d03 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xfb126e1c wiphy_free +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x2cd91f68 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x6c3c5f94 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x78e0c56d lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xb005e52a lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xc68924b9 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xe5672598 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe8c124d4 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xec95dfad lib80211_crypt_quiescing +EXPORT_SYMBOL sound/ac97_bus 0x017400da ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x86c03a43 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xaf7290f4 snd_seq_kernel_client_enqueue_blocking +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 0xd4cdfed8 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe7e16f0c snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 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 0x917d1a0e 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 0xeb010e40 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 0x843978fb snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0901c064 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1de64a7c snd_info_register +EXPORT_SYMBOL sound/core/snd 0x1f64c17f snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x2186575b snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x22aa7f30 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x26e9df13 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x28681e18 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x2919422f snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2becef87 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x3676d1bc snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x509b1b0b snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x50cc1821 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x523a7d04 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x560cd515 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x5d7973da snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x6494676b snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x66ba5f70 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x66c9daba snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x69ed7349 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x72496e9d snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x826280dc snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x847bff4a snd_component_add +EXPORT_SYMBOL sound/core/snd 0x87c69816 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x8d59d046 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x931322b3 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x9c5e0586 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x9c84235d 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 0xa27943b2 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xa2935061 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xa3e061fb snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xa44cb81a snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xa5324a32 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xa7d4624a snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xc86dbef7 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xd40b5890 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xd45181d2 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xdf1f8ae1 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xdfd46645 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xe1366af1 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 0xe7b5e022 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xefa6ecdc snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xf4632422 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xfa4b3772 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xfec7d6b8 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xfff98571 snd_cards +EXPORT_SYMBOL sound/core/snd-hwdep 0xae2f76d8 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2669bfad snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x9ca5f359 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb085ec67 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb65b9f10 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf28b353d snd_dma_alloc_pages_fallback +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 0x1064b7b7 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x1265509e snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x136e5d06 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x17d7f9fa snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x20548b75 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x24c6968b snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x2666c96e snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x27d28e91 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x28464870 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3c433da6 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x4a506f70 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x4dbdbad6 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x53818c5f snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x561215d3 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x60d2cc03 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x63286926 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x67ced7e6 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6e346531 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x756ff330 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x7a87653b snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x82681ea1 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x8354ccdf snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x87ea3268 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x8ce22921 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x8dbefeab snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x9462f0c7 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x95699fec snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xa53925e0 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xb912ac07 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbd29da3d snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xbf64b737 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xce2a8776 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd1b8a0d1 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xd43f4f2a snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xd7919d66 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xd8887728 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xd8ed5449 snd_pcm_new_stream +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 0xe8e67d23 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xe982af8f snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf079ffdd snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xf0bb43cc snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfff1533d snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0c02d2dc snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x200b3834 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x26971ed7 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3050ebca snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x45e826b3 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x475379a5 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x55c6e5f9 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5bb91f5a snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x606c9c70 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x60e96dfb snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6fa83e86 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x83a30c3d snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8a3e3542 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb3a2545e snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdfbaaff0 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf0c56030 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf8d8ceca snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-timer 0x0768ebbd snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x11788cfe snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x2120c21e snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x403ee549 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x4d09be82 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x965faf02 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xa14139c4 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xaec9334c snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xccb48ae3 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xe47f9c18 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xef90915f snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xf1fe1d59 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xfe483b99 snd_timer_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xfa14b515 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x348bedde snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x40b0576b snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4d17613f snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6062c9e0 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x63082a14 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8b6eb28b snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd245d503 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd35e242b snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xea233bfc snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2bdae0b9 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x43ce614a snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6d9fffda snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7e997ded snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8cd7a31a 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 0xcef46714 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdbc58ce5 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe1be7751 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfd2ea8b1 snd_vx_dsp_boot +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x35b755e6 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x48758385 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x528cdee3 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc0b8795d snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcc0ca99f snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd64cdfc4 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x06fb851d snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x085b4d20 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5cf2f326 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8e7c7679 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8f6a1edf snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe6c70ff6 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x3c9a96a2 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x573e0090 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x690c31cb snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf4f83ce9 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x2cf874d0 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x80874612 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x5f2d9de6 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xdb84b403 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x75622d00 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x97b7e088 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa94cfc20 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xab4f4e75 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc963ad99 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2dd9f2d2 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x31062bf7 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x383d0fc1 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x65f25948 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xba001619 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc12ae794 snd_i2c_probeaddr +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3330659d snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4c9a5673 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4e48354b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7ab5f966 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa7f73d9f snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb16d2583 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd2fded61 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe02579ba snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe786daa3 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xef61f5f4 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0f8e4b60 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x102423d3 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x312d4463 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1650264b snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x28c0ad3e snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2c6598ca snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2d44c19f snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x39ce0ed1 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3ce713ee snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4ce3610b snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x57a1112e snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x612c9f5d snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x82a230cc snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8d5d6bac snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa034d6ed snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa84fcf46 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc0ba7d8e snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc88b9117 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe485428f snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf938c01a snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xb3ddfb8f hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x252ca64f snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3a9607ee snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3d2b73d1 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x47d506f7 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8eccbeff snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa75d8a56 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc6dfa526 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xcec911af snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe17f3415 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xa4d34df6 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x5662d57e snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x59bb139c snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x63f44164 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0081ed1d oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x08905482 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x11b757e8 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2230cb65 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x233a585a oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3107b6d6 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x61854082 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x68f72c28 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x84e69181 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8cf03537 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9375d098 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x966303a0 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa8d2dff2 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xab9a3612 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xac4d8f35 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xafb37895 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbc28e9ed oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbd3dad7c oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdebb9922 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdff42fcc oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe716cf80 oxygen_read32 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x065c9bfd snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb5985040 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb5a192d5 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc8ab30d9 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf6befe2f snd_trident_alloc_voice +EXPORT_SYMBOL sound/soundcore 0xe9ffb342 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1297667d snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4cb10ee2 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 0x87f125a4 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa191649d snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc0d9fda4 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf33de8ee snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1a51ef19 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x382615ea __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3f0c61e6 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6e9f9676 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x835fb840 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbe25af55 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf22bc230 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf677df0a __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x720b62ad snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x2dee8a78 dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x3712c69f dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x74b1d209 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x84eafe76 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xaa5fff44 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xfbd5ad89 dm_mem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x0034c7b5 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x004219a0 padata_alloc +EXPORT_SYMBOL vmlinux 0x0043dc68 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x0055d067 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00ca829a dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x00de6ad5 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x00f4e199 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0116a579 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x0120f591 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x0125000e cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x01365de5 netif_rx +EXPORT_SYMBOL vmlinux 0x013b5b44 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x015e643a tcp_disconnect +EXPORT_SYMBOL vmlinux 0x0164fbd8 iterate_mounts +EXPORT_SYMBOL vmlinux 0x01680c38 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x0175cba0 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x01826ebe kick_iocb +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01fd0efc tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x02015973 mount_nodev +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02299298 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x02378d6f __lock_page +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023e5686 dquot_enable +EXPORT_SYMBOL vmlinux 0x0247661a cpu_info +EXPORT_SYMBOL vmlinux 0x025ca0e3 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0290131b __rta_fill +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02975f84 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a36185 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02ba832f netdev_warn +EXPORT_SYMBOL vmlinux 0x02c5d459 kthread_stop +EXPORT_SYMBOL vmlinux 0x02cb3412 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x02d1e3ec mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x03022b06 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x031b5ec5 serio_open +EXPORT_SYMBOL vmlinux 0x031d451b create_empty_buffers +EXPORT_SYMBOL vmlinux 0x032043e6 d_invalidate +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03593166 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03874109 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x038d21d9 skb_put +EXPORT_SYMBOL vmlinux 0x03947a8f bio_put +EXPORT_SYMBOL vmlinux 0x039f79a1 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c99ab1 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x03e7b45b blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x03eb9614 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0415ccf9 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042aefcd journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x043b4445 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x043f755d framebuffer_release +EXPORT_SYMBOL vmlinux 0x045c64c3 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x045d628d blk_start_request +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04927208 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x049be481 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x04c2175b tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04e90166 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x051a67a2 sock_release +EXPORT_SYMBOL vmlinux 0x051c2f11 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052f9ff3 icmpv6_send +EXPORT_SYMBOL vmlinux 0x054f7fee tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x0562ce5a dquot_transfer +EXPORT_SYMBOL vmlinux 0x0563ce27 soft_cursor +EXPORT_SYMBOL vmlinux 0x05706ed7 is_container_init +EXPORT_SYMBOL vmlinux 0x05a8a6c2 journal_wipe +EXPORT_SYMBOL vmlinux 0x05c0e1b4 kill_anon_super +EXPORT_SYMBOL vmlinux 0x05e56716 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x05f7ae4b tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x064da1a0 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x066290c5 security_path_truncate +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x067dd79c dentry_unhash +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a44fb5 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06cabfad blk_fetch_request +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06f962bc module_refcount +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07286265 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x076be74d get_super +EXPORT_SYMBOL vmlinux 0x0790a866 elv_add_request +EXPORT_SYMBOL vmlinux 0x07927514 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b792a1 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07edff7e mdiobus_read +EXPORT_SYMBOL vmlinux 0x07fed670 sk_filter +EXPORT_SYMBOL vmlinux 0x08073a04 generic_setlease +EXPORT_SYMBOL vmlinux 0x080927dd skb_queue_tail +EXPORT_SYMBOL vmlinux 0x081db35b pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082fb481 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x08636455 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x086b83ba scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x086e9372 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x088815dc dm_get_device +EXPORT_SYMBOL vmlinux 0x08967aa5 journal_forget +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08a2a747 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x08b740cf vfs_unlink +EXPORT_SYMBOL vmlinux 0x08cd3a27 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08f29fb5 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x091a27f5 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x09469d6b flex_array_shrink +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x0957f063 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x09834c05 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09b46670 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c4b8c0 pipe_lock +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09eb4cc3 cdrom_release +EXPORT_SYMBOL vmlinux 0x0a0ebbed mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a508599 tty_shutdown +EXPORT_SYMBOL vmlinux 0x0a950a93 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x0a966a41 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x0aab6a78 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x0aacd352 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x0ab7b41a override_creds +EXPORT_SYMBOL vmlinux 0x0abdf610 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x0abfa574 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0add7096 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x0aeaa2b2 seq_release +EXPORT_SYMBOL vmlinux 0x0b08c2e5 is_bad_inode +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b13b4b1 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x0b1560a1 wireless_send_event +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b28ad13 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x0b54637a jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x0b65f47b ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b79e1b8 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x0ba73a2f xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x0ba75849 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x0ba77764 mmc_free_host +EXPORT_SYMBOL vmlinux 0x0bae580c xfrm_init_state +EXPORT_SYMBOL vmlinux 0x0bf86865 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x0c1e7c61 dev_add_pack +EXPORT_SYMBOL vmlinux 0x0c2b0a53 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x0c4c4564 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7762d4 load_nls +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cd150e3 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x0cd59c07 vfs_read +EXPORT_SYMBOL vmlinux 0x0cf29578 node_data +EXPORT_SYMBOL vmlinux 0x0cff1d79 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x0d17f240 follow_up +EXPORT_SYMBOL vmlinux 0x0d2050b0 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e17cd50 vfs_getattr +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e748247 phy_attach +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e824d21 path_lookup +EXPORT_SYMBOL vmlinux 0x0e911254 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x0ea9ce93 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0ee4a3ae i2c_verify_client +EXPORT_SYMBOL vmlinux 0x0ee5f68f journal_init_dev +EXPORT_SYMBOL vmlinux 0x0eeccb62 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x0ef716fc pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x0f153df8 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x0f218bca phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x0f22cf38 i2c_use_client +EXPORT_SYMBOL vmlinux 0x0f23bb79 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x0f25d22e tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x0f2c1307 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x0f39d3a1 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x0f4681cf agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x0f5af008 intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0x0f5dc674 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x0f62d3db blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x0f741042 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x0fa7ae72 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x0facdc5a __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc80009 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x0fccd91c skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd0ecc5 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff5cb97 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x10046992 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x101ada37 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x10327857 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107deed1 __free_pages +EXPORT_SYMBOL vmlinux 0x1099bee0 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x10d6747c follow_down_one +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10da41c8 security_inode_permission +EXPORT_SYMBOL vmlinux 0x10dca63a pci_find_capability +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f8b700 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x113883c0 dquot_file_open +EXPORT_SYMBOL vmlinux 0x114fa64f eth_header_cache +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11ab9b7c block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x11bca9e0 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1211455a vm_insert_page +EXPORT_SYMBOL vmlinux 0x12164dd7 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x1235b93e in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x125110b3 ps2_end_command +EXPORT_SYMBOL vmlinux 0x125c5c9d blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x125ea3a4 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x127a373f try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x1296c490 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x129de341 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12c66ae5 sk_dst_check +EXPORT_SYMBOL vmlinux 0x12cad7a2 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x12f22d0b tty_vhangup +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x130a9aca generic_listxattr +EXPORT_SYMBOL vmlinux 0x13301dd2 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x133653ef compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x13657f11 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x13746cfa xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x13786772 mpage_readpages +EXPORT_SYMBOL vmlinux 0x137ea909 do_truncate +EXPORT_SYMBOL vmlinux 0x1397cd08 skb_checksum +EXPORT_SYMBOL vmlinux 0x13b3d064 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13b7eb6a pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x13cdd838 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x13cffaa0 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e2f414 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x13f24db4 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f445ac mmc_host_disable +EXPORT_SYMBOL vmlinux 0x14148766 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x1444f052 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x146f445c unload_nls +EXPORT_SYMBOL vmlinux 0x147c8621 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x14911f1d dcache_readdir +EXPORT_SYMBOL vmlinux 0x14930422 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x149ae190 kthread_create +EXPORT_SYMBOL vmlinux 0x1503d01b inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15695893 search_binary_handler +EXPORT_SYMBOL vmlinux 0x1574c0b9 del_timer +EXPORT_SYMBOL vmlinux 0x15870c45 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x15ba105b jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x15cafec8 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x15cb6e66 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15e839b5 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x1604d50b input_get_keycode +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x162b0b70 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163f2bfe pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x164fb4be qdisc_reset +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x167e9b65 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x168cd32d jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x16ca749d tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x16e0dbc9 sg_miter_start +EXPORT_SYMBOL vmlinux 0x16ffb159 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17148882 vfs_llseek +EXPORT_SYMBOL vmlinux 0x1743ee68 write_cache_pages +EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove +EXPORT_SYMBOL vmlinux 0x178b8ea8 set_pages_wb +EXPORT_SYMBOL vmlinux 0x179e60c1 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x17a5cfab sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x17bf7a48 __sock_create +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f0034a fifo_set_limit +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180db5e8 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x182e5e4c inet_ioctl +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18484f09 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x18520767 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x185fb3c3 netpoll_poll +EXPORT_SYMBOL vmlinux 0x1870763a dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x187b070d __elv_add_request +EXPORT_SYMBOL vmlinux 0x187c542c inet_stream_ops +EXPORT_SYMBOL vmlinux 0x18813603 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x1888ddb5 unregister_console +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18b4b6d1 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18e7b837 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x1919e7dd max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x19221fe0 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x192409fc vfs_mknod +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x193a552f sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x194c4fd5 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x195701c7 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x195d943e bdevname +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x199f4e96 led_brightness_set +EXPORT_SYMBOL vmlinux 0x199f754a i8042_install_filter +EXPORT_SYMBOL vmlinux 0x19a817e7 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19cc1030 mntget +EXPORT_SYMBOL vmlinux 0x19d7198e security_file_mmap +EXPORT_SYMBOL vmlinux 0x19d76acb mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x19e51920 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x19e92440 flex_array_put +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19f5f89a inet_addr_type +EXPORT_SYMBOL vmlinux 0x19f94b0f truncate_setsize +EXPORT_SYMBOL vmlinux 0x1a1b3e0f skb_make_writable +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a4dfb5a dev_disable_lro +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1a96e57f writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x1aa7b200 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1adad386 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x1ae2e5ac __nla_reserve +EXPORT_SYMBOL vmlinux 0x1af0face dquot_alloc +EXPORT_SYMBOL vmlinux 0x1af3967c neigh_for_each +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b03a6b4 console_start +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b7112b1 hex2bin +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b99afa3 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb39e3a journal_flush +EXPORT_SYMBOL vmlinux 0x1bbf5fae dst_discard +EXPORT_SYMBOL vmlinux 0x1c08edd3 nla_put +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c32b740 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x1c377293 set_blocksize +EXPORT_SYMBOL vmlinux 0x1c654f1c mnt_unpin +EXPORT_SYMBOL vmlinux 0x1c6ab0ba lease_modify +EXPORT_SYMBOL vmlinux 0x1c825a9f generic_ro_fops +EXPORT_SYMBOL vmlinux 0x1c8443e0 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x1c8466c8 file_remove_suid +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c8f9fc4 cad_pid +EXPORT_SYMBOL vmlinux 0x1ca8fceb pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cfda2c0 register_qdisc +EXPORT_SYMBOL vmlinux 0x1d144bb3 console_stop +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2aab10 key_alloc +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d4dd4e0 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x1d59e72d dget_parent +EXPORT_SYMBOL vmlinux 0x1d5ba86d nf_setsockopt +EXPORT_SYMBOL vmlinux 0x1d76d0b6 inode_permission +EXPORT_SYMBOL vmlinux 0x1d7b7484 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x1d903c5e dquot_acquire +EXPORT_SYMBOL vmlinux 0x1da41675 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x1da9f9a5 do_SAK +EXPORT_SYMBOL vmlinux 0x1dacd9d4 udp_prot +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1df00563 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x1e03ee9b send_sig +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e34608b radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x1e540db6 skb_unlink +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e892fbd elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea09dfc sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x1ea9fe0d mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x1efda4aa fb_validate_mode +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f2f9892 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x1f37aa1e filp_open +EXPORT_SYMBOL vmlinux 0x1f6fd51b dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x1f8f92b3 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x1f988ab5 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe89960 pci_choose_state +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff6482b rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x1ffe99bf seq_bitmap +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20071f4b buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x200821f4 stop_tty +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x20130555 sock_create_lite +EXPORT_SYMBOL vmlinux 0x20318c27 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x204f3b77 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x205da5bb dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x205fe657 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x20674506 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x206f40da register_exec_domain +EXPORT_SYMBOL vmlinux 0x207070f6 key_link +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20abc15b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x20cc8c48 pci_enable_device +EXPORT_SYMBOL vmlinux 0x20cea88d brioctl_set +EXPORT_SYMBOL vmlinux 0x20d12a0d rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f4e0f7 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x211d6758 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x212386e1 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x212acbea lock_may_write +EXPORT_SYMBOL vmlinux 0x214200d5 km_report +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21600a18 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x2164c5fe insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x217a4d57 pci_map_rom +EXPORT_SYMBOL vmlinux 0x218a07fd input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x219896b2 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x21b52e96 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x21bc3a8c sock_wake_async +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e2006d __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x2201baf3 dcb_setapp +EXPORT_SYMBOL vmlinux 0x22039b8b inet6_bind +EXPORT_SYMBOL vmlinux 0x221fb792 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223d24d2 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2284e9be inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x228583d3 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22897e79 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x229aa21f xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22bd2b67 tty_set_operations +EXPORT_SYMBOL vmlinux 0x22d15347 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x22d37191 netdev_printk +EXPORT_SYMBOL vmlinux 0x230d08fd rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x231b201e radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2357732a lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x23591db0 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x23a115b9 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b99e92 node_states +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23daaf02 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x23eb619a dev_addr_del +EXPORT_SYMBOL vmlinux 0x23f568e8 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x23fb35ec netpoll_print_options +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241774d2 set_pages_nx +EXPORT_SYMBOL vmlinux 0x24245dfe __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x242b197c elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2445a52c tty_write_room +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246acbe4 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x246d17c3 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x24771228 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x248b0fab jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x2527e02b filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x257f5e66 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25b64a20 security_path_link +EXPORT_SYMBOL vmlinux 0x25c09952 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x25c676f2 bdget_disk +EXPORT_SYMBOL vmlinux 0x25cf5f33 input_register_handle +EXPORT_SYMBOL vmlinux 0x25db752c thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x25ecca3b ihold +EXPORT_SYMBOL vmlinux 0x25f98c3f netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x263100e5 migrate_page +EXPORT_SYMBOL vmlinux 0x2636a864 amd_northbridges +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x267c3e15 dev_mc_init +EXPORT_SYMBOL vmlinux 0x267f9356 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x2688b556 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f6efc2 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2758ccc5 skb_append +EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x278ea1cb input_register_handler +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bdd72b __pci_register_driver +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27f31b42 kernel_accept +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2819eb9d llc_sap_close +EXPORT_SYMBOL vmlinux 0x2824a84d loop_register_transfer +EXPORT_SYMBOL vmlinux 0x28323b5b security_path_chmod +EXPORT_SYMBOL vmlinux 0x2842118b __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x28442ee2 blk_get_request +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x287c7065 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28af0535 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x28caeef0 udplite_prot +EXPORT_SYMBOL vmlinux 0x29074dae blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x290a4291 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x29108f22 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x2923335f inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x294e1b54 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295566ce pnp_device_attach +EXPORT_SYMBOL vmlinux 0x29655697 devm_ioremap +EXPORT_SYMBOL vmlinux 0x2979a710 dcb_getapp +EXPORT_SYMBOL vmlinux 0x298e524a dev_mc_flush +EXPORT_SYMBOL vmlinux 0x29924b9f journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29c6f6f5 inet_shutdown +EXPORT_SYMBOL vmlinux 0x29cdda06 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x29d01795 pci_select_bars +EXPORT_SYMBOL vmlinux 0x29d6bc08 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x29d97c1e blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x29dab474 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x29f3c718 sock_i_uid +EXPORT_SYMBOL vmlinux 0x29f5a314 md_check_recovery +EXPORT_SYMBOL vmlinux 0x2a031747 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x2a13c3ce mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x2a16c08e free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x2a1e03d6 generic_fillattr +EXPORT_SYMBOL vmlinux 0x2a1f0dab i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3afc17 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x2a5ef618 blk_make_request +EXPORT_SYMBOL vmlinux 0x2a643b60 phy_detach +EXPORT_SYMBOL vmlinux 0x2a94e2ba skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x2abfd53f ip_route_output_key +EXPORT_SYMBOL vmlinux 0x2abfde94 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x2ad669c3 dev_crit +EXPORT_SYMBOL vmlinux 0x2ad84ef3 dst_release +EXPORT_SYMBOL vmlinux 0x2ae63f72 mnt_pin +EXPORT_SYMBOL vmlinux 0x2aefd651 inet_bind +EXPORT_SYMBOL vmlinux 0x2aefe4ec unregister_netdev +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b2059d1 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b517998 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x2b582f77 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x2b6f1252 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x2b8a7b29 mii_link_ok +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bcbece7 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x2be595d2 bdi_unregister +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c03cca3 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x2c17f0d3 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x2c1e4175 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c3dc1f6 get_agp_version +EXPORT_SYMBOL vmlinux 0x2c4e5a71 dump_trace +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2cbd70a5 vc_cons +EXPORT_SYMBOL vmlinux 0x2cff665e dev_alert +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1cc089 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x2d26eb0e tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d3be0cc tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x2d3e6051 sget +EXPORT_SYMBOL vmlinux 0x2d51de14 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d99b371 fb_get_mode +EXPORT_SYMBOL vmlinux 0x2daa04db starget_for_each_device +EXPORT_SYMBOL vmlinux 0x2db4c99b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x2db676a1 input_unregister_device +EXPORT_SYMBOL vmlinux 0x2dc0b0e4 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2ddc665d radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2de3074e __lookup_one_len +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df369cd d_instantiate +EXPORT_SYMBOL vmlinux 0x2e05d7d8 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x2e0c0958 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e33750f load_nls_default +EXPORT_SYMBOL vmlinux 0x2e37fe00 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e78a847 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x2ee1a9a4 ps2_drain +EXPORT_SYMBOL vmlinux 0x2ef1e4d8 bdget +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f0745ae lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x2f0c9ca6 dev_load +EXPORT_SYMBOL vmlinux 0x2f247ff6 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x2f44f715 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x2f5b5790 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x2f6c6d5d register_8022_client +EXPORT_SYMBOL vmlinux 0x2f729486 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x2f99f755 dm_table_event +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fa95e6d mount_pseudo +EXPORT_SYMBOL vmlinux 0x2fb41e0c flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x2fb5eee4 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x2ff0d595 serio_rescan +EXPORT_SYMBOL vmlinux 0x2ffdb06e blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x300b1081 fasync_helper +EXPORT_SYMBOL vmlinux 0x300dd842 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3052fe8a sock_kmalloc +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30844f66 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x3084bd77 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x308f3e5e set_security_override +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30beeca6 dma_supported +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e02db2 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ed80e0 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x30f6d314 __scm_send +EXPORT_SYMBOL vmlinux 0x310aa232 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x31185e82 vfs_write +EXPORT_SYMBOL vmlinux 0x314160b4 try_to_release_page +EXPORT_SYMBOL vmlinux 0x31429f05 mmc_release_host +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315b8f8b find_inode_number +EXPORT_SYMBOL vmlinux 0x316283b3 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x318705ea napi_gro_flush +EXPORT_SYMBOL vmlinux 0x31972e0b intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0x319eda21 bioset_free +EXPORT_SYMBOL vmlinux 0x31a45391 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x31a62d49 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x31b272ab vfs_writev +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31da2995 dm_io +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc +EXPORT_SYMBOL vmlinux 0x321e126f journal_destroy +EXPORT_SYMBOL vmlinux 0x3232d7d4 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x324db078 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x325e8a07 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace +EXPORT_SYMBOL vmlinux 0x32a3a279 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x32a3ece8 mpage_writepages +EXPORT_SYMBOL vmlinux 0x32b93a28 netlink_ack +EXPORT_SYMBOL vmlinux 0x32d59ba7 block_sync_page +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x32debb16 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x33156eaf __scsi_add_device +EXPORT_SYMBOL vmlinux 0x3325f15b del_gendisk +EXPORT_SYMBOL vmlinux 0x334d9029 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x336e96e0 dquot_drop +EXPORT_SYMBOL vmlinux 0x338cc9b6 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x339e6ad5 rfkill_register +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bc571e fddi_type_trans +EXPORT_SYMBOL vmlinux 0x33c0780b get_write_access +EXPORT_SYMBOL vmlinux 0x33cd7937 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33d8c51f pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x33e4cbc6 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x34060ddf tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x3406506e mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x340a2012 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x341cbed2 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x34467db0 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x3460311a read_dev_sector +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x348e82c1 pci_target_state +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b8db2c scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x34d7c363 __serio_register_port +EXPORT_SYMBOL vmlinux 0x34e29676 dquot_commit +EXPORT_SYMBOL vmlinux 0x34f6d2cf neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x34f833bb flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x3523fd72 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x353e770a dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x3548da81 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x35693372 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x357571aa scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x3578a626 bio_add_page +EXPORT_SYMBOL vmlinux 0x35a970e1 rename_lock +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35dfceaa ps2_command +EXPORT_SYMBOL vmlinux 0x35fbda4b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361f5df2 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x3628f06c arp_send +EXPORT_SYMBOL vmlinux 0x3648f6a0 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x368af72d textsearch_unregister +EXPORT_SYMBOL vmlinux 0x36931871 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x36b5816a km_state_expired +EXPORT_SYMBOL vmlinux 0x36bdbf48 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x36c4a226 nla_append +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f041d9 bio_free +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x37101c59 vga_get +EXPORT_SYMBOL vmlinux 0x37183a3f journal_set_features +EXPORT_SYMBOL vmlinux 0x371ce32f dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x373c8ec0 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x375cbb46 mpage_writepage +EXPORT_SYMBOL vmlinux 0x3767adc3 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x3781d553 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x37892ab7 dst_destroy +EXPORT_SYMBOL vmlinux 0x37ab0105 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x37b06c1b fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f5f7f9 set_bh_page +EXPORT_SYMBOL vmlinux 0x3816d648 iput +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38358b79 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x3861642a __blk_run_queue +EXPORT_SYMBOL vmlinux 0x3878c064 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x387ff877 get_fs_type +EXPORT_SYMBOL vmlinux 0x38895b59 log_start_commit +EXPORT_SYMBOL vmlinux 0x388e5537 dev_uc_add +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389802cd register_gifconf +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38ec6fff kmem_cache_name +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x38feeeaa key_task_permission +EXPORT_SYMBOL vmlinux 0x390a3ac8 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x39181ff5 dst_alloc +EXPORT_SYMBOL vmlinux 0x3925cced mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x3928efe9 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x3948b9f0 set_page_dirty +EXPORT_SYMBOL vmlinux 0x3954d652 cdrom_open +EXPORT_SYMBOL vmlinux 0x39601f1d key_put +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3986a841 agp_free_memory +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39a24bda __kfree_skb +EXPORT_SYMBOL vmlinux 0x39a38b99 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x39abbb9b inode_set_bytes +EXPORT_SYMBOL vmlinux 0x39ad0bcb tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x39c4428b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x39fdc58b writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a4978a0 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x3a59f04c unbind_con_driver +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a8ce6a4 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ab3fc94 do_splice_from +EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove +EXPORT_SYMBOL vmlinux 0x3b0a87c7 netif_device_detach +EXPORT_SYMBOL vmlinux 0x3b1489a2 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x3b2092f0 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x3b2d7554 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b35aae5 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x3b5b3afe file_permission +EXPORT_SYMBOL vmlinux 0x3ba44fba sk_release_kernel +EXPORT_SYMBOL vmlinux 0x3bc8ff51 vm_map_ram +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3be0ea90 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x3be5a530 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x3c0b4eee __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x3c258ee8 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x3c2b64e7 blk_run_queue +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3006f7 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x3c3e321c dma_set_mask +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c80c1b6 __find_get_block +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cc11985 dev_warn +EXPORT_SYMBOL vmlinux 0x3cde393e register_netdev +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d0be4b3 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x3d1c6059 get_sb_single +EXPORT_SYMBOL vmlinux 0x3d2246fb request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d32adbe iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x3d3aceb2 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x3d546259 sync_blockdev +EXPORT_SYMBOL vmlinux 0x3d7565aa skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da7115e ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0e9b11 pci_dev_get +EXPORT_SYMBOL vmlinux 0x3e244d57 alloc_trdev +EXPORT_SYMBOL vmlinux 0x3e265cf0 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5387e7 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x3e55192f __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x3e604b14 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb0eea7 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x3ec33507 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee649bc machine_to_phys_order +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f1980dd unregister_md_personality +EXPORT_SYMBOL vmlinux 0x3f2fa201 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x3f30c699 replace_mount_options +EXPORT_SYMBOL vmlinux 0x3f341e4b xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f61f66b lookup_hash +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f635a5c __register_chrdev +EXPORT_SYMBOL vmlinux 0x3f63e730 dquot_disable +EXPORT_SYMBOL vmlinux 0x3f6dd24b set_binfmt +EXPORT_SYMBOL vmlinux 0x3f7aba41 iget5_locked +EXPORT_SYMBOL vmlinux 0x3f7b3f96 simple_empty +EXPORT_SYMBOL vmlinux 0x3f8e736e netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x3fa70e21 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fab543a fb_blank +EXPORT_SYMBOL vmlinux 0x3fad7551 spi_dv_device +EXPORT_SYMBOL vmlinux 0x3fe405ed md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4012b386 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x403b48e2 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x40506146 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x409d137a md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a50c9a journal_lock_updates +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40b8b295 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x40c67c1c mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x40c72536 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40cac6b4 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d1be45 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x4101382f scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41116dc4 skb_pad +EXPORT_SYMBOL vmlinux 0x41278833 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x412ecf0a phy_connect_direct +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4170e499 bio_split +EXPORT_SYMBOL vmlinux 0x417e5eb2 cdev_init +EXPORT_SYMBOL vmlinux 0x418363a9 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x4187e3fc ip_fragment +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41900c09 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x41a44b7e d_path +EXPORT_SYMBOL vmlinux 0x41bd5e06 nf_register_queue_handler +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 0x424f19e6 dump_seek +EXPORT_SYMBOL vmlinux 0x4252c570 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x42569cb9 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x4296eeca tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429e33f1 pci_bus_type +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42aeb703 blk_free_tags +EXPORT_SYMBOL vmlinux 0x42b1a711 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4304274c journal_update_format +EXPORT_SYMBOL vmlinux 0x430b6d1c pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x430c6a86 vfs_stat +EXPORT_SYMBOL vmlinux 0x4313c455 set_user_nice +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x433f3ca4 blk_plug_device +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437a8975 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x43a34814 blk_unplug +EXPORT_SYMBOL vmlinux 0x43a6a2c9 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x43e5be38 page_put_link +EXPORT_SYMBOL vmlinux 0x43ebe496 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43fb2da1 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x44047274 scsi_host_get +EXPORT_SYMBOL vmlinux 0x440f1e8c journal_release_buffer +EXPORT_SYMBOL vmlinux 0x4433474b sock_wmalloc +EXPORT_SYMBOL vmlinux 0x44473fd8 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x4448702d scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x446008e7 get_phy_device +EXPORT_SYMBOL vmlinux 0x448127aa dm_table_put +EXPORT_SYMBOL vmlinux 0x4484628c seq_open +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b177fe simple_pin_fs +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d3718a dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f6a553 __break_lease +EXPORT_SYMBOL vmlinux 0x451c77e9 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x452ebe86 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x4539ab69 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x45471ce1 vfs_readlink +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x455427d3 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4570b603 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4577096f devm_free_irq +EXPORT_SYMBOL vmlinux 0x45785889 pcim_iomap +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457d0652 idr_remove_all +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45c379c9 generic_write_sync +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x46021abc scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x460e4351 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x461208b3 nf_reinject +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x46595c8a vfs_lstat +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x466eb5d1 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x46790405 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x4714aade ether_setup +EXPORT_SYMBOL vmlinux 0x471feb9d dquot_operations +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x47600e78 ndisc_send_skb +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 0x47b5bb88 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47de10a0 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x47e579e5 dev_mc_del +EXPORT_SYMBOL vmlinux 0x47e5cf5a __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x47e79b9d filemap_fault +EXPORT_SYMBOL vmlinux 0x48082770 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x482e2db7 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x48307cba simple_statfs +EXPORT_SYMBOL vmlinux 0x484560b4 names_cachep +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485f0862 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x4863d0c6 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x487389bf mount_ns +EXPORT_SYMBOL vmlinux 0x487cd0e1 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x48872910 pci_restore_state +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x4898ad4a tty_register_device +EXPORT_SYMBOL vmlinux 0x48f1231c __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x48fa1131 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x490513bc blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x490a3d5b unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x492f65c1 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x493673f7 freeze_bdev +EXPORT_SYMBOL vmlinux 0x4940948a scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x495aec6a mdiobus_register +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4975e3de dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x497fb4f7 tr_type_trans +EXPORT_SYMBOL vmlinux 0x49ae8515 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b9a5a4 elevator_change +EXPORT_SYMBOL vmlinux 0x49b9dfd3 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x49d92c8b nf_register_hook +EXPORT_SYMBOL vmlinux 0x49e3ed73 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x49f1e33f filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x4a03ed0a inet_getname +EXPORT_SYMBOL vmlinux 0x4a05985a free_netdev +EXPORT_SYMBOL vmlinux 0x4a096caf sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x4a149b62 seq_open_private +EXPORT_SYMBOL vmlinux 0x4a32426a blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a38a7a6 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x4a4ba18e scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x4a52776b __serio_register_driver +EXPORT_SYMBOL vmlinux 0x4a5622ce llc_add_pack +EXPORT_SYMBOL vmlinux 0x4a59363b max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x4a6617c2 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x4a9020fa inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ac7bd8e kmem_cache_size +EXPORT_SYMBOL vmlinux 0x4ac8e4ca dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad9e5bc swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b0a275c genl_register_family +EXPORT_SYMBOL vmlinux 0x4b2a5c73 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x4b479954 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x4b5814ef kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x4b786adf dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4b82adff genphy_update_link +EXPORT_SYMBOL vmlinux 0x4b8be33c hippi_type_trans +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc0435f dev_err +EXPORT_SYMBOL vmlinux 0x4bfb3f35 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2ba418 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4e17f7 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c50215e inet_del_protocol +EXPORT_SYMBOL vmlinux 0x4c65269e __f_setown +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd55f37 scsi_add_device +EXPORT_SYMBOL vmlinux 0x4ce472d9 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x4d0ed5d4 unregister_key_type +EXPORT_SYMBOL vmlinux 0x4d2978a6 ll_rw_block +EXPORT_SYMBOL vmlinux 0x4d3627c4 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x4d4f280f dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x4d6ce23e __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x4d8a2f5d balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9ca76a xfrm_register_type +EXPORT_SYMBOL vmlinux 0x4dad062d dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x4daff8a4 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dbf9ee0 sk_wait_data +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4de36069 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e2aa947 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e8be641 register_key_type +EXPORT_SYMBOL vmlinux 0x4eba6bf4 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x4ec4ab77 user_path_at +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4efc232f serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x4efed08a sk_run_filter +EXPORT_SYMBOL vmlinux 0x4f15d78b lock_sock_nested +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f289f63 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x4f2e2afa sk_free +EXPORT_SYMBOL vmlinux 0x4f34b72d alloc_fddidev +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f4c375f simple_transaction_set +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f70e9d0 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4fa573c0 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x4fa7d78c padata_do_parallel +EXPORT_SYMBOL vmlinux 0x4fc5ec42 key_validate +EXPORT_SYMBOL vmlinux 0x4fc5f282 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x4fcf7b49 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe82d1f writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x4ffa75db qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x5018db4d mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x504dd723 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505489db notify_change +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x507a6644 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x50a3e4da __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50c49c10 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x50e9b579 bdi_init +EXPORT_SYMBOL vmlinux 0x50f1ef3b pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x50f3bc24 generic_read_dir +EXPORT_SYMBOL vmlinux 0x510c2535 xz_dec_run +EXPORT_SYMBOL vmlinux 0x510f6a3a i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5139c038 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x51619cf1 d_alloc_name +EXPORT_SYMBOL vmlinux 0x51637772 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x517ea4fd default_llseek +EXPORT_SYMBOL vmlinux 0x518555ff get_phy_id +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51f6bee3 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52047b7b bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x5225ca63 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x5261c814 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x5275ad7c xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x52818c27 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x528b0697 inet_listen +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b0813e simple_write_end +EXPORT_SYMBOL vmlinux 0x52bee688 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x52d4cea3 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52df0a8c dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x5301b777 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x5321a3bb fb_find_mode +EXPORT_SYMBOL vmlinux 0x5322b9f7 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x53274e5f jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x532ba002 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x534645d3 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x5346fd30 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x534dabcb cont_write_begin +EXPORT_SYMBOL vmlinux 0x5359f63c padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c26f1d thaw_process +EXPORT_SYMBOL vmlinux 0x53c35e0a xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x53c86537 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x53d417a1 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x53e1edae tty_port_open +EXPORT_SYMBOL vmlinux 0x53eda548 module_layout +EXPORT_SYMBOL vmlinux 0x53f04062 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x53f18596 padata_free +EXPORT_SYMBOL vmlinux 0x541267b2 blk_register_region +EXPORT_SYMBOL vmlinux 0x5415ab67 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x546bcde4 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x54717d4d set_device_ro +EXPORT_SYMBOL vmlinux 0x547e0a50 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x549c0bb5 md_done_sync +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54d872ba percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x54e5aa96 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x555f670f xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x55799632 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x558efde1 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55ad7140 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x55b8d37c kernel_connect +EXPORT_SYMBOL vmlinux 0x55f68cf2 iget_locked +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 0x561cd5d4 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56539d06 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new +EXPORT_SYMBOL vmlinux 0x568eb8ea scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x56953b63 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x56a6be38 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x56b50bac tcp_sendpage +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cc4e2d consume_skb +EXPORT_SYMBOL vmlinux 0x56d298ca acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x56dd5c70 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x56e3015c pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x56e5ba2a serio_interrupt +EXPORT_SYMBOL vmlinux 0x570252cb get_gendisk +EXPORT_SYMBOL vmlinux 0x5709707c mmc_detect_change +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575cc901 simple_link +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x57973f11 flex_array_get +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57d050dd blk_remove_plug +EXPORT_SYMBOL vmlinux 0x57d8861e proto_register +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e69a3d __bread +EXPORT_SYMBOL vmlinux 0x57edd888 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x57fb9f9f udp_ioctl +EXPORT_SYMBOL vmlinux 0x5800585e scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x58020f08 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x580a6fac new_inode +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5860b732 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x587d57f2 sock_rfree +EXPORT_SYMBOL vmlinux 0x5880d923 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x58877e8c vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x58935cbb gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x58950fb1 inet_frags_init +EXPORT_SYMBOL vmlinux 0x58d559b0 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x58e241b8 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x59024812 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x590c2dc2 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x590cad11 sock_register +EXPORT_SYMBOL vmlinux 0x59205ef9 locks_free_lock +EXPORT_SYMBOL vmlinux 0x592b0f05 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59516f63 __bio_clone +EXPORT_SYMBOL vmlinux 0x5989afc0 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x5993e1d8 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x5995ebf2 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x59e77b49 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x59f1f9ae journal_get_create_access +EXPORT_SYMBOL vmlinux 0x5a0012eb __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x5a22b629 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a325d54 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a3c3302 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a6c4711 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a8b1f1a elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x5a98563a __d_drop +EXPORT_SYMBOL vmlinux 0x5abde9c4 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5b08784a ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x5b126365 _dev_info +EXPORT_SYMBOL vmlinux 0x5b2d88b1 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x5b4628a1 dev_addr_add +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b5b8343 block_write_full_page +EXPORT_SYMBOL vmlinux 0x5b640af3 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x5b69c2ff tty_port_close_end +EXPORT_SYMBOL vmlinux 0x5b73393e elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5baff7fa xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x5bbee9ad simple_unlink +EXPORT_SYMBOL vmlinux 0x5bc0d97b dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x5bc646b5 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x5be37500 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x5bf0b32c sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x5c0b8389 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x5c2d2ed3 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c57bfb4 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x5c693f09 wake_up_process +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5cf12bcc swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x5cfe67c9 netdev_notice +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d25a1d2 simple_rename +EXPORT_SYMBOL vmlinux 0x5d38bffe devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x5d4266ce register_netdevice +EXPORT_SYMBOL vmlinux 0x5d475ee5 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x5d48b233 fd_install +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5da6a32d kernel_sendpage +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dba8214 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get +EXPORT_SYMBOL vmlinux 0x5dccf9a8 I_BDEV +EXPORT_SYMBOL vmlinux 0x5df5fa0c acpi_root_dir +EXPORT_SYMBOL vmlinux 0x5e0157e0 release_firmware +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e2f075d dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ebe5f87 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5ecabfb8 commit_creds +EXPORT_SYMBOL vmlinux 0x5ecf17bd qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ef38c07 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f1e4073 register_framebuffer +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f25ed67 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x5f296ce7 ipv4_specific +EXPORT_SYMBOL vmlinux 0x5f3fc462 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x5f53d531 scsi_init_io +EXPORT_SYMBOL vmlinux 0x5f5cbbee flush_old_exec +EXPORT_SYMBOL vmlinux 0x5f7a50e2 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x5f8b9fad write_one_page +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fc92ccb mutex_trylock +EXPORT_SYMBOL vmlinux 0x5fce52c7 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fd2aa65 scsi_device_put +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 0x6030404d otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x604c61c7 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x6056ec1c block_write_end +EXPORT_SYMBOL vmlinux 0x606f55b8 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x60703881 nonseekable_open +EXPORT_SYMBOL vmlinux 0x607342e8 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x6074308d xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x607ac5aa blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ac34e3 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6133c054 tty_port_init +EXPORT_SYMBOL vmlinux 0x614a5735 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x6166f482 blk_insert_request +EXPORT_SYMBOL vmlinux 0x617cd924 skb_queue_head +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a70a01 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x61a7a6d1 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x61a999f2 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c113d9 get_io_context +EXPORT_SYMBOL vmlinux 0x61cc742d dump_write +EXPORT_SYMBOL vmlinux 0x61f2481b mapping_tagged +EXPORT_SYMBOL vmlinux 0x61f7cd0e phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x6225d527 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x624cb573 elv_rb_del +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x6269e5b3 amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628c15c2 secpath_dup +EXPORT_SYMBOL vmlinux 0x62d1d4ec phy_device_register +EXPORT_SYMBOL vmlinux 0x62d3f69a mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x62eb01ae journal_revoke +EXPORT_SYMBOL vmlinux 0x6306d553 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x63077f5f ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6318de24 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x635d3e09 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x63630f7c unregister_cdrom +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x637f4566 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x63809674 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x639f358e netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x63aff2f7 padata_start +EXPORT_SYMBOL vmlinux 0x63b29d17 __napi_complete +EXPORT_SYMBOL vmlinux 0x63e4d376 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f5b7ff security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640ef455 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x6420437e scsi_print_sense +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6447ab07 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64634217 seq_puts +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64e30c0f pci_get_device +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x65155134 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651e49d4 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6547bea5 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x65961e34 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x6597bca9 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x65a4d2be aio_put_req +EXPORT_SYMBOL vmlinux 0x65a62a0d compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x65b7adef bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f4a591 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x65fafc9a blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x6610a1d9 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x66351f82 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x665977f0 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x6662dec0 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x66875f63 vc_resize +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66cf23b0 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66ecf31f unlock_buffer +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x671c5b98 genphy_suspend +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6733be4a dqget +EXPORT_SYMBOL vmlinux 0x6737ffaf agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x67380b41 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x673e0d81 __netif_schedule +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6759346b wireless_spy_update +EXPORT_SYMBOL vmlinux 0x677a40e5 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c9299a set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x67d0a7be audit_log_format +EXPORT_SYMBOL vmlinux 0x6824e709 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x682e4846 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x6832bf4a bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x6838f1d8 lock_may_read +EXPORT_SYMBOL vmlinux 0x683c9a32 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x68752177 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6894b571 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x68d41682 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x69139f0f tty_unthrottle +EXPORT_SYMBOL vmlinux 0x69189085 dev_open +EXPORT_SYMBOL vmlinux 0x694e15cc register_quota_format +EXPORT_SYMBOL vmlinux 0x6968cb6f md_unregister_thread +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69921202 ida_init +EXPORT_SYMBOL vmlinux 0x699e3414 netdev_features_change +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69a35ee9 kdb_current_task +EXPORT_SYMBOL vmlinux 0x69a98f67 kset_unregister +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69ad5c78 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x69af949e pci_dev_put +EXPORT_SYMBOL vmlinux 0x69bed096 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e5e914 rwsem_wake +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0417bb make_bad_inode +EXPORT_SYMBOL vmlinux 0x6a0842f5 i2c_transfer +EXPORT_SYMBOL vmlinux 0x6a10dc4e kill_fasync +EXPORT_SYMBOL vmlinux 0x6a18774a __blk_end_request +EXPORT_SYMBOL vmlinux 0x6a20bfdf alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ab0d269 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x6ab49e76 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b02ee3b pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x6b06d63a scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b413444 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x6b4aefd5 dev_uc_init +EXPORT_SYMBOL vmlinux 0x6b5a6b6b bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b8a1db6 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x6b950e7a fb_set_cmap +EXPORT_SYMBOL vmlinux 0x6bc19c48 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bcc0182 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x6bd42ad7 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x6bd688f0 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c24fc4f set_pages_x +EXPORT_SYMBOL vmlinux 0x6c28aea9 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c53d497 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x6c5e1f94 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c8af4d2 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x6caa079d genl_unregister_family +EXPORT_SYMBOL vmlinux 0x6cb23252 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x6cbda09a serial8250_register_port +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6d08ab4f md_register_thread +EXPORT_SYMBOL vmlinux 0x6d0a0239 misc_deregister +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d522843 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x6d63d824 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6da9fa0e ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x6db5e9e6 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x6db87c90 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x6dbf042c mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x6dd148ce unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x6dd485cd dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6ddd6f31 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e4bab86 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e8c6f8a atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x6e98189b lock_super +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ebf21f0 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x6f184652 dev_change_flags +EXPORT_SYMBOL vmlinux 0x6f35b46f scsi_target_resume +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f697b61 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x6f6a1e1e release_sock +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f93af28 set_anon_super +EXPORT_SYMBOL vmlinux 0x6fdf5ef0 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ff042f0 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x6ff9861c scsi_execute_req +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x701f6d5f netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x702fdbcf input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70605bc3 bdi_destroy +EXPORT_SYMBOL vmlinux 0x706320fc xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x70690680 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x70828d77 drop_super +EXPORT_SYMBOL vmlinux 0x708b204a invalidate_bdev +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70fcc7dd elv_rb_find +EXPORT_SYMBOL vmlinux 0x71144033 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x71205378 add_timer +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71413c60 input_close_device +EXPORT_SYMBOL vmlinux 0x71430d81 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x714ecf26 devm_iounmap +EXPORT_SYMBOL vmlinux 0x714f8e20 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x715a7afb xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71e89652 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x71eb04df sg_miter_stop +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x71fe1fcd __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x720e2103 __quota_error +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x725cee62 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x7278cfff dma_ops +EXPORT_SYMBOL vmlinux 0x728228d8 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x7285bbce ppp_input +EXPORT_SYMBOL vmlinux 0x728ba114 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x728e5e05 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x729980ea uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c1310b kobject_put +EXPORT_SYMBOL vmlinux 0x72e3c600 pnp_is_active +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7301be63 __invalidate_device +EXPORT_SYMBOL vmlinux 0x733cf2d0 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x73453abb pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x734959c3 ip_options_compile +EXPORT_SYMBOL vmlinux 0x73580a1a arp_find +EXPORT_SYMBOL vmlinux 0x735943c7 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x737f27cf softnet_data +EXPORT_SYMBOL vmlinux 0x7381ffbb flex_array_clear +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x739b2408 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73aa3dba sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x73b83756 bmap +EXPORT_SYMBOL vmlinux 0x73e6e178 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x741bbf87 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x74541d66 request_key +EXPORT_SYMBOL vmlinux 0x74773c07 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a7102f __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cb31fd file_update_time +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74e36ec1 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x75078bad tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x7522f779 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x75780230 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x7587ff16 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x758f1987 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x759bff11 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75c48cbc devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x75c49d46 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x75c82104 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x75f5073d simple_setattr +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x7603ba4f destroy_EII_client +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x762570b9 agp_enable +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764b804a scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765226ef tty_driver_kref_put +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 0x76a79628 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76ea7a14 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x7704abd9 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x776e8f7c rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x77787b26 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a2284c input_set_keycode +EXPORT_SYMBOL vmlinux 0x77aecfde ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d3de5b __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x77dbc4a6 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e5306c audit_log_start +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77f5de2c sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x780b07ac pci_disable_device +EXPORT_SYMBOL vmlinux 0x780c4046 netlink_set_err +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x78371144 km_query +EXPORT_SYMBOL vmlinux 0x783bbb98 dns_query +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x7887662d generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x78ad8b16 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x78d30154 ht_create_irq +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e6e6d5 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7921af74 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x794b84dd key_negate_and_link +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x798ade4a mutex_unlock +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b115b8 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x7a08fc79 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x7a1e26dd task_nice +EXPORT_SYMBOL vmlinux 0x7a242093 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x7a250108 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a41cb0b sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a940b75 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x7a95413b pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x7abd0352 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x7ac1964a sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x7addf193 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x7ae3bf16 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x7ae65b24 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b06f984 end_page_writeback +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b189cca dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x7b2132e7 dquot_destroy +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b928292 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x7b966e9e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x7b97e646 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7ba171cc prepare_creds +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c072631 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c65e9ec block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9440c7 tcp_connect +EXPORT_SYMBOL vmlinux 0x7c9eae0a km_policy_expired +EXPORT_SYMBOL vmlinux 0x7ca6bc35 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cb06376 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cbb6609 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x7cc1f17b set_create_files_as +EXPORT_SYMBOL vmlinux 0x7cd3512d acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x7ce94405 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x7cf5493e tc_classify_compat +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d212166 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x7d260bc9 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x7d2f3325 blkdev_get +EXPORT_SYMBOL vmlinux 0x7d3efbaf kill_block_super +EXPORT_SYMBOL vmlinux 0x7d4e3202 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x7d64f12f bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7da8856d napi_complete +EXPORT_SYMBOL vmlinux 0x7db64dec deny_write_access +EXPORT_SYMBOL vmlinux 0x7dba3cb2 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x7dbf107d vfs_readv +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7de9aeb7 register_console +EXPORT_SYMBOL vmlinux 0x7dee8d55 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x7e0edae9 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x7e1aad72 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x7e216182 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e66262d blkdev_put +EXPORT_SYMBOL vmlinux 0x7e751188 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x7e78b794 find_vma +EXPORT_SYMBOL vmlinux 0x7e8ab131 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x7e902011 put_tty_driver +EXPORT_SYMBOL vmlinux 0x7e9ab66c security_file_permission +EXPORT_SYMBOL vmlinux 0x7e9d5db6 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eaf7ff2 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ed14e14 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x7ee1a790 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x7ee45d3b skb_seq_read +EXPORT_SYMBOL vmlinux 0x7ee6b68f agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x7ef2e3cd bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f12e2ba tty_port_put +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2bacc7 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x7f4ff45e textsearch_prepare +EXPORT_SYMBOL vmlinux 0x7f5009fb journal_dirty_data +EXPORT_SYMBOL vmlinux 0x7f711350 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x7faf710e tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x7fbd89c8 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x7fc152b9 input_release_device +EXPORT_SYMBOL vmlinux 0x80150856 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x802095a7 vga_tryget +EXPORT_SYMBOL vmlinux 0x802ad980 address_space_init_once +EXPORT_SYMBOL vmlinux 0x8034e10e ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x803f90d7 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x805485ab __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x8060d76d inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x807bde17 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x80856756 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x80a0e576 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x80a47179 open_exec +EXPORT_SYMBOL vmlinux 0x812283cc locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x81270ebd spi_release_transport +EXPORT_SYMBOL vmlinux 0x81293e45 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x812aaf29 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x812bf204 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x812c8ad5 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x812db4f2 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x813df710 tty_register_driver +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x81498aa0 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x814e092c spi_attach_transport +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815d3a1e phy_stop +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x81a0a9ef genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81fee4e4 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x821841b4 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x82295182 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x82302cce lock_fb_info +EXPORT_SYMBOL vmlinux 0x824bd978 scsi_put_command +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8251e8f0 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82a0cfb6 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x82a5cc9c jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b4879b xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x82c5d257 sk_alloc +EXPORT_SYMBOL vmlinux 0x82d0e329 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x82d80a38 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x82db71eb eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x82df136f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x82e24db6 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82f47576 phy_disconnect +EXPORT_SYMBOL vmlinux 0x82fd9171 dev_uc_del +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x83484a3f alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x8388f5e8 tty_devnum +EXPORT_SYMBOL vmlinux 0x839010f0 da903x_query_status +EXPORT_SYMBOL vmlinux 0x8394f01b pci_disable_msix +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8409b888 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x84342e18 kfree_skb +EXPORT_SYMBOL vmlinux 0x843ac742 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x844da606 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x844dbc18 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x8468b300 revalidate_disk +EXPORT_SYMBOL vmlinux 0x849c66c5 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84c431dd linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x84d6768a security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x84eaaa12 tcp_child_process +EXPORT_SYMBOL vmlinux 0x8527d9fb skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x852ea7f5 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x85635c30 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8567626f lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x8580520e input_allocate_device +EXPORT_SYMBOL vmlinux 0x8586358e vga_client_register +EXPORT_SYMBOL vmlinux 0x858d79f1 setup_new_exec +EXPORT_SYMBOL vmlinux 0x85a919ee aio_complete +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85d14347 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x85d8280a thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85fa7fea ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x8617627d pci_release_region +EXPORT_SYMBOL vmlinux 0x8633f9de log_wait_commit +EXPORT_SYMBOL vmlinux 0x86379971 block_read_full_page +EXPORT_SYMBOL vmlinux 0x86474c2a compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866dd004 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a1a671 dev_addr_init +EXPORT_SYMBOL vmlinux 0x86bb9678 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86cc630a bio_map_kern +EXPORT_SYMBOL vmlinux 0x86daf416 __pagevec_release +EXPORT_SYMBOL vmlinux 0x86dce477 revert_creds +EXPORT_SYMBOL vmlinux 0x86e93fb0 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87453e54 do_munmap +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x877ce9a3 phy_find_first +EXPORT_SYMBOL vmlinux 0x877faf9f d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x8786f8d7 __scm_destroy +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x879ce707 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x879d0c28 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87bb2248 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x87c37864 xrlim_allow +EXPORT_SYMBOL vmlinux 0x87c44148 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x87c58a96 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x87c9ef77 d_delete +EXPORT_SYMBOL vmlinux 0x87e66c11 xfrm_input +EXPORT_SYMBOL vmlinux 0x880360de blk_stop_queue +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881748bf send_sig_info +EXPORT_SYMBOL vmlinux 0x8833bc7e __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x88343961 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x8852c89b unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8864359f generic_unplug_device +EXPORT_SYMBOL vmlinux 0x88734991 serio_reconnect +EXPORT_SYMBOL vmlinux 0x887bbb74 con_is_bound +EXPORT_SYMBOL vmlinux 0x888e6174 __alloc_skb +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88965bcc journal_extend +EXPORT_SYMBOL vmlinux 0x88b71ecc dm_table_get +EXPORT_SYMBOL vmlinux 0x88baeb35 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x88ffe52a blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x89075cba scsi_host_put +EXPORT_SYMBOL vmlinux 0x8913a89e scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x891ff781 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x892b464b copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x8951a58b do_sync_read +EXPORT_SYMBOL vmlinux 0x8952b095 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x8970eeeb bio_clone +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89c765cb jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a207811 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x8a49033f ilookup +EXPORT_SYMBOL vmlinux 0x8a536c3d unregister_filesystem +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a819b0e unlock_rename +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aab3174 generic_write_end +EXPORT_SYMBOL vmlinux 0x8aacbc0a journal_restart +EXPORT_SYMBOL vmlinux 0x8aacca55 poll_initwait +EXPORT_SYMBOL vmlinux 0x8ac90928 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x8ad98045 sock_no_poll +EXPORT_SYMBOL vmlinux 0x8af149bd uart_get_divisor +EXPORT_SYMBOL vmlinux 0x8b017c86 netif_napi_add +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1bb51a netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x8b238da6 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43ce93 bio_pair_release +EXPORT_SYMBOL vmlinux 0x8b5424f5 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x8b5495b6 sock_update_classid +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b64d82c input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x8b6d3133 nobh_writepage +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b94a02a iw_handler_get_spy +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 0x8bda2f9b arp_xmit +EXPORT_SYMBOL vmlinux 0x8be5e37b dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x8c0b9b06 tcf_register_action +EXPORT_SYMBOL vmlinux 0x8c0ec1ce pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x8c134660 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1cf3bc xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x8c1e0d2f swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x8c2619f3 unlock_page +EXPORT_SYMBOL vmlinux 0x8c422879 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x8c699059 journal_stop +EXPORT_SYMBOL vmlinux 0x8c6b8747 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x8c73bdeb iget_failed +EXPORT_SYMBOL vmlinux 0x8cb4814d dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x8cbba096 read_cache_pages +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cccb756 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8cd30e4a xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8d29db46 cdrom_mode_sense +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 0x8d751f89 scsi_print_result +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8dadeb21 pci_find_bus +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dcf8411 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x8dd11ddb __breadahead +EXPORT_SYMBOL vmlinux 0x8de64c65 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e0ed3a4 mii_check_link +EXPORT_SYMBOL vmlinux 0x8e134b90 generic_write_checks +EXPORT_SYMBOL vmlinux 0x8e2486f1 input_free_device +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb13557 journal_ack_err +EXPORT_SYMBOL vmlinux 0x8ec5819c kern_path +EXPORT_SYMBOL vmlinux 0x8ed37ee5 datagram_poll +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ee75bb8 check_disk_change +EXPORT_SYMBOL vmlinux 0x8eea8fbe padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x8ef4f5c6 arp_invalidate +EXPORT_SYMBOL vmlinux 0x8f1854df kobject_set_name +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f5d1c80 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x8f6a33ba d_genocide +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f87a629 set_trace_device +EXPORT_SYMBOL vmlinux 0x8f8b7233 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x8f934404 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x8f9a7020 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa2d19e swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x8fae11bd sk_stream_error +EXPORT_SYMBOL vmlinux 0x8fbde03d netlink_broadcast +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9010c02c dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x9032ad68 mmc_request_done +EXPORT_SYMBOL vmlinux 0x9034225d pci_iomap +EXPORT_SYMBOL vmlinux 0x903e3bfb blk_start_queue +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x904f90c3 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x9076da53 __page_symlink +EXPORT_SYMBOL vmlinux 0x9080666f scsi_ioctl +EXPORT_SYMBOL vmlinux 0x90813c4e unregister_nls +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x911736d5 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x913a208d put_mnt_ns +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9156bcea blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy +EXPORT_SYMBOL vmlinux 0x91f6c959 generic_removexattr +EXPORT_SYMBOL vmlinux 0x91f812f5 dm_put_device +EXPORT_SYMBOL vmlinux 0x9203332d framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x920ceac6 netdev_set_master +EXPORT_SYMBOL vmlinux 0x921788af set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923c5e67 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x9261068f vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x928504c7 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x9290ea69 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x929dab7d sock_map_fd +EXPORT_SYMBOL vmlinux 0x92ae0e84 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x92d1306a agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x92e1587e inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x92eb729a blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x92f762b2 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x9301564c cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930be844 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x9314cf5b simple_transaction_release +EXPORT_SYMBOL vmlinux 0x931713b9 keyring_clear +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x934c776c lease_get_mtime +EXPORT_SYMBOL vmlinux 0x9357b09e gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x93621074 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x936aec08 d_move +EXPORT_SYMBOL vmlinux 0x9383ebc2 may_umount +EXPORT_SYMBOL vmlinux 0x939339aa pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x93a3184c sg_miter_next +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0x93ae4fd3 blk_end_request +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93cee978 d_validate +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940625c9 netdev_emerg +EXPORT_SYMBOL vmlinux 0x942361a7 vfs_rename +EXPORT_SYMBOL vmlinux 0x9431d891 sock_no_connect +EXPORT_SYMBOL vmlinux 0x944ae8c8 sock_create +EXPORT_SYMBOL vmlinux 0x94502b16 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x945e5298 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x948f91b3 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x948fdbd1 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a62349 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94e2f440 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x951566a3 i2c_release_client +EXPORT_SYMBOL vmlinux 0x951a713b sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9549acc5 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95520240 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x9556a2f9 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x9598ac23 dm_snap_cow +EXPORT_SYMBOL vmlinux 0x959ef8f8 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x95ada093 generic_writepages +EXPORT_SYMBOL vmlinux 0x95bf5539 mb_cache_create +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d6ee85 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x95e28739 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x95ff55e4 init_task +EXPORT_SYMBOL vmlinux 0x9600d002 sock_create_kern +EXPORT_SYMBOL vmlinux 0x9607dd4b tty_port_close +EXPORT_SYMBOL vmlinux 0x960a044e acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x961f127f __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x9638d040 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x96497726 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x964ed0f0 journal_errno +EXPORT_SYMBOL vmlinux 0x965c14dd scsi_device_get +EXPORT_SYMBOL vmlinux 0x9661af39 simple_getattr +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x9678101a vfs_fsync +EXPORT_SYMBOL vmlinux 0x968f45d5 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x969c0f35 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x96cb7b33 neigh_lookup +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96db749e swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x96f44a25 bio_map_user +EXPORT_SYMBOL vmlinux 0x96fdb4fb ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x9731236a pnp_register_driver +EXPORT_SYMBOL vmlinux 0x973d71a7 sock_init_data +EXPORT_SYMBOL vmlinux 0x974cc6ec pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975c2d07 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x97607293 vfs_link +EXPORT_SYMBOL vmlinux 0x977f6f28 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x97ab0dba blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x97bb7e00 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f36c31 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next +EXPORT_SYMBOL vmlinux 0x980cc5dd tcp_check_req +EXPORT_SYMBOL vmlinux 0x98140b8f fget +EXPORT_SYMBOL vmlinux 0x9831e9e4 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x98446668 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x984c05ad netdev_info +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x987d474b noop_qdisc +EXPORT_SYMBOL vmlinux 0x98882e25 tty_check_change +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989cc00d nf_hook_slow +EXPORT_SYMBOL vmlinux 0x98b6038a register_sysctl_table +EXPORT_SYMBOL vmlinux 0x98bcf9b6 inode_init_owner +EXPORT_SYMBOL vmlinux 0x991b1392 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x992dbf17 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9968f060 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x9972b8d3 skb_push +EXPORT_SYMBOL vmlinux 0x9973e46a km_state_notify +EXPORT_SYMBOL vmlinux 0x99766fa8 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999b38d8 cpu_sysdev_class +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 0x99d387ee put_io_context +EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99f585ab dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x9a01ffe8 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a4f1a78 prepare_binprm +EXPORT_SYMBOL vmlinux 0x9a67220c register_cdrom +EXPORT_SYMBOL vmlinux 0x9a69805d abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x9a69838b ip_defrag +EXPORT_SYMBOL vmlinux 0x9a892303 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x9a913f2a tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9b167fef add_disk +EXPORT_SYMBOL vmlinux 0x9b1fca90 dentry_open +EXPORT_SYMBOL vmlinux 0x9b2cadc9 inode_init_always +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b3c720d con_copy_unimap +EXPORT_SYMBOL vmlinux 0x9b3de3c9 __brelse +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b73750d inode_needs_sync +EXPORT_SYMBOL vmlinux 0x9b7dcbff blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bcf1208 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x9be38f1f try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x9be4e76a intel_gtt_get +EXPORT_SYMBOL vmlinux 0x9bf14703 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c379f16 dquot_initialize +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4b7467 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x9c60de5f should_remove_suid +EXPORT_SYMBOL vmlinux 0x9c9c75a2 blk_put_request +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb84528 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce508ed compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x9cf1d29b generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x9cf553ac jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above +EXPORT_SYMBOL vmlinux 0x9d1f1c78 blk_init_tags +EXPORT_SYMBOL vmlinux 0x9d205b8c ip_setsockopt +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d530836 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x9d61e5f6 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x9daf2eac dm_register_target +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dc932cf mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x9dca9dfc skb_recycle_check +EXPORT_SYMBOL vmlinux 0x9de56190 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x9dfe17c1 simple_release_fs +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e10b621 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x9e1bdc28 init_timer_key +EXPORT_SYMBOL vmlinux 0x9e231a66 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e3b0467 set_irq_chip +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e69ebe2 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x9e6aaaf1 mntput +EXPORT_SYMBOL vmlinux 0x9e747665 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x9e75236b sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e809fc4 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9edbecae snprintf +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f1d904c simple_lookup +EXPORT_SYMBOL vmlinux 0x9f25a076 neigh_create +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f4039b6 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f8661d3 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f93f414 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x9f9748df invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fadd7de dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x9fc4b178 generic_make_request +EXPORT_SYMBOL vmlinux 0x9fd049cb locks_init_lock +EXPORT_SYMBOL vmlinux 0x9fd0d8f4 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x9fd24230 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe59632 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0x9ff60363 dev_get_stats +EXPORT_SYMBOL vmlinux 0x9ffd228a skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x9ffd700b skb_split +EXPORT_SYMBOL vmlinux 0xa005e044 radix_tree_delete +EXPORT_SYMBOL vmlinux 0xa023a6c4 give_up_console +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa05e98de i2c_clients_command +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa094d346 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0bd558e start_tty +EXPORT_SYMBOL vmlinux 0xa0c7742d install_exec_creds +EXPORT_SYMBOL vmlinux 0xa0c9426e security_path_chown +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0faaf7c dma_pool_free +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +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 0xa13935d4 generic_show_options +EXPORT_SYMBOL vmlinux 0xa14249a3 get_user_pages +EXPORT_SYMBOL vmlinux 0xa14adf1d i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xa14d05e7 skb_insert +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1777a1e sock_no_listen +EXPORT_SYMBOL vmlinux 0xa17c5940 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xa196ee47 elv_rb_add +EXPORT_SYMBOL vmlinux 0xa1a63c67 module_put +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c090a4 sync_inode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1ec8f1c __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2889d4c scsi_free_command +EXPORT_SYMBOL vmlinux 0xa29d1b0d pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2c96f6b generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xa2d0c849 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xa2d8cea0 simple_rmdir +EXPORT_SYMBOL vmlinux 0xa2dbb156 dqput +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa3277ac1 i2c_smbus_write_byte_data +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 0xa3546393 complete_request_key +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37843a8 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xa37ccd53 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xa37d4e55 filp_close +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3f57fe0 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xa40837f8 rt6_lookup +EXPORT_SYMBOL vmlinux 0xa4201afb sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xa423a2be mount_single +EXPORT_SYMBOL vmlinux 0xa42a832c pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xa432f45b mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa45cbefe neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xa46438d0 security_path_symlink +EXPORT_SYMBOL vmlinux 0xa4698543 padata_stop +EXPORT_SYMBOL vmlinux 0xa46fe867 neigh_table_init +EXPORT_SYMBOL vmlinux 0xa4733c47 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xa47f3531 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xa48f8394 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xa4a7963f vfs_statfs +EXPORT_SYMBOL vmlinux 0xa4a90bf6 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xa4ad34cc tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bf0727 cdev_del +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa50dba69 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa50e7d15 fput +EXPORT_SYMBOL vmlinux 0xa510c2bb scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xa536d224 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xa54a1832 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xa550ebcc vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xa552cb3d blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa56f604b tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xa5761dcb scsi_block_requests +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a086df tc_classify +EXPORT_SYMBOL vmlinux 0xa5a39a0b netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xa5cb0d22 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xa5e1ad49 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xa5e3aec9 dev_emerg +EXPORT_SYMBOL vmlinux 0xa5e4f65c __next_cpu_nr +EXPORT_SYMBOL vmlinux 0xa60e5b83 neigh_destroy +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa675b4d8 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6856b77 scsi_print_command +EXPORT_SYMBOL vmlinux 0xa6859098 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6a5f43b page_readlink +EXPORT_SYMBOL vmlinux 0xa6d4049a inet_accept +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e54470 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xa6f46039 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71377e1 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa7162421 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xa725bddf scsi_unregister +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa746f001 set_disk_ro +EXPORT_SYMBOL vmlinux 0xa75308d5 nobh_write_end +EXPORT_SYMBOL vmlinux 0xa78b0f5d serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xa7bdadd4 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xa7c7e73b ps2_init +EXPORT_SYMBOL vmlinux 0xa7e7338e __ip_select_ident +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa82d8259 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xa8645a5d iunique +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa899f75f remove_proc_entry +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8e99475 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xa8fa5ce5 touch_atime +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa90ef6f6 inode_change_ok +EXPORT_SYMBOL vmlinux 0xa9184ec1 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa91e3b34 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xa921a1d7 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xa95d3745 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xa96a35f5 pnp_device_detach +EXPORT_SYMBOL vmlinux 0xa97cbdc7 skb_trim +EXPORT_SYMBOL vmlinux 0xa99fdfea mii_nway_restart +EXPORT_SYMBOL vmlinux 0xa9a47b64 dma_find_channel +EXPORT_SYMBOL vmlinux 0xa9b8d91f inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xa9b9a904 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c1b627 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xa9d6f34e __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa9dc8e00 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xa9dd9a98 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xa9e35da0 genphy_read_status +EXPORT_SYMBOL vmlinux 0xa9ed6f96 freeze_super +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xaa3d5efc xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xaa40ec58 inet_put_port +EXPORT_SYMBOL vmlinux 0xaa4c8212 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xaa4dae26 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xaa5197e6 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xaa54d402 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xaa591460 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa973445 pci_match_id +EXPORT_SYMBOL vmlinux 0xaace38f6 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xaad0cb40 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xaadfc8be create_mnt_ns +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaed38e0 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xaaef55a1 abx500_register_ops +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab05b28e read_cache_page_async +EXPORT_SYMBOL vmlinux 0xab099b96 netif_skb_features +EXPORT_SYMBOL vmlinux 0xab1731c8 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0xab2a1d20 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xab482688 free_task +EXPORT_SYMBOL vmlinux 0xab55e5da agp_create_memory +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65a646 kernel_listen +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab664632 agp_generic_enable +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab9428b5 __lock_buffer +EXPORT_SYMBOL vmlinux 0xab9efa94 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xaba196be set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabae875c kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xabc81fd8 scsi_execute +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabda15f8 vmap +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac22042a ip6_xmit +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac851487 md_write_end +EXPORT_SYMBOL vmlinux 0xacb593f6 input_reset_device +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace74691 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xacf3ea4c make_EII_client +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad1dfca1 led_blink_set +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad27c98e blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xad2b8fcf scsi_register_interface +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad70e0fb bio_integrity_split +EXPORT_SYMBOL vmlinux 0xad83a086 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xad8d2c5b create_proc_entry +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadae65d0 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xadb72e5f fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xadbfd419 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0xadca769f llc_sap_open +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xae068d68 pci_get_slot +EXPORT_SYMBOL vmlinux 0xae1e6f90 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xae3a64de alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xae42f8c3 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xae473815 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae8ed2a4 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xae99d86b d_find_alias +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeb7e240 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xaee3c9a0 dev_trans_start +EXPORT_SYMBOL vmlinux 0xaee86afa misc_register +EXPORT_SYMBOL vmlinux 0xaefbf810 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xaf0dadc9 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xaf12a90d mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xaf19475f blk_init_queue +EXPORT_SYMBOL vmlinux 0xaf38c069 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf3e8a25 pipe_unlock +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf6bc2d6 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf9914cf journal_create +EXPORT_SYMBOL vmlinux 0xafb87032 security_path_rename +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafd9ef79 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xb0070ac0 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb0116580 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xb0562c98 dev_get_flags +EXPORT_SYMBOL vmlinux 0xb068eaac inet_sendmsg +EXPORT_SYMBOL vmlinux 0xb0860354 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xb090b3cb zero_fill_bio +EXPORT_SYMBOL vmlinux 0xb099d816 arp_tbl +EXPORT_SYMBOL vmlinux 0xb0a61245 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xb0a8fd0a intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xb0b04f0b skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d7e9fa bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xb0d91ea6 netdev_crit +EXPORT_SYMBOL vmlinux 0xb0df7d74 kobject_del +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e1b807 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xb0eb61e3 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xb0eeea82 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xb0f85d80 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11a0551 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xb11a8e13 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1221311 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xb129b2a5 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xb1357937 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb184081a block_commit_write +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1be4e67 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1f77723 poll_freewait +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb2157ea9 bdev_read_only +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb21d105d seq_release_private +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb23a8938 neigh_update +EXPORT_SYMBOL vmlinux 0xb2409aeb account_page_writeback +EXPORT_SYMBOL vmlinux 0xb24e7c57 request_key_async +EXPORT_SYMBOL vmlinux 0xb252d15c get_sb_bdev +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2a7a62b dev_uc_flush +EXPORT_SYMBOL vmlinux 0xb2b0d772 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0xb2b9987b nf_log_unregister +EXPORT_SYMBOL vmlinux 0xb2dd1659 key_type_keyring +EXPORT_SYMBOL vmlinux 0xb2e9a3f2 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xb2ee7068 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new +EXPORT_SYMBOL vmlinux 0xb2fcfbbc fb_pan_display +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb30c0b9a follow_down +EXPORT_SYMBOL vmlinux 0xb30d8db7 vfs_readdir +EXPORT_SYMBOL vmlinux 0xb318a109 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb3386f83 kill_pgrp +EXPORT_SYMBOL vmlinux 0xb349e4a2 block_truncate_page +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb35fad24 eth_header_parse +EXPORT_SYMBOL vmlinux 0xb3600af9 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xb3885bc3 fb_set_var +EXPORT_SYMBOL vmlinux 0xb3a23f84 kthread_bind +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb3c35fa1 vfs_symlink +EXPORT_SYMBOL vmlinux 0xb3da387f phy_print_status +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb41e6498 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb424339e bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xb42d460c journal_force_commit +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb4448b9c __inet6_hash +EXPORT_SYMBOL vmlinux 0xb4625dba netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb49831ce block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xb49ad9b6 posix_lock_file +EXPORT_SYMBOL vmlinux 0xb4ad4766 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xb4c26693 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xb4d40dca sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xb4dc0029 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5149de1 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb59ac7f7 release_pages +EXPORT_SYMBOL vmlinux 0xb59d9279 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d37a61 kstat +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5da1121 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xb5dc9f34 register_nls +EXPORT_SYMBOL vmlinux 0xb5e9d718 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xb5fafd2b default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0xb60da43a i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xb610775c agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb62f771b mmc_can_erase +EXPORT_SYMBOL vmlinux 0xb6418260 input_inject_event +EXPORT_SYMBOL vmlinux 0xb642cce2 do_splice_to +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d9567e elv_queue_empty +EXPORT_SYMBOL vmlinux 0xb6da9fcd account_page_dirtied +EXPORT_SYMBOL vmlinux 0xb6ddf410 inode_lock +EXPORT_SYMBOL vmlinux 0xb74f63f8 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb77c61aa mddev_congested +EXPORT_SYMBOL vmlinux 0xb77f65c8 netlink_unicast +EXPORT_SYMBOL vmlinux 0xb78943cb kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xb7b9febb __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7c76f77 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xb7c992b9 x86_hyper +EXPORT_SYMBOL vmlinux 0xb7e03ea0 ppp_input_error +EXPORT_SYMBOL vmlinux 0xb7e126c2 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xb7e41ce3 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xb7ec0e49 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xb827d234 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xb82b1142 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xb8309a59 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xb83d98fe udp_poll +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8a9fe59 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb9054578 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb90b551c pci_scan_slot +EXPORT_SYMBOL vmlinux 0xb90ba1f3 kill_pid +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb914373f phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xb9249d16 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb93912ba skb_queue_purge +EXPORT_SYMBOL vmlinux 0xb94993e7 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xb9608e9d sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xb96680f0 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xb971f4b1 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb999dec4 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xb9b377dd vmtruncate +EXPORT_SYMBOL vmlinux 0xb9e154e4 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0xb9e3686e add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9ee7a15 posix_test_lock +EXPORT_SYMBOL vmlinux 0xb9f698d5 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xb9f8fbd9 read_cache_page +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xb9ffb95a neigh_compat_output +EXPORT_SYMBOL vmlinux 0xba01e6aa dm_table_get_md +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba37cafc netif_napi_del +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba533458 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xba66affe kmalloc_caches +EXPORT_SYMBOL vmlinux 0xba7c53e7 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xba99b2a8 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xba9ab163 agp_bridge +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbaf84a55 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xbb146836 alloc_disk +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb474e3c journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb86b702 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbba23cb0 cpu_core_map +EXPORT_SYMBOL vmlinux 0xbbac4bd4 d_lookup +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbc27e88 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc4f96a2 icmp_send +EXPORT_SYMBOL vmlinux 0xbc5e2677 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xbcabaf1c journal_check_used_features +EXPORT_SYMBOL vmlinux 0xbcaf3579 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbce2ae33 blk_peek_request +EXPORT_SYMBOL vmlinux 0xbd100793 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xbd55d210 bdput +EXPORT_SYMBOL vmlinux 0xbd7c86ff ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xbd9dc6c5 mount_bdev +EXPORT_SYMBOL vmlinux 0xbda9253a phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbde7757e xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe1dcdae inet_csk_accept +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe366045 fb_show_logo +EXPORT_SYMBOL vmlinux 0xbe62e2ff phy_start +EXPORT_SYMBOL vmlinux 0xbe68eac3 write_inode_now +EXPORT_SYMBOL vmlinux 0xbeb82eae xfrm_register_km +EXPORT_SYMBOL vmlinux 0xbecc6a7a scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xbed49ffc sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef69cb8 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xbeffc52e truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xbf1eadc0 inet_release +EXPORT_SYMBOL vmlinux 0xbf415e6a udp_disconnect +EXPORT_SYMBOL vmlinux 0xbf652dda mdiobus_free +EXPORT_SYMBOL vmlinux 0xbf7d298c pci_request_region +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8a3aef __getblk +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf981f80 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfba8a8b pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe3e35b agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc00b2549 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xc02b3ea8 follow_pfn +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0585ea0 backlight_force_update +EXPORT_SYMBOL vmlinux 0xc071d368 llc_sap_find +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0d84022 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xc0dcb856 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xc0e2434c dcache_dir_close +EXPORT_SYMBOL vmlinux 0xc0f66601 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xc0ff2359 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xc100cc3b inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xc124070a dquot_scan_active +EXPORT_SYMBOL vmlinux 0xc1268644 idr_init +EXPORT_SYMBOL vmlinux 0xc13c0810 sock_no_accept +EXPORT_SYMBOL vmlinux 0xc14558f6 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xc1525f67 ilookup5 +EXPORT_SYMBOL vmlinux 0xc1587ae9 netif_device_attach +EXPORT_SYMBOL vmlinux 0xc17d0ea7 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xc1a0a64c bd_set_size +EXPORT_SYMBOL vmlinux 0xc1a4a7dd pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c43d94 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xc1cd08e4 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xc1d7d179 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc1ded65c __mutex_init +EXPORT_SYMBOL vmlinux 0xc1f3ea27 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0xc20efbd9 udp_proc_register +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc289f8d4 mmc_host_enable +EXPORT_SYMBOL vmlinux 0xc2902a60 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xc2a8499f inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xc2b06306 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xc2b1f82a skb_pull +EXPORT_SYMBOL vmlinux 0xc2cd7c5c pci_clear_master +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e87443 scsi_get_command +EXPORT_SYMBOL vmlinux 0xc2ec9fc7 setattr_copy +EXPORT_SYMBOL vmlinux 0xc33ad83a do_sync_write +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc39fd7b1 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3c3d3c0 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xc3c869b3 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xc3d19163 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xc3f16e12 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc407d1a0 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xc4306319 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xc44e02cc kobject_init +EXPORT_SYMBOL vmlinux 0xc46c0288 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0xc471382c mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49c56ba i2c_del_driver +EXPORT_SYMBOL vmlinux 0xc49e66fb dev_addr_flush +EXPORT_SYMBOL vmlinux 0xc4b65b91 tty_free_termios +EXPORT_SYMBOL vmlinux 0xc4dd93df inet_recvmsg +EXPORT_SYMBOL vmlinux 0xc4e0800f dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xc5025b7e generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xc5175b86 journal_start_commit +EXPORT_SYMBOL vmlinux 0xc52d1cd9 dev_notice +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc54403c4 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc5c60743 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0xc5d2da2e d_rehash +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc604c986 vga_put +EXPORT_SYMBOL vmlinux 0xc61794fb kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xc61ad893 km_policy_notify +EXPORT_SYMBOL vmlinux 0xc620e919 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc631c20f gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc66a3eab scsi_register +EXPORT_SYMBOL vmlinux 0xc68447c7 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc70cc499 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73f6f56 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc754aad3 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xc754c18b acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xc75cba60 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xc777878e __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xc788844d jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xc78c0f23 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc80b073a path_put +EXPORT_SYMBOL vmlinux 0xc82c7d39 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85d16f9 input_flush_device +EXPORT_SYMBOL vmlinux 0xc864f8ea journal_init_inode +EXPORT_SYMBOL vmlinux 0xc868fc7f __dst_free +EXPORT_SYMBOL vmlinux 0xc86a6174 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xc88a9d9b gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a44d78 first_ec +EXPORT_SYMBOL vmlinux 0xc8ac0b2e key_unlink +EXPORT_SYMBOL vmlinux 0xc8b5168b phy_connect +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c23154 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xc925961c bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xc9492130 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc960a999 dquot_resume +EXPORT_SYMBOL vmlinux 0xc9853c3b sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xc98551dc neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xc99d9639 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xc9a418e6 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9e7617c vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xc9f13750 free_buffer_head +EXPORT_SYMBOL vmlinux 0xc9f3fb70 request_firmware +EXPORT_SYMBOL vmlinux 0xc9f88e3d agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xca43239b md_integrity_register +EXPORT_SYMBOL vmlinux 0xca46a2d6 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xca562938 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8ba896 tty_throttle +EXPORT_SYMBOL vmlinux 0xca92f550 inet6_getname +EXPORT_SYMBOL vmlinux 0xcaa8151d netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xcaaaa815 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xcab3424b journal_load +EXPORT_SYMBOL vmlinux 0xcab9223d acpi_device_hid +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcad38bbb agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xcb15f4a6 journal_abort +EXPORT_SYMBOL vmlinux 0xcb294422 bio_endio +EXPORT_SYMBOL vmlinux 0xcb47bf8d deactivate_super +EXPORT_SYMBOL vmlinux 0xcb485813 f_setown +EXPORT_SYMBOL vmlinux 0xcb520584 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xcb601d0e skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb9502a7 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xcbabae2d sk_common_release +EXPORT_SYMBOL vmlinux 0xcbbb9c58 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbe71745 filemap_flush +EXPORT_SYMBOL vmlinux 0xcbeab504 d_splice_alias +EXPORT_SYMBOL vmlinux 0xcbfaebe2 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4126be generic_getxattr +EXPORT_SYMBOL vmlinux 0xcc45a7c2 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xcc49220b padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xcc4b0d38 uart_match_port +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc72cea2 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcca87ecc pci_save_state +EXPORT_SYMBOL vmlinux 0xccae1557 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xcceb78d3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xccfd4cc3 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xccfdf8d4 mii_check_media +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2cefe8 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xcd4692b1 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcd50cad9 elevator_init +EXPORT_SYMBOL vmlinux 0xcd539e62 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xcd58a9fd jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xcd73d545 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0xcd783456 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xcd783a1e udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xcd82afb5 alloc_file +EXPORT_SYMBOL vmlinux 0xcd896a53 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xcdc2218f napi_get_frags +EXPORT_SYMBOL vmlinux 0xcdf6a829 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xce095088 mod_timer +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce28b9ae sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xce427684 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce60ca0d __dquot_transfer +EXPORT_SYMBOL vmlinux 0xce8c6dcd pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xceb025bc __ht_create_irq +EXPORT_SYMBOL vmlinux 0xceb7b1bc i2c_master_send +EXPORT_SYMBOL vmlinux 0xceccf67c xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xcecef285 flex_array_free +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf182584 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf20509e lro_flush_all +EXPORT_SYMBOL vmlinux 0xcf298a6d scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xcf37c5fa serio_unregister_port +EXPORT_SYMBOL vmlinux 0xcf3a053b ppp_channel_index +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd6d83b wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xcfdaf013 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xcfdcea41 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xcfdd88a6 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcff5783a input_unregister_handle +EXPORT_SYMBOL vmlinux 0xcff8caa4 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xcff98576 find_or_create_page +EXPORT_SYMBOL vmlinux 0xd001f21f sock_i_ino +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd03f27ce submit_bio +EXPORT_SYMBOL vmlinux 0xd069cac9 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08d5e97 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b0524c d_drop +EXPORT_SYMBOL vmlinux 0xd0b803cd registered_fb +EXPORT_SYMBOL vmlinux 0xd0cdc101 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xd0d0aa72 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fd29b9 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd131d83a thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1522eb7 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xd1653172 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1c0cb51 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xd1eeebd4 register_con_driver +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd20488c6 noop_llseek +EXPORT_SYMBOL vmlinux 0xd2145650 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd2194d7e sock_no_bind +EXPORT_SYMBOL vmlinux 0xd22a41d5 generic_setxattr +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd2476792 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2549966 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd267c4df mdiobus_write +EXPORT_SYMBOL vmlinux 0xd26a239d max8998_update_reg +EXPORT_SYMBOL vmlinux 0xd2779e61 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd280eac3 dev_gro_receive +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2b035da genphy_resume +EXPORT_SYMBOL vmlinux 0xd2b1e466 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xd2d3372d generic_readlink +EXPORT_SYMBOL vmlinux 0xd2d975b8 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xd3097533 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xd3235911 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xd324cb7c fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xd329d3bf eth_header +EXPORT_SYMBOL vmlinux 0xd32de6af single_release +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3381e01 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd3587a01 thaw_super +EXPORT_SYMBOL vmlinux 0xd35b5a93 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3857acc nf_afinfo +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd39f5748 seq_printf +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3c3bea8 lock_rename +EXPORT_SYMBOL vmlinux 0xd3d23aae register_md_personality +EXPORT_SYMBOL vmlinux 0xd3ef3413 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xd3fcf5c1 skb_set_dev +EXPORT_SYMBOL vmlinux 0xd41e1bfe mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xd4369424 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xd43763aa abort_creds +EXPORT_SYMBOL vmlinux 0xd447cea6 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd4b2afc1 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xd4b56fdd input_open_device +EXPORT_SYMBOL vmlinux 0xd4bee92b inet6_ioctl +EXPORT_SYMBOL vmlinux 0xd4e40c5a md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xd4e4aef2 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xd5060081 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c09603 flush_signals +EXPORT_SYMBOL vmlinux 0xd5c2cecf invalidate_partition +EXPORT_SYMBOL vmlinux 0xd5e3aeae tcp_prot +EXPORT_SYMBOL vmlinux 0xd5e78098 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63c9d04 seq_putc +EXPORT_SYMBOL vmlinux 0xd662734b __put_cred +EXPORT_SYMBOL vmlinux 0xd6759586 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xd676ff3a inet_select_addr +EXPORT_SYMBOL vmlinux 0xd6b2ade7 proto_unregister +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6cc92ad dev_uc_sync +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f5b08d neigh_connected_output +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd728ebf2 mutex_lock +EXPORT_SYMBOL vmlinux 0xd7418c6a inode_init_once +EXPORT_SYMBOL vmlinux 0xd74ae482 get_disk +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd76ae670 skb_clone +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd78f6745 dma_pool_create +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7c9ae32 noop_fsync +EXPORT_SYMBOL vmlinux 0xd7d0f222 pci_request_regions +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e36da1 find_lock_page +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd821342a save_mount_options +EXPORT_SYMBOL vmlinux 0xd821b38f netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xd83c7304 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xd841ac99 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xd858b499 user_revoke +EXPORT_SYMBOL vmlinux 0xd87f114e skb_dequeue +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8abcba9 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xd8b799d9 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xd8ca8dfa register_filesystem +EXPORT_SYMBOL vmlinux 0xd8d21eb8 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xd8e005d0 pci_release_regions +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f48f75 d_add_ci +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd9473459 lookup_one_len +EXPORT_SYMBOL vmlinux 0xd954ccb7 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xd958fb2b sk_receive_skb +EXPORT_SYMBOL vmlinux 0xd9793f83 __block_write_begin +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd992091a rtnl_create_link +EXPORT_SYMBOL vmlinux 0xd9a9158d xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xd9b27b05 bioset_create +EXPORT_SYMBOL vmlinux 0xd9c922b7 eth_type_trans +EXPORT_SYMBOL vmlinux 0xd9fa22e7 phy_device_free +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0b678d seq_read +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2203d8 kernel_bind +EXPORT_SYMBOL vmlinux 0xda2a0b24 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xda2f8e9c generic_permission +EXPORT_SYMBOL vmlinux 0xda300a7d bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xda41e447 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xda45d50f i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xda54ed2d generic_delete_inode +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda893c5e dquot_release +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda9be12f register_snap_client +EXPORT_SYMBOL vmlinux 0xdabce9e8 page_symlink +EXPORT_SYMBOL vmlinux 0xdad06400 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xdadb906b tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xdadf993f __xfrm_lookup +EXPORT_SYMBOL vmlinux 0xdae35d34 update_region +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb13f182 pci_pme_active +EXPORT_SYMBOL vmlinux 0xdb185e7b __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xdb2c287a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xdb3136a6 uart_register_driver +EXPORT_SYMBOL vmlinux 0xdb5c2320 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb71256a sk_reset_timer +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb96a890 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xdbb1353a mark_buffer_async_write +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 0xdc331494 processors +EXPORT_SYMBOL vmlinux 0xdc3d8813 kill_litter_super +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4578ef find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xdc491b16 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc8629fc tty_mutex +EXPORT_SYMBOL vmlinux 0xdc8c77fe radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xdc916ecd backlight_device_register +EXPORT_SYMBOL vmlinux 0xdca21799 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb4488b phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xdcc81893 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xdce4142f vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xdd05a5a0 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xdd257d0b page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xdd2f4484 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xdd472d37 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xdd4c2a9b eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xdd5be96d blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xdd6ead51 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xdd71289c alloc_disk_node +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd7e1115 sock_wfree +EXPORT_SYMBOL vmlinux 0xdd83d867 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xdd843561 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xdd96fde6 blk_complete_request +EXPORT_SYMBOL vmlinux 0xddb64b40 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xddbb15f6 path_get +EXPORT_SYMBOL vmlinux 0xddc6baca journal_start +EXPORT_SYMBOL vmlinux 0xddd7041c input_register_device +EXPORT_SYMBOL vmlinux 0xddef371c proc_create_data +EXPORT_SYMBOL vmlinux 0xddf5f718 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xddfade5a unlock_super +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde0f5357 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde1786b7 tcp_close +EXPORT_SYMBOL vmlinux 0xde1bd94f force_sig +EXPORT_SYMBOL vmlinux 0xde1d318c mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xde1e2abd pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xde26e34f mmc_erase +EXPORT_SYMBOL vmlinux 0xde320a90 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xde464c0f scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xde4a6cb5 mpage_readpage +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde8faf7e set_groups +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea753fa skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xdee4642c textsearch_register +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf3f4007 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf64aae5 journal_clear_err +EXPORT_SYMBOL vmlinux 0xdf688759 keyring_search +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf8f11f8 input_set_capability +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfb1676d inode_get_bytes +EXPORT_SYMBOL vmlinux 0xdfb565d2 dput +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd3a7af dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xdfe0d71e tty_name +EXPORT_SYMBOL vmlinux 0xdff49c5f km_new_mapping +EXPORT_SYMBOL vmlinux 0xdff5422d ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xdffbafa9 netdev_err +EXPORT_SYMBOL vmlinux 0xe0483483 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xe04fdce5 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xe0533e8e agp_copy_info +EXPORT_SYMBOL vmlinux 0xe05a3662 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xe06e4199 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe09a1393 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0bee25f may_umount_tree +EXPORT_SYMBOL vmlinux 0xe0f903c9 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xe0fa1fbc pci_iounmap +EXPORT_SYMBOL vmlinux 0xe108e076 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xe112da04 security_path_unlink +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1278889 pci_get_class +EXPORT_SYMBOL vmlinux 0xe12e8423 arp_create +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1423843 c1e_detected +EXPORT_SYMBOL vmlinux 0xe1448206 find_get_page +EXPORT_SYMBOL vmlinux 0xe155ac90 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xe16740ec thaw_bdev +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17abf91 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xe19acfe7 __devm_request_region +EXPORT_SYMBOL vmlinux 0xe19cfb97 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xe1bc7ede del_timer_sync +EXPORT_SYMBOL vmlinux 0xe1c54ac0 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xe1d81fc4 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xe1d889aa jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xe1e4f449 ip_route_input_common +EXPORT_SYMBOL vmlinux 0xe1e592d2 serio_close +EXPORT_SYMBOL vmlinux 0xe1fcfc9f __nla_put +EXPORT_SYMBOL vmlinux 0xe233b91f inet_sendpage +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2585075 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xe263a93a blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xe286a159 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xe28c1f7f generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe2bc637e jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe30c68af bio_copy_user +EXPORT_SYMBOL vmlinux 0xe30cdca6 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe31bf2b2 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xe32ba4ee have_submounts +EXPORT_SYMBOL vmlinux 0xe33845d9 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xe34c7e42 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xe3513342 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xe353666a unregister_8022_client +EXPORT_SYMBOL vmlinux 0xe374a4f4 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xe382b23c d_alloc +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3b8f4a7 init_special_inode +EXPORT_SYMBOL vmlinux 0xe3e12008 __first_cpu +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe4415ce1 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xe44a2211 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe45d61d8 cdev_alloc +EXPORT_SYMBOL vmlinux 0xe46b017f mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xe475a864 phy_driver_register +EXPORT_SYMBOL vmlinux 0xe47651b8 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0xe480ff67 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4951540 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xe49ce52e nf_ct_attach +EXPORT_SYMBOL vmlinux 0xe49ff869 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xe4e18b6c compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xe4e1cfb7 dev_close +EXPORT_SYMBOL vmlinux 0xe4e51920 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xe4f26134 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xe4fb394f xfrm_state_add +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe524f70f dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe5483c6e ip6_route_output +EXPORT_SYMBOL vmlinux 0xe5573761 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xe567eea0 elv_register_queue +EXPORT_SYMBOL vmlinux 0xe573532c dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57b62f4 path_is_under +EXPORT_SYMBOL vmlinux 0xe57e6931 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59ada41 alloc_pages_current +EXPORT_SYMBOL vmlinux 0xe5ad5315 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d96150 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each +EXPORT_SYMBOL vmlinux 0xe5e397cd key_revoke +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5fd21a0 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xe603eed8 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xe621f01a dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xe622cf6e current_fs_time +EXPORT_SYMBOL vmlinux 0xe628cc00 set_pages_uc +EXPORT_SYMBOL vmlinux 0xe63b1fc9 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xe64fae5e fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xe66bec7e tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a2828c init_net +EXPORT_SYMBOL vmlinux 0xe6c4825a skb_find_text +EXPORT_SYMBOL vmlinux 0xe6e42e9f lookup_bdev +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 0xe71d76ef vfs_create +EXPORT_SYMBOL vmlinux 0xe74b2829 inet_frag_find +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe751fb47 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7a70646 nla_reserve +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7f9c072 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8213ae8 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xe8419169 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe854d202 netpoll_setup +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe860a373 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe8964823 tcf_em_register +EXPORT_SYMBOL vmlinux 0xe8a7b97b __register_binfmt +EXPORT_SYMBOL vmlinux 0xe8aa25d2 __seq_open_private +EXPORT_SYMBOL vmlinux 0xe8d3fdc1 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0xe8d720ec sockfd_lookup +EXPORT_SYMBOL vmlinux 0xe8dbafef __next_cpu +EXPORT_SYMBOL vmlinux 0xe8df0b4c bio_alloc +EXPORT_SYMBOL vmlinux 0xe8eff824 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe93e6f06 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9868059 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9ad69c9 padata_do_serial +EXPORT_SYMBOL vmlinux 0xe9d7565e proc_symlink +EXPORT_SYMBOL vmlinux 0xe9eb069e udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xe9f34853 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea09ed9b md_error +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea143cba scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xea2bcba8 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xea2c1b55 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xea31d179 pipe_to_file +EXPORT_SYMBOL vmlinux 0xea355b65 input_event +EXPORT_SYMBOL vmlinux 0xea35ef59 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xea56d4e6 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea86a777 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeabf0092 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xeac3b724 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xeaca893b ppp_dev_name +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaecc694 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb2e2643 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xeb534922 pci_set_master +EXPORT_SYMBOL vmlinux 0xeb554097 bh_submit_read +EXPORT_SYMBOL vmlinux 0xeb9701d8 blk_rq_init +EXPORT_SYMBOL vmlinux 0xebb60b44 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebc096ef netdev_alert +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec3e07e2 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec6394d0 seq_lseek +EXPORT_SYMBOL vmlinux 0xec791a4a scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xec877618 __ps2_command +EXPORT_SYMBOL vmlinux 0xec9dc7b5 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xec9fcd37 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xeca07070 simple_readpage +EXPORT_SYMBOL vmlinux 0xecaae471 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xecb53cd0 seq_escape +EXPORT_SYMBOL vmlinux 0xecbae3ef key_payload_reserve +EXPORT_SYMBOL vmlinux 0xecfbef21 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xed081551 redraw_screen +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed3d0d9f seq_write +EXPORT_SYMBOL vmlinux 0xed4b900e vfs_fstatat +EXPORT_SYMBOL vmlinux 0xed5f392f igrab +EXPORT_SYMBOL vmlinux 0xed671804 bio_init +EXPORT_SYMBOL vmlinux 0xed67adba vlan_gro_frags +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed91207a skb_copy +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedb1f13e i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xedb45292 ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc22be4 fb_class +EXPORT_SYMBOL vmlinux 0xeddec09a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xee14eca0 radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xee21975a blk_requeue_request +EXPORT_SYMBOL vmlinux 0xee291f75 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4dac9d blkdev_fsync +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee875915 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xee9fb794 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeacc9a9 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xeeb5ac9d uart_resume_port +EXPORT_SYMBOL vmlinux 0xeec40c9e __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xeeeb6c58 d_set_d_op +EXPORT_SYMBOL vmlinux 0xef14c2d6 cdev_add +EXPORT_SYMBOL vmlinux 0xef2b5341 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xef35126c pagevec_lookup +EXPORT_SYMBOL vmlinux 0xef45d32c __kfifo_init +EXPORT_SYMBOL vmlinux 0xef5f6f74 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef80779a bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xeffcdcac dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xeffe0137 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf01e0bc4 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xf0399074 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf096bdd5 netdev_state_change +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf0bd7bdb dquot_commit_info +EXPORT_SYMBOL vmlinux 0xf0bf9885 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xf0d188df skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xf0ed1c62 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f757c2 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xf0fa8bad shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1132080 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf1773298 single_open +EXPORT_SYMBOL vmlinux 0xf18ac161 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a31f13 put_disk +EXPORT_SYMBOL vmlinux 0xf1a570f6 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xf1a64fda remove_arg_zero +EXPORT_SYMBOL vmlinux 0xf1acb223 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xf1bea6f1 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xf1bf13c0 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1efce52 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2348f1b inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf25ba5d2 generic_file_open +EXPORT_SYMBOL vmlinux 0xf27e531b ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2ab30d9 sock_no_getname +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf320ab85 audit_log_end +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf32dabd5 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf333bddf nf_register_hooks +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34d3c1d blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xf37682d6 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xf386141b tty_kref_put +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e15f20 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xf3f465c6 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf4089e76 dm_table_get_size +EXPORT_SYMBOL vmlinux 0xf41d934a pcim_iounmap +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf4671905 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4965ef0 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4cf6d19 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xf4d72f9b mmc_add_host +EXPORT_SYMBOL vmlinux 0xf4e6d385 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f1d73f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xf4fdcd3e blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xf50cb688 kset_register +EXPORT_SYMBOL vmlinux 0xf50fac46 tty_hangup +EXPORT_SYMBOL vmlinux 0xf526695f current_task +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53c2e48 kobject_add +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54fe022 md_flush_request +EXPORT_SYMBOL vmlinux 0xf5647172 block_write_begin +EXPORT_SYMBOL vmlinux 0xf576dd74 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xf5815b1e end_writeback +EXPORT_SYMBOL vmlinux 0xf582a92b pid_task +EXPORT_SYMBOL vmlinux 0xf58856e4 put_page +EXPORT_SYMBOL vmlinux 0xf5af7fe8 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5e7b455 md_write_start +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f8d88b init_buffer +EXPORT_SYMBOL vmlinux 0xf5fcbd2f tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf61296e5 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf67e295a inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xf685b227 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xf69f0c2a wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ea678d scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf704b5d4 kobject_get +EXPORT_SYMBOL vmlinux 0xf7123960 proc_mkdir +EXPORT_SYMBOL vmlinux 0xf7323981 bdi_register +EXPORT_SYMBOL vmlinux 0xf7331a08 __bforget +EXPORT_SYMBOL vmlinux 0xf73788e4 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xf7440932 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0xf7471df3 rtnl_notify +EXPORT_SYMBOL vmlinux 0xf7506c41 __any_online_cpu +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75c58a0 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xf76fb350 no_llseek +EXPORT_SYMBOL vmlinux 0xf7702be0 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7a6fd75 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xf7c84edf __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xf7d71918 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0xf7f4fc75 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xf7f6bc28 elevator_exit +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf81dd1ed nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xf81f3811 __destroy_inode +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf88c73c4 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8a6da8f take_over_console +EXPORT_SYMBOL vmlinux 0xf8a7f7cf pskb_copy +EXPORT_SYMBOL vmlinux 0xf8cb8a66 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xf8e4a925 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xf90ba427 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xf9225bb8 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xf95ba6be security_task_getsecid +EXPORT_SYMBOL vmlinux 0xf98d6b6f scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xf9981ecf simple_write_begin +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9abc6b1 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xf9d7c5ae __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xf9e605ac acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0xfa082308 kernel_read +EXPORT_SYMBOL vmlinux 0xfa2dc109 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xfa4f3d49 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xfa5ab97d scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xfa80fe3f qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xfa86df1d i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xfa870b41 security_path_mknod +EXPORT_SYMBOL vmlinux 0xfa97db01 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xfa9d5859 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xfa9f6263 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xfab894ac d_alloc_root +EXPORT_SYMBOL vmlinux 0xfacac691 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xfaef163a generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb19731f skb_store_bits +EXPORT_SYMBOL vmlinux 0xfb5f846a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfb63d603 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb834264 input_grab_device +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd0c474 agp_backend_release +EXPORT_SYMBOL vmlinux 0xfbd9ce9b posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbffcf58 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc34ef3a acpi_bus_start +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3f46cf tcp_poll +EXPORT_SYMBOL vmlinux 0xfc4fc13e devm_ioport_map +EXPORT_SYMBOL vmlinux 0xfc50827b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xfc798f73 fsync_bdev +EXPORT_SYMBOL vmlinux 0xfc8d91cd jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xfc9e9c4f jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcab154a dm_snap_origin +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb35211 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcdd183b pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xfce80819 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf0d76b nf_log_packet +EXPORT_SYMBOL vmlinux 0xfcf5153a ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd183ef3 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xfd33f5fc end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xfd353783 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xfd47ca82 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xfd6a20a6 flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd96bda3 dev_mc_add +EXPORT_SYMBOL vmlinux 0xfd99f4af submit_bh +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdae4687 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xfdb0508f dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbc7c40 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xfdd9bc09 posix_acl_permission +EXPORT_SYMBOL vmlinux 0xfde01729 inet6_release +EXPORT_SYMBOL vmlinux 0xfdf2200e genl_register_ops +EXPORT_SYMBOL vmlinux 0xfdf2bb1e iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe0a51db ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xfe1b5e3b security_path_mkdir +EXPORT_SYMBOL vmlinux 0xfe1f40dd udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe3f42e5 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xfe49bbe0 dev_driver_string +EXPORT_SYMBOL vmlinux 0xfe50be98 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe62ee9e nf_log_register +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe85d68e thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xfe8a1a75 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xfeab5e0e splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfedf0e6e sock_setsockopt +EXPORT_SYMBOL vmlinux 0xfeee7ede scsi_finish_command +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff19d562 mmc_can_trim +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff477551 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff69d687 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff894d89 bio_alloc_bioset +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 0xffaa886b dev_printk +EXPORT_SYMBOL vmlinux 0xffc419e6 __devm_release_region +EXPORT_SYMBOL vmlinux 0xffd04333 seq_path +EXPORT_SYMBOL vmlinux 0xffd52160 agp_find_bridge +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff12a11 __napi_schedule +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 0x0541335b kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0908ed71 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1015b9fe kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12c7535c kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1aeec36e kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c9e6aca fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e8cfb4d kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ea3ebab x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x24c86c06 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x25969a65 kvm_complete_insn_gp +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 0x2e4d0089 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3136d5a9 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x38e03070 kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3921c50b kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3cb1059f kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d380989 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48088882 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48c66e65 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x49263ff2 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x492ef1e9 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b5a1046 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4ec24471 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5012ad4c kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51738dc5 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5390732a kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x541e37e9 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x55532811 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5644fe2c kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x585cee54 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a4569a2 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c8e40ef kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60294052 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x61bd7818 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62736577 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x691eba31 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x69fedd8d gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b174116 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b733aef kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d512385 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6f8d1c8f is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x721368e1 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x72c50cf5 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75c87c6a kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b9a0928 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c4c132d gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c59fcb2 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f1d799a kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x83da2d77 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88803b91 kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e7af94d kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8f36e917 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x921aca2f kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x928f9763 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95227719 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x961ffe31 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x969ef196 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9708edf7 kvm_read_guest_page_mmu +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 0xa1cd32e5 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa76d6f5a kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8391fe3 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaeff40ad kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf3ac130 hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb098a346 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0dbb30f kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0e6fb5e kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1ce2c8b gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc47f713d kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc51fa3a7 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xccc9261f kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcedef4ef kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd00e5993 __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 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xda768cbe kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdb9dc208 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdd77ade4 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xde99656e kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdef842f6 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdfe04c6e gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe38fa866 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe7d75283 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee09f620 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0c3dd6f kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf1a90198 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf778bdc9 kvm_release_page_dirty +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 0xa2dcbbbd crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/af_alg 0x02af1f96 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x3ee8f783 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x429dc591 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x63aba7d7 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xa03447f9 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xdc5f78cf af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xe27f8ad0 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xf10115fe af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xfe8f187c af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x89e75bbc async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x288b2776 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x696c099d async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x9bfba2ca async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xd67c66ac async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x059b9f2e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x3fc506b9 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa7c704a1 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xab72c982 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x103ab41a async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x2f0b56f2 async_xor_val +EXPORT_SYMBOL_GPL crypto/cryptd 0x05ac8144 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x462b374e cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x896f77a4 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x8e1928a3 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x986a91ab cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xad55b826 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xaed7fdba cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xc83726b4 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xe11a2231 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xfc1c9cfc cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x35c880d2 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 0x01c07db8 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x077d3fc4 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1d26806c ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2054ff89 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x24a70c89 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x27dada30 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x34672cda ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8661f949 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x87182979 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa407f98c ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb8641ae2 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd174c8b0 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd472fe35 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe3111789 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf57102b6 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6116c01 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x6e27d393 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xbaf2e927 __pata_platform_remove +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 0x01730939 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x042339c4 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x22470e58 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6dc66879 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7539f471 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7dbdc4f6 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc7261199 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe7a38d23 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x01725bc2 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x10974c7d tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1488ced6 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x37a68844 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x43293f6e tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x454a76d7 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x481b48cb tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4c8f45d8 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4f1ca387 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x54b04b3c tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5549f590 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x648d9131 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7319370c tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9456b761 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9874857a tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x98cb393f tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xad896132 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc464d548 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc556bc26 tpm_send +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc727a8ba tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd8ef7390 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xed446c75 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf851b49c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfc92d6c7 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x01ca916e tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xeb64910d tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/dca/dca 0x22798037 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 0x47ecdc2e dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5be03065 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x72e53168 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x86eba54d unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x9db61d0e dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xa854554a free_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x2ca2e240 amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0d9b69c4 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1168b423 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2018d26e edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6112deec edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7b434a7c edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7d948349 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7fbd02c4 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8113033e edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x92dcdf33 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa793d927 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa96c10a5 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa9993f04 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaed4e028 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb17c9f20 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb8382cfb edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb9664520 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbab60aba edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbb96095e edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbc7afd34 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc034432f edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc87656ac edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe69a171e edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xef847c82 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfbc51acb edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfdda7d44 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +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 0x1502296d 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 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xedbca0ae amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xff582b9a amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xc0bb404a cs5535_gpio_setup_event +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 0x710fce44 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xc9f75ef0 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa955a567 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xaf38d6d6 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 0x0617cf1a hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x087246a5 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x13620ef1 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x14a19583 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f0429ac hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2d45e2fb hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2eda791c hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x322d6c5c hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x324e06f9 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x37b61625 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x393f81f4 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4b659087 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4ecb8030 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x56f5a068 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x658ff0bf hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x66afb4c7 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x72614945 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x89c8bae7 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8cba1266 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8f742287 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb1484459 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd253880e __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd315fb57 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xde09a7d2 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec161dee hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf25da8e0 hid_output_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 0xa799ece2 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3c316d15 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xcc0dfa88 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xd095385d usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe761cf95 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x1ab78636 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x234b7e8e lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x2ed60f8c lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3fb0afd3 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xacfeb0c8 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xd4e98b51 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x203a4b7e i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x60f368a5 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf20d1be6 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf8b47c58 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xff344a4b input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x04d56320 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x3ffb1861 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x43a1b494 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe2db2f34 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x299fef0e wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x383932b1 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7df82d93 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8bc1437b wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9d36ad5d wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb5f51b52 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc8669b97 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe535ef90 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xea529bdf wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf20c01a2 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf23b7d49 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf88bf2ca 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 0x1acab528 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x28ceea65 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2cfa8fb0 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x324e904f gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3955efac gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x403893f8 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x56c0b709 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5d80d0eb gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6dfd71de gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6e12adf5 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbeefa047 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbf1b2584 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc5279f1b gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcd9eff6a gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcfa5b7e3 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd62955fd gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe3957f95 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfbe9f792 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/md/raid456 0x4490a1dc md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/md/raid456 0x991a5cfa md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4f61ae3d saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9a7cf6e3 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9b3f85b7 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xaa4b4f84 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc5b0ff9f saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc94d2ef0 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcba83b08 saa7146_devices_lock +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 0xebd6ff0d saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf415dd69 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf4c5ef78 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xff2b034b saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0e48d4f0 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x29de3d34 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x29e7909c saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x579ec846 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x91f43fa4 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xba07c972 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfa2a43e6 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x4b03c75a microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x392b3f85 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x92887311 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xdcaa0a7d tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xafdd080b tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xeea6673c tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xc506755c tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x0bb68305 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xcdb4720d tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x3b4321c9 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x7925da08 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x61a12881 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x08f719ed mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0adf8d56 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x35cf0523 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3dc31b54 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3f27aef2 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x542c9883 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x589ec085 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5a5a25ab mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x645a28d4 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6da53d27 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x718a607b mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x87f76cc8 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8b8cbc87 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc570a6f0 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd772c435 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe28ae791 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe2bbb246 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0b7b21d5 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0e6ec0a2 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x101fcd53 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1490dcc0 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x30d31d7d 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 0x48371f1a smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4bdc493e sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x61ff0d34 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x650ef5ab smscore_unregister_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 0x85f3fb14 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa8c60597 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb35d23fa sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb6bde100 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb775f759 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbc4bb68f smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbe1b46bd smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc2248604 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc6dd91dd smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcd9cbf5f smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x5ed750f9 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x66623dd2 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 0xa4ee3c8f ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xaaa6bf12 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbab624cf ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbd76e694 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd31189e6 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x08f318f3 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0c4d96bb rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0c923c12 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2b43213f rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x34580cef rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x51ca4f3d rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5aade221 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x65b05932 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x796a0510 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7be0e93f rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8b854978 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8db85f69 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9040860d ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9cb29fb8 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xac40077d rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe8d666d3 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf3a6eb84 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x024497df cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2c54121e cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2ef02569 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x47d7b66e cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x70754b06 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x721d860b cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x75853cf0 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x94366b2d cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x96acaa0c cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa80918eb cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xaab15177 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xac64faea cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb749ef81 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc998294c cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd3c061df cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xed3c18ec cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf286c375 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfb0d46a5 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfdbf2c62 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xf28afafa cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x1e78516b em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x86445029 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xb8030bcb em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc14d367a em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xe322acc1 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xfdfe13a8 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x0922e34d saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x7d3eed08 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x9d7b5b22 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd61306ff saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe4b00ac4 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/soc_camera 0xabd740ac soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x42dc69eb v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xabd95a6d v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc0535e1e v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xcab9234e v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xec1739da v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xef79b927 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-compat-ioctl32 0x5d83f23f v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5f2682ea v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5f9ddef5 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x8677ca6b v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x9d569242 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-mem2mem 0x157221f9 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x184e3552 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x240a8c7c v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x25ff60e9 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3d22232a v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x41c31882 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x439a6fec v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4fe53d9c v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5ea6681a v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x69a50884 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8bcee82f v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8f9491d6 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xbc85c0fc v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xcc7ff4a5 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0eb55fa0 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x25b286bf videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3ffea65f videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x52a0660e videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6b12f105 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x784bf84d videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7d1467c3 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7d7c5582 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8119ff40 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8b20eadb videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8caba638 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x930fdb32 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x96dc618d videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa7737fd1 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaeed9585 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaf0b7a9a videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb2c1edfc videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc4b88543 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd10dfc83 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd28790e7 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe29e634d videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf7c967ad videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf7f44778 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfa458096 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x52708daf videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x860dc2fc videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xdbb5ede4 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2af3dbdf videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2b6cd820 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3bcfe813 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x74b2b2ed videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7b0d6eb2 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa1f1e2de videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb4701894 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd33e5790 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdd52a93b videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x787f6457 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x88a06608 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xbeb0d7e9 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0c604c71 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x29585146 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2dd5491a v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x345357a6 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x571ee931 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x57b5610a v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5cf06f28 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7087178f v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xab955b29 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xacd86e6e v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb85b5f16 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc97c0daf v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcb643db7 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcfa46103 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdd0239fb v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe79d9b51 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xed43e0e1 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xffa208bc v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1c081a72 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8112a0d9 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa42b6dc9 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xad810910 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb56819e6 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc63ce69e i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xda9526ed i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfc5f81cf i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xdebe4874 mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x12b5fddb pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x19e2aac4 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2558ee97 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3cc5240f pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3d1287cc pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6aed535c pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7ed14735 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xab2cb47f pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd32b56da pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xda1d202f pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdf0b73aa pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xadb03fd5 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xc589412d pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x28592035 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x64765465 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x86a0fbfa pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbac473fb pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc471d70d pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x13de98b3 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x36e93809 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x41ac717a sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x817210e0 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8e24af6e sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xcaeb3c1a ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x39020e2a wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x4d30a094 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xd1efb1eb wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xf541eec2 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x1def36d7 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2afcba07 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x3a827a35 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa6e28835 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 0x314c0240 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4481ee24 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6894dbec enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x738c8ab6 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x77d91cb1 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x9d5c1374 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd1430727 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x8ffcd11e st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6b3b460e sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6c153f7a sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x71d22c78 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7c0bf3f6 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9f58b74b sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbbb07670 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdcd8125d sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x35f60a57 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x4a9ce2a1 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x63861902 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x1e9bdf7d cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb3a91c50 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe19ceb16 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xd5450f5a cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x06bf85b7 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x89444739 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xcf55cb2f cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x592d4978 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x3bc9fe7c DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xebb857cb DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00668c4b mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x01d697b8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0fdc32e7 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1463f3b4 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2cb9f5a2 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5574ec0a register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5608fb51 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x61387724 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7c450298 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7cfd4c96 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8a9b4498 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b864328 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8ea9f081 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x971c2ae4 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa61268a0 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae28b5fc deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcaa88182 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd029cf49 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd36e2579 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdd4ff6f2 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xedc456cf register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x20903d09 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x313bb90e del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe4cafad3 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xed36892d register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9eea47f5 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc2c96540 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x0368165f sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x8202e41a onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xced79aa0 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x28c4d3dc ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4303cf7b ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4bd348c4 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6591ef52 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85b958b8 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8c061598 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb78b6b69 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0e36989 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc961e8e5 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd7171d7a ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe4620d90 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe47a59cc ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xea6af3f7 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x14b4e0da register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2aa8a8c5 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x39922c26 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x401b8c41 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x47e9a016 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x49b5f35e can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x557563aa close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6d7d4d56 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x78f7ac3e can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb6cbde8a open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xde3934fd can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf81b85d4 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2c02f87f unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x407348dd alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5f6259ad register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x86f4c6e5 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x5335a6df macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x559d2f97 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xba63e465 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xbf66d4e0 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xec2cc43a macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x00981ab9 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0bf1fe4b mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0c97cdaa mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x14c7b8cf mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x17f28112 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1eadcd7b mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x20ac38f8 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x217ffbaa mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x28cc22b5 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2e4331b5 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3fadeb33 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4236efd9 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x43b20588 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44cfe8f4 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4b4bbb18 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4d9b5fe9 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5227362c mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x53abbf21 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5b52fba7 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e7f973b mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x623e7fff mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x62a845cb mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x65d0d702 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x74264ae5 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x77339d36 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x78360555 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a364532 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8678b410 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x87b8d22f mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8939e0e9 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b692406 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa194dc7c mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa2f4c80c mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa334ec25 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa44e91a5 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa7425f73 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb131afad mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb2b2dfd3 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb5728de3 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb68437c0 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbb807168 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc2db10cc mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc5bfcf83 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc75c75f4 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcf026fad mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd45339ef mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd5b85826 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd8e2180b mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd840015 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe8e1c6a7 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf1f6ce38 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf4eecc45 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf792f3ad mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb3bb80e mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfbda6481 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xccc63301 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe351a847 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0e2684a8 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0f44a649 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5522ea7e rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb98c312a rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc269bf73 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfe2a65bf generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0353f9c2 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x20c244d5 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4c74f535 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x502e5f9d usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x50e204d7 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x51de14c6 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x51f84962 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x52d91dbf usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5d740f9d usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x797a6017 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7eb07bb7 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x86331517 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x90a2742d usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9bf5cf2d usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa532ebf4 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb22aedeb usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb4876b1b usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcac5c107 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdc526bc5 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe2b732fa usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe93173d9 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xec3b59e0 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeceb0221 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf730562c usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0993f414 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1ac1ab41 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x27ac080b i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3f688a0a i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4c547452 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x66104859 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x76a22a03 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x936df7e6 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa11ab887 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaf6a8186 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb345335f i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb97a8754 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc876c39a i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcb5ed1ef i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xce9673fe i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xed0265e7 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x19939df8 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x3a346221 iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x6975350c iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xcd5072d1 iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xe89898ac iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1265d625 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x301d833b lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x354fb65e lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x40a7e3f8 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4254896a lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x52f8908a lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x556163f4 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x66a1beea lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6fc0c058 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7b713832 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x88b8aaaa lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbbdf1a99 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbc7c2e5f lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc38105a6 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcc661b79 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6a5d9c29 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7da5cb2e lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb5d0c815 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbfdbab1c 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 0xc8b04244 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd4557206 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xec0a4ee7 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xed887302 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x7ce54d9d if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xcbb6bd57 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0aee2f40 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x14197324 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x407170f9 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9eb9d332 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa1621a5e p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb5152cff p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe499dfaf p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe5b34ba7 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf162b404 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0b6502a4 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1d5a7aba rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x202236ee rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x24767572 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x28e27cbb rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a0cd701 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a2ebb43 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x347b4bb1 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x395a9cc1 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3abba216 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4191099a rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x465ac884 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48e8ccf4 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4ed9a889 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66bd12fa rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x77831b9d rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d90ddeb rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x810676d6 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8ebfc657 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9d9cd34c rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9ec69153 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa22cb207 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4a6a482 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa5b2d69b rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xac783364 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc2bb41e rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbe7b3b9b rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd550385a rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdaf5d562 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5431a43 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb32c756 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf80236b0 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfc48923b rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xff39d5f8 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0cc14b6c rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0eed3430 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f194f82 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1abe86ca rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1e25c26a rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2487f154 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x299b5fd3 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2f08fe8a rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37842df1 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4981560a rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x54af7d1f rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x597586d4 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5b9c50ab rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5e5be731 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6095d0e2 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x62d912d3 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69e97798 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a60edb8 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b757619 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6bfb8f96 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x710bb973 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x73b6aa5a rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7803cadf rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81a2c3cc rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8399216e rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8fec48cc rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x90bc8ac5 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98e36ede rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa677b43a rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa7816f77 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb4aef1ed rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb63d31ca rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbbd0fc83 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc8aac94c rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc918d7d2 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcb007761 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdbf311ce rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea4c25d5 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfce3a99d rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xffd3bce8 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x17b5b1f3 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x42ee62c8 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x57b108f3 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6df630dd rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb53a1836 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xcca0d448 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd6e3577c rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfc1e37c3 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0dfe93b4 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x293ba48f rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x29602638 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x371686e1 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4028cd1e rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6ffa57cb rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x83ac3f1d rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8a2eb765 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9ff2ddd3 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa93a2899 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xaa3545b0 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc66d5d0c rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe3be8d9a rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf569161a rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf9d46b22 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x323bdb11 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xccad13f3 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xff052aec wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x01c90f72 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x15158c1e wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x488de598 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x49db4926 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa1008453 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc4529350 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xd6ffda6c wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x2f5c9625 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xf11c5815 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x71b8c654 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x9be0c729 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xecb96d11 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x2ef3b5c6 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3518a11f mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3c3bc1c8 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3dea0625 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x431e062b mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x950bfb36 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb5ddc600 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x69cd1a74 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8db25352 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9a22d758 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9fb8da41 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xad457439 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xddb80632 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x39c50c1a wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x08854a4c cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0cb30584 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x15f99156 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x17b026bf cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1a82df6d cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x29110623 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2aad82f2 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x32684f63 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3694e9f4 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3ea758f1 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4963b4d9 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b726736 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4be8d091 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x577b92cc cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x589df539 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x625fc7cb cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x63f60782 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6559b74b cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x66e0a68f cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7d485d01 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x821ca183 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x87c47e1d cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8ce1d735 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x98edaea3 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xac0dd615 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xae9a36a8 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaefce988 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaf8669bc cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb91cc08b cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbdda1692 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc4de8413 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc92ee138 cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9e41970 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xceba5904 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd6ef11eb cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddc43c70 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe03fe1cc cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe7640ec2 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xede11dc8 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xee8103da cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef91d47b cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf2051264 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfc5f882e cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xff0dd520 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfaafc1c0 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x17e16efb iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1fc4c5b0 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x42bec74c iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x46cdc774 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x87acbde8 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf6fd5e28 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x014b46f5 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x091f2483 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b984a7d iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ea2cddc iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17437fe2 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ab7ee80 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2af79faa iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3031d862 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x40a0efd1 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x487fd823 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c587dae iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4e5131b3 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50316f87 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x55456143 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5df35568 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x658aed1f iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x681cb83f iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6ac7d246 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7241ea8e iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x73edff86 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8f077843 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96f24b39 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d45f216 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d60f740 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e2c467f __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa9ea52b9 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xad5dac0e iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb1e8bef1 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6b956ed iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf74d9f8 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc01811a7 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc699ee10 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7296f62 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd023df78 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd16ded92 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4dc980d iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd637c769 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdfa2b0ec iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdfc0d772 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeaa41b0c iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec4050cb iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8997ac8 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb4dae87 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0cd680cd iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x10a5f935 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x19e08ce2 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x26f4c201 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3d7d8532 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4d6be8c8 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5138d511 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5955c671 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x59d50294 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x62512748 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6bc56985 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x802d417d iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9c8caae0 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc3cf3d24 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd432440e iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf21299ed iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0e7dcbea sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1363d6b0 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x13f77399 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x16198697 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x39239cec sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3a9a5e6e sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x406c94b8 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x43202574 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x440bd34a sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x55046a40 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x552bdce9 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57a8535d __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x58d3fa04 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x68061a14 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x71cd310f sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x87db028d sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d351287 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa00b217e sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa2456121 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa85e6359 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc7927481 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd9d84669 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda05a0ff sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3f9da009 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x887aea39 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa36b906e srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xae93d7d9 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe2b9800c srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe96cad0f srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4a38d8f5 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6c2cf339 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6c705995 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x791d8677 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8b873d17 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xda48f72f scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe542e611 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf61b130f scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf8fe91d0 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x06deabff iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ba026c1 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0f5f3a5c iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17435d68 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x18e97a04 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x19eadf26 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b252c14 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x22889b68 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fe92f28 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x334ce071 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x392121f2 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4047c966 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6877e69c iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71fa1b9c iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x768ab075 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7d3c78ed iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8843e154 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa909392f iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcc559af9 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xce161d3d iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd3eefd88 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdb891cd4 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfd2489a3 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x07f5b165 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3871da07 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb81f1fdf sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf6634de2 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x09d27a87 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2aed4974 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x574fdaa0 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x929dd53b srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc719369c srp_rport_del +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x32489ef3 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x5da9acbe spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x94a6b5f0 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xcbfac4de spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xdaf586d0 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xebe0c174 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x54978770 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x72ac8320 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8a814d6c comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb5db9d28 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd68d7a40 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x54a0b659 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xc1deedc3 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 0x42d98184 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x7707895f labpc_common_attach +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 0x308925e0 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x35bb1d4b ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4aa1e3ad ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x6446c332 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x81ead9f9 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xb1e3f173 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xbab3afd7 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xdcb15e1e ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x09b5e9ea ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x47274a50 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x641911b7 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa4090937 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc94ca7b0 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xf6b4ac96 ni_tio_cancel +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 0x046fb741 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x195eb8ad osd_waitevent_waitex +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x1c874b26 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x1f473a1e osd_page_free +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x22e30b07 osd_waitevent_wait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x318af37c osd_page_alloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x3b5d1afc vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x53d3bcd7 vmbus_close +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x880aca87 vmbus_open +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8d552274 osd_waitevent_create +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xcef8fe90 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xcfd092ed vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xe95976b7 osd_waitevent_set +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x08fc7115 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0a8864bf spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1432ee06 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x347a2a1c serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x435d314f speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x66d4d3c1 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x77df87f5 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x81c0fb43 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x98527210 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa52f837b spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbe2213b2 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbeb2407d spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x33e5ac32 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x4552391d tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x956d8929 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x16ba0c78 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x1badfdcf usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x321ed118 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3ad630ae usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x48775bbf usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x52203be8 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5fb94ddd usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6097c325 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6bb763a9 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6e5249e5 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9b58570b usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa085394b usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xaa26b138 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 0xd219e70f usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe4c3e550 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe98fd7cb usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x05de8f83 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x4758055a max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x88f30c06 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x9a7098d2 max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xcdc6ee1e max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xe2cce99d max3107_resume +EXPORT_SYMBOL_GPL drivers/uio/uio 0x4d38594b uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x8b17659e __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xed5e19ad uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x0cacc7b8 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xad32147b usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x02e3e3b0 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x121328c4 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x149d31f1 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x23c090d5 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x325fb0ca usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6014b684 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6664bebf usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcf384f67 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe1bd7ab7 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00502bd5 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3dc9cdee usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x411cda1a usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5f82fb96 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6435770c ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6d9f8f5c usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7f2aa224 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x842ac105 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9f25a11f usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa342b2c2 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaa5c0e13 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xab3d4688 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb66a1b5b usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd7a7143 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc88f9c83 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd068d61f usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd12096db usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd5af8eb1 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdb67f067 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeb09bb2f usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xee87c7af usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x02a856a5 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x17aa9b3d usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1c627fad usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x23a0fa6c usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x39eac493 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3e09a002 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x43ba5d84 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4ca840d8 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5292575c usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x60780a9e usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x60f3ad42 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x79732e10 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x94655ac6 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x951b9cba usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9ae687f5 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa0d6a00e usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa9f73ad6 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb311768b usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb9f16111 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcf735d0f usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xda266708 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf2b4afea usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf92ec59e 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 0x18ac9008 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x84e418ec __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8899eafb wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9bf2f047 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc1f842ed wa_urb_enqueue +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 0x16ef7308 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1f1a1779 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x332d3238 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3ac9bfea wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3ed2c4d4 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x403182ea wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5f8cf53b wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8932d0ae wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x978f3863 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x99bd22de wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa01bd0ea wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa7ea5267 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xad07a3db wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xadc66b07 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcdce97ba wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe893693b wusbhc_reset_all +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 0x702deb8d i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x8a48bf18 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xd61d5f36 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x3fcc4a0d umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x42ac7379 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8ba02289 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8bbeb68f __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa5b867bb umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xdce975cd umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfbdc97eb umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfcca2e68 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0c7aa3ef uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20f3c4c8 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x217db4ff uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x33475272 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x56f6ff69 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x58e78570 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5a919309 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5f96b160 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62547ad2 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62c1341b uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x633d2fcb uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6a23d325 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6e8aff0b uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x711302cb uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x79afc6b3 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7f8e724f uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x87bdb9c0 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c731c6a uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d00ff0e uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x906be121 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x950e7517 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x97135fe2 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9bbb66e9 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9caf17e3 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f12f704 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa360bb01 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa572532a uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb38e9719 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb588b594 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc828ded7 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcbe98c3e uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe175761c uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe78ad06c uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf10fd448 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf44f242a uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf91fd882 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xffe36d24 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xfd261c92 whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x25b03bfe ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3f641a43 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x689bef62 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8de79b2e ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x99254347 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe9c5992a ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xeca75d94 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x627ab33a fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xd1bb3e69 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xed80d96f fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x11d7db52 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x73c291b5 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 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x3b38f163 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +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 0x18ae17d7 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xac1bd591 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb676ce28 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb7f84c90 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe4a85010 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe8364672 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xef7701f3 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xffc6a6fd w1_next_pullup +EXPORT_SYMBOL_GPL drivers/xen/xenbus/xenbus_probe_frontend 0xf1bdc26b __xenbus_register_frontend +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x4ed455ae dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x596fc191 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa16dff72 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 0xc14509f7 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xfc8c21bd exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x0000d31c fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x0e6d6d59 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x0ea78694 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x102facd9 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x119da36f fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x242eda2d fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x38a417e0 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x54456cf1 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x5e4b45eb fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x7e67538e fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xb4f7e531 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xbe8368ce fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xbefd3195 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xbfa79ddc fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xddc24e19 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xe97ff206 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xf3752f0e fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xfeba9cf7 fat_search_long +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17b90181 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x41f1cea3 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5bdde238 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7fbcea62 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 0xeb4d4004 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a1cd5d7 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb74eec4e nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xc5c1c8a8 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 0x214bc0ca o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x232284dd 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 0x67df14ef o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x871cdbcd o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa06d87c3 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa7256794 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 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb4251c9c 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 0xc3679d7b o2hb_get_all_regions +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 0x3f9e0a32 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x485956d0 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 0x80b5629b dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x82eca5a5 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd12c6195 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd194fe61 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x54bc972e ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x739f3f78 ocfs2_plock +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 0xd293d311 ocfs2_stack_glue_register +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/raid6/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xdbab0c01 raid6_datap_recov +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 0x1b511fb4 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x460e4984 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x73bf00bf garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x8255f0e6 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xd009617c garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xdf514c54 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x63a559a4 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x9b7b4e7e stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x2e636bf0 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x450b4843 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x8f62dc4e 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 0x5d4a26fc bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e2bc3ed dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bb88351 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d7f8cb9 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33e562a8 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43a6c107 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ddf69b1 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x51b4ae57 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5904be30 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x605f3732 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x67770441 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x71015148 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c05df9e dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d5430b5 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7ee945d6 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f4d9bf2 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x809dbac6 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x826e884c dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x88a7cf23 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8a80c6ee dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x91105e3b dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9508ff87 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x98410df5 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa798a48c dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad4a02ff dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb6f8041f dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb8e4031f dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc2c0393 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc06522fe dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xccb23a46 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd744067e dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe17a9f4d dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe1f02ee4 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe20d8cd7 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe73fde03 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2d0b35ec dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7f1082b3 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8306e7e9 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa36fd964 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd34855ab dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf258fd3f dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ipv4/gre 0x1d5fb07b gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xf702f9a4 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x71f4352f arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x6295bb6b ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x506446eb 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 0x012bd868 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 0x2b812613 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x2d9b3ce4 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4268efde nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4bae6b44 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7b758647 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_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x26df91d3 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6c308746 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7fce971b tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc9f01814 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd77338ba tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x597fc7c4 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x095a2e19 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x111394dd l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1d97ec40 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x28ffbdbc l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x427f0d11 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6f5b40bc l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8333fded l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb4621e57 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb497f6b3 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb51b2fb1 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb73195ac l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfdc9592f l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3523965d ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7e35770c ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8981d23a ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe62b78e1 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf51744a9 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0fb32c16 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x392c6be7 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x6b35611f ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xf21e0307 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00bbe394 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01407f05 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a5afaba nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x190fda82 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x191c0c1d nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a51e739 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ba9c4ff print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24bb0815 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24ebb5d7 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a91d7af __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e0baa62 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3dcfaf41 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3efad62a __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3effb866 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40c68edd nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47f5d293 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49362a11 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d569c0d nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f0f8600 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5364b8ea nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x551d9d64 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5658d163 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x672bffe6 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67782f2b nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x691468f1 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x69a649c2 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x718008a4 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75f9f5e8 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a91ce50 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b8973c9 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7bfa7ad1 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f60fe8f nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81a6270e nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ae1fbb7 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d85750c nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f4a3dd8 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90afb9e9 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90bb6ff5 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96ca4706 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x998d7824 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x998dbb29 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c2c815d nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa52a7267 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa0af06d __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa134811 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb014e822 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe04949a nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf741b7a nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc17143fb nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc30a450f nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc816c6f7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc834626e nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce1c9271 nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb0e08a2 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd12bf9a nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe12279dd nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf27f711a nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4a7dd16 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7aa43bc seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf896eadf nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x06bc920a nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x93de7618 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x12e46727 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x21290655 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5c9f23d4 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6e1f9eaa nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x821a8218 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9acd1283 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc8110bab set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xda48bbdf set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe2ed42b0 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xef39b0f8 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xe39b4865 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9fe6bfb4 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb10c1a3c nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc7e0cb83 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xeb582bdd nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x4a86c4cf nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xd2602dd2 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x05410d9b nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0c55fded ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1c033bd8 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2936dc30 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x377e2810 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4a10e4b8 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x55a846b7 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7f321298 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7f97d776 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9896f691 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc7742a35 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdd41a134 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe14cb2b5 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xf7dd4c37 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x5499bdb9 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3e405e5a nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x68237583 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcd203e9b nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd92f069d nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd9871673 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdcd612b3 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xbda02231 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x03519a37 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x183d59f1 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2bf59bc4 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40c09362 xt_request_find_target +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 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6be3f1cf xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7103a826 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7345f666 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c8a76b2 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7ee5879a xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8548d42a xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8d6e03be xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9ee00d17 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa0103795 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa07a5c28 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa55895e5 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa5c5c6df xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc09f5404 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe2dc554b xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xefed882f xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf031ac2f xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x02d18bcf xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd995b363 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00607908 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x00e7d381 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x039e3465 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x06599e3b rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x169f1f2c rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x27b5a50b rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x296bb2f5 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2ac41c8b 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 0x34adf91e rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x3cf92e27 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x44a45210 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x4f9028d4 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x8290b486 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x85e4c7c7 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8c11f3cb rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x8d8f03ef rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x945ce0f1 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x9c23ab7a rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc7db174c rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xe20fcb03 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xec2b6d05 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xf0570cc9 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xff643687 rds_send_get_message +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x706e3afe rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xbb3061f1 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 0x041322d1 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1cb9f29c gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2987383d gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4369963b gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4c635204 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4e22934a 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 0xa5173911 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa857cb82 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb46881e0 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 0xbde8008e svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd6bb8963 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 0x00916611 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01f93233 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0261176d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04db40a9 put_rpccred +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 0x08b5367f xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c5fff5c svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cfc1f2f rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eeab8ce rpc_init_wait_queue +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 0x10514d20 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10f0fa15 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1108d49b xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11377f89 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x132bf1e7 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17948581 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1866943b rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21fe29ca svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23dcf0be cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x240b1ba0 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a1b1750 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2daa852e rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2fa4c06a cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32fa9283 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x336d79ed rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3561e901 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x374c1e16 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x399b165e rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b511c22 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d5e19b7 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fa75195 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x404983f3 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40e31fd0 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40e5ce67 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41981cb3 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41fc2bbc xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x444434d8 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44b0a148 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47c0ffe5 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48238c0a svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48fab037 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ac93560 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ae05371 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3ab923 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5007bfd7 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5076c976 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x535dc1ed cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53fc5027 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54a320e4 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54d8d120 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x559fad9e svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x562814cf rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd1b45f sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d5fd158 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d63455e xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e7fb12a rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fb9fdb2 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60cdc29c xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x632564b3 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63655edf svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69c741b1 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cdca4f2 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f0f6e3e rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70610705 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7074fb5f xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70d0625f rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70e77b44 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72936780 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x745a8b64 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76a68256 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77b22697 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb09b8 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82fc76d2 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84077b89 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8663cb06 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x869b2ccf svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8917a93f svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89a7e1a1 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8decc35e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8edb5d40 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f983403 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fdf33ef xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91282317 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95e8802b xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x992f22eb rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ad791cc xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d740041 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2793d69 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2abd146 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa63d1a7b rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa95e7c62 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab358ad0 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab98b729 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb05bcad2 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1ab892a svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb424b15c svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4fe4128 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb606cdbd svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6078b0d read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb64214a6 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaa84d15 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbffde577 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc154bd47 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1df6bf8 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc553f8f5 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9dacbde sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcab15726 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc0beb2d unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd83655c xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce7b2877 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3afba81 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3e4ef0e rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd44f1e8d rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd59ff2cd rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6285709 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6697409 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6742414 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6c3aaf0 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8a78b99 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9585af8 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb6d9a8e rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcc41f3d rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde9ffb35 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf54930a xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe07885bf xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5a0fb4f rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe63bf261 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe78af778 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7accd57 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecb6c3da xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecd9987b rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0315655 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf05a37ab rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf19c0eaf xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3440113 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf389ceb0 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4d6d396 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf736dde9 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf792cd58 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf809149b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf970eb3a xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbe34d25 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc63d754 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff745f76 svc_set_num_threads +EXPORT_SYMBOL_GPL net/wimax/wimax 0x073de46b wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0afcd8f7 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1fd0c2fe wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x496c1e6a wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4f6af3c4 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x528aae5f wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x54af54d8 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x57d0ff36 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7fca9dce wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x936993ea wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa30b5f1e wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbf7258f1 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xda3305a2 wimax_state_get +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0bedb25a cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x11ac28c3 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x18261cfc cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x19d1b70e cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1aa916df cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1bfe49ca cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1f33ad50 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x234e5fb4 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x33432a20 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5123ea87 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x54316366 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x559daf33 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ae2b385 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5b88aa90 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6afa99a3 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6eb55150 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6fc8713f cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x800f2c4b cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x80572003 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x806942c3 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8de4b177 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x92fcc358 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbd2bbf34 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbef3ea02 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc5bc9644 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc85fc9b5 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc9ee0ac3 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcc2f6f5d cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdc86bc15 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe44528d2 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe9f6b9a6 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf36a38f5 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf741ac88 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x12a17844 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x574a2d62 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x78c9c265 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdf52ef98 ipcomp_init_state +EXPORT_SYMBOL_GPL security/keys/encrypted 0x9e44abcb key_type_encrypted +EXPORT_SYMBOL_GPL security/keys/trusted 0x687de74f key_type_trusted +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x18494eec snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x37ebab86 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa83bcd56 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd96d79e9 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf03f077b snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf8d300ed snd_ak4113_create +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00738248 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0256a320 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0638ac9d snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0938f6d5 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bc83a66 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e37987b snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x115a031e snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15c95a74 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x184e7ece snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c327605 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d5ee841 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28e42f17 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c95d48d snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ef3fca6 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3075e34f snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30a73477 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x314c3b4a snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38212038 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39169ce5 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a7f9ef0 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f1224d3 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40e02b03 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4959c7ca snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x495d04f4 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4acf7176 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f73e5a4 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fba9b63 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5092dc91 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53ea5a56 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x557bd254 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56376117 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56dbf1f9 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59ac2124 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a13e564 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a24ba59 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fe99dfc hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6563e3c5 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6697399a __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a66dd29 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c785711 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f98ef8c snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70084695 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70a739c8 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x746b2265 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a13da7d snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x819bafe4 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8802652c snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8fae5cfc snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91cbe8ef snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9558e7cf hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95a1ed88 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95de4252 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9668c4ed snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9845fbae snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a2db80e snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9cb54f28 snd_hda_codec_amp_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 0xa515f638 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa88cba8b snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad527530 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 0xae586032 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb06f1a13 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc0e2148 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfbf8b06 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc010d2d1 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc28c9d2e snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3c5517e snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3ea23d8 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6ca0040 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6e85654 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb476ed6 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb667ba8 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdbc00e1b snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd972c66 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdda9deb2 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf0e5971 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf8c2cbd snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfe75006 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2050f63 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2542b6e snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe298fefd snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4e248ca snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xedc540f2 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefc9a7dd snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1c6942d snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4679a35 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4d504c7 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd4a5c97 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x67c2e3d6 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xa1f260e3 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0xa883ef18 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xf643a5d5 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x56a1d406 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa2dbdef8 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb30299aa aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe145087e aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xee86dbb4 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x7c9e04de tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x85750994 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x861f2210 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x078e28b2 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 0xc4dcf3da wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xdafce481 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x658d5feb wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xb0c23cf1 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xb163738b wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x2ad2abd2 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x60c24c34 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x210ee0f9 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xf900fd7c wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x023a5d5c snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x081b06fa snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1af60146 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e409335 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f95bc44 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x206fb840 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24a7e16d snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b1bb6e7 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ce3c594 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34a72630 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34cd3298 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3613f0a8 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3618fa9b snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38ea5d0d snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39af8a8b snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3bd074c5 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x439013ef snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4519d4aa snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47e370a4 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c9dc227 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ff9ae2d snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50126d4e snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x522e2fcf snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57df3a85 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58f11af9 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a09b45f snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ab9811f snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e78fe7d snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61cb70c7 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x625f0f9e snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63c42aa3 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x661b8bd3 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ec219fd snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ad3141c snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c33c661 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f05b275 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80a804e4 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x841b2b86 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8468af1e snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84879a22 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x857b7480 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85c7437f snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85ee0c61 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89987a35 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c9637e0 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x928f1c7e snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x990ead15 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9953e06f snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99fcdaa8 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa058d963 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1ecdabf snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa24f6516 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa39f1778 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa42f73c5 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabbc20ba snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0302162 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb144a385 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1f24b3a snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2c40693 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb685ca18 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb817d44f snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb83b9f3b snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbfa1311d snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3d9f8b1 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc53dd4b2 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8af08de snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcaea6aaf snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd334b5bf snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4bcf073 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8935bee snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc75f0fa snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfa5e5c9 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4f9996f snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe78444a3 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeaea08d9 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec7a546d snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xecf674bb snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3e3505e snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf91cb750 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf99fde7e snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9deb454 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa38349a snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd4f370a snd_soc_dai_set_channel_map +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 0x001a60a7 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x0054cdd4 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00944655 system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x009fb926 blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x00a07912 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x00ac7fa6 inet_csk_route_req +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 0x012a97b1 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x01429144 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x0171edcd pm_runtime_enable +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 0x01b89a05 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x01d32878 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x01d40695 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x021da848 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x0245f811 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x025a8b6c generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x0291691f blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x02d4e6fb sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x03243995 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x038d655e ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x03967794 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03fa13af crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x047d633d regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x048ab762 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c58d7c crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x04cacc94 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x051d90a6 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054691a0 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x054af6a9 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055024a8 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x05b28922 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x05c9a5ee ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x05e5e68a skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0611f1b4 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x06158958 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x063c0aab crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0669e26b dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x0671c948 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x0677d2a7 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x06870f20 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x06a51f7e fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x06a6f8fe fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x06b35137 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x06f789b7 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06f9395e rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x072fb2cf wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0760ee2c attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0768c276 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x076e437b sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x07711fe0 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d182bb bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x08186782 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x0826c9a5 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x085b82dc ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x088febc2 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x0896d1d1 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x0899d150 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x08c103a7 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x08cf6cf2 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x08f2308c rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x0904f6ea led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x094f9dd3 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x096873ae pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x09af546e sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x0a288348 flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x0a4b0818 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0a6da3c7 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x0a6dc2e5 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x0a996a3a xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x0abc73ab regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0ad6bbd9 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x0af17f3b wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b134aae sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b2f010e xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x0b60fa0f class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0bb36c85 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0bcef4e0 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x0bcfe6bb debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x0be063a4 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x0c1858d4 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd10a4e work_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0d1db07c swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d6cbc83 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0d8220e6 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0da3cb45 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x0dac77b8 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x0de08c4f __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x0e06f75d tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e160005 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x0e239afa mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0e3965ae bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f168a0e usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x0f7a7744 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x0f93b186 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0faf86e7 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x0fb37a94 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x0fc4a051 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0ffacc15 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1031766e regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x109981c1 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x10c1dd4a init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x112bf3c2 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x11439f21 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11732a92 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x119af014 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x12140ae0 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x1269feb1 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x12aec3d4 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x12cc8763 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x12cdc09d simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x130b01c4 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x135aefab sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x136e7ae6 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x138829aa ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x138c298b ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13b53e50 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x13e895c8 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x13f2b3a3 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x143cd7f9 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x14639c0d crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x14ba33d3 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x14be3a70 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x14c6825b sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x14f31633 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +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 0x15b3615a ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x1631b5f0 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x163f5126 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x164d2395 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x165cad09 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x166cd910 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16c3707f security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x16f32360 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x16f77e3f hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x173998df debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1764b1fe queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x17c15b34 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x17c1f74a ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x17ebe06b xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x183e0d26 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x18622c53 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x187a1963 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x18ea7915 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x19116e77 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x192cec91 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x195e7fe6 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x19636b0c class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x19869add dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b786af put_driver +EXPORT_SYMBOL_GPL vmlinux 0x1a026da6 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x1a17b981 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x1a1c5da1 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a7ccca8 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x1a8f43e3 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x1a951695 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x1a9e7d29 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x1b1a1a71 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x1b6490c0 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x1b83a8db dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba230b1 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x1be4e3b3 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x1c04c744 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x1c228373 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x1c2f074e pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x1c64d19c pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x1c7230dd wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9851dc stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x1ca74aa2 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x1cb3d67c register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x1d01eba5 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x1d1838fe pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x1d20c488 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d7922e9 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1dbc1beb anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1dd4c63b tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1de82715 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x1df3b9bb hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3591b5 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e9ec8bd adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x1eb66e50 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1f344961 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x1f50b786 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1f7c7ecd relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fa2401d class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd7d5ef acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0x200a235e dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x2016dede set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x2031e51a cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x2045f92d default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x2074c448 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x20b7fa91 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c5e54a ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x20e47599 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x213e9571 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x2171b76b inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x21a72283 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x21bbfe7d regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x21bf9793 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x21c55da1 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x21ddf52a ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x22474981 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x2294de46 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x2299ec8d modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x22b1912f free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x22ca610a nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x22e2f12f acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x22f62a53 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23881159 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x2394a2ae power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x24036328 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x243198d6 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x2438bb4b sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24b69b5a console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f07d7f usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x252c4517 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x255f4a32 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x25a6c81d pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x25c568dd usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x25ec826c vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x25f35bb2 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x2691f00f tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x2692ce2f xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x269c3e0d class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x26c0dd21 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27c96944 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x280ddedd pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x28132eb0 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x286a9e2f sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x2875c500 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x288c35aa simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x289b2464 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x28a25cfd bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x28a99b41 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x28c9b091 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28d6d7ae usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x28d8258e trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28ea3728 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x2909fdb2 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x29546140 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x29951639 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x29c2e049 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x29f012b3 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x29f40f3b regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2abf6c4e tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x2aca5990 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x2adc634b inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x2b289532 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x2b379fc0 xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x2b514126 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2b55b80d xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b87b16a ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x2baf0401 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2bb3f75b tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x2bdcf2a6 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x2bee69e2 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3d1290 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2c66a862 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2cd62a46 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x2ce8cf1c ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea1ad4 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x2cfc48f9 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x2d07a31c sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x2d1748c0 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x2d506b1a __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6ff4de ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2dbf5bca relay_open +EXPORT_SYMBOL_GPL vmlinux 0x2dc1fe45 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x2e163ed5 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e85d6b2 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2ef9ccb8 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x2f0a4eea hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x2f1703be regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f176f40 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f4fbe11 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f5c4162 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x2f631b7f sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f70d7b2 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fa55204 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2fc767ef md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe22996 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x2ffa946e blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x3005254b device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3012c541 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x30231618 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x303f86eb input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x306bd383 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x307a8a57 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30f271c4 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x30f4070c inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31546f27 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31fdb959 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x322a9184 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x3234ee6f get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x323e5415 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x329b990b ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x32bfc0e3 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32efc5b2 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x33299283 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x332b4fe5 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x334246aa da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x335b6738 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x3364d780 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x33a268d1 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x33b0e1bb ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33e9b13d bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x3427b5b4 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x343997a7 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x344d549b aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x34539ffe usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x345c55ad usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x349c1f1d adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x34bd8d36 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x34cb7834 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x34e21f2e pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x34e539a8 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x34e9465d tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x34eb5bc0 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x35599f34 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x35d47527 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35d99b29 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x360a714e kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3648afad sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x3660076a generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36b5abed debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x36c8a587 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x36d56238 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x36e1c0c4 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x36ea60d4 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x370cc6c0 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x3726a2c0 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x3759224e i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x37a8d29b scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x37aadaa7 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x37bf9286 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x37dad708 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x37f98b40 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x38206a5f hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x38343acf pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x38b30e9f pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x38b87f75 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x38e7deb9 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38fea2eb __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x396d7c29 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x396ea831 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x39ae0461 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x39ba4f11 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39ea55ae usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x39f2224a cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3ab262e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x3abf4c11 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x3aca364c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x3b16956e usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x3b1a2666 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3bd5ea55 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3be9808f usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x3c5a38ea vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x3c63cd3f skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x3c86111d pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cac2c31 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3cbee890 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x3cbf8db3 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd2202d ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x3cd44281 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3cffb07f shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x3d02ffb8 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3d367aa7 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d85d6f8 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x3dacec20 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3e261f32 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x3e2bf9aa tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x3e2f0557 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x3e310d76 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x3e3bfe19 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x3e55de6c blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3ee1d984 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3ef7f6ac platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3eff75e7 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f079ac5 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3fd50cdd spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x40104301 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x4015300d led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x401bb317 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4040b97c relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x405dd1fe udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x40a99a61 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x413d1d65 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x416b9026 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x418e9755 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x41b76c24 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x41bf9bcb crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x420eafff ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x420f2d6a spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x421342c1 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x42359ce5 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x425635fc ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x42574b17 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42aa6a57 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x42c41ca2 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x4308d493 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x434c7fe2 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x434d5e59 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x43637855 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x43dd9ea4 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x43de5aa8 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x43e984eb __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4403ad1a blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x440c7486 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x444c5b70 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x4463cb84 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448bd33c agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x448fc9ec regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x44a35960 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x44a61533 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x44c2451d fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x44ccb034 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x44ed2572 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x4550757c debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x456c0991 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45a51a8d inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x45a6313a pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x45b2ee67 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d04260 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x46405ec7 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x4649ebe6 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x46503559 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46b669c6 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x46c333eb class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x46c6bd9d ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x46cd0052 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x46e3f3fe class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46e43ff9 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x4707f9bf mmput +EXPORT_SYMBOL_GPL vmlinux 0x470fb7f8 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x471278e8 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x474bbc42 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x474f699a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x478f55dc get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x47c14918 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x482f361c __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x4836a929 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x486abb9a pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x4883146c unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x4894674f dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x4894c4bc rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x48a095a9 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48bfdd36 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x48d241f9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x48edcac3 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a404f6 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x49a438d4 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x49ba4a9e user_match +EXPORT_SYMBOL_GPL vmlinux 0x49e617f7 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x49f7582a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4a1acedf sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x4a3cf29b inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x4a3ecdf9 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x4aa5264c kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x4ae130aa workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x4af73faa tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x4b81f9b3 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x4be70600 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4bf91d3b __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4c39e766 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4c59e28a dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4cbada26 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4ce8541a blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x4cfae4ce hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x4d2f393d map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x4d619354 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x4d624244 put_device +EXPORT_SYMBOL_GPL vmlinux 0x4d8bf3f5 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4dabeda3 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x4e0a44ab wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4e100fab cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x4e187949 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x4e5e5f62 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4e89d0d0 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x4e8e1790 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x4eb78244 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x4ef3246b cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f3103c9 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x4f4cd1d5 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x4f4eed24 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4f4ef017 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe408e9 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4fe76afa unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x4fed50f6 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x50135b09 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x50282b6c sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x503afef1 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +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 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5126552a ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x5149ea07 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x515d7814 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51ba75c2 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x52fc1e00 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x53098ac5 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5359f988 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53792d7c pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x5391fe2a ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53af7a62 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x53c9ca3c driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x53ded5b8 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x53fb364e ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x5403f4c1 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x543b8d6d usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x544ee6a0 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546bf674 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x547d4e38 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54abe7e4 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x5500452a stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x55280cef led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x556a030f usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5570aeac crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x55751794 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x55fe244f ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5638c6c8 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x56412588 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56980a29 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x56b63f11 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x56bcb241 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x56d7543d vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56ec3acb cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x5720f85b cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x573482c3 platform_device_register_resndata +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 0x57f3007c rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x580e0d8a dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x58645c1f clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x5886bcfb kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5887ea3a pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x589fcb6c ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x58c39e83 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x593166cc get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x59511433 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x59d0d8b7 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x59e77be9 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x59fe8e45 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x5a103365 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x5a1ed0c7 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a202533 ata_sff_dev_classify +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 0x5ac2727f smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x5ac6611f PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x5adb9a95 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x5ae8e292 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5bb2ea55 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c92c66f device_move +EXPORT_SYMBOL_GPL vmlinux 0x5cfd7c4e xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x5d095ee9 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d428a90 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d6db7ca aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d7cf068 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e36c2f3 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x5e3a9864 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x5e3f871e sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x5e400583 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x5e601795 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x5e823af7 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x5e85a497 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x5ea79471 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x5eab7bc4 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x5eb3b8d8 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x5f01e9d1 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x5f091f2b bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f38680e dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x5f880b34 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fce868d dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x5fec9dd7 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x6008ea7f use_mm +EXPORT_SYMBOL_GPL vmlinux 0x60213ae9 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x603b95e1 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60619043 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a39cf6 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x60cc87ec da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60ec11e3 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x60f5728b __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x60f5abfd setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x61214e33 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x6145bdf2 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x614eb22e rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x617fe3c7 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x6196d8b4 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x619fe338 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x61e242de tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x61fd9970 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x620d820a usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x62110f3b dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x6224cbcf regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x6252e055 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62ce200c wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x630dfdf4 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632a5e92 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63b0d3a1 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x63d448a3 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x6419c0dc blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x642a4972 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x6449dc15 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x646e54aa locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x649d425e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x64eb2582 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x65539e94 find_module +EXPORT_SYMBOL_GPL vmlinux 0x65b09788 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c5cebf tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65f435c2 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x66042368 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66767aee skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x667ce91a unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66951c36 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e2f285 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x66f67499 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x670b5fed pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x6725d898 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x67366a8d tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x676b6b9c plugger_init +EXPORT_SYMBOL_GPL vmlinux 0x6794fc2d inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a369d2 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x67b89fde key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x67d1e9f5 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x67dfdf8b kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x67f12692 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x67fad7cd bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x683b5822 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x68549872 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x685f7d98 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x686e5901 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x687387fc ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68a8ed7a scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x68bb5173 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x68d26774 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x68e5fceb __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x697b76de dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a1a52f7 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6a3937fb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x6a4d295b fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a7ee004 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a88810b ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x6aada0f3 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6acc70c1 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x6af1a28d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b2c563c usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x6b35f6fb eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b90d463 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6be00058 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x6be582aa tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x6c01b171 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c30c759 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x6c499e22 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c512279 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6c5e53e3 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6c7a1f40 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cc32d2c blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x6cc97152 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6cdedff7 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d6eb69d hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6d9a837b pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6d9c56b1 md_run +EXPORT_SYMBOL_GPL vmlinux 0x6db0d173 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6dbef296 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6ddde572 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x6ded2e99 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x6dffefa5 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x6e154cf0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x6e2adf3a inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6e2f8fbb crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x6e4a4132 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e784139 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x6e874a16 edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x6ea98361 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6ee13322 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x6f0a3c90 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f5fa870 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6f6e3beb ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x6f8ec62f dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x6f9d07cc ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x6fe2db2b tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70627d9e wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70966cf4 fixed_phy_set_link_update +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 0x70d908ed __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x70eda069 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x70ff7dab ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x71137a51 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x7125c0a6 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x715b9bb7 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71b9a22a dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x71d47e30 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x71dd3dfb i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x71dea487 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727942eb usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73f7d69d sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x74172dd4 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x741b05b9 sg_scsi_ioctl +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 0x745cc833 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x749455a6 spi_bus_type +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 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74e505d8 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x74e7d85b inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7512b6c0 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7574284d inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x758b0419 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7596d7d3 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x75cf1a66 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7633c1e9 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x767edcd2 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x768bc012 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x77aba75b unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77eeac01 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x780e66e4 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0x7825285a ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7846417f tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x784c6a4f sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x78513c08 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x78afe835 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x78b7e8bf led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x7933aa13 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79671796 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x798cafd6 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7992865e cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x79b4cfee vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x79c369d3 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x79ca1d86 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x79d2a713 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x79ea0fd1 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x79eec97b dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x7a16239b tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x7a2b4901 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7a3c6ee3 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7a3dc167 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7ab39603 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ac468da crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7afbabce ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x7b1006b3 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b205ecd device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7b2b98f3 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x7b53f377 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7b8479eb ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7bce10a7 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x7c39a09d wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7c422d74 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x7c6a3411 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7ca67853 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x7cd4a985 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7ce9e563 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x7d1d3104 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7d2b396b cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d755c48 tcp_reno_min_cwnd +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 0x7e124c7a sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e2886b3 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x7e470dba ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x7e535c08 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7e5df8c5 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6ae40a tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x7e8b8775 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ee43054 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x7ee500d4 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x7ef44adc ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x7f11ed4c __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7f49bbe3 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7f5d6074 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x7f5dde4a inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x7f7ea6ab sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x7f912d9b __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x7fcd90a4 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x7fdba633 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff7852d __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x7ffbd13b pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x7fffd2e2 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x80452cda ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x8050d04b srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x80864bc7 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80a4d616 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x80c0e402 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x80ede5d5 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x80f0f275 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x81087a4d ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x8139e566 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x81402571 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x8141102b mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x818fcf2b sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x81d5548d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x81e508d8 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x820510b0 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x8272f2ea pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82985b66 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x82b1102d sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x82c5bbc5 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82cebfdf vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x82fbc151 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x83255bf7 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x83522fdc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x83569310 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x836a064f dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x83bfb2df md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x83c1a491 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x83f96977 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x841ee9a4 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x842aadca kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8485ad2d driver_find +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x84b740bb sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x84c6d7b1 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84f56b8f input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x84f8d3a1 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x850537c0 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x85102ff4 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x852e3339 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x85463c33 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x85600ffd ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x85688923 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x856e862e platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x859aea9a xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x85b724b1 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c5d09d crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85ef45c6 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x85f22fef platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x862c1f78 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x864d440e vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x864ea3a1 xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x86545ea3 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86de0469 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x86f012b5 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x8700bc0c pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x8716f69d ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87641ea8 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87bbbcc1 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x87d65159 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x87ea3425 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x87fec50e rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x88084a1e tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x880983b5 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x888a4ab6 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88aee13d sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x88bf19a8 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x88ce43b8 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x893f1db2 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x89586903 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x89da89c5 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x8a361ad4 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x8a474b30 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x8a4938c9 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a917ad0 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x8a9d847c disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0x8aa8a26b sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8af2adac dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b3d9247 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b895f0d shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8bac002b virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x8bc11b4d fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x8bfa02a8 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c1688d3 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x8c29332c init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c59bf2b sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x8c7de037 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8c94a145 input_class +EXPORT_SYMBOL_GPL vmlinux 0x8ca62488 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x8ca9e5e5 xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8d318a1b acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0x8d6124a9 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x8db209ac register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x8dfc2cff gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x8e2d9fb9 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x8e2fe527 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x8e38dbed netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8e65e529 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x8e959afe ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ef0aa50 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f876c17 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fc6382a ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x8fe7f077 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x901eb7c8 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x9025e0fa usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x9059b88a unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x906cf46c ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x907c20d0 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b227a6 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x90b36e4b ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x90da9f7d da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x910cf0c7 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x91102064 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x91293003 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x9132dcb0 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x913adfa8 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x915d5e7f disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x915dc125 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x91668d5a pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x917a78fd transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9186ae5a sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x91c01b8e crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x91ead299 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x9208e1c2 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x9257683c simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x9258249e sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9263f02c sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x926568a7 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x9273bb00 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d55fd3 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x931bc1e7 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9391c009 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x939d122d spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93c55870 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x93d10b0b debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e35286 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x93fa7d22 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x93fe0a89 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x941a1664 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x947918b6 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x947dcd35 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x947e9fc7 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x9483c9dc dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94aa2a7c inet_csk_compat_setsockopt +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 0x953389c1 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x953f9b39 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955b8e8e __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x955cf9d3 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95755ed1 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x95c8f34f bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x95f8e105 sis_info133_for_sata +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 0x966d94bd pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x96b55c4e fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x96c0da53 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96d99742 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x97df4632 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x981b3157 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x981c6436 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x98252218 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98476423 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x986d042f xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x98f21f73 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x991a8496 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x991fa78f sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9937331b __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x99536c7c rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9964ae7a sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x9972833f sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x99867484 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x9988c4b4 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x998d9677 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x999e360e transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a1e0d94 device_register +EXPORT_SYMBOL_GPL vmlinux 0x9a34a0d9 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9aa98f2f __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x9ad4be63 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x9b429bf1 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x9b6ca76a __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b82a24f pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bab0f46 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9bb5e759 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x9bce7021 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9bd8ed32 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x9c23a640 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x9c27c02c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x9c286c5a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c324091 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x9c8480a5 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9c90d044 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x9c943417 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x9ca44cd2 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ceb69d1 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x9cfaeb64 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d30c036 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d633452 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d7ca994 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x9d7cf7b5 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x9d7f06c7 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x9e29b77b inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x9e390314 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9e72da27 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x9eee4c16 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x9f20d176 sysfs_put +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 0x9fe026b2 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xa012f843 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xa025434e dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xa06b8363 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa0bdc8c8 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0d809f8 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa0fd5f5c dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xa12e6f4f pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xa16377bb xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa1981af0 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xa1c4d02b crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa1ddf303 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xa1fc6aa0 xen_swiotlb_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xa215f8fa user_describe +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa2282520 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xa23cf355 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xa27f5893 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa2bbed89 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xa2bf1793 plugger_set_plug +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa33ee459 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3977e02 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa43bc971 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xa43ff061 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa46f4c0d dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4c237a3 __css_put +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa5097f8e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa50cc9ba regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xa5889a76 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xa5a2eac4 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xa5afbb7d xen_swiotlb_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa62130b7 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xa62e7583 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xa631e326 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xa675156b hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa6844d67 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xa689169a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa6ad8c54 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xa6c261e6 device_del +EXPORT_SYMBOL_GPL vmlinux 0xa70f21a0 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa758cb5a rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xa777d467 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xa7c52501 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xa816be1b regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8749349 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xa88159e8 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa93415ae blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0xa96f73d0 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa9812bc4 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xa9841fba __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xa9909b23 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xa9918828 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xa9a61f38 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9ea16d8 __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa556fbc scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xaa6da8c0 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xaa83484f user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xaa864332 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xaa92d0f7 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xaac0bec6 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xaac4e672 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6cbb4d flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xab6eb2cc debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xac6a23f9 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacaa0aa9 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xaccda6ca usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf97034 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad0cd76b power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad37fe04 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad661143 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xad844cc7 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xad986012 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xad9e36ad pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xadaafe46 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadf63845 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae14a786 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xae3c052f __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xae3d087f noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae7c9bce sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xae8a156b ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xae972b32 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xae9e91dc skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xaeba385b rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xaed8df15 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xaee40835 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xaeea2c97 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xaf277bbb usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf80db21 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xafa247d6 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xafc5a928 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xafd6c248 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xaff1e321 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xb0130570 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb01d2be1 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb0334c00 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xb09f13bd fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xb0c0d8d1 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb137f9d6 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb1557d74 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xb163e7c6 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xb166d370 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1b03c17 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb1c349f5 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0xb1c34dab device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xb1ca13ff led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xb1dcc4ed crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xb214f177 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xb255abab crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xb26158ad page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xb2932c6e __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xb2d2c254 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xb2f200b6 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb3045178 xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb330831a wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb3646503 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xb3bd3ef6 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb4759adc stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xb47f7d83 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xb4a7169e br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f53cbd dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xb50dd254 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52efdb6 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb54211a5 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xb54d4eb6 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xb54f4044 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xb57f361f usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xb5858c36 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6221b3a pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb667bb9b __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xb677cd3d usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xb69c0b06 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6cdc293 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb6f12bce blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xb6fe79f6 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xb70f1262 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xb70fa8ae ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb72c92af shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb757c377 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xb7d5e662 register_virtio_device +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 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb7fe1974 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xb8122d58 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb816dd56 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xb82224bd edac_class +EXPORT_SYMBOL_GPL vmlinux 0xb83a7601 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xb8770b34 dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb89bae94 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xb8a281ca ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xb8d94cbf crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb8e7ea85 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb92997ea disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xb939b324 css_id +EXPORT_SYMBOL_GPL vmlinux 0xb9428581 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xb94caa9d get_device +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb989d163 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xb999c1fc elv_register +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9a32910 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xb9adb8c6 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b8595e sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xb9c2840a usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xb9d02fe6 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xb9e389d1 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xb9e48c95 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xb9fc808b device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xba050b29 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba48e652 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xba5fa366 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xba6c98ff bus_find_device_by_name +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 0xbb2b3a19 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xbb9e0a15 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xbba97729 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbecba8e stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbc063421 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xbc61d00e pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xbc9756e9 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xbc9eb3c8 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xbcb7ff59 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbcd76b57 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xbcf615cd sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xbd09ba41 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xbd1ece03 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xbd21e5af crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd5cf589 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xbd8a25ed ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xbda6d0e4 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2ea0b0 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbe926238 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xbea8e207 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xbede2c3f rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf51b25a unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xbf799231 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xbf94c41e pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc024e5c3 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xc03d80f5 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xc03f9725 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xc097a4ef led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xc0a89073 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xc0b6d671 device_create +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc14465fa __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc14c2824 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0xc1510e08 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xc154698f ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc1722f7f inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17ec9c0 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xc1999805 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xc1ce1982 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xc1f91c9c rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xc1fc1204 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc239b74f debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc27db799 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2a09b20 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xc2d55f6c sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc31fdaf1 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xc34e5a05 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35532ec regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xc3555775 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xc3584a09 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc374df53 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc40d4142 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4915d8e ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xc4aad546 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc4f47aea crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc55a4471 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xc55af783 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xc55c2e67 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xc55ddfb1 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc55e13fa md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xc56a89fb spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xc570cb5d xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xc59676e9 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5f651d9 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xc5fb34d2 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6178d7b user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc655aca0 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc68ffd64 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xc74b2466 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xc75f0797 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xc7633e38 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc775bcbd cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xc7de040a __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc827c7c9 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xc831d9c5 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xc84e8d97 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc8fe36eb class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc9112f86 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc91f3298 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xc93caad8 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc96af7f4 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc9a3e2d6 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xc9c66217 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9ecacf4 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc9f902b7 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xca224c2c sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xca374ffd sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xca63392b ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca82f078 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca8df7bf acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac6282a xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0xcb4b6bdf crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xcb6fadfa virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbfb4a8b tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc7678a6 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xcc8a41b3 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd4ce74 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xccdc0b31 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcd1da758 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xcd3da3e0 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xcd5cb281 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcd820ec0 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xcdb3da5b fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde06445 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xcdeccbc1 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xce02bec4 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xce06af34 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xce20decd stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce7a688e bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xce95a1fc pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xcea2e591 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xceb580bb shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xcf1ee780 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfbc1a94 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfe434ea ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd05c0356 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0xd05cabbb system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +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 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd0ff1850 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xd1010d76 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xd10f36f9 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd12eea5c sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xd14a493d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd16a7c81 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1b96994 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xd1d383b5 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd1dc3941 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd1f5ecc1 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xd2089e32 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd23fae5a platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd28295d7 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xd2a51521 is_hwpoison_address +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2b6d176 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xd2b732b3 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xd2bc0b53 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33f2d47 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xd34a06ec platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xd38154a5 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xd397beb6 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xd3aa11c8 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xd3cef9bf crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xd4009544 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xd41fe06a ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xd42df673 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd4332246 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd43850cc rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd44c2c22 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xd5237496 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xd5565197 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xd558f06f scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xd5724937 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xd57c86eb xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd599377a blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0xd5d2d771 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xd5d5bedd driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd6025e69 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xd6558e5f transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xd6747e96 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xd68d0ea6 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd6b1bbd0 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xd6c132c7 __class_create +EXPORT_SYMBOL_GPL vmlinux 0xd6df3a6c wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6f3b319 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd7320f9b ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd7368449 sysdev_store_int +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 0xd7b0ff42 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xd7c7cbcf led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd8351f2f rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd8a0d306 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xd8a3a2c2 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd90a65d8 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd929248a usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xd9ab6547 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xd9bda40f pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xd9bdfaba tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd9cec7a3 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xda4d3463 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xda936295 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xdab1ea3d register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xdae8a0c1 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb1afbd5 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xdb1d5090 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xdb21d8b3 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb2d6d4f usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xdb3d2b91 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xdb5909fc crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xdb65cc66 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xdb9d5a20 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xdbe1256c stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xdbe266b7 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xdc07073f uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdc281311 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xdc363768 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xdc36c988 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xdc6ff7cc udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdcd188bd find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdce8d2f6 device_add +EXPORT_SYMBOL_GPL vmlinux 0xdcf379ce usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xdd0bf1e8 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xdd0f37ff dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0xdd1e1d55 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xdd280986 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xdd57bfa0 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xdd861c03 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xdd960d53 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xdda7a795 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xddac327b attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xddb32a82 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde4518ce wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xde460078 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde7f8218 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xde883b6d wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdedef698 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xdefa2afb dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0xdf069361 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xdf5a1e30 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01e7ca8 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe05019cb pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xe081f5cf __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xe0879006 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe08eef75 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xe0b88cfb driver_register +EXPORT_SYMBOL_GPL vmlinux 0xe0c1a97d xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0c9b70f bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0e657b7 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xe0e65dbb sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe0ed8d1b platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe114f27d dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xe1811b2b inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xe185661e fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xe201b173 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xe21e81e0 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe246cdde crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a4d262 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe2c776dc platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xe2caa429 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0xe2d85add apic +EXPORT_SYMBOL_GPL vmlinux 0xe2ed6b58 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xe3532e7d pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xe36994ff rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe36edb46 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xe388f65e pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3da3e8a unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xe4074099 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xe42cbcde posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xe43bdd78 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe446e558 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xe44a3059 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xe48236da task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0xe48c2511 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xe48da31d usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xe49a64bd pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xe49a8e58 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xe51a050c devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xe59c67f7 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xe59d5653 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xe5b38706 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xe5d0bf60 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe5eeebf2 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xe6128754 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xe616ed44 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe63a6df1 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xe63c167a plugger_remove_plug +EXPORT_SYMBOL_GPL vmlinux 0xe64027c4 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xe6409cdd crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe669d9eb unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xe68733e1 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xe69819d5 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xe6d080a4 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7072bda get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7663d71 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0xe793bc31 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xe7bfe9ae inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8346427 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xe84644e8 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xe8598056 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe91a7ef9 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe979cc28 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe988f111 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea0c8ceb ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea12b61b user_update +EXPORT_SYMBOL_GPL vmlinux 0xea22de0c mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea7e666b sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xeaab9459 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xeab038c4 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeaf40ed5 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xeb656805 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xebc914d9 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xebe0e99d ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xebe97ee3 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xec09b6d8 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec1e6fcb ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xec23cf94 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec423424 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xecd535ce regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xed26ee5c fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xedab77f2 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xedb08900 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xedb2502f elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xee356056 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xee5ee4cf usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xef071671 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xef1d25a0 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef436b7a __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xef541355 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xef6825f6 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef6d2f8a virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0xefabb209 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xefd32599 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefe4a59c crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xf01f16ac tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf0e5245f crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xf10aa093 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xf13e230f pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xf16c5f69 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf2136049 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xf22b6656 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xf267eaf3 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xf2c609d2 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xf2d83d52 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xf2f357ce shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf320e7aa regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf3252c2a anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xf340ced2 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf358093b crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf3912ffa crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xf3a7c838 user_read +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3be0d76 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xf3c823c6 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xf3dfbabe sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xf40e95d9 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xf41124e4 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf426a4cf register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xf44ec988 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf457f3ff xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0xf463611a n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xf4820009 acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0xf4961ea8 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a31cef vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4be4204 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xf4e1e2f8 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xf5135db4 dev_attr_em_message +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 0xf58a17fe ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5a7df76 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xf5c107fc usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xf5c98049 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xf5fbff57 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xf61434b8 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xf6241fbd fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xf635c949 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf65e8437 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf70ea259 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xf7107ac0 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf7275dba ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xf729d7c5 dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0xf759b92b net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xf761b827 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xf79ca3db pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7b8b6b2 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xf7c7d4da usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xf8200e9c uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xf83accce mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xf86134aa ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xf872c59b hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8cf4e90 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9090bbb ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xf9300c36 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xf948fcb2 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf99c61fd crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c7680b pci_configure_slot +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 0xfa602ade wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xfa895c5d sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xfa930e64 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xfaad4710 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xfadc7876 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb3bc1c8 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfb5bb95b dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0xfbae1e8f scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xfbeb357a add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xfbeb6afb ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc0892e1 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc7c9e46 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfc9aa8ec unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xfca98e00 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfcc5a491 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xfd345b05 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xfd34d3d7 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfdcf4bbc ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdf321f2 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xfe460922 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea34a5a crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xfeaf2e47 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xfec8f069 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff4087cb spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xff467a77 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xff4daf59 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff87bea4 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/i386/generic-pae.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/i386/generic-pae.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/i386/virtual.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/i386/virtual.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/i386/generic.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/i386/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/i386/generic +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/i386/generic @@ -0,0 +1,11723 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x2b626168 kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0x3905dc31 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x907665bd scx200_cb_base +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 0xb75fe8ce acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0x72346ff5 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xd95ba0e6 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 0x0315b44f pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x24493017 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x25af0e86 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x618bfa0f pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x6d5935f2 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x772f1e5a pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x9894f5b8 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xa464ebda pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xbc6fb70b pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xbda3b8a4 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xbf5638f7 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xffcd9677 pi_init +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0a10a361 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1575bb27 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x299e0350 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2fb92242 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3873128e ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3dabd40a ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4006cd57 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40880e0f ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4bbcd066 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4fee621c ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x50ea63f4 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5634f8be ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x691bf255 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x733f91e5 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x80ed5055 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8474d49d ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8b2dda25 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9c958786 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa3b45321 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa8b0758f ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb0421172 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc7cf22a0 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd8343131 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf3df91bf ipmi_get_version +EXPORT_SYMBOL drivers/char/nsc_gpio 0x059b6635 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0x34673977 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nsc_gpio 0x93294364 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 0x2f99cb29 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xdca0017f edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xfb5414c3 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x02bd940a fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x05fc281a fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x07e5e2be fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x183f6b6c fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x19e92cdb fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2413f8fa fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2c2940bb fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x33dd9307 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x423338e9 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x509ed9d4 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6a789c98 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x77b2f47b fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8efe56d9 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x99315da6 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb295bf6a fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb4164edb fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbbcb7232 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc629101e fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc6bf2c16 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcb00e49a fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe9886a51 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf6f46c16 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfd95fed7 fw_core_remove_card +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02e754b6 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x054dfa3e drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x077294dc drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0816ce62 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08e4334f drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09d8f376 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a5407b0 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d90b027 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10c78333 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1270b569 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x135e87a5 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16a95a00 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16e58dbb drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c16ada2 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d1d14d5 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1fdad966 drm_agp_bind +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 0x231d5e72 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2462f2d3 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27670198 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c893888 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c9b19c6 drm_addbufs_pci +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 0x30eb900e drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32e44dff drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34f2f0d3 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35c33dea drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36db9d98 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x393107bf drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3960da81 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c83e5c6 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb7aed0 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42395b23 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42ab8b1b drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x449769d0 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48a4a93c drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49f40e67 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c22005c drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c3c6b64 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ce9abfe drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f8ff3b2 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x551416fd drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5697a951 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5712ee94 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x595b5a89 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b69532e drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c3eb630 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c9f8c3c drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e8ad0b7 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ee79704 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6105f1c0 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6608aa68 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6bdec9ef drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ed511f2 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fb3809a drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71e9de2c drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74583638 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75fea3cd drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b67895b drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b6eba14 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81c5a7b9 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x822bc958 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82c4d37c drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82f53657 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8448d04b drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x853d40f2 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87fd7ecc drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a6c4254 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b9c9027 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c460ced drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c8740a0 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8da46b94 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9108650e drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93e87ee5 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x947296fb drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95f3966f drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x960a9afd drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x967b2c1a drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c22851c drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0043c70 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa07a2ba2 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1a3c748 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa40d8392 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5833176 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa947b136 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9669747 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa99b5660 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab0ed625 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacc026ee drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad8b8b26 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadcd2db4 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb21a73d2 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3d06256 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6388446 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba629e0e drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc2ab0ee drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfa0d11e drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc08b53b9 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0d50853 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5a5115f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd11d92f4 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1ce3291 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd209beea drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd20a6fb8 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2c472f7 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd324a7d5 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4398d3d drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5315373 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6ed1a56 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7a826af drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7d4a61f drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8b575bb drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda587c87 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd1a46e5 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde52b254 drm_gem_vm_open +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 0xe2e1cd52 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe73acad6 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe829af52 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe83d1ca0 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9b2d305 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb018645 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec620185 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed411ddc drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf006f193 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf04d1202 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0fd493b drm_mm_clean +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 0xf5309b76 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf63b127a drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7247075 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7cc2239 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf89df8f6 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa044de2 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb3d1f20 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcf58c6d drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd4487f6 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x03f1b702 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x095f2133 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f77df70 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2922ebed drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d7b9561 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36d26d60 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x39733e20 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e840742 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f1faabc drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x48025928 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4a27ca04 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x61f56153 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x66070419 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7219b208 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77fbcb5d drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86575edd drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x866deb27 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8afa12f4 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8c3a02ff drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94778719 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb858e5fd drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc9250bbb drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd283cbe6 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9e05ce7 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdb170ab6 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe5489860 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xef41b4f5 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf06c5306 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd33805a drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe15f782 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0185e8e0 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x03bf8817 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d7c6428 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x109f08d2 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1141b490 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12ffa707 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1721bc12 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x182fde34 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x196d3842 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1b7b35ce ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x218840d7 ttm_page_alloc_debugfs +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 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3cce929d ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3cee090a ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3e663049 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46eaf1f7 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4a0cdb9e ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c01d00f ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4f3fcca2 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50c4fccc ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x527436a1 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x527e0462 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a213e21 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f2a6961 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x622664e6 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x71119fc2 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x71fbe23b ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7423fc3e ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7532b8fc ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7cd6ce0f ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d87479f ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81fd711f ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83c499b7 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +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 0xa67f16a8 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xafbb070e ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbabd38e9 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbfa958cc ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4443c27 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce751cf0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce7e0a45 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd16174d9 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd1ca8284 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd92844f ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde5cbfc1 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdfb81f03 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf0b96534 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf0e94e41 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa0eb151 ttm_mem_global_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x0fdebc02 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x5d9a28c1 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x2b21e484 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x9e20687e i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x883efacb i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x21f9f0eb amd756_smbus +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 0x65314db5 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x92383a9d rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0113037c ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0e2e1c9f ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1c427746 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x29757635 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2ba2d894 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x482c6a9d ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x52500e06 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x54531a2c ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x60b2b664 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6a4fff5d ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7f1e5641 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa040c343 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa6340c76 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcc4e96db ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd554284e ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe5ee3b45 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfc3676c4 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00264fe7 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x012eab0b ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x013ff9b9 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01e80731 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x040ee0d2 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0418a58d ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05eed1df ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1112fc7e ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1741f0be ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ba9a98a ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1dcb75f4 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x259ccb5b ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c2f5e24 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3853bb5a ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b106275 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ef14825 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x472ff234 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a0f7e6d ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a4411df ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5367b663 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56c39a26 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58f5348a ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60cee9ea ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x693d6840 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73812e48 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73ebc2c2 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75aaab02 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x777d27c3 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77c431ad ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77de5fae ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7be65939 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ce86fde ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83f0919c ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89fc0e4e ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x931c1a06 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96e91d72 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x975c909e ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b43805f ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ce973f8 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e1b130c ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f988f9d ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa19207c0 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6514e85 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa690bb7a ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab062ca1 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb97d6f70 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb9f31377 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbbc7367d ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc04b6f7c ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0f5289c ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc85e889c ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd22dae19 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd68a59fd ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7357df4 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdaff4da7 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc4e0684 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6a41a73 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea198379 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeb101bf7 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeb767d1a ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec95ff64 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeedd99e7 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef079b26 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9fc1062 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa903da4 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfcc2d9b9 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfe0c88ed ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1d85a662 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x424652da ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x496b4ed5 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5767b9cc ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x58ceb612 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5d0d4b56 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 0x6ffc9bcd ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b634151 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb523c5af ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcb1f3a86 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd3750936 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xedb2fe2d ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x11ca6969 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6690e385 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa6de26ef ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xaa9997bf ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbba61b17 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd309508e ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf4e886fa ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1aa9b498 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4b3dec57 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4d828a3d iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x851a4fa6 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb163c211 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb56ec859 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb61b7e01 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe97be44c iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0940d2d8 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0a95b4c5 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x300b3a65 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x36bedc4e rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x72a6b9a6 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x831d2031 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x84732bf3 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x858e56f4 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x91441f94 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x990a7762 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac37e946 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc950e6b4 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcade4003 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcc506f38 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdc611287 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe15b48bd rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe53c35aa rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xeca0780e rdma_notify +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3c420821 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x603107e6 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x65fec59f __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6a0d411c gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7a13844d gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbd2f0199 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xeeac60b1 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf5259341 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xfdf17ab9 gameport_set_phys +EXPORT_SYMBOL drivers/input/input-polldev 0x73b56602 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x8094b387 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xbb7cbca5 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xed2a9574 input_register_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x08929b55 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7acbf153 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xcf4a9d19 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xe3f9784a ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x1a12207b cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x9a227808 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xe3e75800 cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xe5824a42 cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0428ebb7 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0fb7d0c9 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4998e77e sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xab0c2708 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xc2f13dc8 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xea9d682a sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x0c5b7042 ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x7bad3cfe ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbf72163d ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xec9c49ee ad7879_suspend +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x4e635222 capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x663d128a capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x049f36a4 capi20_register +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 0x6cd412d7 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x998558e8 capi_ctr_handle_message +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 0xb572e3a6 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb664b07f capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xbcb28303 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd9fdcddb capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xda90fbd8 capi_ctr_suspend_output +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 0xee278f06 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf2b6bbf3 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0ef35279 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x173caab4 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x254ccf76 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4b340045 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5a6b3ebf b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9fdc4668 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa22b0d56 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa5db0e45 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb54225a6 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc064f834 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcd2b9986 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd4602fc1 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe2d04950 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe7ce6a6d b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xea15170c b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x066b26d5 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1f8e1aab b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x405946ee b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x66555255 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9a5d4741 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbc40f84c b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc63d5aa2 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe6a33769 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf6a65152 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0xc5baae92 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x59aa5fa4 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x691c87b9 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x759d587c mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7cbe7d42 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x24192595 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x6b50a422 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 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xdd612449 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x0b7b1660 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2c3f5e67 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x6a38a34e isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xd180df4f isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf9d697d8 isac_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x1de5ad2b isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x3f4f6204 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xe36745c6 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 0x0a93b23c mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3c035b05 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4bec9bbf dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4cd4b394 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58071294 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5e621211 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x67e0f82d mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x70bd04aa recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x808b7f03 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x857d4d61 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x946850dd mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x998c86aa confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa6de9552 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa6ff7692 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb500a63a queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xba50be23 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc57add67 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xce8dc55e recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcfdd35b4 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd080c965 bchannel_senddata +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 0xd71c3d4a recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9b9faa2 l1_event +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/raid456 0x46ac1cde raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xf2a79cbc max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xa4dbe0be mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x4295d688 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xf64d9170 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x9de25434 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x45ce8440 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xf2730ad7 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x61321ded tda18218_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 0x49eaeed1 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x0a7885fc xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x023b048d flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0e603e5b flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x27192aa0 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x29cb709c flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x33c80112 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4cb14588 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x60ae293f flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6f793f30 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9366fa85 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x951397b8 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9b7e16c8 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa0a7da48 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa48e2c8f flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xaaa0a07b flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbfe39557 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc6fa7674 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd977b96a flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe847eb0b flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeb150573 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfeb69d6e flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x03271a89 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x15160f93 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x6c429bff bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xa02dd36d bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x04cef4a5 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5ad9c056 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5b88527a dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x61f869ff read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x676a24cb dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7a93db57 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9862034d rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe0478e3d write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf900b1b9 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x10614a55 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 0x13aa0cc1 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de5dde2 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2a867dba dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2b9137cf dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c202fc3 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39206d98 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3cd46686 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x47e75b22 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x49ccb7c8 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x688c2da8 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x717bcf40 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76b3c9d4 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8385c9ef 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 0x96053da0 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9ac3dc1e dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9cfbfb13 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9d6f4970 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 0xa1c02f90 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xab028726 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb7b90053 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbf9591a7 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc1ec4bf2 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc6c73d10 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd26e29d4 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2e30721 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdcd7f561 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xea48ac70 dvb_generic_release +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 0xfba705d0 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc195bc3 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc3b495c dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x113292e2 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x5fdab0b3 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x85f843a8 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8821a3f0 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa9ce216d usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe24ec88b dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xfecb5aa6 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xe0390a35 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x088d39db dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x09e93862 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x19444a97 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1de50464 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4b31e346 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5554b73f dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x598dadf4 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x64c30afb dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc1bf0926 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc751f6f3 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf817953a dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xc47a059d af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x5d863baf atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xa2a0f345 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x4f723ba4 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x2a7d2238 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x1251eb56 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x89983767 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xb7fb8f04 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xf8a8df09 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x70910920 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x30c70e33 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xdbd9ea50 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x15d51d07 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x40db017a dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x55a1fa31 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x668f368b dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xd7fafbc8 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x089c7f12 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3265934f dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x43101b32 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x919a24b7 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xa2824c30 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb7af7dc6 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb96212bc dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xea5c3d95 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x1794c833 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x08e867b7 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5f827df0 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6eeabc03 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x7eaa026f dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8bbd2a22 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xc33ccb32 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x6acf3c58 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xc3302c37 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xcb56eeb7 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xf09983cf dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x005754df dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x22a2431a dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4dbf8798 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x54e523ea dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7ac40e53 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8852e0f1 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd82d7fbe dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd85b87c4 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x160843d1 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1ae5caff dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2f990281 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x71cdad7d dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x845b2e0f dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8d7a78f8 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb266dee3 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb30c4f54 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd188579c dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdca6f232 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xfd018503 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3832c3f2 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x77a8ad18 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xa4b55a6c dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb2363d61 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xb70f08bf ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x6d0ba8f5 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x785acab6 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xb05acac3 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xd0c841e3 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xd162afe2 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xe46afc7c ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x8e25b373 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xa3cedd8c lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xb4fce5e4 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xb5514354 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x7dc2e91a lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xacd7e9b3 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x1024e072 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0xe69055c0 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x0fda9049 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x0eb22696 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xd27af482 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x8ab859e8 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x64fdc007 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x9145ba68 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x14a48143 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xfac4288b s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x11596706 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xb4a9b386 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x2648ae57 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x86a98044 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x08daf0c5 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xd2b6b9f2 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x5ab2e783 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x22bc61d2 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x86798e8a stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x30d80371 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x2a4d78ec stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x6fd02222 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xd03132a4 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xc0d1e045 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x219f4f17 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x05dea416 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x780bfb60 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xab02096a tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xa1e435ca tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xd1b1fc32 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xdb08512c tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x14c3005e tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xab88e8c8 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xe01fb4a7 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x8f93e260 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x71f11d46 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x9284bbd6 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x93c6d7e1 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xfbeb68c3 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x762821c1 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x1d1bf0cf zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x7e92d695 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x5436dfd6 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x1c2b65e2 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x37ec6428 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x0baab755 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x0f21d964 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2420ad56 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9e11a2c9 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xabf4cd8a lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc5918ea3 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc733cf76 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xdb1edbc7 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/rc-core 0x6b0f1c23 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x72cf5d1c ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x778731d9 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x9151e611 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x9d9dd3bc bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6420ed2c btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6bbea59c 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/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4ca06981 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x555bbd50 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x8b5616aa cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x98caca39 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9dabd014 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x32830634 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xb9cae037 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x126e0d54 cx2341x_handler_init +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 0xc184ec1e cx2341x_ctrl_get_menu +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 0xdce15221 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe1250879 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0xea2b6b99 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x986bd901 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xc30f2436 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x520360da cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x82e60745 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa1561640 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac46eded cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb4a5dd21 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xbb917ff8 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x67706182 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8f7079cf cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x92f3efdd cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd2696d32 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xed3c05c1 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xfb12c42f cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0be623db cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0f272f60 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x13a1f2d9 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x20420747 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2a4695ce cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x40b2b3ad cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6623ca23 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x68fe78f2 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6a8a8a58 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7cb744a9 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7e25c6e9 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa77dfee9 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xac2ec349 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xac3f5a05 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb547e8f4 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbdff1e40 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc59a51c0 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcef844fb cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd5619a4b cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd748885e cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe144a20d cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfef3dfeb cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xd2e5cfc5 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xf8a609a1 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x344b6c6e gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x76240615 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8fce4c6e gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa779f60f gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc943e4c7 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xe07928ad gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xe239a8c2 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x02ceb95e ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x13fccd66 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x44fdb82e ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6a437f9d ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7caf5183 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7ed44baf ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x928b5c10 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa3641797 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xae57d9e0 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd30ddefa ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe03ceb40 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf3aa50cb ivtv_vapi +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0864161b saa7134_pgtable_free +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 0x37241ce1 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3a0679ec saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5203dcec saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x693e37ac saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6baad90a saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x82aba2d6 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8fddbdee saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xaa38038d saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbc1702f3 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbea1e714 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd723ad8d saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/soc_camera 0x0cefc60c soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x3379c760 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x64ab6944 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb815d40d 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 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf1612d9c tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf42e8c99 tveeprom_read +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 0x1abb5fd2 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x207588a5 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 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 0xa4bf0ba4 v4l2_ctrl_query_menu +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 0xbc40b5e3 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x0f08cf4a v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x59aedc90 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x66dcf71b v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xfe6c8905 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x07e7d555 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x490bcd31 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x72f401d1 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc0cf6960 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xdcfc13f8 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe8c97df1 videobuf_dvb_register_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 0x17a11376 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x1b3010d8 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x200c1363 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x2708c821 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x28298bb0 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x2b5bb299 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x35075db1 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3761aa2c v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x444ed702 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x4942aa5a v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4f8683c3 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x4fe41437 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x527cecde v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x537bfd1b v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0x56dd1e24 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6157b63c v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x639c742e video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x68f1080f v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x7656c604 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7faea017 v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x809be5f7 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x8b9f92e6 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x8cfd1139 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x8df6d0cb v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x93c4067a v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x96de03d8 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x97b2e2c7 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x9e7b1ca6 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xa564b623 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xaf4acf79 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xb1a8ce22 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0xb63501a8 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xc7c05475 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xd14cd690 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xdee6ffe2 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe385b8e5 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf8b881a3 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xff872788 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x17ceab56 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xb1d55055 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xb3ceb9a4 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd997a39a videocodec_register +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1b786fb1 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1f63e1a9 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x420b2a47 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x42bdc944 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4dbefeaf memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b5c17c8 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x81a67780 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c9b5da4 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x94b5decb memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xad686ec0 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcd5755b3 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdb9ec6d2 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe6ad3042 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xec7e0720 memstick_unregister_driver +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06aaae46 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x17f1aac6 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c1acae4 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28de5dd4 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x298a4800 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x332f4e0b mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3aa31368 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4219d678 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4dbdcade mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x546675b9 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5bc6c493 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x64656acf mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x84cd6450 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x869113a1 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88010ee7 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x96cd81f4 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x97b703a7 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa5a5198a mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa5b8e508 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa8f8770b mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb99f931d mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbce7b026 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbf38c2b8 mpt_free_fw_memory +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 0xd6c53747 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdad507bb mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe2f305e2 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe75bf87a mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeb090c9d mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf075a562 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x028f086a mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1d301996 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3bca710d mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ea1061b mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x46622804 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4d126617 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5f226f8c mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a88e219 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x75fbb309 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8d5c2011 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x926f8edb mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x92f45364 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaf1b152f mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb03e99e1 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb0b25f33 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb4ea562e mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbf629b15 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc590e286 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc9805407 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd4ab6afb mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd65d2363 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd901430a mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdaa9131c mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdf45eaf0 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe5e0dac8 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xec74a957 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x03406cbc i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x07b4b01c i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0a55bfe3 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0ad8b4c9 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x10cc7a20 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2696dd61 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3dd49bbe i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x485148a3 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x64c7a9fc i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7068194a i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7ef2d216 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8d62ecd9 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb1f1a60a i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcfc364ad i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd1046cda i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd149df83 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe994ac61 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xea289e1d i2o_event_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x31f58365 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x6e4b4959 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5ad925aa mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5d57158e mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x734e5029 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x761cc391 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8f3bb779 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x92610618 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa94fb81c mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xade52965 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb934ab16 mc13783_to_mc13xxx +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb993c46c mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd6d43220 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xddb61ee8 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe3bce422 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfe67e548 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xb92ad671 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xc7edfa7f ad_dpot_remove +EXPORT_SYMBOL drivers/misc/c2port/core 0x102bbb15 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xdc315cbb c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x76dd4ae1 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x8419a421 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x04a072e9 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x090f8919 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x143614a9 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x2464200e tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x2a8952e5 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x2cca125a tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x49eb6f76 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x58d219c0 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x8c64ab1d tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8ffb988 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xc45e7d95 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xcf594d6c tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x7f9a627c mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1d7b22cf cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x6bc992b7 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xb6fc924e cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x1899b1bc unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x232deb90 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x3275f97c do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf520de8f map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x9eb98cf2 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xf00bf42a lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x030cd932 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x10d7a349 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x81e07b95 of_mtd_parse_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xbb90e5cc add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x9659d1f3 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xfa6781aa mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x0010d29b nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x6dbc1b90 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x745f7f6c nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8490de06 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x9469eb0e nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xa9359a8b nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf9842b83 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 0xdf6c821e nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xe161a431 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 0x08c52782 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1a26a221 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe8ad1bad onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xf25dd724 flexonenand_region +EXPORT_SYMBOL drivers/net/8390 0x1c0c5b00 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x3dd9bf56 ei_open +EXPORT_SYMBOL drivers/net/8390 0x45ce2f78 ei_close +EXPORT_SYMBOL drivers/net/8390 0x488de298 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x4fdc641f ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0x6b012c5e ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0x9121d4bc NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x960929f9 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x9df118a6 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xf00d8425 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390p 0x09fd1e3b eip_close +EXPORT_SYMBOL drivers/net/8390p 0x0aff6e7a eip_netdev_ops +EXPORT_SYMBOL drivers/net/8390p 0x3dd367b7 __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/8390p 0x67f8a277 eip_open +EXPORT_SYMBOL drivers/net/8390p 0x6a51fe9a eip_start_xmit +EXPORT_SYMBOL drivers/net/8390p 0x8df8bcd3 eip_tx_timeout +EXPORT_SYMBOL drivers/net/8390p 0x95cfd56b eip_poll +EXPORT_SYMBOL drivers/net/8390p 0xac31a861 eip_get_stats +EXPORT_SYMBOL drivers/net/8390p 0xb283d4fd NS8390p_init +EXPORT_SYMBOL drivers/net/8390p 0xb663e226 eip_interrupt +EXPORT_SYMBOL drivers/net/8390p 0xfd23f886 eip_set_multicast_list +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0ffdc83d arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x22a0ae44 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x269977ac arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4fb3b405 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x68954a49 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6e071fc5 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8002e86f arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xac19afec arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc702076c arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xcaf6bfcc alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x38175fd5 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x4523b240 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x6e99fb01 com20020_found +EXPORT_SYMBOL drivers/net/bnx2 0x9dc18033 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0x89da0a3e bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0x679da150 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1c1c4325 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x20d11aaa cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3668a861 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4f4fcdfe t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x585a916c t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5b3077b0 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8b5bf8f2 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc73dfbdf cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc78fc7b4 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc96f57e6 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xcb22d0dc t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd7d5cb27 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe717a30c t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xece2bd22 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf3087f68 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xffcedaa1 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2584868c cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x321128c6 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3235c4b5 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x48bfb7e4 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6120d429 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x645b4e25 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7f82a5c8 cxgb4_get_tcp_stats +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 0x9af27904 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xac04dffb cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc878ebeb cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdc6acc6d cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xee9d5240 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x18842a72 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5404b0ac hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x56780e1c hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa5d2cef5 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xdc3941f5 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0168091c sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x20e65224 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x763f1c1c sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x838044c6 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x882ed989 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x89c81026 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x89f41953 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8b3648ca sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xafdcb6d7 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb45e956a 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/mlx4/mlx4_core 0xaf482c70 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/pppox 0x0a88164a pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x56c7b36f pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x5c52b2ca register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0xdff2883a mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x3e8a4f44 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x47d28d11 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa031345c tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xba46bf4a tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xe6b91458 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 0x0171203e unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1162be41 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x26aad4c0 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2b66a103 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x323ef7de alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x522481c7 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x676af5e0 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6ab8e768 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb1d6b76a unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb4d60b49 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdaaf5a0a hdlc_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x25f713f0 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x314655be z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x3ab64a9d z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x6bc64e90 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x7ddb7944 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x8c22bdbb z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x8d3d5c12 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0x9711e99b z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x9bc6a9e4 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0xa5c4ff7b z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xa89ab1e2 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xb5090613 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xfcc76a8f z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0xfe11f177 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x61eb6bdb i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0xa29d1eaa reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xa49f0d5c stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xeaf362a3 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0dfa1ac1 ath_rxbuf_alloc +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 0x531d1fb4 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x64b32f7f ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6748f161 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x708afc74 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7b545fcf ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb131c934 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd174c44a ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xead7dcb4 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf7af0d6f ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x232d1d6d ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3ddd7c17 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8a3390b6 ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0223b0be ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x023315fc ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07053ad8 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07aae362 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0cb7d878 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e015ba5 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f5fc6e6 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x169b839b ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16e4e721 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16f0cb21 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17f3474e ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20078e6f ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x260ed906 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2be342d2 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c21c354 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2dbe5f4c ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e90b211 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34f350c4 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3be4cd97 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40e84be1 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42fd8c99 ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f84c6f0 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fa55875 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5475c03b ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x594d50e0 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ff066c8 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60345b6c ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60dca62d ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6304ca5c ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68528b61 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6bcc276e ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ccb4e71 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x793928ab ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a6ee567 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7bcc4e25 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7dfa9f85 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e4cf3e3 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f779e09 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x84bd2455 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x850abb93 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89e24696 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cc6d369 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cecfc49 ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d7cf3ae ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93bb0e26 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9404d971 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94da87c7 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95523731 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9baf8e94 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d44e86f ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e189890 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e5b24fa ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e87b0d2 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ef9f0d1 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f071615 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa749f1c3 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaaa7f6a6 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb01c40f6 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb051247f ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb09f46d5 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb973518e ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2a52985 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3dff2ff ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc58fbd84 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6962ac2 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc73e193d ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc8f53f9c ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcae4dba6 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfecf2eb ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd013ae95 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4fd6bf3 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd63795a7 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd63a32cb ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd4d274e ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde9b664a ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe07bbdbf ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0e092a2 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe66f65fe ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb9c226b ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef6c45d1 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf089a624 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf634296a ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf969dd85 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc5f4fa9 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd415549 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfefa291f ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/atmel 0x2c6781db stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x87aaeede atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x9bf0dab1 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x001d15ba hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x01157395 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x016d62d4 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x089c11ab 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 0x12b40534 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x14a60c65 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1ad34e20 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3bcd1d31 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3e0bf522 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x520396a1 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5ae701a6 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x66069940 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x77fa1569 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7c09c724 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8097d8fe hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9b451853 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xafcb9f13 hostap_init_data +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 0xc22f28c8 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc2df06dc hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcb00ac7f hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcc56dfcd hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd7e02327 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xda051fa3 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xde8d75aa hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf3e55ef1 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x017ffa26 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0429cbf2 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x38b920ce free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4c3d8b18 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4d91a707 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4f3bdf9b libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5c56ad8a libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5e13b5b3 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x677593a4 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8583362d libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa4ad2bba libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xada185f9 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbaf396fb alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbdb5cdb9 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd05428f8 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd8c79dab libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd9ce2cf4 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe410041c libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe959be1b libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xedaeb88c libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf286a876 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x011b384d iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03093e04 iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x066cd0e2 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x087a0dfd iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0a8946cd iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0d155a13 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ed2d3b8 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ff15e7a iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x104a78f5 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x136a63d5 iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x143fe218 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1463df65 iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15c6fc6d iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15fe48b7 iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x204b52b4 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20b1826a iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x234cec7a iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2396b988 iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x25a6dd41 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2656775c iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b8a5ab9 iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2cc3188c iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ecac1a6 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x303730ff iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32065660 iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32cccff7 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3458aa45 iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35cff246 iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35f41a55 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3711b631 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37f1d3f6 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a0290cf iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a0a2275 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a80776e iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c1f1c9f iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e083f78 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x424511b3 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4334f034 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x461633aa iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x46e54bf8 iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ccc1a3a iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ce8c277 iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4da2575c iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5106962d iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5219cb59 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53a74807 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x54846bfe iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x56418c13 iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57d09899 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5917f867 iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a071806 iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e235a6b iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6a46205f iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b315762 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c997835 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6dc75535 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71a1d281 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7348b501 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x74d188ba iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7f28661a iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x834ec26a iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x836997b6 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8c060db2 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93c5f5c3 iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x95b4aaf2 iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x96631762 iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9cde1f24 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa252b8bc iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa516cd2a iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7fe5743 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac95fd81 iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae5227fd iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf679797 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb324f33b iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8f07331 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb9c28f7c iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xba29b4e6 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xba9d364e iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbb4ea312 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbb5bcfef iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbced385f iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc17af733 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2ad680a iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc3d4f28b iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcce45215 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd7d33ab iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd698bc20 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd95c9dca iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xda36420b iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc3b1424 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe1a8555f iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe602783a iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe61670ce iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe9f22747 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedad7555 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf05fa05a iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf880b4dc iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfd5399b8 iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe134884 iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfeaee6bd iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0a523ed8 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0bd6050d orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0f9999db orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x304f57f5 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3e2e4645 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x479b0b2b orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x71bdfd16 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x789f0cc4 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa51c7b12 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb68bb7b4 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb992e7d8 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc6771170 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd127faeb orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd198c1db orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd2d94d8b orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf6831c4f free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1b08d5ae rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x21c63cf8 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x27b9d319 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x537a4231 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6b116fa9 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6c69d55c rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x890fa1cc rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8ae23ab0 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xae9e73c5 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbac38e53 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc278ebb7 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd2fda309 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdf999477 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe91a59b1 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xee6d2bbe rtl_pci_suspend +EXPORT_SYMBOL drivers/parport/parport 0x00aa6f94 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x0221e9fa parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x0276008e parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x1dd1f70b parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x2db2b8e6 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x37a733c0 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x49ec069b parport_release +EXPORT_SYMBOL drivers/parport/parport 0x4a4e68a6 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x4c14fbf1 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5444a4b8 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x56189150 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x5c1a5801 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x6c6575e0 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x6f2d4505 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x729d08cf parport_read +EXPORT_SYMBOL drivers/parport/parport 0x7f7fce31 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x8fa05269 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x90a715aa parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x952242df parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x9f318006 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x9fab4d92 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xb12b31d2 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xb14bd972 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xc672348f parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xdb2ac676 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xf3d42491 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xfc48a3d8 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xfd5d199a parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xff95036b parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xffd1b996 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport_pc 0xe478791f parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf2cbb64e parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x02f9612d pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x26d912a7 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x423c2544 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4ffb06f5 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x536261ce pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x570c232f pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x611bbf66 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6de7416a pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8f358a51 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8ffda204 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x99941001 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa0b6b3ae pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa10102e9 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb4a960c8 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb5b96fda pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbf39df3d pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc11588a3 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc52c639d pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe915159a pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0b6f6365 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x25e0e348 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x377594ba pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x42213d07 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6b8a17ef pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x767d03ef pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x92ef0c56 pcmcia_get_socket_by_nr +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 0xdab66393 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdd5b7719 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf9a893e4 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x39f7315c pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xf8b82978 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x64419c61 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x8f1192a8 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xeeb0435b pps_unregister_source +EXPORT_SYMBOL drivers/scsi/53c700 0x24acf98c NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0xf0f821c3 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0b7906bb fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x12d24dac fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2683ad4e fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb0dc3ef2 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb89ba72b fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe6c9e50f fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xebe9b434 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00214915 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0474138c fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06e5a36a fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09b69def libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d9ff839 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0f7f1c81 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15a78d31 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15e915c5 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28a3010a fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x295f0859 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2984b812 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c6459a3 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3baa8e8c fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48d6c4d8 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x556a1945 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5be0fdd9 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e2a9595 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x606da19f fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67967d18 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67da3172 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x68832505 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c971a21 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d8ff425 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x796c102e fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7c751abd fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7eb58259 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81cf5b0c fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8281a144 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x850345ed fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a8da948 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x94c26f79 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa676ec29 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac62aff0 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7bcb482 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3e2c9e9 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc8e799ad fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca939070 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd00a4b9e fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd090e262 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xda870df6 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdc941a3d fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0842c9b fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe62d1b72 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe8de9f38 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf758bf63 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xe8623eb3 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x016d214a osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x074974a0 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2161fb3a osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2669ceed osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x28ace30f osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2efad03a osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x304342ff osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x334d9c40 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x398395ec osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3b536740 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x43170ae4 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4cd63e1c osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4d2c568a osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x51c62687 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6891f50b osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6e8441f9 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x78205837 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x85a46c53 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8738d4d3 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e36bbe8 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x926636db osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x93e43937 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x96af5e1b osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x98528a05 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x987c4469 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9d41e855 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xac0d5f6f osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xafb7ed4c osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc5e9fc69 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcc0c9565 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd061a180 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd7cbc0f9 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda7fc951 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdc1669c4 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfbb3cd26 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfd2d87d5 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/osd 0x05787d2e osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1d01d81d osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2020cf0e osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x30bc24ef osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xd3dcdc79 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xd8af82d9 osduld_device_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x09a3c684 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x39ec6484 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x40a1caf3 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4ded8f72 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 0xe8202b6f qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe83ddb13 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x2c651362 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x3155ff2f raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x7ef700de raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0fa79dcc fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x29830dbf fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5bd559a6 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x627f9483 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6d00c06d scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6deb8755 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xac3cba94 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb1ce3039 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc8ca79c6 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xceb4cb00 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdcba7c00 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xef44489b fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf23986eb fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00a1ea33 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0a638d3f sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0dbb4fa3 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x140e891e sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16702c8c sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1729d2f3 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ee862c4 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d425c89 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x563f3a46 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6183fd89 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7e53c264 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8366f528 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8f4d2482 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9181a6f8 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9faebf54 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa2d23962 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa8fe0cb8 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9bcd58c sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaaec6830 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaf60aac3 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb831d0ea sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbfad5376 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb5d5010 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd7749dd3 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe1f51f85 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa8a97db sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x45c5d82d spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x5acb4d0a spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x6a80a5c5 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xc268958f spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xcfbbc21e spi_release_transport +EXPORT_SYMBOL drivers/ssb/ssb 0x02d9d234 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x118e24a9 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x139932fd ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x2a2c4eb8 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x363dab95 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x399902f5 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x4a80b012 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x4c2afea7 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x564660c6 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x63206139 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x6a4dcfe8 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x7d280954 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x8de698ef ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x952c96f3 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x9dda8390 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xa4774727 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xbb806780 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xde92a179 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xf5f7e5bc ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xfc27f391 ssb_device_is_enabled +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x030b82f1 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x096c79c9 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x1631fb9e comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2bd484a7 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2c11c9b2 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2da4cd99 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x461dd2b6 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x62aed175 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x65f6cca4 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xac198a62 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb044532 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc043973f comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xcff48266 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xd24988db comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xeee1dd9e comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x35b78eaf subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xbd26d6c1 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xd1a752fd subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xd5303179 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x60f6aa9c cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x92eabe4b cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xa8444a57 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x071b0862 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x116007b2 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x48dbb053 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4eb4ed02 mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5154fdd2 mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x61142266 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x62ff8d8b mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x65470388 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6c382e67 mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x844808df mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x84c9638d mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x87e8861f mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xab2a7d7a mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb51a42ed mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xbe009420 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc70ee069 mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xcd25577e mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xef884018 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf20da83e mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfe7f47d1 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x4c257611 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7a62128a subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xbf51d2f8 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xc434d895 subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0xd53fce66 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x38b38f7b comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x58cb3b63 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x5c826fc9 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x8bd556b3 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x9bb3b350 comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xb1594fb0 comedi_dio_config +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x212b09ce cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x22b3dc8c cx25821_dev_get +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x43c61072 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x4e0fd24e cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x6b2ba15a cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x9a540256 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd083f07f cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd2ada0c2 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x1137b657 go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x283f51d1 go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x8ac4be57 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x99c0118a go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xab73cbbc go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xae466f85 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xb2e8e604 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe07758a3 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xeca7cd5c go7007_alloc +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x16a0c075 vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x522c6ca9 hv_cb_utils +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x5c49613c vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xaeaa3ce5 vmbus_sendpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xca7d0330 vmbus_recvpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x236bb03d adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x4cae8d5e adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x7bf60fb1 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xcca25aef adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0321e967 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x065dcac8 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0ced819b iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0e08d773 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1012f805 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x162292e1 iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x26755a3a iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3a1d9642 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3df04007 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4237f475 iio_triggered_ring_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x494ccdda iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x514abc57 iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x62e8e26b iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6df00c2d iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x84501c90 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x86007cf4 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x87805b5a iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8a1a813f iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8cce0698 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8ea33a40 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x95c01ce0 iio_read_ring_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa0708ec4 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa710f962 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa9ea9f09 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0b2c8fd iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb349a65a iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb43c259b iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc41ef92f iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc5708d62 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcc649024 iio_alloc_pollfunc +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcfcbb2ea iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdbe4c601 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xddb1dead iio_get_new_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf629da5 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdfc3a2d6 iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe0c7df06 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe2d47ea9 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xebf9b975 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf77f5275 iio_free_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf88956ab iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfa51e6ce iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfb234ab4 iio_triggered_ring_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfe889a40 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x0b829075 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xd0f7f03d ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x254d2c18 iio_sw_poll_func_th +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x326fc62b iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x337a73a0 iio_sw_ring_preenable +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x411fb426 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x57c3767a iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x61f9623d iio_set_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x63ac576c iio_sw_trigger_bh_to_ring +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x64adf043 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7a167e9b iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7c7f9f02 iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa25a0fe3 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb2dceedf iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc15bd57c iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xcb2cec85 iio_get_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd01b1a95 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xed41b48c iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x075f17ff ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0f78cb84 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10c3b555 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x12634272 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x12e005de ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17a98334 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1bbbc809 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d64420c ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x33f89cd5 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3672b495 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x376c09eb ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c392d84 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3fb1e6af ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x41155906 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x446ef7f6 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x453fc3a1 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b3cad3d ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4cb60efa ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4fe33c1e ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5316e8df Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x55bc1d55 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x57a10c53 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5a84bd70 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5cdc0066 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5d7ba7ac ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63f51fab ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x671d4ba5 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6815114d ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d11dfca ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6dda4b41 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7788087b ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86559952 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x928ac051 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92fc5aae ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x935657e5 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9936840b SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa55f2850 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa5be8a05 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa69caecc ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa34df81 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xacecc6e2 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb6f16b45 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc178046 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbdc37544 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbddadd8c ieee80211_wx_get_power_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 0xcb854811 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd0dc208 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb590678 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe30d1db1 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe5046348 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe5565b56 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe6142ac5 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe9ebf6b2 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeef95883 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x055e8876 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x189a62d6 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x6c8d6031 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x12453e4f usbvideo_TestPattern +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x2180f30f usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x81d5503c usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x84b83445 usbvideo_register +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x9c8dcdef usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xbb83b650 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +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 0x0cae1c95 vme_irq_handler +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 0x12309765 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x137abc7e vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x1d4ec3bd vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x251b9ed8 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x282a303d vme_dma_list_exec +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 0x3fe61a97 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x44b3fbf9 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x4f407383 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x66227eae vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x75f47435 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 0x894b3438 vme_dma_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 0x981149ae vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xa4779d40 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xbd4169cb vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xbf37b883 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xc1d28aae vme_irq_generate +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 0xdb8f2262 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0xdc0a8ed8 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf168dab8 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x00e6fb8c transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0da3a03d transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0f1c90eb transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1083d05f transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1277becf transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x16b5bdc9 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x17f59274 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x1b7ad5a9 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x26c4995a transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a702e4a transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2b729016 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x2de62842 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2fafc5ba fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x31eb4c74 transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x33fe2def sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x36e88ad2 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x37b99b5f __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x38bb7929 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x3da78a60 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x46a59fe3 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x475aed6d fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x4c671c98 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x5137d6a4 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x71ec68c6 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x772b6e35 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x79c95774 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x7b72416b iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7ead08a1 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fe27879 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8c41a245 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x98c47137 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x9af7a6ad target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x9c0ecfb4 transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9f1e7319 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0xa0d185f2 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xaabae8bf transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0xae96f196 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xbca991b7 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xbfdffec4 transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc810651b core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc9295d08 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0xcec980de transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7026ce8 transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7351a5f transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7a44fc5 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3f9fffe sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xe7a7b473 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xe837368b core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xecddac2f core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf226209b transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf376f3c2 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xf7de98f1 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xf7f3d662 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xfd332ffe core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xfee3319d iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/telephony/ixj 0xd4c02f44 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x4676e7a8 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x8abcb899 phone_register_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x57a06e8f usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xd470ccd5 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xfd435f87 usb_gadget_probe_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xe7c7019c 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 0x0f579aef usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x37d08986 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3b9ba792 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4ed7f855 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x614870b2 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x68014588 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x77573a05 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8e29dfcb usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8fc18e43 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x91a4b11d usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x993e52fd usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9afd52d4 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdf38c6f1 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf26fbb18 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf63fde20 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xa26a464b usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xab18a787 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x51224c9a lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x755b1696 lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x5b8fe83c cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x7c7b6a3d cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x9fe16e58 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb5fbdf13 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0x149ec613 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0xb58fc4f8 display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x9a4e5103 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa7c3c85c matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xcfa589e6 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xec6e2f45 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x40a8b607 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x5a865a9a DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x85b641e3 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xb4f9c371 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x3e9fee97 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x08f67bb0 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x3340b5d5 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x46a1e449 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x65489f56 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xfc8aedb7 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xd7ce731c matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xed7ccab2 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x2dd60b92 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x3dac724c matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x4a7547e2 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe2100eb5 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xfa4d606b matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xb5b16559 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x5c9a4f35 video_output_register +EXPORT_SYMBOL drivers/video/output 0xa55af3ea 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 0x12ae4328 svga_tileblit +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 0x67abfe9c svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x72251b33 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 0x8b8873c5 svga_settile +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 0xb3fa5704 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe265c9dc svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf699f568 svga_get_tilemax +EXPORT_SYMBOL drivers/video/syscopyarea 0xa87df0db sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x45857b81 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xb48867a4 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 0x1877482c w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xa376342c w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x5c160548 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x7af78fc9 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x7b21ef82 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x8ab90f66 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/wire 0x4b39acd4 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x7e0598f5 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xc5961ef1 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xdd0b6dec 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 0x1655c19c config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x23951f23 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x379c4774 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x5046a021 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x5b3919a9 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6cd3f308 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x72d2fe01 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x8cf81efe configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x9c18632d configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xa96cc440 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xb6066cbf config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xebf334fb config_group_init_type_name +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x2031be24 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x237fd583 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x27e9fc11 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4037de6b __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x403a8054 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x568610d9 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x67ca69ed fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7fb3f9bf __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x805c398a __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x80c61609 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x8220842a __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x8222fc0f __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8c3d8465 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x9e027e59 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xa7e06bb0 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa80a3546 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xaab4ba38 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xaafd71af fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xd3e8d271 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xde7588d6 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xe2e6e819 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xf54ac816 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xf5d56a0a fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf9f7e18e fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xffcf2cdf __fscache_maybe_release_page +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x178f9ec9 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x4a13bdd6 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x6db2e1d1 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe0c745a0 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xedf16e0f qtree_write_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x073572e6 lc_put +EXPORT_SYMBOL lib/lru_cache 0x0a756721 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x0bb5982e lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x261e071a lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x2d245de9 lc_changed +EXPORT_SYMBOL lib/lru_cache 0x2df832c7 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x778a22e4 lc_create +EXPORT_SYMBOL lib/lru_cache 0x84f9b8fe lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x8ce4bb23 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x9dc0b844 lc_del +EXPORT_SYMBOL lib/lru_cache 0xb65d0e73 lc_find +EXPORT_SYMBOL lib/lru_cache 0xc428ab8e lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xc862dea7 lc_set +EXPORT_SYMBOL lib/lru_cache 0xdfb4ef38 lc_get +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0x5d490be8 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xba3b953f destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x127714d2 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x139abf8a p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x17c5fe25 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1a5fa9f9 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1b0416bc p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x25748721 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x2c18cd6a p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x34dac1eb p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x34f1da66 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3f7f55b4 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x41508f58 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x455232c9 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x47a23fda p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x48aaf219 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x521c3cf5 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x5d27e8de p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x656fe157 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x78688311 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x7d6c1f3e p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x7dee00e8 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x91bd79a3 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x9308b149 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa3232af5 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xa5ea64d4 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xa9d12fad p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xab371153 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xab7187d7 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xaeed83cc p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xb28331a7 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xb2c86714 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xcc58599b p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xcf903490 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xd5dce8c3 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xdb210bcf p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe19978b9 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xe1c6f11b p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe9b8af66 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xec47706c p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xeef4938a p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xf3615b86 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfc8388e7 p9_client_symlink +EXPORT_SYMBOL net/appletalk/appletalk 0x3513a9a7 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x9ae17058 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xd4458b94 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xe924e029 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x00b751e0 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x0bce6818 atm_charge +EXPORT_SYMBOL net/atm/atm 0x1fcfbc3c atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x240983a5 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3ce2a753 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x4a823308 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x7a6dfba6 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x867d956a atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x9ec7b214 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb536003f atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xe6a637b8 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xe6acaa08 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xfa5a09e0 vcc_insert_socket +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x03b1ee17 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x03bb1718 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 0x4bd79405 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x63f5b45b ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x6d2ee755 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xb55500b7 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xca0a44c0 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdc83aa8d ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xf25f213d ax25_listen_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x047ac0b4 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0481352e hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x09e7993e hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0de77c56 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0fcf1065 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x103cde5a bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2380fcd2 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x288d04ed hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x32e738a7 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x342f231b bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x35c316d9 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3be7b1b2 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x430d2157 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x47a778f6 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x48bb007c bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x529be8d4 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5843bf63 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x71576445 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x720e929b hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x746555b8 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x75433bdb hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x812d2551 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x83470111 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8db9c6ac hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a56319d hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xabbb8497 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9d8c7ae hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd66a2395 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdbd82fc3 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe74483e9 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xedac1689 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf8e34195 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf99aa173 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfdfe73fc hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xd65b83b1 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x19427b22 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x26ed9943 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4444f6f6 ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x03195604 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x0580362c cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0d544ce0 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x119e4bc5 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x1d4a1c33 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0x1d9949f9 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x2451f69e cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0x250b3397 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x28831be8 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x2f5a0398 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x324b32a6 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x3f8b1895 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x50203a33 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x56e709d2 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x69ace669 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x6a9311de cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x83728853 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x8ac1e0ee cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x995cee5f cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x99c394a0 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x9e91064a cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x9fb932d1 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0xa1311dcf cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xa91426c7 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xbc5fd6a5 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xd33fbd4b cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xd3e95f55 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xd9689c16 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xe96f9f5d cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xf2463102 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xffefc934 cfpkt_getlen +EXPORT_SYMBOL net/can/can 0x013564e3 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x9d9d115c can_send +EXPORT_SYMBOL net/can/can 0xcfd5a09b can_rx_register +EXPORT_SYMBOL net/can/can 0xf884110d can_proto_unregister +EXPORT_SYMBOL net/can/can 0xf8faa06e can_proto_register +EXPORT_SYMBOL net/ceph/libceph 0x090a27eb ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x156f20fd ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1a08a4f3 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x226a159a ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x25da0b66 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x27adb0bf ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33220f51 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3b582fdf ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x3b77f18b ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x3cc6ee62 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x3d9fe81e ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x407468dd ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x4e0d5e70 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x50a25724 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x58d9cdc6 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5c9fa92d ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x62bc134a ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x69b36b4a ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x74038b24 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x756f7b13 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x8f846626 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x90e2bae9 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x92c814dd ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x9480b043 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x974067c7 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x9e8f664d ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x9f04ad84 ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa195874e ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa7c31f25 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb620b6fb ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0xb80ac838 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xb86c3a22 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xc22e9754 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc73333a3 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xd8a1afad ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0xda06028f ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xdb65eb13 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xddde057a ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xe370fd5a ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xe63e159e ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xe8db3692 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xee41e166 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xef5c25a8 __ceph_open_session +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1f0c934b wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2854f868 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2fbac75d wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3045d132 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5f4bc11c ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x648bc581 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x655d996c ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7bd3c7e2 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa61f0086 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb933324b ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xefd1c3db ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf0310bcb wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xffe56010 wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x83aad98c arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa75b7e52 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa75f8453 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8711d560 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd53b86a5 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf669118d ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x35215fb8 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6a495bc2 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x82c4b12f nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x82c664f0 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x86e232a6 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9608f070 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcad37877 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x67d78f1c xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xeb4d3061 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0e5acd9f ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4a621215 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8ea5d4fa ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa801a605 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x20588233 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xd572f4cc xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x4b678f8e xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x5866c566 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x084e0e1f ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1b737f9e ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2b175af4 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x39c8dcb0 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x44b8b1e1 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x51c232f1 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7226779c ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb4aebe48 ircomm_flow_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 0x174611e6 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x20d7cd87 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x35c85d4d irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3f2a1069 irttp_udata_request +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 0x4d83f181 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x50a04756 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x51f8358b irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x52d2cc6f irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x534f6fb4 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x56585540 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 0x7219191e alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x72f42b38 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 0x80442436 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x84a36918 iriap_open +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x8a08efba irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x8bae8c95 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x90182f5c irttp_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 0xb2fc43b7 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xb689b8fa 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 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc6b80962 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xd26307d5 irlap_open +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 0xe2af1612 proc_irda +EXPORT_SYMBOL net/irda/irda 0xe3cdea45 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xeb1c929a irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xfe0e918f iriap_close +EXPORT_SYMBOL net/irda/irda 0xfe22c494 irlmp_open_lsap +EXPORT_SYMBOL net/l2tp/l2tp_core 0x593820b9 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x12f70158 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x35724db0 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x3bd7a188 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x55330acf lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x5de39b0a lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x612450f6 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x8a059647 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x9991007c lapb_getparms +EXPORT_SYMBOL net/mac80211/mac80211 0x003ecf44 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x04a38893 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x0823cac1 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x0ae0ed10 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1c124529 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3dd8f535 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x419038bd ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x465a59fd wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x467ed746 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x49fd8346 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4b717432 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x50578212 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x54c9051f ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x58e1f3ff ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x60c96d51 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x60df6339 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x677cd0d1 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x77106ad8 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x781860ab ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7ef7f348 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x7f096833 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x87cfb12b __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x89c1e5f1 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8cc147cc ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x8cf751c1 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8e65574a ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x99deb1d7 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xaa10a1dd ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb110abe0 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xbbe939cd ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbd1c645b ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xc4e48eae rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xcaa51996 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xcac589de ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0xcd139001 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0xcf4bd187 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xd68cfdcc __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xda0bceb9 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xf27c8701 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xf2ea6001 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf80875e5 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x033766de ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x037d8ffa unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x178abeba register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x20067fca ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x48cdabf7 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x611e3dab ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x77fcaf26 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc489b3ba register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcdac827a ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf3b2eef2 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf6d2a315 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf958fe47 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x17092b00 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xdc8a0211 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xffbe0774 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xa081cb8a nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x3ead89de xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x691902f3 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x8b8b9c9d xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x9445571f xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xa6098f76 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc646a4d1 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd2259cbb xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xeb480d77 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xf5dc51e5 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xfd41d10e xt_register_target +EXPORT_SYMBOL net/phonet/phonet 0x16202025 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x1817f79d phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x47f507f9 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x504a055e pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xad98525e phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xb0850e4b pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xd449bf79 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xee0d3daa phonet_proto_register +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x095226f5 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x148de26a rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x22721e4b key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x31f4945f rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x50e3a7c5 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x53adbcf4 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x685ad2f3 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x954cdd95 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb034cf7d rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc26d9458 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc86c7c04 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcc366d24 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdcfa4970 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xddaea5b6 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf2236d3a rxrpc_kernel_send_data +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7cc894c6 xdr_terminate_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe94a2a18 svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xb30ad9cc register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x1562fd65 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x44ef1c33 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x0642b547 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x077e6b22 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0e3cf9ac __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x14e406cd __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x1667aefd cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x176f1ef2 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x241cea20 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x248fc41b cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x26b3f611 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x2f08d346 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x337a5697 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x36eeaff1 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x390eba46 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x3dddabf1 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x4804782f cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x4828fb03 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x48e69df5 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x5a43798f cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x600d8c90 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x645a7b93 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x6751f78c wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x75ce35ff wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x783683ae cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x863a5daf __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x960f7bf1 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x96d97fce ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9fbe9a17 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xa4b1e57b cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xa77d5e8a cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xacf66132 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xad27ecbb freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb6c80460 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xb71272c3 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xbe5d4a4b cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc724afe6 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xcaa91955 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xcbd80782 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xcc1c2e6a cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xcc71dd9b cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xcea552c2 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xd22c34ca cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xe5dac663 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xe87353fa wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xe9160a14 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xec0d6fd6 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/lib80211 0x005c01e7 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x11537c8d lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x264550d2 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x6e9a6efc lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0xb8465103 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xcda42e3b lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0xce469512 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xfdf6610d lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0xa6754603 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7e022a2d snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x86920ec4 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb30cdd62 snd_seq_kernel_client_enqueue_blocking +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 0xda12e153 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 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 0x85180c32 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-device 0xfa5003bc 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 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 0x08b0c748 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x02a676f7 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x08909443 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x0e61e42c snd_info_register +EXPORT_SYMBOL sound/core/snd 0x0ed756ad snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x16023de5 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x16f745b3 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x17814851 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x20908fb3 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x217c28e4 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x2227cf51 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x49be8df9 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4fd9340e snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x5108febb snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x547dd365 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x568b1e9c snd_component_add +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x62c43eb1 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x76bbae39 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x857f3bdc snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x88c0f650 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x8d75783e snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x94238b7b snd_card_create +EXPORT_SYMBOL sound/core/snd 0x9ac8fc4c snd_cards +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 0xa3c56b41 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xa54ff1b3 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xac6455e0 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xac812ddc snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb33931d4 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xb415cd5b snd_device_free +EXPORT_SYMBOL sound/core/snd 0xb47939bd snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xc30d8fd3 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xcf318d43 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xcf5bd294 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xd6c42c89 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xd7d6a2aa snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xdb07f1ff snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xe0d00bec snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe382073d snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xe51e2075 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xea41619b snd_card_free +EXPORT_SYMBOL sound/core/snd 0xea565bd5 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xef27bb57 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xf5467bcf snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xfc253f89 snd_device_new +EXPORT_SYMBOL sound/core/snd-hwdep 0xd58e6a89 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x367dc0ba snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x36a73d8c snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xaa37e122 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xd1338430 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xd49fd6df snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x0352147b snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x039046b1 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x1ba2dbdf snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x21b17e9e snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x2245563e snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x236ce02b snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x25d741ea snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x289eb041 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x2a900126 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x3908964d snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x430170fe snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x4b776aa0 snd_pcm_lib_preallocate_pages_for_all +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 0x513f2198 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x56953372 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x59a926b8 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x5be0a64d snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x5d43c88a snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x5e879ca4 snd_pcm_notify +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 0x6b5a7325 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x78dcfcc6 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x7cceeaac snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x81b2f699 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x95eb7fb6 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x98bd412a snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x9eaf6b66 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xa1d2767d snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0xa20bde0d 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 0xb32a0538 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb32c67a1 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xb73a3add snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xcc278913 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xcc706091 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xcdaff2b4 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xce471071 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xceeafd63 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd2b6f0de snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0xdd45a54a snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xe2319a4b snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe977401d snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xec4795bf snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xf14ad9ba snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfae8a2f6 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0088631c snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x16ac04ff snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x240391a7 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x50cda1e0 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x532669df snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5d4c65fb snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5f22c24e snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x857b9838 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9b96a169 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa0d840c2 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbe6d4ef0 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbf4eca5d snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd5ebfe2b snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe0c893c5 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe3ffcba5 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe7e49199 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfcb04f8a snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-timer 0x0228bb6c snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x1752bfc5 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x27d91c56 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x3e871be7 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x49e1722d snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x5baa32fe snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x5c9a2c6c snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x78cb5c9e snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x8bd12e19 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x92578812 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xcc1f0b43 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xd5773115 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xfec29a0f snd_timer_global_free +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x3b20ea18 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 0x21916a3a snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x29628f96 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x38e36c5c snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x72725a22 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7d675c28 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x801f203a snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x994329bc snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xaa01c911 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb1da958f snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x59be3357 snd_opl4_write +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x62621679 snd_opl4_read +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x7092b100 snd_opl4_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x95f71855 snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xbb5762d3 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0967f42b snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0e2ea913 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5faa474c snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6a76c416 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7dd7483e snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa7eb5f6b snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb5f1cd43 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xcb225847 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf122bb69 snd_vx_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x37d3a605 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4ebb9eb0 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x63436b9a snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8297c4ab snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x978b25eb snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdd3716f4 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0cee5894 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x17d11298 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6469ce02 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x9ba6e88e snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xcd147f15 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd0a647c0 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1712ee67 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xb251e115 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xcea63791 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xdef4bdfb snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x04ccc0b2 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x1e97cc36 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x0f5669ac snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x939b917f snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x4b995e00 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8d52febf snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xe05a4f82 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xebf4de93 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf1b8f637 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-i2c 0x108f1a46 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x48065d8c snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5caaea62 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x8aa56842 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa96ed888 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xde54741a snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xc9ef6178 snd_tea6330t_detect +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xfe502215 snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x86d06521 snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x939ab430 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xc1ce8fd8 snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xcaf943dc snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xe1d39c92 snd_es1688_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x134998ad snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x17e01841 snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1a389a3f snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x23412d70 snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x39ede3dc 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 0x4c61b82c snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x553e0319 snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5646e091 snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5a4b70b7 snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x656b5ae4 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x685eb5b6 snd_gf1_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x734ec62e snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x896ce4c5 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x90910a80 snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x99364f27 snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x995e8e3c snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x99b2fabc snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa331248a snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa7d62674 snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa9edb91b snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb2dc4c10 snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb3b0d021 snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc98206b8 snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xcac80669 snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xcce884d4 snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xcf097196 snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd0334955 snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd495e4d0 snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe28e51d9 snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe4e5c302 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe540a98d snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x07f8a47b snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x3b1be361 snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x56089cd6 snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x598fd649 snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x5e3474d2 snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x6fc2c668 snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xa63db71a snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xafb674bc snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xbe0b5a3d snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xd617a10d snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xf29e9bea snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xf3a99bb5 snd_msndmix_setup +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x6da35a24 snd_aci_cmd +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xfea9f4ae snd_aci_get_aci +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00d402ce snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3520deb7 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4b3e2175 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7d2cce0b snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9d53762f snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb49bf2e6 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdafc5e1d snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf036c631 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf307015d snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf9b3f571 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x553785dc snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0ee0f667 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x2e57f1d7 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x3dc3898c snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x8755afff snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x9cd4b63a snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xa3a385d7 snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xf71dd61a snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x29d25c38 snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x62e06eb4 snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x6903945d snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x6fb669c2 snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x9d3c16be snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x9e2b31f6 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb7ef7a8b snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xc328747c snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xea0e383d snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xf3cbf038 snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xf52959d3 snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x00ed4d14 snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x1344dc58 snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x180c1a48 snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x1e39d7a1 snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x37f72ed8 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x497931c8 snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x55a1c349 snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x5e6d2efc snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x63188a54 snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x6f41a4d8 snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x76069c3e snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x789be7a2 snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x85a00cfb snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x87d3fff1 snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8b095507 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb48c86df snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd1f25b68 snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd6c347c6 snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xee5023e5 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xef06b230 snd_wss_in +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0088c6a9 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x10f49136 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2aa18be8 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x328e61ad snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x481273d9 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4a153d7d snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5b9672b4 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x60a4713d snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6baf4133 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x76a1b0fc snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x78133121 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8ddbf6d2 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb1e1fff8 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb40c529b snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd471cf4a snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe2c6c830 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf8ea7fd5 snd_ac97_update +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xd3574eaa hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2b3d2365 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4ca7ed63 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x65ef2790 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x720518ab snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x82892501 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x860525f5 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xbf827f07 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfb00a7d9 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfd51e588 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xa1ee254e snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1771fb14 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x47645a25 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x5d07f9e6 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x09a8908d oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0ffb1509 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2010081c oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x50e6becc oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x64da6be2 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6fad83f2 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x82681e07 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x82c702d2 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8473b31e oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8a78f61a oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x95a68b03 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa297698e oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa3dac2cf oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb99f95ac oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbee0c1c8 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc39abad5 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcd8f0a3e oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd8f1ef67 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe76d7b04 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3a5cbb7 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf44dac74 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x0c730c7c snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x17d035ea snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xa11dca59 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xec314a2c snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xed606784 snd_trident_free_voice +EXPORT_SYMBOL sound/soundcore 0xe707ec93 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x48336075 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x92e09b34 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xad0fe480 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb5bc06c4 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe83251c3 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xecc11429 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0e6a2549 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2efe1522 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5e7527f3 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5fad9ca5 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7bf8e827 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7f982d72 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xa090f1c1 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xde66f572 __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 0x7e4b7ba8 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x1e17b302 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x233fa930 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x755bc5d6 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x8622cb00 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x8811ee48 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 0xc6c086d4 dm_mem_cache_grow +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0004d08e tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x001e566a register_md_personality +EXPORT_SYMBOL vmlinux 0x00233a70 skb_queue_head +EXPORT_SYMBOL vmlinux 0x0027280d iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x003a51aa blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x003ed69a __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x00772ad8 dquot_file_open +EXPORT_SYMBOL vmlinux 0x007ced5b blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00932148 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x00ac3db5 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x00cd5eca inet_ioctl +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x00fe252a init_special_inode +EXPORT_SYMBOL vmlinux 0x010ddc5a dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x010e3165 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x012fc60a give_up_console +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01b9c198 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x01bc201d pci_scan_slot +EXPORT_SYMBOL vmlinux 0x01d0b2af file_update_time +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01f8a797 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x02032da5 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x020d867d inet_listen +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02282cae netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x02297ce4 eisa_bus_type +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x025c7dff vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x0262b485 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027c7134 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x029caba5 scsi_init_io +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02b33115 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x02b7e51a blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x02d32100 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e6c343 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x02ea2627 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x03030d4f pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x036d7102 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037f4871 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x0383a5c1 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x03977121 ps2_command +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e4604e vfs_readv +EXPORT_SYMBOL vmlinux 0x03f4b11f ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042d91bc simple_empty +EXPORT_SYMBOL vmlinux 0x04401edd bioset_create +EXPORT_SYMBOL vmlinux 0x0442b485 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x044f9076 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x046ac798 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04d1b35f phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04f3119a jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x04f76a38 of_get_parent +EXPORT_SYMBOL vmlinux 0x04fec7ef block_write_end +EXPORT_SYMBOL vmlinux 0x05139db4 noop_fsync +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x05272f89 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x052789fd journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x0534279c journal_stop +EXPORT_SYMBOL vmlinux 0x054a4e29 tty_check_change +EXPORT_SYMBOL vmlinux 0x055e3e0e jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x0560242f tcp_prot +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x057fb72c generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x0588c55a pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x059cec1c xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x05a0cc27 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x05cc1801 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x05dae94b nonseekable_open +EXPORT_SYMBOL vmlinux 0x05dbe020 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x05e0216e bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07096743 set_bh_page +EXPORT_SYMBOL vmlinux 0x07175e5b aio_complete +EXPORT_SYMBOL vmlinux 0x071d0c31 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0737d35f dev_addr_add +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07518f2d of_register_driver +EXPORT_SYMBOL vmlinux 0x075ea645 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x0764d047 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b11bd8 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x07c0d3fc proto_register +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 0x07dc5b00 security_file_mmap +EXPORT_SYMBOL vmlinux 0x07e7265c fb_show_logo +EXPORT_SYMBOL vmlinux 0x07ebde10 keyring_clear +EXPORT_SYMBOL vmlinux 0x081a43ee pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082fea00 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x08311514 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x0861b9e9 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x08671a10 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x089be693 pci_enable_device +EXPORT_SYMBOL vmlinux 0x08c44de8 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08efa3d6 setup_new_exec +EXPORT_SYMBOL vmlinux 0x08f43e18 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x0900dd17 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x0902e57d kobject_get +EXPORT_SYMBOL vmlinux 0x090d2d2e pci_bus_type +EXPORT_SYMBOL vmlinux 0x09130d71 get_super +EXPORT_SYMBOL vmlinux 0x091c6914 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x093656ea scsi_dma_map +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x0943ef10 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x09469d6b flex_array_shrink +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x095c7c9f dquot_quota_on +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x0978f651 journal_extend +EXPORT_SYMBOL vmlinux 0x098ae52c may_umount_tree +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099bc8a9 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x09b10ab3 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c211cc hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x09c416e2 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x09c50ebb dquot_destroy +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09f20dda idr_init +EXPORT_SYMBOL vmlinux 0x0a17c876 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x0a22c836 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a39212d md_register_thread +EXPORT_SYMBOL vmlinux 0x0a48cf4b __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x0a5916a8 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x0a6b70f4 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x0a72e1c1 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x0a78428f dcb_setapp +EXPORT_SYMBOL vmlinux 0x0a8aa11b fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x0a9509ac mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0x0ab1a455 unlock_page +EXPORT_SYMBOL vmlinux 0x0ab7221c sock_kmalloc +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf1732 __getblk +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adf1c2f remove_arg_zero +EXPORT_SYMBOL vmlinux 0x0afffe0b lock_may_write +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0fa21d pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1ea374 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x0b33ef86 fsync_bdev +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b4eb02e names_cachep +EXPORT_SYMBOL vmlinux 0x0b6393ef blk_make_request +EXPORT_SYMBOL vmlinux 0x0b733681 d_alloc +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bb848bd vc_cons +EXPORT_SYMBOL vmlinux 0x0bbf62bc filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x0bc725b1 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x0bcc83f3 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x0bef2dfb kick_iocb +EXPORT_SYMBOL vmlinux 0x0bfe5e0e rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x0c10871a install_exec_creds +EXPORT_SYMBOL vmlinux 0x0c225b67 keyring_search +EXPORT_SYMBOL vmlinux 0x0c476659 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x0c50f240 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x0c59845a netpoll_poll +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6f0ffe blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x0c770a23 skb_append +EXPORT_SYMBOL vmlinux 0x0c7da74d dma_ops +EXPORT_SYMBOL vmlinux 0x0c7decc0 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x0c8170b6 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x0c8a19c6 input_set_keycode +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cf3f8fe blk_plug_device +EXPORT_SYMBOL vmlinux 0x0d0f8175 tty_mutex +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d3df262 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x0d4bb418 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x0d4eb9bf get_sb_bdev +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d99a5cf __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x0d9f832a posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db2ef74 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x0db36788 tcf_em_register +EXPORT_SYMBOL vmlinux 0x0db8d26e blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x0deb3682 skb_trim +EXPORT_SYMBOL vmlinux 0x0df561d8 arp_tbl +EXPORT_SYMBOL vmlinux 0x0dfe1d91 input_register_handler +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e2b3494 bdi_init +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5ae50d sk_receive_skb +EXPORT_SYMBOL vmlinux 0x0e6c65f9 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e8b01cc free_task +EXPORT_SYMBOL vmlinux 0x0ecd4007 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x0eed96e2 input_register_handle +EXPORT_SYMBOL vmlinux 0x0f118af2 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x0f1b6c5d blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x0f563133 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x0f5cd4e2 log_start_commit +EXPORT_SYMBOL vmlinux 0x0f7dc2a6 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x0fac8cd8 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd9e820 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x0fe5c69f unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x101c0808 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x10242058 vfs_unlink +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x103807fb tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x10530e7a inet_shutdown +EXPORT_SYMBOL vmlinux 0x105d406b ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x10a000a3 deactivate_super +EXPORT_SYMBOL vmlinux 0x10b7b8f4 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ede9c7 input_set_capability +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f1f344 pci_request_regions +EXPORT_SYMBOL vmlinux 0x10f9def6 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11121a5f blk_register_region +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x11425600 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116b8fb8 d_alloc_root +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x116fa43d scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117a6f8e send_sig +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a748aa bdev_read_only +EXPORT_SYMBOL vmlinux 0x11aea4fc nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x11c83545 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x11e1ca5d blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x11f4a66b input_close_device +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x123147ba d_path +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x1259dfdb i2c_verify_client +EXPORT_SYMBOL vmlinux 0x1264e1f7 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x1277d181 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x1279a197 dquot_commit +EXPORT_SYMBOL vmlinux 0x127a373f try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12a8d7ca blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x12a92c4e bio_clone +EXPORT_SYMBOL vmlinux 0x12b7f4fd inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x12c17b5b simple_transaction_set +EXPORT_SYMBOL vmlinux 0x12cdd814 noop_qdisc +EXPORT_SYMBOL vmlinux 0x12d678ea contig_page_data +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12dbaf59 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x131f936f flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x132bc782 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x132f3320 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x13318d19 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x134369d9 dqput +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13b7bdd8 register_gifconf +EXPORT_SYMBOL vmlinux 0x13c3c928 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e54545 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f6d33e dma_find_channel +EXPORT_SYMBOL vmlinux 0x13fd4a96 agp_copy_info +EXPORT_SYMBOL vmlinux 0x1404e3bf linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x1410456f tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x1438d0d7 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x143fdd5a blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x14555047 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x14724733 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x149a4066 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x14a0a3b4 set_groups +EXPORT_SYMBOL vmlinux 0x14bec403 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x14dc2eb9 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x14ecdc6f seq_puts +EXPORT_SYMBOL vmlinux 0x14ed5191 module_refcount +EXPORT_SYMBOL vmlinux 0x15135dce inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x15480af4 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x154aa782 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1574c0b9 del_timer +EXPORT_SYMBOL vmlinux 0x1578e197 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x158ae399 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x15a66b6d of_n_size_cells +EXPORT_SYMBOL vmlinux 0x15ccea3c tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15d8f7a2 mntput +EXPORT_SYMBOL vmlinux 0x15e4373d ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16179345 sync_inode +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x1629d2c1 inet_frags_init +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1644719d nf_ct_attach +EXPORT_SYMBOL vmlinux 0x164bd0e7 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x166b6aa9 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x16762e44 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x169759e7 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x16c95b21 mca_bus_type +EXPORT_SYMBOL vmlinux 0x16d946fd mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x16e93197 tty_register_device +EXPORT_SYMBOL vmlinux 0x16eff38f tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x16f8740d dcache_dir_open +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17118a8d block_commit_write +EXPORT_SYMBOL vmlinux 0x176c05c5 elv_add_request +EXPORT_SYMBOL vmlinux 0x1772b63b sk_stop_timer +EXPORT_SYMBOL vmlinux 0x178a0004 phy_start +EXPORT_SYMBOL vmlinux 0x1790a4c1 write_cache_pages +EXPORT_SYMBOL vmlinux 0x17a41d7e thaw_process +EXPORT_SYMBOL vmlinux 0x17c9e213 genphy_suspend +EXPORT_SYMBOL vmlinux 0x17dbcc79 cont_write_begin +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x185c6ede scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x187327a3 register_8022_client +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x18e47772 bmap +EXPORT_SYMBOL vmlinux 0x18ff4611 seq_lseek +EXPORT_SYMBOL vmlinux 0x191839ea mca_device_status +EXPORT_SYMBOL vmlinux 0x191eb99d scsi_register +EXPORT_SYMBOL vmlinux 0x1936b445 dev_change_flags +EXPORT_SYMBOL vmlinux 0x194feb1c netif_skb_features +EXPORT_SYMBOL vmlinux 0x1968170e i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x19761517 dev_addr_del +EXPORT_SYMBOL vmlinux 0x19841847 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x198cedcc iunique +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19cf22d1 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x19e92440 flex_array_put +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a54c443 __pagevec_release +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aaf36b4 inet_frag_find +EXPORT_SYMBOL vmlinux 0x1ab32b30 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b060d35 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get +EXPORT_SYMBOL vmlinux 0x1b3f131e scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x1b4cd2ce __free_pages +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6da758 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x1b74d824 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b922fce vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x1b960410 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1b9fcae0 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x1bc8696e dev_get_stats +EXPORT_SYMBOL vmlinux 0x1bf3efef serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c661bc0 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cc550d4 dma_pool_create +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cff8257 make_EII_client +EXPORT_SYMBOL vmlinux 0x1d06cc8b dev_disable_lro +EXPORT_SYMBOL vmlinux 0x1d0a75e9 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x1d0b2f4d get_fs_type +EXPORT_SYMBOL vmlinux 0x1d12ed57 inet_bind +EXPORT_SYMBOL vmlinux 0x1d214f4f security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d461d7c kill_litter_super +EXPORT_SYMBOL vmlinux 0x1d53c80f dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x1d68dda3 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x1d6fde73 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e077ded ip_route_output_key +EXPORT_SYMBOL vmlinux 0x1e3eacec bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x1e414ab6 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x1e55066d journal_start +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e742d05 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x1e7ecbd5 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x1e99e2f9 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x1e9bfaf8 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x1e9ce99c udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea013f2 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x1ec1a2cd try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x1eca82d6 __devm_request_region +EXPORT_SYMBOL vmlinux 0x1ecd8df6 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x1ed3c1c0 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f0c11cc simple_release_fs +EXPORT_SYMBOL vmlinux 0x1f1a0397 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x1faabdb8 dev_uc_init +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fda4967 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x1feef881 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20002f52 may_umount +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20091d75 find_vma +EXPORT_SYMBOL vmlinux 0x202e07ae inet_addr_type +EXPORT_SYMBOL vmlinux 0x203b77a6 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x2040a4db posix_lock_file +EXPORT_SYMBOL vmlinux 0x2041df20 inode_init_owner +EXPORT_SYMBOL vmlinux 0x204aa829 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x2063dbfc scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20869365 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x208d8c2e inet_csk_accept +EXPORT_SYMBOL vmlinux 0x209681ec __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x20a17e6a genl_register_family +EXPORT_SYMBOL vmlinux 0x20ad5e3a sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x20cdcbc1 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x20d05ba0 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x2112ed6d tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x212d7d4c eth_header_cache +EXPORT_SYMBOL vmlinux 0x212fffe5 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2167fd37 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x217cf55f vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x21992615 blk_start_request +EXPORT_SYMBOL vmlinux 0x21b01a16 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x21c1af3c xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x22087162 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x221e1be2 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2248dca5 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x224c3bb6 blk_get_request +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x22640842 request_key +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a45f59 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x22a57cdf sk_common_release +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22be5412 i2c_master_send +EXPORT_SYMBOL vmlinux 0x22ca5772 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x2311960c set_page_dirty +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x232cc270 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x235cd0f0 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x236c5932 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b23d90 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23cd12db xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240411bb pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x2412c40f prepare_creds +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2446b82f thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x24504d98 arp_create +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2467e17f md_done_sync +EXPORT_SYMBOL vmlinux 0x24a718a1 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x24c5c44a in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x24c860e4 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x24d6f1d7 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24e2ca6d ps2_handle_response +EXPORT_SYMBOL vmlinux 0x24e7a2bc simple_readpage +EXPORT_SYMBOL vmlinux 0x24f164a9 mb_cache_entry_alloc +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 0x2528953a acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x25359925 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25c2ede8 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25f6cf0c radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x25f84385 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x261aac68 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x26262f4d vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace +EXPORT_SYMBOL vmlinux 0x265fbc2e xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x26618be2 tr_type_trans +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x26ae56d0 alloc_trdev +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26bf7a12 check_disk_change +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26d812ff seq_open +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2714cf38 input_event +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x273a8cb0 inet_accept +EXPORT_SYMBOL vmlinux 0x275bf9dc input_free_device +EXPORT_SYMBOL vmlinux 0x2767fa5e release_firmware +EXPORT_SYMBOL vmlinux 0x276cd5f8 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x277c4863 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x278dab8d sock_no_getname +EXPORT_SYMBOL vmlinux 0x279ae696 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27a3878b set_pages_wb +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27abe921 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bd96f3 vfs_create +EXPORT_SYMBOL vmlinux 0x27c1414c misc_deregister +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ced143 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x27f1b808 sg_miter_next +EXPORT_SYMBOL vmlinux 0x2806a409 freeze_bdev +EXPORT_SYMBOL vmlinux 0x281580cb cdrom_check_events +EXPORT_SYMBOL vmlinux 0x2817e766 uart_match_port +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x287c832d hippi_type_trans +EXPORT_SYMBOL vmlinux 0x2883d608 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x289fd556 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28b7f1dd blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x28c06456 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x28d179d0 vfs_read +EXPORT_SYMBOL vmlinux 0x28e569df dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x28f4c2f9 skb_pull +EXPORT_SYMBOL vmlinux 0x28fba925 security_inode_permission +EXPORT_SYMBOL vmlinux 0x2900722e truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x293bad0f xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295fb9c5 agp_free_memory +EXPORT_SYMBOL vmlinux 0x2966c8ba pci_request_region +EXPORT_SYMBOL vmlinux 0x2984cf21 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x29af0446 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29bdce2a get_phy_device +EXPORT_SYMBOL vmlinux 0x29c6a675 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a243000 audit_log_end +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a40ee2d sock_rfree +EXPORT_SYMBOL vmlinux 0x2a484d51 journal_forget +EXPORT_SYMBOL vmlinux 0x2a5d36c1 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aba2fa9 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x2ae54ba6 scsi_host_get +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1cd921 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b31894f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2b3b22f5 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x2b42df66 mutex_unlock +EXPORT_SYMBOL vmlinux 0x2b4ca916 fput +EXPORT_SYMBOL vmlinux 0x2b500d05 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x2b5a73f8 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x2b5ca6d8 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x2b5fefe8 open_exec +EXPORT_SYMBOL vmlinux 0x2b606557 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x2b775bb4 journal_create +EXPORT_SYMBOL vmlinux 0x2b9c91b3 bio_put +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bdf8606 user_path_at +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c1ec13a send_sig_info +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c3fb788 datagram_poll +EXPORT_SYMBOL vmlinux 0x2c44856b security_path_rename +EXPORT_SYMBOL vmlinux 0x2c4d44b4 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x2c4f63a1 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x2c5df11e sock_no_listen +EXPORT_SYMBOL vmlinux 0x2c6903bc dqget +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2cbed056 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x2cec3631 follow_pfn +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1b2c98 register_quota_format +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d493271 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x2d5957a1 dma_supported +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2dccd97f page_address +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd1e858 bdget +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e22032f devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e2f72dd lookup_bdev +EXPORT_SYMBOL vmlinux 0x2e4c5805 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e62112b xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e72cce6 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x2e89847e genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x2e946780 netdev_crit +EXPORT_SYMBOL vmlinux 0x2ea144df tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x2eb30a11 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x2ec18c95 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ee52843 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x2efd8f32 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f215b06 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f3615be try_to_release_page +EXPORT_SYMBOL vmlinux 0x2f381075 ip_defrag +EXPORT_SYMBOL vmlinux 0x2f403ac0 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x2f51f7f7 i2c_use_client +EXPORT_SYMBOL vmlinux 0x2f650c14 dst_discard +EXPORT_SYMBOL vmlinux 0x2f6f5ff0 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x2f9cdd26 bio_copy_user +EXPORT_SYMBOL vmlinux 0x2fa2741a udp_poll +EXPORT_SYMBOL vmlinux 0x2fdbb176 revalidate_disk +EXPORT_SYMBOL vmlinux 0x3019a5c3 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x304f2be5 noop_llseek +EXPORT_SYMBOL vmlinux 0x305363ef acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x30585492 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x30598ac1 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x30783828 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x30785b28 override_creds +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x3082a12b dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3089e9a9 get_disk +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b896d2 pipe_lock +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30d70fa9 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x3107fb3a tcf_action_exec +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3112c098 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x313812c4 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31502ac5 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x318019b8 register_snap_client +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31cb11f7 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x31d2d1ef dm_snap_origin +EXPORT_SYMBOL vmlinux 0x31d82c54 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x31fc4567 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x320738e2 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x320fafd0 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x32142e51 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x3266655a pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x3280a49e seq_read +EXPORT_SYMBOL vmlinux 0x328fcdd7 fb_find_mode +EXPORT_SYMBOL vmlinux 0x3296e684 vfs_readdir +EXPORT_SYMBOL vmlinux 0x32a8aecd thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0x32c278de tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x32d33abc block_write_begin +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x32f9424d scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x33322e63 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x334aeb4d mutex_trylock +EXPORT_SYMBOL vmlinux 0x3368425a audit_log_format +EXPORT_SYMBOL vmlinux 0x336e0241 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x3398d92b blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x33cdb951 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33e55d17 scsi_get_command +EXPORT_SYMBOL vmlinux 0x340127d5 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x34012953 register_netdev +EXPORT_SYMBOL vmlinux 0x340c33f8 default_llseek +EXPORT_SYMBOL vmlinux 0x342a2670 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3439a9d8 have_submounts +EXPORT_SYMBOL vmlinux 0x343c88bf netdev_printk +EXPORT_SYMBOL vmlinux 0x344eafc5 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x34681852 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x346a1b47 llc_sap_find +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x3499398c __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x34f833bb flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x34fa942b pci_select_bars +EXPORT_SYMBOL vmlinux 0x35130c17 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x353a39f6 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x355b03b8 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x357f9fe0 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x35899a3b set_trace_device +EXPORT_SYMBOL vmlinux 0x35a970e1 rename_lock +EXPORT_SYMBOL vmlinux 0x35ab2164 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35fbd6a1 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x361bfbdd scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x363fef3d sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x3659315b neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x36a65645 mmc_release_host +EXPORT_SYMBOL vmlinux 0x36b2e75c set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x36c22b8a skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x36ccbd52 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x36ddb3e3 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x371d9877 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374d9d43 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x377c1c00 tty_name +EXPORT_SYMBOL vmlinux 0x3799e9f5 simple_write_end +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37cb7c19 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e00887 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x380fa1ff ida_get_new_above +EXPORT_SYMBOL vmlinux 0x380fef46 netdev_notice +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each +EXPORT_SYMBOL vmlinux 0x38698980 find_inode_number +EXPORT_SYMBOL vmlinux 0x386aa427 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x387c2baf radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0x387d020e revert_creds +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38938dcc skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x38a0c921 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake +EXPORT_SYMBOL vmlinux 0x38b70bd9 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38d19b64 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x3920fa44 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x39211819 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x392eba7c __seq_open_private +EXPORT_SYMBOL vmlinux 0x395a140b __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39889ad3 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x39967382 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x399a972b netif_napi_del +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39a2122f bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x39c4428b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x39fb8e0d page_symlink +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a1f66f5 register_netdevice +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a2505ab sock_update_classid +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a615ab3 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a816a7a jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x3a95e3b7 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x3a97e935 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3aa63f60 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x3aa8fa8d jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x3ab704e8 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x3ad3b556 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x3af98f9e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x3b0a0a7f mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b59090b fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x3b668400 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x3b6bb55c tcp_disconnect +EXPORT_SYMBOL vmlinux 0x3b995dfd poll_initwait +EXPORT_SYMBOL vmlinux 0x3bc67b63 scsi_print_command +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3be10688 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x3c015534 neigh_table_init +EXPORT_SYMBOL vmlinux 0x3c091b94 __breadahead +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c75920e of_find_property +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9b5017 journal_update_format +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca6d583 sget +EXPORT_SYMBOL vmlinux 0x3cadeecf mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x3cbf057a write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x3cd2f5ca simple_rename +EXPORT_SYMBOL vmlinux 0x3cd67b9b tcp_read_sock +EXPORT_SYMBOL vmlinux 0x3cdd1d46 of_dev_put +EXPORT_SYMBOL vmlinux 0x3ce1af07 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf91a31 dput +EXPORT_SYMBOL vmlinux 0x3cfca4ea padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x3d00fdcc tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x3d04d8b3 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x3d05fcea ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x3d273bdd phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d33edc8 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x3d4b0ddf generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x3d4f67c4 sock_i_uid +EXPORT_SYMBOL vmlinux 0x3d5b3f1e cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da575f8 netdev_features_change +EXPORT_SYMBOL vmlinux 0x3de31dbd vfs_write +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1f3a8e ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e48d7dd acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x3e51f635 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x3e7d9de0 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eaf5bca sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x3ebab4e4 kobject_put +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edd988f kernel_getpeername +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f0d6de1 nf_log_packet +EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f482e69 dump_seek +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f6e7f43 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x3f9587c2 audit_log_start +EXPORT_SYMBOL vmlinux 0x3f9a6517 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x3fa16323 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x3fe6470e serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400ff423 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x40301df1 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +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 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4109b192 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x4119d804 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x4135ab59 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x41404c0a intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414bb936 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41977fb1 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x41a81ca4 unregister_console +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41f4c2d0 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x4215f389 start_tty +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x426e6ee8 blk_init_queue +EXPORT_SYMBOL vmlinux 0x4278a5c7 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42952ba8 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a0f7f7 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x42b25ae2 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x42b3ae88 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x42ce3c92 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x4301c239 generic_listxattr +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4318cb61 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x431d4980 d_genocide +EXPORT_SYMBOL vmlinux 0x43252bea pci_dev_put +EXPORT_SYMBOL vmlinux 0x43361bfd vfs_writev +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x43392659 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x435bf6e4 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x435fdc92 register_nls +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437591b0 sk_run_filter +EXPORT_SYMBOL vmlinux 0x43b25843 address_space_init_once +EXPORT_SYMBOL vmlinux 0x43b89162 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x43bc9fc5 proc_create_data +EXPORT_SYMBOL vmlinux 0x43c759cf vga_put +EXPORT_SYMBOL vmlinux 0x44003e0b kernel_read +EXPORT_SYMBOL vmlinux 0x440ebbc1 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x44174ff0 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x4426b420 scsi_device_get +EXPORT_SYMBOL vmlinux 0x44319b2d sock_no_poll +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44636faa input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b8902b of_get_mac_address +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44e04d38 end_writeback +EXPORT_SYMBOL vmlinux 0x44e3ebf1 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f0d6d6 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x44f96434 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x45002cb5 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x454ac37f d_find_alias +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4559453b end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x456e6dce radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x45727723 pipe_to_file +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x458a0ab3 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x458af336 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x459be4ac netlink_set_err +EXPORT_SYMBOL vmlinux 0x45a031f6 skb_insert +EXPORT_SYMBOL vmlinux 0x45b15023 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x45c9af99 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x45cc3d2d vfs_readlink +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x460f6a64 kfree_skb +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x4634e969 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x46458533 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46729fad agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x467a4188 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x46c451ea dm_get_device +EXPORT_SYMBOL vmlinux 0x46f4d671 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x470dc14a ip_getsockopt +EXPORT_SYMBOL vmlinux 0x471d1be9 file_remove_suid +EXPORT_SYMBOL vmlinux 0x4723e9c4 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4758c323 path_is_under +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 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4825963f padata_alloc +EXPORT_SYMBOL vmlinux 0x484c08bb scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x4857f500 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485e2ec8 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x48a5801f dev_remove_pack +EXPORT_SYMBOL vmlinux 0x48a693f9 __quota_error +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48bdcab6 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x48e3242d dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x48e46348 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x491030d3 pci_get_device +EXPORT_SYMBOL vmlinux 0x491b8354 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x492c2770 blkdev_put +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49532c31 bio_pair_release +EXPORT_SYMBOL vmlinux 0x4953861d __serio_register_port +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x496ef795 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x49881db5 sync_blockdev +EXPORT_SYMBOL vmlinux 0x49af2943 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b9dfd3 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x49bd6883 security_path_link +EXPORT_SYMBOL vmlinux 0x49c9baa3 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x49fa2fad acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0x4a0b3efd vga_get +EXPORT_SYMBOL vmlinux 0x4a0ed4ce phy_print_status +EXPORT_SYMBOL vmlinux 0x4a111671 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x4a23b554 md_integrity_register +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a579b58 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x4a5807c2 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x4a5a650b i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x4a672fe2 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x4a8ba1c4 pci_release_regions +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4af83c93 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x4afb50e6 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b06e252 tty_port_put +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1dec0c devm_free_irq +EXPORT_SYMBOL vmlinux 0x4b2091f2 dm_io +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b3584e6 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0x4b38e168 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x4b3ca31a __pci_register_driver +EXPORT_SYMBOL vmlinux 0x4b3e157f sock_setsockopt +EXPORT_SYMBOL vmlinux 0x4b4dbd0c pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x4b557379 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x4b5d2254 inet6_bind +EXPORT_SYMBOL vmlinux 0x4b7c1498 ip6_route_output +EXPORT_SYMBOL vmlinux 0x4bbb669a kthread_stop +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc46a02 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x4bd97ec4 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c142f69 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x4c1cd278 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c45f398 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x4c508526 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4c69b1c3 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x4c763ff5 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x4c78777c jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x4cae7d0f thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cf6afd5 setattr_copy +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d24c724 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x4d253d75 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x4d363323 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x4d370354 mnt_pin +EXPORT_SYMBOL vmlinux 0x4d38bc5b request_firmware +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d575368 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9c997b max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x4d9fb6d6 journal_restart +EXPORT_SYMBOL vmlinux 0x4db01db4 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dd07c39 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x4dd30e71 add_disk +EXPORT_SYMBOL vmlinux 0x4de1b31f scsi_finish_command +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e0d4317 fb_set_var +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e4cd83b vmap +EXPORT_SYMBOL vmlinux 0x4e515900 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x4e541821 dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e804b1e sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e8fec00 first_ec +EXPORT_SYMBOL vmlinux 0x4e9e1e82 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x4eb3b5c0 set_pages_uc +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f565653 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f80b511 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x4f9f104d end_page_writeback +EXPORT_SYMBOL vmlinux 0x4fa18010 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x4fb3cd2b elevator_init +EXPORT_SYMBOL vmlinux 0x4fd43e22 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fee1ca5 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x500d1b62 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x501f2124 elv_register_queue +EXPORT_SYMBOL vmlinux 0x501f92b9 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5037bc14 mdiobus_register +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x5071e0e2 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x50747e21 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x507d16a3 find_get_page +EXPORT_SYMBOL vmlinux 0x50947d23 stop_tty +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50b6f9e1 redraw_screen +EXPORT_SYMBOL vmlinux 0x50bc7ebe pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x50eedeb8 printk +EXPORT_SYMBOL vmlinux 0x50fe511e dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x5100254c __register_binfmt +EXPORT_SYMBOL vmlinux 0x51113d8f ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x5116fcb3 tty_port_close +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51260bcc rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x513a506a journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x51432abb input_open_device +EXPORT_SYMBOL vmlinux 0x51529dc9 sk_wait_data +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5171afb6 path_lookup +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x518c87c0 log_wait_commit +EXPORT_SYMBOL vmlinux 0x519fee3b fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x51c57cd5 dquot_resume +EXPORT_SYMBOL vmlinux 0x51cbef47 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5204784c blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x5210dbb8 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x52412bcc filp_open +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x52872b97 ida_destroy +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x529d8147 make_bad_inode +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52a98d3b ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x52c0bd69 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x52c887ff path_get +EXPORT_SYMBOL vmlinux 0x52ca1a0a __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x52d22265 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x530163c5 prepare_binprm +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5334ae6c lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x533955e4 phy_attach +EXPORT_SYMBOL vmlinux 0x5361d9ba generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53a06871 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x53a0d698 read_dev_sector +EXPORT_SYMBOL vmlinux 0x53bf7395 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c530e6 bio_map_kern +EXPORT_SYMBOL vmlinux 0x53f91f14 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x53f9f46b jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x5402aa2f ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x541fb23e netdev_warn +EXPORT_SYMBOL vmlinux 0x542357ae scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x543f31dd scsi_execute +EXPORT_SYMBOL vmlinux 0x54401e44 bio_map_user +EXPORT_SYMBOL vmlinux 0x545166aa arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x54530766 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x545a73b4 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x5465c32c xfrm_register_type +EXPORT_SYMBOL vmlinux 0x54785d71 fget +EXPORT_SYMBOL vmlinux 0x54889832 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x5497ece3 unlock_rename +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54c42e68 is_bad_inode +EXPORT_SYMBOL vmlinux 0x54ce556e dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x54d872ba percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x54e405c7 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54fc977b agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x5503ae84 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x551c345b tty_hangup +EXPORT_SYMBOL vmlinux 0x552097fe fb_class +EXPORT_SYMBOL vmlinux 0x5531fa74 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x55357c42 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x554b6608 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x5565d12d neigh_for_each +EXPORT_SYMBOL vmlinux 0x55665f08 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a70251 inode_init_always +EXPORT_SYMBOL vmlinux 0x55b710fd pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x55c78a65 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x55cae459 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x55df8dff mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x560216d5 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x560322b4 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5619b48e journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x561b0560 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x5624a2e4 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x567a3765 vfs_symlink +EXPORT_SYMBOL vmlinux 0x568711a3 seq_open_private +EXPORT_SYMBOL vmlinux 0x56a38d07 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d33c80 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x5702730d cdrom_release +EXPORT_SYMBOL vmlinux 0x5728b372 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5730c8c6 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x5730dfff mmc_add_host +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x57810962 load_nls +EXPORT_SYMBOL vmlinux 0x57973f11 flex_array_get +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57a99431 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57d7ff92 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x57db5fa1 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57ecb452 invalidate_partition +EXPORT_SYMBOL vmlinux 0x57f62eea jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x57fc16ff do_sync_write +EXPORT_SYMBOL vmlinux 0x582e447f blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x58307819 sk_alloc +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583e5704 blk_unplug +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x584a4c2d sk_release_kernel +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x588a120f submit_bio +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58a5cec8 init_buffer +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x591c9d0b dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5933b1a2 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5937b088 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x594135e2 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594f3b13 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy +EXPORT_SYMBOL vmlinux 0x596d2b59 alloc_file +EXPORT_SYMBOL vmlinux 0x59749087 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x5976681e pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x59815d3e sg_miter_start +EXPORT_SYMBOL vmlinux 0x5992093a xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x59aa791a sg_miter_stop +EXPORT_SYMBOL vmlinux 0x59aaed28 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x59b9cce7 key_revoke +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d80728 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a12e6ba blk_recount_segments +EXPORT_SYMBOL vmlinux 0x5a1b99ee jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x5a239448 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x5a277460 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x5a27810e scsi_host_put +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a4d6ba6 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x5a4e149d inet_getname +EXPORT_SYMBOL vmlinux 0x5a548bc4 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7554c7 netdev_info +EXPORT_SYMBOL vmlinux 0x5a7c1bc6 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x5a7ed124 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5b012398 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x5b062175 vm_insert_page +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b625a3f mii_nway_restart +EXPORT_SYMBOL vmlinux 0x5b6c2eec cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b86ff18 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5bd3fe28 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x5bd64c4a bd_set_size +EXPORT_SYMBOL vmlinux 0x5bd83b7b tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x5c007f11 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x5c0d2f53 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x5c1125e3 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x5c12bb2d do_truncate +EXPORT_SYMBOL vmlinux 0x5c1d3c1e llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c6a2435 __page_symlink +EXPORT_SYMBOL vmlinux 0x5c846542 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5cb44035 sock_create +EXPORT_SYMBOL vmlinux 0x5d27beeb pci_choose_state +EXPORT_SYMBOL vmlinux 0x5d6abcdd i2c_release_client +EXPORT_SYMBOL vmlinux 0x5d6dc20c pipe_unlock +EXPORT_SYMBOL vmlinux 0x5d6ef65c generic_ro_fops +EXPORT_SYMBOL vmlinux 0x5d77c852 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x5d893a22 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x5d975308 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x5da0821d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5db771b9 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x5dc25ecf blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x5dcfe9df sock_wfree +EXPORT_SYMBOL vmlinux 0x5dd5b3e6 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x5dead0ec of_get_gpio_flags +EXPORT_SYMBOL vmlinux 0x5dfb6ea7 acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e268f05 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x5e3f6519 set_security_override +EXPORT_SYMBOL vmlinux 0x5e4b7988 set_binfmt +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ea2553f balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x5ea4fae8 arp_xmit +EXPORT_SYMBOL vmlinux 0x5ebea344 thaw_super +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed12e33 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x5ed4625d register_qdisc +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5eea7dbe alloc_fddidev +EXPORT_SYMBOL vmlinux 0x5ef9e4a0 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f0a078e do_munmap +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f44442e dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x5f4671b7 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x5f900aa3 skb_checksum +EXPORT_SYMBOL vmlinux 0x5f90a65c __nla_reserve +EXPORT_SYMBOL vmlinux 0x5f98df33 mount_nodev +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5faf5120 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x5fc60de9 of_device_register +EXPORT_SYMBOL vmlinux 0x5fce52c7 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x5ff7c6e4 __scm_send +EXPORT_SYMBOL vmlinux 0x5ffbf5cd sock_no_connect +EXPORT_SYMBOL vmlinux 0x5ffc41ab i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x601b7ac4 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6034ce79 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x6053a9f9 netlink_unicast +EXPORT_SYMBOL vmlinux 0x607402f7 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x608d772e netif_notify_peers +EXPORT_SYMBOL vmlinux 0x608e4fcf blkdev_get +EXPORT_SYMBOL vmlinux 0x6099479e proto_unregister +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60d90935 module_layout +EXPORT_SYMBOL vmlinux 0x60ede007 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x60f36eb1 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x60f9eb57 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x6107b13a f_setown +EXPORT_SYMBOL vmlinux 0x610afb9b vga_tryget +EXPORT_SYMBOL vmlinux 0x6121e4e8 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6125487b iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x61276574 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6138f84d netdev_set_master +EXPORT_SYMBOL vmlinux 0x613cac4e eth_header +EXPORT_SYMBOL vmlinux 0x614a33a3 d_delete +EXPORT_SYMBOL vmlinux 0x6153bd84 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x617753ab pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x618a0d09 get_sb_single +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x619e8be6 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61b80712 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x61bc765f __register_chrdev +EXPORT_SYMBOL vmlinux 0x61c1b064 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x61c2edf5 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x61ef94c7 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x61fba9c7 __devm_release_region +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x62193598 pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x62625f79 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x6269e5b3 amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0x626dc81c end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62c10400 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x62e20013 dev_uc_del +EXPORT_SYMBOL vmlinux 0x62e90e98 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x63119598 dcache_readdir +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x632c017f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x632c602e ether_setup +EXPORT_SYMBOL vmlinux 0x6337eb40 of_register_spi_devices +EXPORT_SYMBOL vmlinux 0x63489431 netlink_ack +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63e9c4ce ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ec84b8 agp_enable +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64052fc2 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x6408b9d3 nf_register_hook +EXPORT_SYMBOL vmlinux 0x641ccb8b insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x64246e32 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x64313316 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x643fc13d pci_get_class +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x644ab112 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x645b209f bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x64673a93 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x64724d3d pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x6473d9a3 elv_rb_add +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a4dd34 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x64d67632 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x650396b7 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x650a96ca set_pages_nx +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652e034f block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x65311286 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x6531cd15 ipv6_chk_addr +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 0x656d03bd dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x656e6278 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x657156c7 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x657be48d brioctl_set +EXPORT_SYMBOL vmlinux 0x65973243 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x65b7633c __break_lease +EXPORT_SYMBOL vmlinux 0x65ceca56 lock_fb_info +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e75f30 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x65e86101 mca_device_read_pos +EXPORT_SYMBOL vmlinux 0x662f0d41 simple_link +EXPORT_SYMBOL vmlinux 0x66355efc vprintk +EXPORT_SYMBOL vmlinux 0x665b4787 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x665be58d mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x667adf15 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x66881212 bioset_free +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x6699b813 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x66a65c38 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x66c2881a save_mount_options +EXPORT_SYMBOL vmlinux 0x66cbdc2b sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66d2a00c softnet_data +EXPORT_SYMBOL vmlinux 0x66f39b71 journal_wipe +EXPORT_SYMBOL vmlinux 0x66ff65b1 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x670c3e24 journal_clear_err +EXPORT_SYMBOL vmlinux 0x671557b4 textsearch_register +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6732fa66 bio_split +EXPORT_SYMBOL vmlinux 0x673a62e9 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x675e8729 eth_type_trans +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x67a4fa9c cfb_fillrect +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67cabf97 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x67d12c43 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x67df5c1d lro_receive_skb +EXPORT_SYMBOL vmlinux 0x67e351b5 set_disk_ro +EXPORT_SYMBOL vmlinux 0x67e938f2 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0x67ecd031 dev_add_pack +EXPORT_SYMBOL vmlinux 0x67fa758e security_task_getsecid +EXPORT_SYMBOL vmlinux 0x684729b7 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x68493b55 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687c1c40 input_flush_device +EXPORT_SYMBOL vmlinux 0x68849bb2 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x68a89617 d_alloc_name +EXPORT_SYMBOL vmlinux 0x68a92ebf inode_init_once +EXPORT_SYMBOL vmlinux 0x68b10d7d rtnl_notify +EXPORT_SYMBOL vmlinux 0x68d29151 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x69521f48 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x6960fbe5 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x69614e20 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x696618a7 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x69706dde genphy_update_link +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697cbcf2 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x697d4dfa dev_addr_init +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69946183 netdev_alert +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69c59f08 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a122928 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a2fd08a mount_pseudo +EXPORT_SYMBOL vmlinux 0x6a4999a0 drop_super +EXPORT_SYMBOL vmlinux 0x6a6e2c7d key_unlink +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a880035 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x6aa849b2 km_policy_expired +EXPORT_SYMBOL vmlinux 0x6ab95175 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x6ac2abdd ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x6ac2f649 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b20edf3 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x6b246cf8 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x6b2cb216 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b4e6fde gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x6b581db9 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x6b6ab832 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b7c363b set_blocksize +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bb06147 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf83d37 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c03d03f xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x6c08bb00 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c24a499 sock_release +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c450f3f mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6cb9a4e5 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x6ccaf8fe padata_stop +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf01497 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6cfe4ef8 udp_proc_register +EXPORT_SYMBOL vmlinux 0x6d04a0de generic_write_sync +EXPORT_SYMBOL vmlinux 0x6d05cf63 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x6d22dfbc pnp_start_dev +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d3cbe14 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x6d42f66e __ps2_command +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d7fe98b tcp_proc_register +EXPORT_SYMBOL vmlinux 0x6d8b491d directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x6d8f42e2 replace_mount_options +EXPORT_SYMBOL vmlinux 0x6dbe653e sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x6de199da nf_log_register +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e159d5b free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x6e1b9e17 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x6e5e5fb2 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ee2462e xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x6f047395 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x6f181afe __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x6f1e2bf7 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x6f21fb85 iget_failed +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f5c4bbf mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x6f5edcea netif_receive_skb +EXPORT_SYMBOL vmlinux 0x6f68dca2 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f8da8b6 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x6fd6a937 of_get_next_child +EXPORT_SYMBOL vmlinux 0x6fe5efec unregister_cdrom +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6fec4efb cdev_alloc +EXPORT_SYMBOL vmlinux 0x6ff26818 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x7008c3ac neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x701cef7d dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x702a383f cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7054ca39 d_splice_alias +EXPORT_SYMBOL vmlinux 0x707c8da0 icmpv6_send +EXPORT_SYMBOL vmlinux 0x70b3a826 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70bd67f2 netif_napi_add +EXPORT_SYMBOL vmlinux 0x70bfe4aa d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x70cab237 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d70622 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70ddaf95 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x70f6cb4b tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x70fa4b8d follow_down +EXPORT_SYMBOL vmlinux 0x71083e8f pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x71144033 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x71205378 add_timer +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7130f67c cad_pid +EXPORT_SYMBOL vmlinux 0x71312e34 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x7147ae87 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x7153f744 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x715555e9 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x7166f548 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x7168a81f dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71730858 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x71844175 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x7189ef38 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x718e4b52 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x7196fc8f md_error +EXPORT_SYMBOL vmlinux 0x71a2a6af bdget_disk +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71ee0352 find_lock_page +EXPORT_SYMBOL vmlinux 0x71fa3788 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x7213b299 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x7243d0ce new_inode +EXPORT_SYMBOL vmlinux 0x7255fdfd dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x72605030 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x727a2735 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x72ab6083 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72cc0190 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x730e4294 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x732f781e generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x733a9326 fd_install +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x735f1a27 sk_dst_check +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x73644af6 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x737bf3ae scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x7381ffbb flex_array_clear +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x73939965 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x739890af journal_check_available_features +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73ad66e9 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e25e78 __kfree_skb +EXPORT_SYMBOL vmlinux 0x73e87c81 generic_writepages +EXPORT_SYMBOL vmlinux 0x73fd3736 dev_mc_del +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x742dbec0 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x7439085e xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x7440076c dm_unregister_target +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x745c77ed d_instantiate +EXPORT_SYMBOL vmlinux 0x747179e1 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x747419c4 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74b8f7fa user_revoke +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c4b24a vfs_statfs +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d2ab82 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x74f89a2d splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x75070f58 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x75078bad tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x7525de2e tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x752f268a tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x75307f84 filp_close +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75494a99 misc_register +EXPORT_SYMBOL vmlinux 0x75516ad2 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x755fa3cd file_permission +EXPORT_SYMBOL vmlinux 0x75703393 seq_release_private +EXPORT_SYMBOL vmlinux 0x75787ecb llc_sap_open +EXPORT_SYMBOL vmlinux 0x7589877f __block_write_begin +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75955a13 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75c18667 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x75fbe3a3 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x76499152 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x76838d40 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76b7df99 security_path_chown +EXPORT_SYMBOL vmlinux 0x76b7e884 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76efc470 udplite_prot +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x7718a455 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x771d4b55 set_irq_chip +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x774bca40 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x775cc055 __invalidate_device +EXPORT_SYMBOL vmlinux 0x7762cf91 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x776482d8 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77aa43e3 boot_cpu_data +EXPORT_SYMBOL vmlinux 0x77ada9e6 generic_permission +EXPORT_SYMBOL vmlinux 0x77ba48ff dev_open +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77f3298b blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7840b91d journal_errno +EXPORT_SYMBOL vmlinux 0x784f7c4f seq_bitmap +EXPORT_SYMBOL vmlinux 0x784fbed5 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x7850b0db __put_cred +EXPORT_SYMBOL vmlinux 0x785a67cd sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x78863553 d_move +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x789105f5 scsi_print_result +EXPORT_SYMBOL vmlinux 0x78d1e72b kill_block_super +EXPORT_SYMBOL vmlinux 0x78d7f1f6 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next +EXPORT_SYMBOL vmlinux 0x78dee7c8 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e0ccd3 backlight_force_update +EXPORT_SYMBOL vmlinux 0x78e9c61b qdisc_list_del +EXPORT_SYMBOL vmlinux 0x78f37d25 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x78f4a493 lro_flush_all +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7919b75e blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x79204f1b mntget +EXPORT_SYMBOL vmlinux 0x79255210 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x793b9c67 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x79615139 journal_destroy +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79842ec8 block_read_full_page +EXPORT_SYMBOL vmlinux 0x7988e3a3 simple_setattr +EXPORT_SYMBOL vmlinux 0x79948155 kdb_current_task +EXPORT_SYMBOL vmlinux 0x79a06b55 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79c93fbe unregister_con_driver +EXPORT_SYMBOL vmlinux 0x79e41425 input_unregister_device +EXPORT_SYMBOL vmlinux 0x79fe70dc put_page +EXPORT_SYMBOL vmlinux 0x7a1f3016 is_container_init +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a27fa12 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x7a2a6243 security_path_unlink +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a54ec07 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x7a7b8839 of_phy_connect +EXPORT_SYMBOL vmlinux 0x7a8334a2 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x7a91fd7c seq_escape +EXPORT_SYMBOL vmlinux 0x7aa39f7d llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x7ab2299f kmem_cache_free +EXPORT_SYMBOL vmlinux 0x7ada4f61 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b048d57 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b1b4d6c con_is_bound +EXPORT_SYMBOL vmlinux 0x7b2239b7 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x7b2ab497 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b5bc6cb redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b85176a agp_put_bridge +EXPORT_SYMBOL vmlinux 0x7b9756da agp_free_page_array +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7b9d368c kset_register +EXPORT_SYMBOL vmlinux 0x7bc99f66 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be150d9 soft_cursor +EXPORT_SYMBOL vmlinux 0x7bf9fc2b serio_reconnect +EXPORT_SYMBOL vmlinux 0x7c0b5d0c km_policy_notify +EXPORT_SYMBOL vmlinux 0x7c0edd7d acpi_check_region +EXPORT_SYMBOL vmlinux 0x7c115dc2 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c240893 vc_resize +EXPORT_SYMBOL vmlinux 0x7c34af02 phy_device_register +EXPORT_SYMBOL vmlinux 0x7c454559 of_device_alloc +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c483020 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9f922c pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x7cac576e sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cd8565d phy_disconnect +EXPORT_SYMBOL vmlinux 0x7ce94405 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x7ce9bf95 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x7ceb9f83 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x7cfc8d7b pid_task +EXPORT_SYMBOL vmlinux 0x7d02d3e7 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d272a42 kernel_accept +EXPORT_SYMBOL vmlinux 0x7d3eb015 md_write_end +EXPORT_SYMBOL vmlinux 0x7d4c1362 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7d919ea0 dentry_unhash +EXPORT_SYMBOL vmlinux 0x7daf2698 generic_write_checks +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dc3c697 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7e004ae8 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e584d0c dev_set_mtu +EXPORT_SYMBOL vmlinux 0x7e6a146a dev_emerg +EXPORT_SYMBOL vmlinux 0x7e98f5b9 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea72393 ip_fragment +EXPORT_SYMBOL vmlinux 0x7ea78bab tty_unregister_device +EXPORT_SYMBOL vmlinux 0x7ec99db5 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7f037d5f of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f1b1472 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f5f0f73 blk_init_tags +EXPORT_SYMBOL vmlinux 0x7f89f3fb pnp_find_card +EXPORT_SYMBOL vmlinux 0x7f8f0096 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x7faaa3ac input_inject_event +EXPORT_SYMBOL vmlinux 0x7fb6f8ac generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x7fb9d1f1 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x7fcda461 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x7ff62694 tty_register_driver +EXPORT_SYMBOL vmlinux 0x80098afb inet_stream_ops +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x8010cc2c d_set_d_op +EXPORT_SYMBOL vmlinux 0x80180f31 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x805224da simple_fill_super +EXPORT_SYMBOL vmlinux 0x8062d09e should_remove_suid +EXPORT_SYMBOL vmlinux 0x8077070f i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x808d8d97 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x80af65ec radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x811229ae xrlim_allow +EXPORT_SYMBOL vmlinux 0x81125535 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x8130e75d posix_test_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 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x817aedf7 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x818c1559 mount_ns +EXPORT_SYMBOL vmlinux 0x8196cfec d_drop +EXPORT_SYMBOL vmlinux 0x81993ff4 agp_create_memory +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81a1eb1f con_copy_unimap +EXPORT_SYMBOL vmlinux 0x81c26825 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x81c88247 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x81ccfb40 dump_trace +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d3d827 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dca4d1 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x81df2a39 genl_register_ops +EXPORT_SYMBOL vmlinux 0x81e21a53 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8262fd30 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x82640ec9 simple_lookup +EXPORT_SYMBOL vmlinux 0x827cb8fd sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x828279e4 km_report +EXPORT_SYMBOL vmlinux 0x82897b10 mca_register_driver +EXPORT_SYMBOL vmlinux 0x8290d71d scsi_ioctl +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82e27c7a generic_readlink +EXPORT_SYMBOL vmlinux 0x82f33aaf tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x831161ac blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x831d0b3c otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x831f4040 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x8332eb7c __kmap_atomic +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x836b8068 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x836cf9fd jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x836fead3 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x838b9c03 ps2_init +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x84028c41 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x84046cfb del_gendisk +EXPORT_SYMBOL vmlinux 0x8417ee16 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x8421e4c6 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x842227f9 generic_setxattr +EXPORT_SYMBOL vmlinux 0x84310a32 generic_write_end +EXPORT_SYMBOL vmlinux 0x843a8e26 journal_start_commit +EXPORT_SYMBOL vmlinux 0x844cc612 mii_check_link +EXPORT_SYMBOL vmlinux 0x844da606 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x849295f3 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84d02213 bio_free +EXPORT_SYMBOL vmlinux 0x84d778cf lock_may_read +EXPORT_SYMBOL vmlinux 0x84db2a88 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x84f27479 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x851d7a44 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x853895a9 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x85458d68 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x854a7fc2 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x855e95ef elv_rb_find +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856eec79 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x85a249f1 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x85ba9c08 register_filesystem +EXPORT_SYMBOL vmlinux 0x85bb1ed1 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x85bb717b input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x85cb659b fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x85d640a4 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85f44587 seq_release +EXPORT_SYMBOL vmlinux 0x86004989 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x86093628 mpage_readpage +EXPORT_SYMBOL vmlinux 0x861f8df7 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x864d73ca __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x865c6fd6 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x867dafea set_create_files_as +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86965122 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x869b4579 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86bbb566 take_over_console +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86cafa88 block_write_full_page +EXPORT_SYMBOL vmlinux 0x86d96768 request_key_async +EXPORT_SYMBOL vmlinux 0x86e12e2b blk_execute_rq +EXPORT_SYMBOL vmlinux 0x86ea18ca dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x86ed175f input_reset_device +EXPORT_SYMBOL vmlinux 0x86efa763 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x872e1ca1 free_buffer_head +EXPORT_SYMBOL vmlinux 0x874e5e86 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87744100 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8794eace tcp_connect +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87b15b19 blk_insert_request +EXPORT_SYMBOL vmlinux 0x87d67abb radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x87e22641 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x8802ef2d netpoll_setup +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881e7049 dm_put_device +EXPORT_SYMBOL vmlinux 0x8840e69c __find_get_block +EXPORT_SYMBOL vmlinux 0x885116fd elv_rb_del +EXPORT_SYMBOL vmlinux 0x8853ff59 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x88924274 tty_throttle +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88e88136 ioremap_prot +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89353ff9 pskb_copy +EXPORT_SYMBOL vmlinux 0x893e002c agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x8946aeac __blk_run_queue +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89ae6e69 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89da4432 of_iomap +EXPORT_SYMBOL vmlinux 0x89e24e6c nla_reserve +EXPORT_SYMBOL vmlinux 0x8a0a5ee8 security_path_symlink +EXPORT_SYMBOL vmlinux 0x8a207811 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x8a30f718 kthread_create +EXPORT_SYMBOL vmlinux 0x8a43f77d inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x8a5c71c6 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x8a6e1ecf ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a93e66e textsearch_prepare +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aaf1801 mca_device_set_claim +EXPORT_SYMBOL vmlinux 0x8abf6a10 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x8ac0488c tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x8ace3bc9 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x8ace755d radix_tree_delete +EXPORT_SYMBOL vmlinux 0x8ad69c7a tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x8ad800db scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x8aebb1b2 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x8af83dea __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8aff2438 mb_cache_create +EXPORT_SYMBOL vmlinux 0x8b08c10c pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b3ced29 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x8b3fab4e __dquot_free_space +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b6f836f ab3100_event_register +EXPORT_SYMBOL vmlinux 0x8b849171 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x8b884d68 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock +EXPORT_SYMBOL vmlinux 0x8bbb98b7 pci_set_master +EXPORT_SYMBOL vmlinux 0x8bc30b10 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x8bd13e22 simple_rmdir +EXPORT_SYMBOL vmlinux 0x8bd56616 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x8bed5536 d_add_ci +EXPORT_SYMBOL vmlinux 0x8bf880c1 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x8bf8ff30 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x8c043fbb ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x8c078743 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x8c0b2ce3 vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c33eb52 get_phy_id +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8d11290e splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d60453d dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x8d613b51 key_task_permission +EXPORT_SYMBOL vmlinux 0x8d635bbd jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x8d6a5ce3 vfs_link +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d775834 unlock_buffer +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all +EXPORT_SYMBOL vmlinux 0x8dabad50 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x8daeca6b scm_detach_fds +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dbbb4c7 of_device_unregister +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dc8efd0 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x8dce81a0 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x8de87af7 ihold +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b55e2 __elv_add_request +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e144a5d processors +EXPORT_SYMBOL vmlinux 0x8e1f202a blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x8e2e8241 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x8e60af98 flush_signals +EXPORT_SYMBOL vmlinux 0x8e64e3fa inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x8e78aa5c get_write_access +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8ea9bc38 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb3f1a7 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x8edbafc1 blk_run_queue +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ee72cf1 sock_i_ino +EXPORT_SYMBOL vmlinux 0x8f16754d neigh_event_ns +EXPORT_SYMBOL vmlinux 0x8f182da0 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f457036 iget5_locked +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f4c28c1 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f8cbbb6 sock_create_lite +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fb0ca50 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x8fd43a9c otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x8fdf6df8 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900673ab uart_register_driver +EXPORT_SYMBOL vmlinux 0x9007b11c ppp_unit_number +EXPORT_SYMBOL vmlinux 0x901eb02e sock_no_accept +EXPORT_SYMBOL vmlinux 0x90269879 mutex_lock +EXPORT_SYMBOL vmlinux 0x9027cb2b blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x9035a3e2 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x9035a539 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x903a871c ps2_begin_command +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x90481314 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x9057f96a kmem_cache_name +EXPORT_SYMBOL vmlinux 0x906097cd devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90b8ebb0 mii_link_ok +EXPORT_SYMBOL vmlinux 0x90c7a55a generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x90c8ce6d _dev_info +EXPORT_SYMBOL vmlinux 0x90c9317e kill_fasync +EXPORT_SYMBOL vmlinux 0x90d2a798 of_unregister_platform_driver +EXPORT_SYMBOL vmlinux 0x90e72a92 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x90f9a758 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x90fbd646 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x910ef187 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0x91180b89 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x912d5c01 serio_interrupt +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x915d0760 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9165537d napi_gro_flush +EXPORT_SYMBOL vmlinux 0x917280a8 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x9182e70a bh_submit_read +EXPORT_SYMBOL vmlinux 0x91a3ab7b input_register_device +EXPORT_SYMBOL vmlinux 0x91b3a023 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x91c71799 mnt_unpin +EXPORT_SYMBOL vmlinux 0x91c90130 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x91e09b00 journal_set_features +EXPORT_SYMBOL vmlinux 0x91f60297 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92427023 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x92673cbf splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x926af3b9 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x926d6a44 register_framebuffer +EXPORT_SYMBOL vmlinux 0x927ec426 dst_release +EXPORT_SYMBOL vmlinux 0x9286ad8e simple_write_begin +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x929803bf __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x92f0b2bd jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x92f78c0c padata_start +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9323b1d8 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x932f02f8 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9368ffea generic_file_open +EXPORT_SYMBOL vmlinux 0x937f0385 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x938b07fb bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93ccb490 fb_blank +EXPORT_SYMBOL vmlinux 0x93e1c53f __brelse +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941290a0 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x943fa275 arp_find +EXPORT_SYMBOL vmlinux 0x944619b9 release_pages +EXPORT_SYMBOL vmlinux 0x945e450e blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x947f0af4 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x9485d529 tcp_close +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a87e80 aio_put_req +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94bb7b01 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94dd47b7 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x950bda7b blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x951f0259 of_match_node +EXPORT_SYMBOL vmlinux 0x95288589 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x953080f7 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x9543024d of_dev_get +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9549acc5 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95637b76 I_BDEV +EXPORT_SYMBOL vmlinux 0x956fc15c udp_disconnect +EXPORT_SYMBOL vmlinux 0x958b2124 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x95a1c808 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x95a5b455 dquot_transfer +EXPORT_SYMBOL vmlinux 0x95bfc9f3 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x95d6a832 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x9604438d kunmap_high +EXPORT_SYMBOL vmlinux 0x9605ff4b inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x964a070a mapping_tagged +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x965e2cf9 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x9675b6a6 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x967d1794 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96a012a4 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x96a57b75 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x96b518df alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96e112c3 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x96e19dcf secpath_dup +EXPORT_SYMBOL vmlinux 0x96e8c59f dev_trans_start +EXPORT_SYMBOL vmlinux 0x970728b7 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x972065bf xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x974fce83 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976eea2e blk_peek_request +EXPORT_SYMBOL vmlinux 0x977b2031 dst_destroy +EXPORT_SYMBOL vmlinux 0x978ec6bb neigh_seq_next +EXPORT_SYMBOL vmlinux 0x978f75d1 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x97aece8a padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97e0f6a5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x97e63eb5 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x97f21401 dm_table_event +EXPORT_SYMBOL vmlinux 0x97f67b83 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x981274c9 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x9818aec3 tty_port_open +EXPORT_SYMBOL vmlinux 0x981fdf62 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x98354e88 of_node_get +EXPORT_SYMBOL vmlinux 0x9862cd00 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98a547fc tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x98cfb554 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x98e34fa4 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x9900aa1b eth_mac_addr +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x99079d4a gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x991a9bf5 devm_ioremap +EXPORT_SYMBOL vmlinux 0x9920273b bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x996895f2 tty_set_operations +EXPORT_SYMBOL vmlinux 0x996c415d rfkill_alloc +EXPORT_SYMBOL vmlinux 0x99737175 update_region +EXPORT_SYMBOL vmlinux 0x998ab59f __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9995e1fd agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a32c50 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cbe2cc kill_pgrp +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d2da1c inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x99e99a13 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x99f2880e neigh_update +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a48ab89 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x9a66bf7d bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x9a6861d6 journal_get_write_access +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9aa30b61 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x9ab96254 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x9ada3c1b __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x9ae7ded3 mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x9b11aa35 search_binary_handler +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b445101 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x9b4efb8a pci_map_rom +EXPORT_SYMBOL vmlinux 0x9b60b91d read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new +EXPORT_SYMBOL vmlinux 0x9b68a4ee dev_uc_flush +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b6ef4a4 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x9b82068d proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x9ba654a4 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bac070a mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x9bafc74b mmc_request_done +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9be4e76a intel_gtt_get +EXPORT_SYMBOL vmlinux 0x9bece637 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x9bf7d8c6 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c2200a7 consume_skb +EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0x9c281d3f netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c68283b ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c838539 register_key_type +EXPORT_SYMBOL vmlinux 0x9c8d229c submit_bh +EXPORT_SYMBOL vmlinux 0x9ca031ff __dst_free +EXPORT_SYMBOL vmlinux 0x9ca51c25 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x9cae85a5 get_user_pages +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc23f13 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d143c71 phy_detach +EXPORT_SYMBOL vmlinux 0x9d32178e cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d36ea68 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d4a1bad ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x9d5573ce bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x9d584450 dcb_getapp +EXPORT_SYMBOL vmlinux 0x9d6c9d16 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x9d9b6baf tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x9da54c92 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x9db3c9a2 phy_device_free +EXPORT_SYMBOL vmlinux 0x9dc08557 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x9dc37c70 __rta_fill +EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x9ddcd21c of_find_matching_node +EXPORT_SYMBOL vmlinux 0x9df0a978 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x9dfb2807 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e1bdc28 init_timer_key +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4b4039 km_query +EXPORT_SYMBOL vmlinux 0x9e63d576 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x9e64b0ba bio_init +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eb34ea7 mem_map +EXPORT_SYMBOL vmlinux 0x9ec0a132 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x9ec1efbc pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef3e6aa dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x9f02776b init_net +EXPORT_SYMBOL vmlinux 0x9f085579 igrab +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f287604 scsi_put_command +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2e09f6 filemap_fault +EXPORT_SYMBOL vmlinux 0x9f3344a7 rfkill_register +EXPORT_SYMBOL vmlinux 0x9f3ba150 lookup_hash +EXPORT_SYMBOL vmlinux 0x9f445a7a netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f5e584b elevator_change +EXPORT_SYMBOL vmlinux 0x9f7d6da5 rfkill_destroy +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 0x9fe8c601 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x9fee5cf2 do_splice_from +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0x9ff9fa3f shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xa00fceb4 d_rehash +EXPORT_SYMBOL vmlinux 0xa0194407 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa058dbbe pci_clear_master +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0946d1d nlmsg_notify +EXPORT_SYMBOL vmlinux 0xa09e8c92 __inet6_hash +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 0xa0d11d0b setup_arg_pages +EXPORT_SYMBOL vmlinux 0xa0d42ff7 seq_putc +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f74ce7 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa105f354 mmc_register_driver +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa111ea87 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xa11856c8 scsi_device_put +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1306a3b ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xa1491736 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa162c646 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xa174f6c0 mddev_congested +EXPORT_SYMBOL vmlinux 0xa184d49c i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xa18fe461 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b50a3e udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1c0d55c jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xa1c4b6d2 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1e117bb skb_seq_read +EXPORT_SYMBOL vmlinux 0xa1fdd64b of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa21894bc simple_set_mnt +EXPORT_SYMBOL vmlinux 0xa22147df mca_device_claimed +EXPORT_SYMBOL vmlinux 0xa22a07bd dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xa22c0dbc input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xa2360cfe inet_sendpage +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2c362ce rt6_lookup +EXPORT_SYMBOL vmlinux 0xa2d02588 padata_do_serial +EXPORT_SYMBOL vmlinux 0xa2d776de serio_rescan +EXPORT_SYMBOL vmlinux 0xa2ef2e57 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa307f284 nla_append +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa3273d0b pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xa32a318f md_unregister_thread +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33ae1c0 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3702f9e nf_afinfo +EXPORT_SYMBOL vmlinux 0xa3ad4893 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xa3ae93ba jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xa3d8a22f __sock_create +EXPORT_SYMBOL vmlinux 0xa3e6b9ac mmc_remove_host +EXPORT_SYMBOL vmlinux 0xa3fd8c14 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xa40055a9 dev_err +EXPORT_SYMBOL vmlinux 0xa4061992 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa455a46a kobject_add +EXPORT_SYMBOL vmlinux 0xa46bd17d tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xa48e40a5 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xa4aa1a7e journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4f1f0c2 key_put +EXPORT_SYMBOL vmlinux 0xa4f65b89 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa524a118 deny_write_access +EXPORT_SYMBOL vmlinux 0xa53c4e3d neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5bf123b dm_snap_cow +EXPORT_SYMBOL vmlinux 0xa5ccbfba console_start +EXPORT_SYMBOL vmlinux 0xa5ce6e16 write_inode_now +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa63d3bf1 cdev_add +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa64b8264 generic_setlease +EXPORT_SYMBOL vmlinux 0xa64e01b1 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xa652c4ef __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xa65dd9bb tty_port_init +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa690bc1b copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xa691f326 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xa692fa24 generic_fillattr +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa69daee8 touch_atime +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6a18d38 kobject_set_name +EXPORT_SYMBOL vmlinux 0xa6a75489 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xa6ca7702 mca_device_set_name +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6dea555 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xa6f57f3c devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa6f82e46 skb_clone +EXPORT_SYMBOL vmlinux 0xa6fce2e7 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa7306922 mmc_host_enable +EXPORT_SYMBOL vmlinux 0xa73b2b02 tty_write_room +EXPORT_SYMBOL vmlinux 0xa75a5a3f xfrm_lookup +EXPORT_SYMBOL vmlinux 0xa7b12a97 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xa7bae85d dev_load +EXPORT_SYMBOL vmlinux 0xa7e94295 iput +EXPORT_SYMBOL vmlinux 0xa7f7cd8c blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xa80115bc cdev_init +EXPORT_SYMBOL vmlinux 0xa80c80a4 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8384773 eth_header_parse +EXPORT_SYMBOL vmlinux 0xa83bb81c __napi_complete +EXPORT_SYMBOL vmlinux 0xa878b2b8 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xa8a095e2 km_new_mapping +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8f506b5 __lock_page +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa91db382 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xa979b441 input_grab_device +EXPORT_SYMBOL vmlinux 0xa979c030 tc_classify +EXPORT_SYMBOL vmlinux 0xa98241b7 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c347e2 ilookup5 +EXPORT_SYMBOL vmlinux 0xa9d225cd tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xa9d46110 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xaa1f2d69 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xaa211b47 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xaa4dcc80 security_file_permission +EXPORT_SYMBOL vmlinux 0xaa62753f inode_permission +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa73cfff abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaa968707 ip_options_compile +EXPORT_SYMBOL vmlinux 0xaaaaacd1 ioremap_wc +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaaac5405 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xaab71e7d generic_read_dir +EXPORT_SYMBOL vmlinux 0xaabec309 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xaac8d406 sock_map_fd +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 0xab27a345 inet6_release +EXPORT_SYMBOL vmlinux 0xab2c0fce inet_stream_connect +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab81d9ef elevator_exit +EXPORT_SYMBOL vmlinux 0xab9bd2d7 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xaba2be45 bdevname +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabf904f6 blk_rq_init +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac3a6fec bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac5ae01a journal_init_inode +EXPORT_SYMBOL vmlinux 0xac64d65d netlink_dump_start +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0xac8df3f3 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xac917aaa scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xac92f647 phy_find_first +EXPORT_SYMBOL vmlinux 0xacb32247 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xacc15636 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xacc71f7d journal_init_dev +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace158cc dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xaceac032 pci_restore_state +EXPORT_SYMBOL vmlinux 0xaced105d dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad175d40 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xad3188b6 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad7a5d19 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xada9922f input_get_keycode +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xaddfbf62 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xadef41e6 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae026824 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xae1a3ec3 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xae1ef0ee max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xae439078 sk_free +EXPORT_SYMBOL vmlinux 0xae51addc sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xae5bcf6d intel_gmch_probe +EXPORT_SYMBOL vmlinux 0xae5efff9 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xae600f84 ilookup +EXPORT_SYMBOL vmlinux 0xae60eecb xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xae701da3 read_cache_pages +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae8ed108 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xaea610dd dev_gro_receive +EXPORT_SYMBOL vmlinux 0xaea905db skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaed0031f request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xaed6149f pci_get_subsys +EXPORT_SYMBOL vmlinux 0xaeffa7c1 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf79594c dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xaf8c8369 tty_shutdown +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafa1bb66 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xafa5655c arp_invalidate +EXPORT_SYMBOL vmlinux 0xafa607fb udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xafc28177 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xafc8250c genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xafda4121 ppp_input_error +EXPORT_SYMBOL vmlinux 0xaff4c82d napi_get_frags +EXPORT_SYMBOL vmlinux 0xaffd1ea4 simple_statfs +EXPORT_SYMBOL vmlinux 0xb003f774 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb00d681b __serio_register_driver +EXPORT_SYMBOL vmlinux 0xb02a5b13 netif_device_detach +EXPORT_SYMBOL vmlinux 0xb04e3bb9 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xb0604f02 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb08d55cc tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xb090117b vmtruncate +EXPORT_SYMBOL vmlinux 0xb093dbf5 current_fs_time +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f78d40 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xb0fdcadb gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb1175026 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xb11da91a do_SAK +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1310e6e vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xb14eb03d skb_queue_tail +EXPORT_SYMBOL vmlinux 0xb15326df i2c_master_recv +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19e3418 bio_endio +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d18e0e __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xb1d91035 skb_split +EXPORT_SYMBOL vmlinux 0xb1f1a07f tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb1fa5abc llc_sap_close +EXPORT_SYMBOL vmlinux 0xb218be74 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb2224908 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xb227df22 vm_map_ram +EXPORT_SYMBOL vmlinux 0xb22c5787 lock_super +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2339e9c nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26cb0b8 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xb291ce21 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xb2b0a5ef elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xb2befec1 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xb2d1e2ef cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2f0fbc9 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xb2f4544e tty_vhangup +EXPORT_SYMBOL vmlinux 0xb2fbb8e4 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb31a280c vfs_rename +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb33d5c62 tcp_child_process +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb3572115 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xb35bdcd6 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xb38de24b tcf_exts_change +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3b905c5 pci_iounmap +EXPORT_SYMBOL vmlinux 0xb3dea479 napi_complete +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb40c8448 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb427a47a d_validate +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb435d865 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb48c7b45 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xb4d16ad1 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xb4faee27 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb50654a8 dm_register_target +EXPORT_SYMBOL vmlinux 0xb5103425 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb58eb9fd genphy_resume +EXPORT_SYMBOL vmlinux 0xb5903505 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a69951 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xb5b42159 thaw_bdev +EXPORT_SYMBOL vmlinux 0xb5b55707 alloc_disk +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d37a61 kstat +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5e0e308 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xb6000532 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xb60d29a7 pci_target_state +EXPORT_SYMBOL vmlinux 0xb60db48d generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xb60dda90 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xb6118085 llc_add_pack +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb66743bd mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6a5a19b seq_printf +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c68c65 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xb6ddf410 inode_lock +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6fbe7fe poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xb730d619 mpage_writepage +EXPORT_SYMBOL vmlinux 0xb75286c8 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb78198d4 blk_start_queue +EXPORT_SYMBOL vmlinux 0xb790f2f5 tcp_poll +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7d70a43 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xb7e516a5 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xb82d9aa1 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xb8508a94 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86dc5c9 sk_stream_error +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb88c925a uart_add_one_port +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 0xb8ba8f9c skb_copy +EXPORT_SYMBOL vmlinux 0xb8be6052 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb91ab9ff tcp_shutdown +EXPORT_SYMBOL vmlinux 0xb9307bc6 proc_mkdir +EXPORT_SYMBOL vmlinux 0xb94e4741 pnp_device_detach +EXPORT_SYMBOL vmlinux 0xb9591c2c jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xb95aaa35 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xb969c6fb pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xb987eb0a qdisc_reset +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb997b1ef dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xb9a9928c netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xb9be30aa remove_proc_entry +EXPORT_SYMBOL vmlinux 0xb9c656ea current_task +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9ef9211 pci_dev_get +EXPORT_SYMBOL vmlinux 0xb9f56b4e dst_alloc +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba056a39 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xba1d69f0 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xba236513 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba430a7a backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xba439d84 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba6c35e2 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xba94a1f7 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xba9ac41b kernel_listen +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbab85dac acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xbaba58f2 blk_end_request +EXPORT_SYMBOL vmlinux 0xbacc53fa vfs_mkdir +EXPORT_SYMBOL vmlinux 0xbace4f34 __blk_end_request +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbafd3068 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xbb139812 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1f6513 commit_creds +EXPORT_SYMBOL vmlinux 0xbb3a311e netdev_err +EXPORT_SYMBOL vmlinux 0xbb44b34e ___pskb_trim +EXPORT_SYMBOL vmlinux 0xbb50a715 dma_set_mask +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb8fa74f __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xbb989f6a dquot_alloc +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbba4e55a vfs_rmdir +EXPORT_SYMBOL vmlinux 0xbbb7c196 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbbb4e0b padata_add_cpu +EXPORT_SYMBOL vmlinux 0xbbbf6dab unregister_8022_client +EXPORT_SYMBOL vmlinux 0xbbc574a1 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xbc09a263 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc39c095 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xbc3fe8e2 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xbc5cf9c6 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xbc63d510 block_sync_page +EXPORT_SYMBOL vmlinux 0xbc7d6c24 key_link +EXPORT_SYMBOL vmlinux 0xbc887559 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xbcb153af poll_freewait +EXPORT_SYMBOL vmlinux 0xbcc238b4 create_proc_entry +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbccb24a1 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xbcd2dd22 page_put_link +EXPORT_SYMBOL vmlinux 0xbd123a27 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbd3e0048 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xbd5d6afa ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xbd6810c1 generic_removexattr +EXPORT_SYMBOL vmlinux 0xbd68790b dev_warn +EXPORT_SYMBOL vmlinux 0xbd78fb3c udp_prot +EXPORT_SYMBOL vmlinux 0xbd7eef40 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xbd84fd5d sock_register +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc95467 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xbdce92e9 tty_devnum +EXPORT_SYMBOL vmlinux 0xbdd178d7 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0190e9 kill_anon_super +EXPORT_SYMBOL vmlinux 0xbe0dc46f jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe105cea ipv4_specific +EXPORT_SYMBOL vmlinux 0xbe14cbdb simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xbe23b9ed radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xbe25ea8f sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe47d487 tcf_register_action +EXPORT_SYMBOL vmlinux 0xbe4e23c7 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe8d1fed inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xbe93c1e4 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xbe9b3d0f abort_creds +EXPORT_SYMBOL vmlinux 0xbea3fc3e dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xbeacc03f dm_table_put +EXPORT_SYMBOL vmlinux 0xbeb66275 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xbedbaa8f xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbeee71a9 input_allocate_device +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef7e350 mount_bdev +EXPORT_SYMBOL vmlinux 0xbef83ae2 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xbefe3d0e rtnl_create_link +EXPORT_SYMBOL vmlinux 0xbf489ef6 skb_store_bits +EXPORT_SYMBOL vmlinux 0xbf5c0cec bdi_destroy +EXPORT_SYMBOL vmlinux 0xbf64e8b8 agp_bridge +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf8fb7bf lookup_one_len +EXPORT_SYMBOL vmlinux 0xbf948bbc fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa46a74 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xbfb230a0 of_unregister_driver +EXPORT_SYMBOL vmlinux 0xbfb74e0a dm_table_get_size +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfdfcb82 sock_create_kern +EXPORT_SYMBOL vmlinux 0xbfdff814 of_get_address +EXPORT_SYMBOL vmlinux 0xbfe7efa7 mmc_free_host +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbffd81c0 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc01581ce sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc083759b iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a6c790 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart +EXPORT_SYMBOL vmlinux 0xc113f80d tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc14b9b3f get_gendisk +EXPORT_SYMBOL vmlinux 0xc157825c cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xc17361d9 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xc1a0ebe3 free_netdev +EXPORT_SYMBOL vmlinux 0xc1b0de8b blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xc1c108fe of_device_is_available +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1dfdd51 __napi_schedule +EXPORT_SYMBOL vmlinux 0xc1f4356e invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xc2047680 __bread +EXPORT_SYMBOL vmlinux 0xc21be2d6 phy_stop +EXPORT_SYMBOL vmlinux 0xc22ffe97 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26ba425 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xc27b83c7 inet_select_addr +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc28b86ab nobh_writepage +EXPORT_SYMBOL vmlinux 0xc2cec3e6 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc30e7cf6 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xc326edd7 seq_write +EXPORT_SYMBOL vmlinux 0xc34ede35 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xc3675b67 neigh_lookup +EXPORT_SYMBOL vmlinux 0xc369e86a serio_open +EXPORT_SYMBOL vmlinux 0xc36a289d jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc3a84252 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3bc6785 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xc3c016f8 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d8c58c mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xc3de6c66 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc4320c43 agp_backend_release +EXPORT_SYMBOL vmlinux 0xc439effa intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xc47cf9f9 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4bec614 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xc4cd33f3 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xc4df65ed netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xc4e9a1f1 generic_make_request +EXPORT_SYMBOL vmlinux 0xc4efbd2c unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xc5013649 key_alloc +EXPORT_SYMBOL vmlinux 0xc512b4fb ppp_input +EXPORT_SYMBOL vmlinux 0xc516238f inode_change_ok +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc545a00c vfs_mknod +EXPORT_SYMBOL vmlinux 0xc5498990 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xc55243ff pskb_expand_head +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55665c1 vfs_fsync +EXPORT_SYMBOL vmlinux 0xc564f63d pci_find_capability +EXPORT_SYMBOL vmlinux 0xc567bf05 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xc568b8d0 mdiobus_read +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc572e360 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xc5c9cb0f inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xc5d9abab pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e5b0d5 backlight_device_register +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc6177942 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xc61c38ac find_or_create_page +EXPORT_SYMBOL vmlinux 0xc6232e1f km_state_notify +EXPORT_SYMBOL vmlinux 0xc6235968 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xc62d0bd4 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xc62e0c63 bdput +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6619aa0 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xc66aa9b6 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6be937f acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xc6c82c72 unload_nls +EXPORT_SYMBOL vmlinux 0xc6dfb354 nf_reinject +EXPORT_SYMBOL vmlinux 0xc70ef111 wireless_send_event +EXPORT_SYMBOL vmlinux 0xc7127c62 dump_write +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73d98fa qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc77dbf97 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xc78cd982 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xc791cf74 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a5703f put_tty_driver +EXPORT_SYMBOL vmlinux 0xc7c7a651 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xc7c7c2ac security_d_instantiate +EXPORT_SYMBOL vmlinux 0xc7d93f75 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xc7e96759 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7ecf37b padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xc7ef0d3c scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc81bc7a2 pci_release_region +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8753d95 lock_rename +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b79bf2 md_check_recovery +EXPORT_SYMBOL vmlinux 0xc8bcb75c kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xc8e3d14e alloc_fcdev +EXPORT_SYMBOL vmlinux 0xc92f0b6d account_page_writeback +EXPORT_SYMBOL vmlinux 0xc94f38c0 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc9530305 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xc97c3ec1 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xc98d40c9 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0xc98dda19 dev_mc_add +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b8c308 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xc9c1394d inet_put_port +EXPORT_SYMBOL vmlinux 0xc9c65a48 __alloc_skb +EXPORT_SYMBOL vmlinux 0xc9d779d4 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xc9e5fca7 generic_getxattr +EXPORT_SYMBOL vmlinux 0xc9ec50fb register_exec_domain +EXPORT_SYMBOL vmlinux 0xc9eec07f qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xca132623 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0xca240472 key_type_keyring +EXPORT_SYMBOL vmlinux 0xca29d341 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xca2e7dad dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xca455805 __d_drop +EXPORT_SYMBOL vmlinux 0xca45b6eb unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca82d6a3 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xca898022 neigh_create +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcabcfa69 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xcac2dd19 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcad8dbd4 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb00dcb4 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xcb2b4a6f dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xcb4bb21a devm_iounmap +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb85a1b0 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbcec6d6 padata_free +EXPORT_SYMBOL vmlinux 0xcbfc0a9b dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc64c3cc kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xcc6eaf2e dev_printk +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xccc2d612 __ht_create_irq +EXPORT_SYMBOL vmlinux 0xcce66668 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xccfae60c lease_get_mtime +EXPORT_SYMBOL vmlinux 0xcd0e29cb napi_frags_skb +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2e78af migrate_page +EXPORT_SYMBOL vmlinux 0xcd533e00 complete_request_key +EXPORT_SYMBOL vmlinux 0xcdaa18d1 module_put +EXPORT_SYMBOL vmlinux 0xcdd9e76c simple_transaction_get +EXPORT_SYMBOL vmlinux 0xcdfe7b10 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xce095088 mod_timer +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5212d6 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5ccf95 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xce7ce037 of_translate_address +EXPORT_SYMBOL vmlinux 0xce94978a jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xcea68944 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xcec1f39d sock_sendmsg +EXPORT_SYMBOL vmlinux 0xcec9351c i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xcecef285 flex_array_free +EXPORT_SYMBOL vmlinux 0xceda226c da903x_query_status +EXPORT_SYMBOL vmlinux 0xcedc88a4 pci_iomap +EXPORT_SYMBOL vmlinux 0xcee6e5c1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xceec609b file_sb_list_del +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf0932cb grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf250771 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xcf3f84df of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcfa09eb6 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xcfa64b11 load_nls_default +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfb92e03 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcffc467a md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0206aaa scsi_add_device +EXPORT_SYMBOL vmlinux 0xd061d2d7 scsi_unregister +EXPORT_SYMBOL vmlinux 0xd0682b58 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xd06ceada truncate_setsize +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d09b67 get_agp_version +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +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 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd12230d4 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd143a75e netif_rx +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1485e08 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xd15211ff skb_unlink +EXPORT_SYMBOL vmlinux 0xd159c0ec set_anon_super +EXPORT_SYMBOL vmlinux 0xd15e54af elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xd162d777 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xd171a617 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1a061fa vfs_getattr +EXPORT_SYMBOL vmlinux 0xd1a2c5fd dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xd1b4811d md_write_start +EXPORT_SYMBOL vmlinux 0xd1c818de single_release +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd202b2b2 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd21b6bee dev_driver_string +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd248e311 scsi_eh_prep_cmnd +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 0xd25ec90e generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xd2677f59 inet6_getname +EXPORT_SYMBOL vmlinux 0xd27e285c jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29a7ca3 bdi_register +EXPORT_SYMBOL vmlinux 0xd2a17c8e blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xd2a27aa8 mount_single +EXPORT_SYMBOL vmlinux 0xd2a6d9f9 register_console +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2ab9a1f __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xd2b4b765 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xd2b99696 mca_device_write_pos +EXPORT_SYMBOL vmlinux 0xd2c018a0 pnp_is_active +EXPORT_SYMBOL vmlinux 0xd2d51180 of_gpio_count +EXPORT_SYMBOL vmlinux 0xd2daee31 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xd2db7226 udp_ioctl +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd30bf752 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3252e83 sock_init_data +EXPORT_SYMBOL vmlinux 0xd32b7b6e blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd3481636 blk_complete_request +EXPORT_SYMBOL vmlinux 0xd37a0e06 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xd37b103b follow_up +EXPORT_SYMBOL vmlinux 0xd37ca07b read_cache_page_async +EXPORT_SYMBOL vmlinux 0xd37fe13a pci_get_slot +EXPORT_SYMBOL vmlinux 0xd382915b tty_unthrottle +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3925009 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3cfcec5 dev_get_flags +EXPORT_SYMBOL vmlinux 0xd3f74379 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd4366c59 sock_wake_async +EXPORT_SYMBOL vmlinux 0xd4423099 of_node_put +EXPORT_SYMBOL vmlinux 0xd444e705 journal_ack_err +EXPORT_SYMBOL vmlinux 0xd44f3fa4 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xd44f956c bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xd4850b2d agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd49fc96d sock_wmalloc +EXPORT_SYMBOL vmlinux 0xd4a4118a __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xd4e8d395 registered_fb +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd55af24f xfrm_input +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd5aa2c2a dentry_open +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5f5162d dquot_acquire +EXPORT_SYMBOL vmlinux 0xd600ddbc bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd69effc4 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xd6ab2dfe dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6d642ed abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd7199ff0 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xd71f70cb locks_free_lock +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd770a6e3 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7d96b4a netdev_emerg +EXPORT_SYMBOL vmlinux 0xd7db3d15 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ebb25f mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xd804f560 dev_notice +EXPORT_SYMBOL vmlinux 0xd820663f loop_register_transfer +EXPORT_SYMBOL vmlinux 0xd8343da0 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xd8553c37 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xd86c4040 page_readlink +EXPORT_SYMBOL vmlinux 0xd87940d8 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xd892ed3c dev_uc_add +EXPORT_SYMBOL vmlinux 0xd8996205 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd89f7fa1 lease_modify +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8a736f9 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd90b4b26 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd942a22f sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xd94ca602 console_stop +EXPORT_SYMBOL vmlinux 0xd96e328c neigh_destroy +EXPORT_SYMBOL vmlinux 0xd973e6a3 proc_symlink +EXPORT_SYMBOL vmlinux 0xd9747d66 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9bb023b sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9c5b7df tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xd9dcbf54 intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0xd9e78149 mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0xd9ecb47d mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda10279a generic_file_mmap +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda1e8273 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xda452a5f skb_push +EXPORT_SYMBOL vmlinux 0xda54f40a max8998_write_reg +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda65be2c follow_down_one +EXPORT_SYMBOL vmlinux 0xda736680 dquot_release +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda81673e acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xda882f8e ps2_end_command +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xda91a26b dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdab7c35d pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb18dd28 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xdb1e94e2 ps2_drain +EXPORT_SYMBOL vmlinux 0xdb294a0e dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xdb45593c hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xdb4fcadc unregister_netdev +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdba37583 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xdbb7da7b dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xdbb9f72a xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xdbbdf145 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbde8817 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xdbe19aec pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xdbe23b16 journal_force_commit +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdbef58f2 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0bcd9b scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xdc0ef862 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xdc106f6b blk_queue_max_segment_size +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 0xdc4b6629 dma_pool_free +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc5cf04d led_brightness_set +EXPORT_SYMBOL vmlinux 0xdc5ea3e7 netdev_state_change +EXPORT_SYMBOL vmlinux 0xdc64a373 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xdc87da2d i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xdc89b261 mdiobus_free +EXPORT_SYMBOL vmlinux 0xdc8f23a1 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xdc9ced82 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xdcb18d7d scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xdcb2f44b find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd31b68e mdio_bus_type +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xdd8f5b6c tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xddb97499 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xdde3015d jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xde00e9fb blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xde12df28 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0xde14c153 tty_port_close_end +EXPORT_SYMBOL vmlinux 0xde1f4868 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xde29a80e write_one_page +EXPORT_SYMBOL vmlinux 0xde31900a lock_sock_fast +EXPORT_SYMBOL vmlinux 0xde333d3a dev_mc_init +EXPORT_SYMBOL vmlinux 0xde372049 pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0xde694360 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xde6e6d27 unregister_nls +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde76c415 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0xde868c6b pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeb365e3 simple_getattr +EXPORT_SYMBOL vmlinux 0xdecbc151 __lock_buffer +EXPORT_SYMBOL vmlinux 0xdedf85c4 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xdef44b0d uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xdefae74c bio_alloc +EXPORT_SYMBOL vmlinux 0xdf025dfe end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf17c608 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xdf216571 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xdf3c68a8 sk_filter +EXPORT_SYMBOL vmlinux 0xdf4147e3 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf508160 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6d20dc pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xdf7570f0 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdff4ae3f d_invalidate +EXPORT_SYMBOL vmlinux 0xe0301cba i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xe04e8776 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xe05e58a2 bitmap_unplug +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe07dae08 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xe07e3575 tty_free_termios +EXPORT_SYMBOL vmlinux 0xe090bfc2 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe09c614e ht_create_irq +EXPORT_SYMBOL vmlinux 0xe09f59ad journal_revoke +EXPORT_SYMBOL vmlinux 0xe0a1dc62 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b3a943 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xe0eac6d7 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1423843 c1e_detected +EXPORT_SYMBOL vmlinux 0xe145c088 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xe163259a serio_unregister_port +EXPORT_SYMBOL vmlinux 0xe167f201 mpage_readpages +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18cc5d6 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xe198395f inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xe1bc7ede del_timer_sync +EXPORT_SYMBOL vmlinux 0xe1f560f7 __f_setown +EXPORT_SYMBOL vmlinux 0xe1f6c3f1 __scm_destroy +EXPORT_SYMBOL vmlinux 0xe1fd090d account_page_dirtied +EXPORT_SYMBOL vmlinux 0xe22c6202 pnp_find_dev +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24aaa8b bio_integrity_split +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2b74c96 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2eebbc1 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe32af3f4 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe3493746 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xe355d8ff generic_delete_inode +EXPORT_SYMBOL vmlinux 0xe35e3d4a tty_kref_put +EXPORT_SYMBOL vmlinux 0xe3675e8d filemap_flush +EXPORT_SYMBOL vmlinux 0xe371ebf6 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xe37533ca notify_change +EXPORT_SYMBOL vmlinux 0xe3893860 journal_load +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3eda587 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove +EXPORT_SYMBOL vmlinux 0xe40d3522 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xe42ac500 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43ed593 dquot_operations +EXPORT_SYMBOL vmlinux 0xe443f6ae vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe488a077 nla_put +EXPORT_SYMBOL vmlinux 0xe492ede8 bio_add_page +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe4a0d995 set_user_nice +EXPORT_SYMBOL vmlinux 0xe4b6c2c9 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xe4f4ba1e tty_port_hangup +EXPORT_SYMBOL vmlinux 0xe511bb3a arp_send +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe54027a5 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xe548aab5 kmap +EXPORT_SYMBOL vmlinux 0xe54aa8c6 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe582102b napi_gro_frags +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a5c361 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xe5ac7d65 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f300c9 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xe600f910 kill_pid +EXPORT_SYMBOL vmlinux 0xe607dfb6 register_cdrom +EXPORT_SYMBOL vmlinux 0xe60aa8ed splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xe61aa07c pcim_iounmap +EXPORT_SYMBOL vmlinux 0xe679bf41 dquot_disable +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a34bea register_con_driver +EXPORT_SYMBOL vmlinux 0xe6e3f31d single_open +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 0xe7380f63 kset_unregister +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe7535751 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7757e71 kernel_connect +EXPORT_SYMBOL vmlinux 0xe78e5fa7 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xe7a8eac4 skb_put +EXPORT_SYMBOL vmlinux 0xe7aa4204 dev_alert +EXPORT_SYMBOL vmlinux 0xe7b4ef7a textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xe7b6dd1a kmap_high +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7daadc4 pci_disable_device +EXPORT_SYMBOL vmlinux 0xe7dcfb68 security_path_mknod +EXPORT_SYMBOL vmlinux 0xe7df8051 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0xe7f1652c vga_client_register +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe84348a1 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe8460e1b md_flush_request +EXPORT_SYMBOL vmlinux 0xe85c6fb1 __bforget +EXPORT_SYMBOL vmlinux 0xe85ff376 unregister_key_type +EXPORT_SYMBOL vmlinux 0xe8703e02 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87b0f8f sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xe87b86cd pnp_possible_config +EXPORT_SYMBOL vmlinux 0xe888c993 ip6_xmit +EXPORT_SYMBOL vmlinux 0xe8958437 kernel_bind +EXPORT_SYMBOL vmlinux 0xe8a4b8f7 mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8f4f380 dquot_enable +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91fa150 blk_free_tags +EXPORT_SYMBOL vmlinux 0xe92247c3 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9638d5f sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xe964f880 pci_match_id +EXPORT_SYMBOL vmlinux 0xe96b586f remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xe9899f34 release_sock +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe99b2ea6 inet_release +EXPORT_SYMBOL vmlinux 0xe9a183e5 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xe9ae5463 fb_pan_display +EXPORT_SYMBOL vmlinux 0xe9b6aaa3 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xe9db5cd2 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xe9fa7429 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xea046b80 pci_find_bus +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1fe4ae scsi_free_command +EXPORT_SYMBOL vmlinux 0xea3ee404 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xea3f16bd of_get_property +EXPORT_SYMBOL vmlinux 0xea45cadd jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xea48ac59 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xea48c22c netif_device_attach +EXPORT_SYMBOL vmlinux 0xea585d62 init_task +EXPORT_SYMBOL vmlinux 0xea5aad34 acpi_device_hid +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea8250d5 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeaaca53f xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xeaad5d42 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xead30049 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeae2086e __nla_put +EXPORT_SYMBOL vmlinux 0xeae2dccc mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb27b656 d_lookup +EXPORT_SYMBOL vmlinux 0xeb375eb6 put_disk +EXPORT_SYMBOL vmlinux 0xeb3cab6c hex2bin +EXPORT_SYMBOL vmlinux 0xeb451cd6 set_device_ro +EXPORT_SYMBOL vmlinux 0xeb4b9c92 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xeb7c47a7 __mutex_init +EXPORT_SYMBOL vmlinux 0xeba5aef9 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xeba8a215 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xebb37fa0 led_blink_set +EXPORT_SYMBOL vmlinux 0xebcc7ced pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xebcf97f7 framebuffer_release +EXPORT_SYMBOL vmlinux 0xebd41d04 icmp_send +EXPORT_SYMBOL vmlinux 0xebf310df tcp_check_req +EXPORT_SYMBOL vmlinux 0xebf5019f inet6_ioctl +EXPORT_SYMBOL vmlinux 0xebfc626e elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xec09b0f1 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xec09c242 dev_crit +EXPORT_SYMBOL vmlinux 0xec15ba7a skb_find_text +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec43f890 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec954e0d scsi_register_driver +EXPORT_SYMBOL vmlinux 0xec9a63ed fasync_helper +EXPORT_SYMBOL vmlinux 0xec9dc7b5 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xeca60a05 path_put +EXPORT_SYMBOL vmlinux 0xecbba90e generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xecd2bf55 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xed185df8 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xed193639 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove +EXPORT_SYMBOL vmlinux 0xed2ecfa7 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed504f7d bdi_unregister +EXPORT_SYMBOL vmlinux 0xed50fc87 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xed531140 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xed5e22e6 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xed7d8f8b x86_hyper +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedaf73a0 skb_make_writable +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc82333 input_release_device +EXPORT_SYMBOL vmlinux 0xeddec09a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xedeb5b08 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xedf7db2b kobject_init +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee6e112e task_nice +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeec3d51d fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xeed7417c kthread_bind +EXPORT_SYMBOL vmlinux 0xeedac737 iget_locked +EXPORT_SYMBOL vmlinux 0xeedc8175 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xeee33f9b agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xef15f1f9 block_truncate_page +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef33ce3a input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xef347766 genphy_read_status +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef3f5189 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6caac1 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xef6e7948 mdiobus_write +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef7d438a skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xef9f243f do_splice_to +EXPORT_SYMBOL vmlinux 0xefae0048 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xefb9ec87 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xeff14be9 ioremap_cache +EXPORT_SYMBOL vmlinux 0xeff8ffcc __netif_schedule +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf012637e unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xf01d8271 force_sig +EXPORT_SYMBOL vmlinux 0xf02cf1d1 of_match_device +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf066d8b0 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xf06d8f48 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xf0712384 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xf07e5389 generic_show_options +EXPORT_SYMBOL vmlinux 0xf08fa838 amd_northbridges +EXPORT_SYMBOL vmlinux 0xf0920614 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf0da57b9 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1163e31 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xf1208565 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf152977e skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xf15945db __lookup_one_len +EXPORT_SYMBOL vmlinux 0xf16c09cd xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a89496 journal_abort +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1d55868 locks_init_lock +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 0xf21a6a93 blk_put_request +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf243d8f2 phy_connect +EXPORT_SYMBOL vmlinux 0xf24dfce0 put_io_context +EXPORT_SYMBOL vmlinux 0xf2563673 read_cache_page +EXPORT_SYMBOL vmlinux 0xf25e31d4 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xf2619ddb mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2bc151c agp_find_bridge +EXPORT_SYMBOL vmlinux 0xf2c0decf bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xf2cdf874 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xf2d8d2e2 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xf2dfad5c tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf3134af6 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf329773d mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xf32dabd5 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf341837a __destroy_inode +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3b3bd07 cdrom_open +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3cb2e35 kern_path +EXPORT_SYMBOL vmlinux 0xf3d2926c mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf405395b i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xf416025d scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xf4409bb8 dm_table_get +EXPORT_SYMBOL vmlinux 0xf440ad89 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf442d6d5 simple_unlink +EXPORT_SYMBOL vmlinux 0xf47fde9d sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xf4885454 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf48c7d95 key_validate +EXPORT_SYMBOL vmlinux 0xf491beee tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf49a9efa unlock_super +EXPORT_SYMBOL vmlinux 0xf49efb83 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4ac8592 cdev_del +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4cece3c wake_up_process +EXPORT_SYMBOL vmlinux 0xf4d37997 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xf4e68983 phy_driver_register +EXPORT_SYMBOL vmlinux 0xf4e7156f journal_flush +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f50c1a ll_rw_block +EXPORT_SYMBOL vmlinux 0xf4fab81e __scsi_add_device +EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf50e6ad0 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xf5142158 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf576746f dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xf5999815 get_io_context +EXPORT_SYMBOL vmlinux 0xf5a45619 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf62428ee pcim_iomap +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf63e4509 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xf65dbb8a input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xf66a650b no_llseek +EXPORT_SYMBOL vmlinux 0xf66cfcd1 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xf686a755 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xf68afc39 dget_parent +EXPORT_SYMBOL vmlinux 0xf69f0c2a wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xf6b39735 security_path_truncate +EXPORT_SYMBOL vmlinux 0xf6ba1bc1 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d1188c __bio_clone +EXPORT_SYMBOL vmlinux 0xf6dd42c5 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xf6eb045d set_pages_x +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f2dad2 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xf7005bd6 scsi_scan_target +EXPORT_SYMBOL vmlinux 0xf701f79b scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xf70b50e6 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xf71067fb create_mnt_ns +EXPORT_SYMBOL vmlinux 0xf7126d64 i2c_transfer +EXPORT_SYMBOL vmlinux 0xf71468c2 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xf72ee461 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xf731d365 security_path_chmod +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf777d5f4 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xf7812a6a xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7bcee4d sock_no_bind +EXPORT_SYMBOL vmlinux 0xf7caf7ff pci_save_state +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 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf892379c acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xf8acae06 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xf8df979f md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xf8f6ba4d __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xf910031a pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xf91a77d0 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xf91aaf1b dquot_initialize +EXPORT_SYMBOL vmlinux 0xf9306257 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf967d3fa freeze_super +EXPORT_SYMBOL vmlinux 0xf978b21a acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xf98329ed mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0xf9847aa7 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xf98e1bc6 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xf9994357 mii_check_media +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c204cd skb_set_dev +EXPORT_SYMBOL vmlinux 0xf9de10c3 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xf9ee0aee do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xfa01c0a4 mpage_writepages +EXPORT_SYMBOL vmlinux 0xfa085646 pci_pme_active +EXPORT_SYMBOL vmlinux 0xfa0b0e96 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xfa28d8ff nobh_write_end +EXPORT_SYMBOL vmlinux 0xfa319241 iterate_mounts +EXPORT_SYMBOL vmlinux 0xfa3cf476 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xfa4b6e53 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xfa7902c2 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xfa8c44d9 cpu_info +EXPORT_SYMBOL vmlinux 0xface3450 posix_acl_permission +EXPORT_SYMBOL vmlinux 0xfade8bfe mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xfaf7a620 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfaff55e2 flush_old_exec +EXPORT_SYMBOL vmlinux 0xfaff7ec9 km_state_expired +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb1ab50b kunmap +EXPORT_SYMBOL vmlinux 0xfb2acee0 dquot_drop +EXPORT_SYMBOL vmlinux 0xfb32ae0a skb_dequeue +EXPORT_SYMBOL vmlinux 0xfb43acf9 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7b26c7 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb8e7c9b acpi_bus_add +EXPORT_SYMBOL vmlinux 0xfb977c18 fb_get_mode +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd51622 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xfbda8e8d dev_close +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc50827b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfca4f89b kobject_del +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcd6af00 mmc_erase +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf208f9 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd010a83 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xfd126cdb pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xfd20d46f dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xfd4c12b4 vfs_llseek +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd8e36d9 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdaa77e5 uart_resume_port +EXPORT_SYMBOL vmlinux 0xfdb15d1a pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdf944a0 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe0ec63d __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe9f753f kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xfeb5ef79 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeeca302 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xfeeeb162 do_sync_read +EXPORT_SYMBOL vmlinux 0xfeef09ed serio_close +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefa63d3 of_register_platform_driver +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff399737 wait_iff_congested +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff5f6cff seq_path +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7cef9c tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb64046 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xffcf0c62 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xffd0eb16 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL vmlinux 0xffdba08d skb_pad +EXPORT_SYMBOL vmlinux 0xffe5a447 jbd2__journal_start +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 0x03028290 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x06ee6c84 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08a27850 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094dd998 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0c0d2ebc kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x10774e0f kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x10a7eb8b kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x119269c9 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12b7ef10 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x160f9a28 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1df3c4cc kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x283af0af kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2934e0d1 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3785dce6 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x37d1b1bc kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e386e3e gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x438fd84e kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x47dc1556 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x49536bc0 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x49ce6bf1 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4acc568a gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b31d9f6 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c4ad715 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d846fc2 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4fca4c71 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5480323e kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56384826 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a437c17 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5d423f5a kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62cec853 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6644b2e4 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6857acfc fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6c1ae5e3 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6e7e26d5 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7328051b kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c61b3cf hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x80e42458 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x827608b7 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x861e4328 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x886bc744 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8fc92f18 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9121e4a9 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95b4e3be kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95b57e57 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97b6bc2d kvm_init_shadow_mmu +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 0x9af6e622 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9cd758ae gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9e33985b kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa43d2079 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa62b2872 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7ab24c8 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa99415e7 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacc9101e kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xad1b8676 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xad1c8095 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf8bf396 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb18397e5 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb522e9e7 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb9169fb8 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba5fd31a kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbcec3ed0 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbee6ac35 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc648ba90 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc69c2eee kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6d321e6 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6d971a8 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc97444a8 kvm_mmu_unload +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 0xd22621c2 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7c25d39 kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdb3de95a kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xddcabe7d kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe43cf007 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe670c56e kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe92dcb38 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea724aec kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeaf35612 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec9281ab kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf2a2c620 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6d4080f kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf7db1a76 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf7eb69d0 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfd25d810 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfdd3c118 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x1edaac17 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/af_alg 0x4c1ac347 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x7619b5b6 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x90591e1c af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xae20994d af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xc3dcf544 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xe27f8ad0 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xf60aa2ab af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xf85ad07c af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x5f595b67 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x253498a8 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xdd1188d0 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x1ab4f218 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x92192d9f async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x288b5087 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x422e691b __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x527d3ced async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xcbe375be async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x5e2b4206 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc6fb8a79 async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x18cf5da1 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x21bc2cc8 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x44a54ab9 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x4559a651 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x51437194 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x65164b85 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x7d5f966e cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xa744e394 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xd0ce0f3a cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xd1d84ba9 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa16792c4 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 0x074163eb ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2df39467 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x332fd413 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3592c236 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x56f92af7 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x653999da ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x79128f2a ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x868e44b9 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x892bbc80 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8cb0b66d ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaaf446e7 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbd4989cd ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcd2f3347 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd2d8c364 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf34cf827 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xff4f78e5 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x3af014b7 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xab072207 __pata_platform_probe +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 0x02261de6 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x13969c28 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1c23693d btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x44788c55 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x572d8395 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5a7df4b3 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x778583e9 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xae63646d btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0xe8490952 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0a351f57 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0efbf608 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x272a1ed7 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3aa27ea2 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3cba005d tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x67422f8b tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x68d3b09d tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6a31ff14 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6e63f10e tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7fff9579 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x92f3c02d tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa37bc17f tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa497af64 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa98c5ccf tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbb36e42a tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbb814043 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbe496c6b tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc30e2105 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd147c8fd tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd74c303a tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdc4f3b98 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xde5327b3 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe8aadab7 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x373e18d1 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xecdec866 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/dca/dca 0x0aee388b dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x456a86c0 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5a4ce8ae free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x7665969e register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x97013e36 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xbd57cf6c dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xfa6d7e23 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x052f4d96 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x353c477c edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x35af7a52 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x36bc1346 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x54663738 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5afc5dd9 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5d305990 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69807292 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7e1ffc0a edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x83a3a1a8 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x884ad033 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x90c9a5ac edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x927b4a16 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x93a73c4f edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x940ccca9 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x95b9b53e edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x96e15d60 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa0d0d428 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa7072549 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb5a20b52 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb6eb3f90 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb98f78e5 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbf601b5b edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc6a97f30 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcc14ffa9 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +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 0x1502296d 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 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xedbca0ae amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xff582b9a amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xc0bb404a cs5535_gpio_setup_event +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 0x47f4bc90 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xe35253ac __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa8d710e5 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xcd490080 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 0x0af43c03 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x11a9ecdc hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x135b3bf7 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x26514b93 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x428dc1d9 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x43f1c0c3 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4401d50d hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x481edace hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4f016cc6 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5b07df5f hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5da25378 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x665023a1 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x834048b2 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x89a0a164 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8cfe8666 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8d9d80c8 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9fd57cb9 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa05b7dda hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb9af6445 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbb12c299 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc47eeb40 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcc231955 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xced74966 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5c1bcc3 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe9122137 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xefe68f51 hid_resolv_usage +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 0x7aac2a92 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x12405644 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x4d1dd063 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6fb30bd2 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xd4f87508 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x1d418484 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x5d2d1af7 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6e4fddbf lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xa7b4c479 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xd35dd05f lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xc3f8f395 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x22ae0d71 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x6237ba63 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x67ee5bd3 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf4be564b i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x021b4c82 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x0238bc9c adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x2c3cd1a3 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xa2b414e0 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xdccab5fd adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2c35b7a3 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x308a73a1 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x318baaf9 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x37a5f45b wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x44bcf5b9 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x56d5d6d5 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5a34d7b5 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbdfa787b wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd61c4f4a wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdf9f48af wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfc298529 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfd21aa67 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 0x0486139f gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x16ef8f84 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x23971ee2 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2fa71bf7 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3951d2f4 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4cdde14a gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x50a271a0 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x50a9c7a2 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x71a89b3a gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x78950c4d gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x870bd4f0 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x877ac6d2 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa2ddb8f3 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbf16773f gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc10ee2e5 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfc38209c gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfc7053e7 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/md/raid456 0x1c5f85bc md_raid5_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x95aaa3bc md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x02f93150 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1ba41d78 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x28ca433b saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4236b7db saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6a7be6dd saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x849bde49 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x90e572f9 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9fb22f3a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbb899faf saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbdab41f4 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 0xf09173f1 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x1f486ee2 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4bfd2967 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7c3c3685 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7efbcdac saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x94ade17b saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x9d22639f saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xca5061d3 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xa0269cff microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xa42cb85b mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x2ceac41f tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x68366ad4 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x01a91009 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xf9667bf3 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xe7ad7fa5 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x147425b7 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x644a0290 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x167b2112 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xa0e58db2 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xb45e4af7 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x056562ff mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1125751c mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2bf5f1d1 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x35ac4299 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x584e2875 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5980a4ba mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x68a2e9f8 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6c530cda mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x783e7e58 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x981030a0 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa884a3ec mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb1bffa79 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe021724a mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe1688431 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe6823d69 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xeae624c1 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf91a2bdf mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0b2338eb sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0cc0db5b smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1c57131f smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1d13f304 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1d2d6569 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x293f5d29 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x404d4f8e smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x47102b39 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x83aff6a0 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x948c507c smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb51ba893 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc98a43f1 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd5d7623d smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd6af694a smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd75b9d39 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdb3cd6ba smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xeb8b554a sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xeb98c16a smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf0659bcd smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x10de3d0d ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x3ee46063 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x506eddd0 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x90dd5157 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd0413fc8 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd4cae0b5 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd58156d8 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00bcae02 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x08f318f3 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x148ffe47 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x167893ca rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1774e338 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x22fdac3d ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x329ad38b ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x34580cef rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x40bc4eda rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x665ec240 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6b541670 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x741d8594 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x74f8c36f rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9cb29fb8 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9f4e1c05 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb52908e0 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xed28f90d rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3cdcb599 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x40c7ed84 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x42a38258 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x49df4df2 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4f067352 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x54ac2ef2 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x79c9ab77 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x89f5ad18 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8f91111f cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x928acdee cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc1b4389a cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc2f28e50 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc6693e45 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc70df1bd is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcd942f58 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd93572e4 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd9aeb89b cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xda2bd45b cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf2245aa3 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xe1933a53 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x056648aa em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x3d50b918 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x73226166 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa3f722cc em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xb4c547a5 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc76f44e6 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x555503b1 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5d364f41 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x91d73c5f saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd044fcd7 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xf4a9c8c6 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/soc_camera 0x34ee1040 soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x1f3c6091 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x55d63f27 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x95b61e74 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x96d3a070 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xae18b444 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbdeb191d 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 0x1d69796c v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x44c06f11 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x838b8bd6 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 0xae0c15cd v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x006dbebe v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x17cbcfd1 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x21e54233 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4d18c24a v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x52ea87e1 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5cd550a6 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x60aefc7f v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x77e1453e v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x88b26cdd v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x88e71dc4 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xbbfe1f4e v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd6eb4c62 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xeab2f4fb v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xeee2d269 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00aa6dac videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1f172b84 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x20670cad videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x23d2b2e9 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x259f7431 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x333b0ac1 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x38f14663 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4cef3fe4 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x55e73610 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5791adac videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5a605232 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x66012a67 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x693a1a8c videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x762be483 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa14b2370 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa5083829 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb5da040f videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc7f5144c __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd711c88f videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd7a82d27 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdc01431f videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xedfce560 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfd078548 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfe7f94e6 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x3c719456 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xcfdb75d0 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xfb948eaa videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x038e6099 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x065f6369 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1763ce0c videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2507facf videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2f4bb11a videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9220e2a8 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc2c77e4e videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd35af58c videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfa675708 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x7f249b1e videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xa9aebb2d videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xc1a8e4ca videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x01232a86 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x16a3ea2a v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x23baa119 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5db5e349 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5f0c23df v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7764d8a5 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x89e22035 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8d124ce2 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x91e7fa1a v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x997d57bb v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9a42a72e v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9b9912b3 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xaee41b72 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb03b6b49 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb8d5b892 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc5ec5e25 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xce5056d3 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xff9dc36a v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x028270f4 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1a62b20b i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x256b8a1b i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x391f31aa i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3f3613ac i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa01fe5a7 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xea1f7f67 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf67b74e2 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xb7f215be mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x06420fa6 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x178c39f8 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1c483a48 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x30e2f40e pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6ed05df4 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x95a19ff0 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x98b697ae pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xaf8a1c65 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xaffdfc32 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xca45bfd2 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xff80e3e3 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xa1a5b534 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xf7ea4d2b pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x0accf0e6 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xaa821202 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc83b8195 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe120bf1a pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xefe5dfc0 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4644be08 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4e190cde sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x59b87add sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x74c246b2 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xba789551 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x1d3f8b08 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x5f322f1b wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6f12f625 wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xba86945c wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xca59d436 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x30a3847f cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x928aae1e cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x9d3de7b6 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xcb3cccaa 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 0x156ec147 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2425a0bc enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2d7aeb44 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbc3dc7f8 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcdb51bb5 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcec019c3 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfcef1e21 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xa8079172 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x173da66e sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x421e7f21 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6c40318c sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7b4927b1 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8a9e38ea sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x96d8c608 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcf2f68a8 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x10c3c291 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x39d93932 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x6fa92a67 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x44c4ff4d cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xbbc3cb26 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe9f63c60 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x8f1a2f6a cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xcb6ed4d6 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xdf14107b cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe0ec7fd3 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xf0bab7ed DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xa3f489fc DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xa846f012 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x02a1fb5d __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x24e4ef55 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2bdfab3e mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x30bf49f8 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3b94d302 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x41fad3c8 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x42e87c51 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x431cc965 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x432b040f deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x94d70807 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9be76c8b register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa6e4b2b2 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae6c0b86 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb0a335aa mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc1990abc mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc4852b98 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd85ffb08 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdc7d55cc put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xebb5de47 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf7966855 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfce61e2d kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x02d557b6 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa6cbc68a add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xbc7c9c9a deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf6fe6bd7 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0a198486 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xdaa6a9bb nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x4d0f51a4 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xc399d976 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xe15e563c onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0caa6111 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x177c0db3 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1af9df7c ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4de33c62 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x55846868 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5a201783 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x75bdd9b9 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x82d6a505 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x90e7f536 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9ba068f4 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa209e0e2 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa89c03df ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xacc927ce ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0718d524 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x25dfd1a2 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3e077a39 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4bc44044 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4ec4dff6 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x79a87776 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7fb3eeee register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x881ad38f unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb3256376 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xed702cbe can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf6f9dbe4 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xff3a8d4e alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5b794f6e free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x94aa3244 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc81c5991 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xffa1da99 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x05291312 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3506fc37 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x870b3dfb macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xadcf282f macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xdbc27eb3 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x02645fe1 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x068ca639 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x07de0bb1 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0db3a7d2 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x11da95c8 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ec304c0 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ff4e906 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29d2fa04 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3d61cd22 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3eec5d63 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x418e5207 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46256715 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46d7c0a7 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x489e66a3 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4a6b2312 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4aaa079f __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x554d42c3 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e8ece58 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x62a04567 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6751215f mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7b1cb3e5 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f24b686 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7fe0dbdd mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x80616011 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8a081a06 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8c6ae5b1 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8e759574 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x964b1a49 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9c31ac2f mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9f40c224 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9f9071e6 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa21c0da2 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xac6df438 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xadfdc5eb mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb2e2e47b mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb389d50e mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbe4137a4 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc0177ef6 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc2868a04 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc64acb76 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc73c1f6c mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9f4fbb7 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcf0d2b4e mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd2483512 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd6852240 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd6c0b88c mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd6fe17ac mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd9b03afb mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdeb8475b mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf7b5d54 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe09fe49c mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeaec63e8 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xedfc813b mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf908649b mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb0a231f mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x0ac6174e usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xa5077f60 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x207c4c61 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xa4cfec7f rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc7647209 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd83f2c0f rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfacb250a rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xff7528c1 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0caeafeb usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x32bab054 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x357d2a69 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x37fbfe7b usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3dcb0b08 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x50b07ed6 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x51ad5a2c usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x66d43ab5 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8261e293 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x99b13dba usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9a9d2bb2 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa4da35f6 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa52da896 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa6841a97 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaac61495 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaf83fc66 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb9f64fb8 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbc58258d usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc3dc3703 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc972fb82 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcf222ca6 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd43dd6d2 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf8611e27 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfdc183a1 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0fbf32a4 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2f9787a8 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x348ed7f2 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x34f293ff i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x43baf09e i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4864a8ea i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5b8b93fa i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x654f6821 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x933f25a1 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa4bfe7f6 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa8c6d2c7 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb5a0b0fc i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbacc5dd7 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc5ba3a88 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc7b6555e i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd75d94c9 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x3c0367e4 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x476f0c55 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x610b9662 iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x8d153f41 iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xb6d21c64 iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0bc11976 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1548977b lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x18e54104 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x19742bc0 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3105650f lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3a1b8f78 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7a2976c6 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8284ac3f lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x86e47297 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xae32dc5a lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xba776bec lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc0c19366 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd17467b8 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe1afcc7c lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfdf6b396 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x604b72ad lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x787b5679 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7e6afb56 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x84da9ef6 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa422ea31 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbfe29d42 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd2969e8f __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdc821c44 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x89fe5390 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xf458c32a if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x09447490 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0f21d436 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x23da0f0b p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x85f86177 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa1769734 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdabf9d14 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdd6fe321 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe4a81375 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xeef0a884 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1b696723 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1f3581fa rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2225a7c2 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25bbb589 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x315ff19f rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34b3259d rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x37744123 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3cf290f3 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3d394ba4 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3d8066c8 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f5d6ce8 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x53082641 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x54382d19 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x55c04726 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x57ffab21 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5aa49228 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5d70d40b rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6134dbff rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x627a4e15 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69ff92b8 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6adb7044 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7561fd12 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8547334e rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8cf72abd rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8d37fe7c rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8ef40932 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9b209c33 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa10500c9 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4af3df6 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd482fac3 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd9fb54e rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe3344778 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf6f987fc rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf98e7d6f rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x00c7f887 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0216c4d3 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f252fd5 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x181afadc rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1a2aee36 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f56313b rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a2262c7 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3002933f rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x386c4db1 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3b78417e rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c4aff21 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3cb60d12 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x48111dab rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4924addd rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4c942df9 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4eaba84e rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4f2f957c rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x57ea4509 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5d6080fe rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6de6ec93 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6e48129c rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x71936417 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x74648034 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x74942039 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83d94362 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x84b31506 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x86397180 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x880fd263 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8b2cff7a rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb13676d6 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb13e4b79 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb8407825 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbbad38d7 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xca53b3be rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcad2e761 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd248605a rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd49b4f5e rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf4371d5 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf3de9a66 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfdf6a03f rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x13e14773 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x427da61d rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4f9477f8 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7ea213b4 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x94d25047 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xcd5e035b rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd0cea92f rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe1d0c3cf rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x06699fdc rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2554d0cd rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2b3919f4 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2ed9053c rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2fdbb291 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x33c54b72 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3d4f643f rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x55b0b232 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ebba09a rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xae5454d3 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xaf52ffcd rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4850f9c rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe55af98c rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xea8f4dda rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf4a3d6f1 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x0be7330c wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x41b0ebd7 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xf7aabd3a wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x155ffd5a wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x220cc0fa wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x253f9cbf wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x62914243 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x6a9b2077 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x913df785 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf5961546 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x0b0c32a1 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x95c0018d acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x1bad77b7 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x57b64b60 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xba8c52b4 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6086e634 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6c90ac39 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x87bb2aca mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9072ae8e mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9aea8229 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb0c6f161 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe38dc873 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x27cb8b23 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5c0e266d wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5daa437b wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6b9b66ca wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x73940d33 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcf02977f wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xbcf3c3e0 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0547b449 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0885fc8f cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x136ec0a2 cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x17d9d118 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1ead6269 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1feee934 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x282d5285 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x34c2cacd cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x404ac636 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x44442455 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4548447c cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5478f735 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x59913309 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x59a82daf cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x65fec3e4 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x69570127 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6c683b5b cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6d208922 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x741fb03e cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7b13f1a0 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7dd8693f cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7f011163 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7f713043 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x85d03b93 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x90c3fe8e cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x90cb0140 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x91832e05 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9a1c0ebb cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9abbbc96 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9e70c104 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa212cdee cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xad856595 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xad99867f cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb21915b2 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb74a0050 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcfb26461 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd5301dee cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xda6ef2d4 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddc1ece5 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe1911a27 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe36c72d8 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe6cf9551 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe78ee687 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf2a641b1 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe455018e fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x10c5130f iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x93e800df iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xcbe3ea57 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xda62d5ed iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe9cb56c5 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xfa1094bf iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05fd2ad5 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0d6ec3e0 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1549bb4b iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d3cc421 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2415de66 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35404454 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x479bb136 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b3de867 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ea8053c iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5064bd24 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x573a6fd6 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59116b87 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c88c9cb iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x610f4bcd iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x678836f5 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x67ebe283 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x68336113 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8036cbde iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x841c70e9 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90e24c06 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x941fa13b iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa368032e iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4af8d27 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa8652fa iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab40b535 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xadf1228d iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6a0c98c iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbcf4846a iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1d531ac __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc4197c1c iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc57e7b45 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc5ecdf41 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc967b56b iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcba12adf iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe1d15a7a iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7a1a526 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9d77068 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea439778 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec7365cc iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf00ca03f iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9e6ee7c iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfa4ad9b1 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfaca7d35 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0c6d8516 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0ea0dbf4 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x126bffaa iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1991cf41 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x570f6801 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7c4e49bc iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8637eedc iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8bc9090b iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb620f62a iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbbbc4e22 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc006dadc iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcd916d03 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdf82ab3d iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe8b4d108 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf086948b iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfaaedb4b iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0588cd3a sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0f1991e0 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x15967be5 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1f9e7cf3 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2fea9c0d sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x30c07311 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x33ff7df5 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3b2cc545 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4678dda7 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x61f6edad sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x69bd8c2e sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x71576399 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7c29abd3 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8e096d32 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9b3d393a sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa766b398 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xccce1856 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd57e345b sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe83cedde sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xec3aa7c7 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xef4659e2 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xef5db152 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfb6318da sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0c0f778d srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1f90cf97 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3068019a srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x5a121d9c srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x705323f5 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd7a5b6c6 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x37a1858f scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x48cb2329 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4e6d5c8f scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5b92a4eb scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x61065ae6 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7524bc2f scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8540bb87 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x86498fbb scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc307f126 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x017e1ea4 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2e0ae664 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3671b48d iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x48e5c82e iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4b25d770 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4c46f6fc iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4fddb328 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x55533f32 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71cca849 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x79926459 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8bb71bd9 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9a033eeb iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9f66a014 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaabbb895 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb25b5905 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb66945c3 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc12186ad iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc4a7d806 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc72ae8c3 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd25173a8 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed62cbc3 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeda84167 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf961472d iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2f1a69fe sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x47ae59f6 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x6cd8769c sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x90ba7e4f 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 0x400a0142 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5bf11a64 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6daf9a9c srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd588c082 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xfaf423cd srp_attach_transport +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x0c7b2e0a spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2f339197 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x32a2bbb1 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa728caea spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xb1693d9d spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xedfd5e57 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0519c523 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x31f8e44b comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x70cb75e2 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x80818bd8 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xeda63668 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x6f941704 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xe49744d7 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 0x77ac6c83 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x7877005e labpc_common_attach +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 0x291b569c ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3ccbdd10 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x493239ce ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4ebc97c2 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x622e68eb ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x76547351 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x83ffd5d0 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xedfca606 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x2b34d761 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x5ded6450 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x7f0fdac8 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x7fe567c3 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x9dff7e30 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfa9d2b59 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 0x107919a9 vmbus_open +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x12643291 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x195eb8ad osd_waitevent_waitex +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x1f473a1e osd_page_free +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x22e30b07 osd_waitevent_wait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x318af37c osd_page_alloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x40837821 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x539f5cf4 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5606358e vmbus_close +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x6a0824ff vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8abe81f5 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8d552274 osd_waitevent_create +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xe95976b7 osd_waitevent_set +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x005ec987 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x11559db3 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1432ee06 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2985bc43 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x435d314f speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x43fb646e serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x7f7d3f67 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xacf9dede spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc9a35dc0 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xefd33c62 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf641b531 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf9ae69f8 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x3b8424da tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x5edd7f44 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdb6f6469 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x15762da3 usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x1ca8cfa2 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x247f4fa8 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2ddbd0c0 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x56d5c27a usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5e9a0094 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6bbc1d20 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x781381b0 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 0xa5158ff3 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa6dd76d2 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xae8ef08a sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xcfd09d99 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd7df49cc usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xdb6bd9fd usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe01456d2 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xeb2a3024 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x3f19ba89 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x429e8b56 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x50a193ac max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xa60b82c1 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xb2973706 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xfdd228b9 max3107_remove +EXPORT_SYMBOL_GPL drivers/uio/uio 0x0822a44b __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x60f806ac uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7caf6b26 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x02e1e340 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xe7a373df usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x390cc2d2 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3c1b0081 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6367c647 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8092b5fe usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8bd6c4cb usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9a4f9897 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa9d012f2 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb4feb4b3 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc78056e1 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x037e3fcb usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x03894b94 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0648c77b usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0ecfcdd1 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1ed6ea1d usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x274793a6 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2deb0f52 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2edf061e ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3c764d4d usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4556673c usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x573dd323 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6c1e6094 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x88a60460 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9b7da531 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb2c3fc65 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc95bc554 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xddb8b1a8 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe7b9b438 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf4a26c68 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfcb3af24 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfceb412c usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x03d74422 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x04db34fa usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x11418bbf usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x15b6cbdb 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 0x2423983b usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x25663f36 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3f487135 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x65d308db usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6932450b usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x76cf180b usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x78787471 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8ebc3a54 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8fb9d2df usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x91ea3215 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9ef47631 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9f7a43b3 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa916ddeb fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb178c1d9 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc66c30f1 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xce007e19 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe73b341b usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfacc2c28 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfe85e472 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x3beea8ea wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x63fe9da2 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x76a54ca8 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb1f23d48 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd0f5bbf0 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x023e480c wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x189a336d wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x217c7536 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x34f20d87 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x394572ab wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3e4d27dd wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x43a6fd81 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5c425ad3 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x69da6dce wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7c31b940 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x80013bb8 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x859aa10b wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9e80ae4f wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc0e219ac wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc6d35cf9 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc9cde20c 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 0xc1ca2677 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xdaf831c2 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xdc9affe3 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x268f9ec1 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x32675270 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x56521bd1 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x566dc2f8 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x726443a2 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x794c9ed0 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8cb0d36b umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe204582b __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00928755 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x03acedba uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x04fbaec4 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x11d07cb3 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2969cdfa uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2b719a28 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x42b14da6 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x466094dd uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d45e188 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51c4ff62 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x57989cf8 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6080fac1 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x642fc402 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6ce4e964 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6df9d198 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7b6d11e0 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c38c32e uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c1667d6 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8fe9753e uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9a76f6cd uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa391682c uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa443d975 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa597d928 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa86d55e7 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb06010b9 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb100d184 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1152e48 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb37c2ffb uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbb4b4b26 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbfe01c27 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc73d34bf uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc9db94bb uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcb787a52 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd8a29b36 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe055de70 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe32bca31 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfb3f9b31 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x2d517740 whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1455938b ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2973e555 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x413caf43 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6ab0b22a ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6ccc55b1 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7e71cb3f ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xdbd7e9fe ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x724e8340 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x8c81d778 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xdc8664f5 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x005a6315 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x60b39962 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +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 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xe9dabf91 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x6e717244 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xa79fcfd8 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xc424fec3 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xc5d67388 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xfd303165 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x000d1ac3 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x294daf78 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x329a5930 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x52d04f75 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x6a0d11f5 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x9ec2c06e vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc4253413 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc62ac3ea virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xed94ef8a virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/w1/wire 0x000bc532 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x266fc71e w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x317bf0b0 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x615c5dba w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9ff9cd50 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc049e1d8 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc10c2563 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc37a3b28 w1_reset_bus +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x05950665 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x6493b7eb dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x85b6a70b dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x5073fc63 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x6eae1020 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x04fe6367 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x098aec26 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x1057315c fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x10f10179 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x1545de7a fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x18f2e4a3 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x71ae51d2 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x77c7926a fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x82bdcd0f fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x82f3e42b fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x9da1ce30 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xa270ecb3 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xaa1e8798 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xb4e2c217 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xbc61d34a fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xd64259ad fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xe4261595 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xee9fedf7 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x157d42cb nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f882ea6 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7160e565 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x88e2202a 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 0xf489b866 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdab653a1 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x14f1c7e5 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xabca916b 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 0x57c8baaa o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x68912a50 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7ab4befd o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7dbecaf6 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8394757c o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa1e61609 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa83f704a o2hb_unregister_callback +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 0xc3679d7b o2hb_get_all_regions +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 0x37c007b7 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3a65b658 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4f984d6d 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 0xb65050f2 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbf8b6f11 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 0xecb70dc8 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 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 0x720fb39f ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x82a6c2e4 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x890ab7b7 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +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 0x058bbc3f garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x0aac4f52 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x2ea68497 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x429909a7 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x5ec30776 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x71eb6702 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x03c22051 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x9d457991 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x7ad5ad22 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xf40129e2 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x1a35e9b4 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 0x9c8d004c bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a356161 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x13e99006 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x14a543c3 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x24efdd2e dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x26540995 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x26d339c0 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a9c70d2 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d8d8748 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b96255a dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x455445d1 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x463ae5e1 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x49e53a75 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6059edd9 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x65aba305 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x84ac0142 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d82c8 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8e113dc3 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8fbbc94b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9b0540b5 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9b5ff321 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa32ca2ff dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa902a9c1 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xafa45254 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb1f240f4 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb30ad13a dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc03620b3 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc4281026 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc99eba1d dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xce61a6a9 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd43363ba dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd93b410b dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdd7f5ffe dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1191fe5b dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x33aa68d3 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x52926d8b dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x627d0f82 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb5ca01e0 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xee0c2e8e dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ipv4/gre 0x08f88c0c gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xb3f1e0b9 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x97ad910b arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x20107595 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x330b7428 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 0x0d4fd9ee nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0e6bbe03 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x16142fb9 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x251b5c8f nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7346e6c2 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x84aa5d69 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_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x23cde702 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x24e1f68b tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x55beb18b tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa64d99c5 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfb6dedb5 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x9632c143 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1924bfdb l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x38154605 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x44fb0bc3 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x487760e1 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x83c1cf67 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8a76bbaa l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x924ff42e l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa6144867 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbae53918 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbca7f5ba l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcee20ca5 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf50f8c5f l2tp_session_delete +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4e54cd68 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5c1d34a2 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb7322240 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xca099fdb ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf870ab98 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x319b8839 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x6743ab12 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x98c54a13 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc0da74e2 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x005db7d9 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x069b8495 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07c8e2db nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e9ce5c9 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x107d781f __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x119249f2 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1496054b nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x198dcaf2 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1df2a8e1 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1fcd3316 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21ec797b nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23f079f5 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2af93baf nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c56345f nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d166048 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2fd3054c nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30836fb7 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x33ca42e5 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e28c852 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x407b502d nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x41129108 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x43a488a4 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45cba70d nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ecb2aac __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55531d51 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x584f6e0d nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x585a1805 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65cd94f2 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6bad0024 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e1847a0 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x724d32af nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x792e4c07 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x815b76d2 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f54022e nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x956dc733 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x979cdfc8 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x981e9d6c nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f16c908 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaaca31b4 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb399ea5f nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7dae810 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba8b922c nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf60da9c nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc14ee44f nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5c61b31 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0544e96 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd203a48e nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd245a068 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3c7d57d nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd8140be5 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdfcb0fd5 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe035c60c nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe0f1dd7e nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9a435aa nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebe137cf nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf08860c6 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf0be3b38 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf2c993ac nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf658b67b __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff9569c8 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xc20f3d12 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x1148181d nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0ff89f95 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x21a370be set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb18326ab nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbcc63034 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc13c89d5 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcf28f896 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdc870016 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe3d8557f nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeae0af74 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf657b200 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xbbfb76be nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2aed4a39 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3ab066c1 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6338093f nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xdfc34efd nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x42283b18 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xbf9714ef nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x017205d6 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x16f04fca ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1f81dd35 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x21a1bfc4 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x22f8191a ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x323c6e57 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x41287b4b ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4ded1805 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x51fb20aa ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9e281873 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9ef42c56 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd672674a ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfbb12727 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xe554aebf nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xafb4cee4 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3635d306 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3dd4a547 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4c1d64b1 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xaeef5e3f nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb083ede3 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc5db3774 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x10a04c06 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0e98a2b7 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x18232740 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x35eb5b5e xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x36fe8261 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3a232d97 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4e2950bd xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6bf91c75 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c8a76b2 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8a3cfb3f xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb9249c9e xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbd475dca xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdf25d3dc xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe95a4e60 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xefc695ee xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x02d18bcf xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd995b363 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x017dcc0a rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x03da3439 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x10b780c6 rds_conn_connect_if_down +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 0x39969b3d rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x4622b59b rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4bf8cf47 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7a4c8483 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8ae94068 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x8b7c5572 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x9025fdef rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9a454700 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xa37a33eb rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xaa1899f7 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xb2dfa7fe rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb4457f41 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xbd03863d rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xc88b1b35 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xceaae0fd rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xd7117764 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xd7230b41 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xe6fed563 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xf22afaab rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xf89979f8 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xff497269 rds_send_get_message +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x2351c328 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xfc64bf13 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 0x12256779 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1bb3a261 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3e117844 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x469f4c83 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x55a35d83 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x68ab629a 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 0x9021ebc8 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9073a71e gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa015bad9 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa2bfeea2 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 0xf7b7b9f2 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x002f4020 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x034cc57d rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03804881 svc_drop +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 0x07e941c2 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0817ad94 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c5b96f3 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eeab8ce rpc_init_wait_queue +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 0x0fe9ebb8 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10514d20 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1075594d svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x107b4893 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12250406 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x125cf733 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12756456 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14c7552b rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1855debd svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19100312 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x193da26b rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a6d5d3d xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b048d8c rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b4b87b3 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e7a208f svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f139a1d svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2205c5 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23aac891 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25e2b72c write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28ffd1ca xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29e70dd1 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b9bb3dc xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c2cde29 svc_xprt_init +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 0x326b316c xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36c381d3 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x378d5b13 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37fcb4b5 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387a5ef7 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b8007c0 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fa75195 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x455ff297 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4632d58f svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4689fa93 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48d5cbf9 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b3b2832 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c724093 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d1d9a9a rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x512738e8 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52647d81 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52b6fa3f cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x575764e6 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58da4cf8 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x599f7e4f sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ad2f458 sunrpc_cache_update +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 0x5da05c43 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fc1ba92 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fdc9f10 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x606137b7 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x630547da read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63ac111d rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66a609a3 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67561c7e cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68cb861d rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b75bf6e rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d1dafe9 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d4d6911 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x717365da auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72bce831 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7367f864 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7414216b svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x742672e1 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74ee75bb rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75024506 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7822a674 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78646b00 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78bd7931 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79f510c6 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x802b5476 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87f2387a svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e34c18f __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e726b6a xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8eb5dbc1 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x938151dd svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95518b89 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96b132a8 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9778d8d0 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98df804d xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b4249fd xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bdf817c xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c22c650 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f4be59a xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa056f072 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa064d385 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa148181e rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3a4ded0 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5a3b99d rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7766596 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9415f24 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9e99b5f cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac33a443 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac6bae8f xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacad4555 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3705eb4 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb49faec6 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb53af3b7 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb54690a9 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6513a1a xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8082628 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb951194b xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb4bd75d rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf398b9 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd05e791 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbebf8190 xprt_complete_rqst +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 0xc2e71db6 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc30b6ab1 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc385a61a xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc781310e svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8b29c4a svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcaa0a796 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcaa96246 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcccb0652 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd491841c xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6285709 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd69a25c2 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd93f001b svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd97af4d1 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb135a8a rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2eee6d7 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4602683 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6b680c0 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8956568 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea739a0e rpc_put_task_async +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 0xef4573f2 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf05a37ab rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf30189f4 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3519f27 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf665d17f xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf809149b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf969c93e svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfab62735 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb3dc13c xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb6dada2 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff557546 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffa208c0 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffb53570 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/wimax/wimax 0x024df09e wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x28877738 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5aeab288 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x610ae6ed wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x923707dd wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x99c65c96 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa223f72b wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa5eb9d15 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb3d0ef0d wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc865ab88 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd13604e3 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf299a153 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf6dd1b34 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0074af2c cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x04a59fbb cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x12bb65e8 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1fd7cc8a cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x33aa4d91 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34f98fb9 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x37936397 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4379c7e9 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4740e9ef cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x50227b53 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5b024baf cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5e37d22d cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5fd37b38 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x66aa24ee cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x699fa786 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6ee6f406 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x737cca6d cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x76034c53 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x84f94cf6 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8e6a7937 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa78d6ffe cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa7ce6d2f cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb39cad6d cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbf5ae169 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc1d53939 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc7731bd8 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd324c951 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xde49d2ec cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe9fe64b2 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xea32f175 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xea4d2b0a cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfcfb8b7d cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfde0a820 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x36bbb6d6 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9049d88c ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa837e5ff ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xef4a5cd0 ipcomp_init_state +EXPORT_SYMBOL_GPL security/keys/encrypted 0xe3829757 key_type_encrypted +EXPORT_SYMBOL_GPL security/keys/trusted 0xab4dc371 key_type_trusted +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0a672c55 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0adfe54a snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x62a0ade5 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x65ec527b snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x822bc9ac snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe88994c4 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0000cffe snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01ac672c snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01c9d6be snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x051c6b29 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0847de44 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e56c06f hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x120149de __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15ed8717 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16c4d7b5 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17086521 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17a9e852 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b3d412e snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1dd0076e snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ff6fb5a snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x205ed6b5 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29df8c86 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a0d5d25 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d9e7783 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2fcb1526 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3268c495 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x327f25e0 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32d38d4c snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3648bf83 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a03e57c snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x443d6519 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48278f3c snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4860805a snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48fa1953 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x492ca8ab snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a8a94ba snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d6b363d snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5057ab17 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5cf69b50 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61592692 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x657f4f64 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67138385 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68df7327 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a0e7423 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b097196 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b39d223 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b74191e snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f4b7350 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75cb0246 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7ea78e7c snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x819720fb snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82c4e4ef snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87468803 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87fa289a snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x887b614c snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x891a09c0 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8935daf2 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89974150 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a7ca429 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93c72d1f snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94c6e795 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x954c7fc1 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97925e34 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d8754ab 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 0xa36c158b snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6849792 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xacf302db snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae89a4c6 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaef5de94 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafc0214c snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb66489d0 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb88a0b29 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9693103 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9b1151f snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc58016d0 snd_hda_mixer_bind_switch_get +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 0xce03d302 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce248573 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd06e7b7e hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd09068b3 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd40902be snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb71fe94 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc846278 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xded0b70d snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe03453ca snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe10df4fd snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe96200ee snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea8dc12c snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf26aa934 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb4a4c7b snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb4df527 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc521342 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfcd9121b snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xffdb40a1 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x322666d8 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xaaeaeea0 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x38acf2b7 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xf1d0c2dd max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x124e6d87 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x1b2ed8b1 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x55629092 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x6fc55d6e aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xbefe359a aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x31d87638 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x77305141 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0xedcd526d wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x3214ac3b wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x486235ce wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x6b89edd3 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x9cfe9a02 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x20648d60 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xc1e5127d wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x799cbba2 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x9a671960 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xab040d21 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc71e17db wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00473a7e snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06c0cb2d snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x073634cf snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x09c383df snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0bdacd5d snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c7886e0 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0dbe03ac snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0fa30199 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1371d00a snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20d6dd39 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x255a88ba snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26b21e4d snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f3d90e5 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2fbcc194 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30292a06 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31f13b93 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x338b872b snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3479ba0c snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c5f27fa snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40e62798 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44307eae snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4684a071 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4831d466 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48f3a094 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x53393dc1 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58177d7a snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x597098ff snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a5e31b6 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a75eb06 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ba0068d snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d81f35a snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e0485c4 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6edcb5da snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70b3b06c snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71e49d59 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x734b6f50 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73c503a0 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77ed3c0a snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7894bc87 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a88e5ac snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bfa687f snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ff12951 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b2ea3f0 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91f7b1b8 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98cb707c snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9dc13aef snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f075798 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3672d1c snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaad48323 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf648c56 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1092752 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2944adc snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2b7c802 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2f197ae snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb49a141c snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5f630fd snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7e3d55c snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb27ccad snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf3e7733 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1eacbcf snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3ed02b1 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc4287d2b snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc774121e snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc78b7668 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd398b372 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd61010e6 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd724fab0 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8773d25 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb960852 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd73f578 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xddc06d75 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed54beaf snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xefd40536 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0c2e92d snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2634584 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf732583a snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9884c0d snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa0bc482 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc44521e snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd6645ea snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfdaf7718 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfeef6727 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff08e0ca snd_soc_dai_set_clkdiv +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 0x001233a6 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x00226936 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x003d3dd1 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x0048af65 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x0048cb84 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x00673a65 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0088bfa7 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00b19d33 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00dbce17 ip_route_output_flow +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 0x011d8a5c inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x01714770 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01817193 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a1533a fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01b4615a inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x01c44b66 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x01ce6620 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0231da71 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x02460804 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x02809ccb bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x028dff92 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x02f404db proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x031fa7e7 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0343d479 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x0368582e dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03e58af9 put_device +EXPORT_SYMBOL_GPL vmlinux 0x03fe1656 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04427d38 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x0485da1b __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0489a543 user_read +EXPORT_SYMBOL_GPL vmlinux 0x04979916 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x04d04dde inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x04e16bec usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x05125347 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x051af503 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x057d2f06 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x0589e106 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x058eca69 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x05b28922 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x05fbe7dd ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x06085cb3 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0611b607 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x06275c7f transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x0645d10c crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06656476 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x066d755e sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x06886505 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x0696f357 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x06d995ac generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x06db6010 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x06f92498 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x07118c15 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x07196c7f single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x074d5b9b ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x0750d59b inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x077ca0b7 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x077de8ed sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c6ca15 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x08120103 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x0854540a rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x0899d150 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x090fb748 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09283516 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x0940d6e2 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x097058ae tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x09a2b67e fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x09af3e1c bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x09fa34b8 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x0a5148b6 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x0a5511a6 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0a6205ef xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x0a79035c fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x0a7acb92 pxa_ssp_free +EXPORT_SYMBOL_GPL vmlinux 0x0aa07708 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0ae20aca init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x0ae88ed5 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x0af17f3b wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b286779 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x0b3252f0 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x0bb5acac bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x0bede569 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x0c2a4c2b ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c4e30bd queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x0c54f333 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x0c7f2474 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c8f22a0 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cf7de95 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x0d0c109d of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x0d1af45a debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d984d99 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x0dc52950 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x0dcc6a81 device_del +EXPORT_SYMBOL_GPL vmlinux 0x0dd23377 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e15e048 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x0e2b6efa pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x0e54aae3 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x0e584189 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x0e69f138 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0e9e62ae devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x0eec1062 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x0f01a292 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x0f3d6039 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0f5f86f7 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x0fac01cb regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x0fc011ac crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x0fef80e7 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x0ffb6ed0 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1012ae36 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10637ca4 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1094a43c fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x109eacb1 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x10ce626d pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x10d8d367 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x10de8d4b driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1109f598 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x119e1eb0 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x11ba0fe6 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x11cbac22 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x11e1f5f7 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x11fbc9b0 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x120444e6 plugger_remove_plug +EXPORT_SYMBOL_GPL vmlinux 0x122786ac ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x124ba4e7 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x124d23e4 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12f3e745 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x1301570e regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x131db0bd fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1364c13a __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x139cdb5b device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1449ecc4 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x14c94e09 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x14faa52f tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1524ff54 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x1572b0ce tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x1587b691 usb_unlink_urb +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 0x15bd3702 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x15e2f52a dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x1624140d anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x16320fab pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x16718078 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16b20b44 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x16bd14e5 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x16c822c7 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x16cce006 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x16e4acd6 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x16f77e3f hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x17066c1a tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x172be6c4 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17674f0d scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x17677324 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x176a0799 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x1793bd4b blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x179b46a1 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x17e3713c register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x17f22113 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x180ba869 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1811d6dd device_move +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18877afd netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x18aa0890 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x18b3919a __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x18b77846 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x18c6b11b ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x18c91e3a tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x198e6da1 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x1a1d87e4 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x1a254525 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a647302 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x1a78d084 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x1af65834 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b214ba6 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x1b55d755 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x1b69150f vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x1b9ac222 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bc985ce crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x1bde527b generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x1c30017b class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1c34a9df device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1c4d9116 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x1c54a5e6 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cfa4719 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x1d01eba5 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d4e10d6 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1d7922e9 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1dad98dc usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1df3b9bb hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x1e0f981b ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e8e4f1d ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x1e928bce spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec0ea3b crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x1ec458da hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1ed77d1a queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x1ee9814e irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1eef7484 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x1ef0b3fc sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x1eff013f crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x1f104639 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1f91a0e8 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1f97c7d0 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1ffab972 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x20057043 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic +EXPORT_SYMBOL_GPL vmlinux 0x204a2139 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x206a288d tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x20840dcd cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x20aa750b regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x216c3be5 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x21896995 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x220e9581 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22a4d10f dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x22b1c7dc class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x2302e15c setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x236a946d __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2393f95b relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x23c3b272 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x23c8836f free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x23ccd68f debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x23d65c64 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x23da1edf usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x240b739a iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2452d220 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x248ce85e md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x24bd40f2 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x24d7dd85 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24e8b55c kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24faf3a9 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x253f1e32 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x25465a1e ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x25abffc8 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x25ae279a transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x25ca09a1 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x25cce114 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x26016e6a vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x260dda91 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x263292e4 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x2669219f ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d37b87 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x26dccd39 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x26f7cacd pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x2723e12a usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x2732fe90 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x274a8481 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x2752d401 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x27575d38 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x276f87fa usb_string +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 0x27c1733c __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x281b5829 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x283aec28 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x2869c2b0 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x286a1112 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x289a49c0 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28d2559d scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x295d2f44 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x296f10ad debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x29d8a78c user_match +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2abbb597 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x2ac3db58 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x2ad3a3d9 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x2addc042 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b70c1bb pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2bedf1b2 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x2bf7718d set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c81810c dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x2ca9ec21 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ccf082f device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d2bd55c driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x2d506b1a __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d625dfb skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x2d70e900 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e0a14f1 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x2e20f1a6 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e518d36 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x2e76ab23 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x2e91080a scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ec00665 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x2ee93f92 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2effec81 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x2f023354 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2f0a4eea hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x2f100e7a ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x2f139119 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2f21ce44 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x2f45f147 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f59a11a sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f6fff38 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f8cbc0f usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe2d500 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x2fef513f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x30186f72 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x301be48d acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0x30669772 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x3082f505 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30af5442 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x30b4f956 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x30bdbfbd scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x30ce7e4f spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x30f1f11d usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x3100e5e4 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x319dc95e ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x32398120 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x323f4177 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x329249a0 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x3298ef01 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x329d91f0 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x32a32bc6 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x32abd0d4 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x32cc35da acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x331ad63b bus_register +EXPORT_SYMBOL_GPL vmlinux 0x337056ed find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x337699ba crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x338b1984 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x339ef3ed regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33eeebeb shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x341dd501 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x346d4570 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x34a5b47d ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x34e4f414 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x34ea4282 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x34efdfc5 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x35262762 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x35574162 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x355afa49 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x35a710ce pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x35a9122e inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35ea0b02 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x361154a1 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3626343f init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x362f9c19 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x363396cc mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x3691faab class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x369cc3d4 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x36b42931 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x36ff2fad usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x371b625f rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3722400f sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x37c1df7d wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x37d43c91 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x38685ffc dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x3874a0ee workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x388672a1 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x38921f07 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38d9955f platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38f41775 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x391aa7cc regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x39299863 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x392b3e2f vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x395388af usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x3969b3c8 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x3986751a platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x39955ad0 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x39c52f2a sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a315187 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x3a8467cb xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x3aa2ff82 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x3ab262e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x3abe3fe1 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x3addc8f0 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x3b6c9513 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b865146 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c41c5b3 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3c466c5b bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ccd18e4 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d2b55e0 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4244b2 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x3d5e2697 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x3d8ed50c sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dd670cb unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3e0838a5 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x3e12a9cf bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3e19c480 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x3e1af589 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x3e2ba6d4 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x3e2f0557 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x3e6f0c53 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3ee89bad pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f256544 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x3f2f9665 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x3f7cd113 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x3faa810c __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x3fac1f43 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x3fac3b19 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x3fad02d2 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x4011a00d pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x4017c7bc ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x403a506c ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4070229d inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x40864296 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4095b7b6 iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b0c473 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x40be7116 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x416c7f77 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x418662af da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x41b1a870 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x41e7c8e4 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x41f35e86 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x4218d715 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x422963f2 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x425d6677 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42f040d1 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x42f9012b usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x4310593a dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43528bc1 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x436343bc cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x43869e97 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x4390856d devres_get +EXPORT_SYMBOL_GPL vmlinux 0x4391b194 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x43b859b2 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44379205 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x44521b53 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x44576b89 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x447b7026 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x45065bb6 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x4564a7e3 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45b308a0 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x45beafd3 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e804d3 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x45f7be43 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4611b866 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x4617a4ff tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x4651d57e usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x465d5b05 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x466786b1 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46872c4a tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x4692576c fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x46c72db6 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x46e20316 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x4713a237 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47f05500 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4801fae7 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x48126082 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x4820c5ef pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x484f512a cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x488159d8 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48ba0e05 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x48ea9b5b disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x48edcac3 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48f9ed92 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x494c4ee8 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a655fd regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x49d49fce blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x4a2ef246 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x4af313c4 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x4b0f230c usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x4b4b51a3 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x4b57e741 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x4b841e71 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x4bf67f1b mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x4c2c408f dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x4c3023b9 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x4c5d3ae5 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x4c6da5b0 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7d24fb platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x4c8282c2 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x4ca0a312 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x4ccddde9 device_add +EXPORT_SYMBOL_GPL vmlinux 0x4cfe5f93 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d97d963 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x4d99e776 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x4dfb2920 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x4e151051 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x4e2bf66e relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x4e3df478 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4e65b8cc dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4e8593bb ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x4ea4cb13 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4eacbde5 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x4ebcc546 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x4ecac20b crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x4edc4506 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f12b0f3 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x4fb7bd21 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fc79be6 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff08d90 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x5002917e __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x50167b64 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5097819e ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x50a6d601 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x50afd589 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50bcec8e cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50da1aed md_run +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 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51a7152d usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x51b0396e iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x51c5112f ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x51d9853e attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x51fe2b5a usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x52005544 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x526ae0e2 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x52bfbc74 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x52c5db63 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x534f74ee power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5382e303 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53ddc76d hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x53f0c7f6 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5423a7d8 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x547d4e38 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x54940939 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54e70bae tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x5576afbc kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x55dcbdf7 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x55e03e2c ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x55e74041 of_pci_address_to_resource +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 0x565797ec ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x5659d21c cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565b7819 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x568538e0 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x5698b799 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56c4e561 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x56cc63b9 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57803042 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x57908a7e sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57c226cd spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x57e25fae fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x57eedbcc transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x57f37e92 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x57f9a4bb led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x58766a4e device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x588d17fc crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x58b1e1e3 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x58f05c88 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x59334b41 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x596fc7e5 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x5975a9a6 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x59786ab2 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x599df1e0 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x59f216c5 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5a2809aa __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5a37c9fc pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5ac759ac mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5aeeee67 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x5b184f1b put_pid +EXPORT_SYMBOL_GPL vmlinux 0x5b3eef8f tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5b8319d2 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bc43462 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x5be26c5d rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c44a583 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x5caf29df da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5cb5647b pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x5ce94097 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5ceaf56d i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x5cf5d363 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x5cf6353e device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5cfe29c1 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x5d0b3280 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d19a1e0 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x5d20588c pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5da34915 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x5db72bc0 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e3206de devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x5ec24a1c dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x5eff215b ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f46d244 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x5f65f8bd rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x5f880b34 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x5f913397 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x5fac01e6 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x5fcac0af ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x601cad72 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x603c2ea8 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x604a1146 pxa_ssp_request +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60b2f963 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x61400c79 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x61eb69c8 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x61f06f19 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x6227bcda skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62cbc4e1 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x62ce200c wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x634cefa5 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63804f99 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x63896fff adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x63b24577 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x641b544b ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x6461d583 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x6470859d ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x649d425e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x64a10c05 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0x64a3554b ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0x6508e9bf i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x65188ed6 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6559fb9d sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x65895fdd page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x65a02d7a stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x65afb143 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x65b09788 hrtimer_forward +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 0x65ec6a40 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x65f01c32 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6627c4c1 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x668b0ad2 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66c57055 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f41987 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x674ba536 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x676cf7a3 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67e09245 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x683b0f73 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x684b7b12 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x687d305f pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x6885cf88 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x6887b460 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68fa47e2 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x69101941 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x6917c1a4 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x697b18f8 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x699f1a84 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x69a00c61 dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x69e78722 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a3596e8 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a77e19c usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a96ae9b platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x6aaf2dd3 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x6ab96aad relay_open +EXPORT_SYMBOL_GPL vmlinux 0x6abcabfb device_attach +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6adbe643 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6bb022e0 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x6bf8720e driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6c022aeb dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c15eb68 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6c24f406 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x6c3bf04e platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c64ce86 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cbe9c1a regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x6cc32d2c blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x6cdcf0ed crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x6ceacd25 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x6cf69661 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x6d16c076 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d534548 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x6d8fe544 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x6d9f03df ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x6db189e8 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x6db1a63a simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x6dda9a9d pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6e14603a led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e776cd1 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x6e7f4daa ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x6ee5c04a bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x6f014291 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f23c837 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x6f58c9c6 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x6f841d4c tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x6fa40674 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x6fc91e6a rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x6fdb016f __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6fe8418a inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70105097 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7033d869 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x704f9599 cpufreq_cpu_put +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 0x70c368dc usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x713a83ea dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x717134c9 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x71a8d638 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x71cf2039 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x726511fb skcipher_geniv_alloc +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 0x728784b8 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x72c28d58 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x7318e671 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73d1b241 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x741ab0aa bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x742359d9 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743e7971 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7450548d tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x745736a6 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a764b5 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x74ab3fb2 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74f97d3f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x750299f2 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x751177e2 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x756d8116 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x757a48a5 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x75c40d92 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e6aaeb sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7660fa50 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x768e2a52 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x769990ee ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x77321ef2 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x7764c1b4 unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x7801f1d8 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x78170132 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x784b56b3 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x78d59ed3 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x7918ddb9 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x79254b65 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x79313f8d ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796ba51b device_register +EXPORT_SYMBOL_GPL vmlinux 0x796c6641 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x799b4c3b class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x79a9fdfe relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x79c38a4c skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x79e0d52a init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x79e1ba13 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x7a07c6e1 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a74450d pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7a75a664 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b7e1216 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x7b9452c9 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7ba90e52 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x7bfd7168 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x7c22c49f shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x7c7bcc7b blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x7cad034d pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x7cc57392 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x7ce00312 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7d04f79b __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x7d10e850 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x7d1b70c3 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x7d2f8a5a scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d7323bd module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x7d8e23c9 ring_buffer_lock_reserve +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 0x7e28978e hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6f52b7 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x7e85bc95 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7eae77e4 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7edc324e tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x7f23aa9b usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x7f23bcc7 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x7f36e7da securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x7f530f2d usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fb76572 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x7fcebd84 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x7fe62338 mmu_notifier_unregister +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 0x801a7d66 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x805db0d2 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8069cdf1 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80a5182f user_update +EXPORT_SYMBOL_GPL vmlinux 0x80c38a7f plugger_init +EXPORT_SYMBOL_GPL vmlinux 0x80c48b51 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x8101179f xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x81260c1c usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x815a75dc securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x816bc00e ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x81d8f90a wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x81ddfeec platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8250fef2 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x825f10bc usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x825f5790 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82db31a7 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x83a2f7e4 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x83a4c9ce debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x83be5fef blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x841bcfd2 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x84273f5c pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x8436a759 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8459a73f sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x846417af raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x847beabe platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x848936a6 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x84b4acb2 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x84c778a7 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x851ced00 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x855e9825 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x85a0334c sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c9b88c __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x861861f3 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x86319928 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x867b68ee dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86901156 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x86f012b5 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x872644f3 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x872f2a0f fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x874f4ec7 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8787b23a crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x87b14369 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x880790da wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x880fd819 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x882ba9bb apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x8831f8b1 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0x884f8bed kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info +EXPORT_SYMBOL_GPL vmlinux 0x88965ccf usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88ba1681 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x88c47ce7 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x88d5c701 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x88d5efcb sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88e5d689 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x89677b3f regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x897aabc0 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x898f9400 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x89ba8b10 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x89bb9ca9 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x89dba863 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x89e13539 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x89f28b24 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x89f33d1a ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x89fa5245 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x8a0055b6 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x8a05c79c ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x8a1254d6 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x8a2d5c30 system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x8a7def1f cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x8a95e06c rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8ab72982 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8abd22e0 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8b121c73 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x8b671ef5 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x8b700655 input_class +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b7bad91 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x8c05f7b9 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x8c223df1 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8cb874ff da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x8cc4a9dc ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cddf02c inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x8d4e2952 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8dad55e8 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x8e062601 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x8e328727 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x8e3a6ef0 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x8e4ddf2e bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x8e6778ef inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x8e7eada2 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8e9c04cf __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x8eb083a3 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ef3e741 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x8eff1e1d ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x8f35fadd blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f7bfad2 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x8f8b5260 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fb03667 css_id +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x900c26cb ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x902ad009 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b0f163 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x90d00f97 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x90d06922 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x9143a64c pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9160bdaf each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x916ce265 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x916e8474 dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0x919e4177 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x920e83c7 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x922c31e2 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x92317665 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x926f7563 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92b8c7db default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x92bdaa18 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92fcc438 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x9317028c kick_process +EXPORT_SYMBOL_GPL vmlinux 0x9355139d ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9366c1c0 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x93a67eca srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93c55870 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x941ff699 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x943173bb blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x9485264d unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x94896af1 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x948ba28a input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94d9b661 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x94e96cb0 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x94f09d52 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x9522fb12 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x952773a7 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x953cc656 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x958f70a5 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x95bc0757 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x95c625bc wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x95da94ca perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x95f2808f crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9627467a raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x963b15db __put_net +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x96824ce9 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96d2e991 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x978465bd ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x97b61c1f usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x97b8c95f srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x97bb4cec PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x97de4ae2 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x97e5643f find_module +EXPORT_SYMBOL_GPL vmlinux 0x97f67532 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9837ea19 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x986947bf bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x986cd6c4 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x98a0d242 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x98b2c94e usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9998f47e inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x999ed4fc inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x99c1bfc8 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x99e644e0 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x99e71714 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x99f2b2e0 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a4811ce tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x9a7c3d0b root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9a88ca44 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x9aaa8dc4 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x9ac89b7c cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x9b16edc0 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9b8aeb3e fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9b8b9c6d sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bcd19a6 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x9bd8ed32 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x9bec3511 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x9c2891b2 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c8466a0 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x9c95bccf pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cbc7dad perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x9ce79197 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d039a45 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x9d04b96a simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x9d1c3c9a crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d58057b ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x9d66b106 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9d8f671e regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9ddc8995 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x9e6df887 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9f197315 plugger_set_plug +EXPORT_SYMBOL_GPL vmlinux 0x9f1c745c pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x9f21072d __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x9f393859 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f4c104d unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x9f5f2f90 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9f93db8b ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9feff031 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa0355a67 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xa0690c74 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xa09b9482 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xa0b1b850 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa0b5bc0c css_depth +EXPORT_SYMBOL_GPL vmlinux 0xa0c80a64 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xa0d245b8 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa153f1a3 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa15c4253 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xa177b34a crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa18e1737 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa1b4ef00 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xa1f21ce3 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa21cee95 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xa23c8986 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xa2512b8d __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xa26f92ca skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xa2a9051e __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa2cc5401 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2ea2904 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xa3540635 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xa384ee69 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0xa3c06f6a dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xa3c1723d srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa4338967 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa4340f5a crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa43c717a pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4a514bc debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xa4b38ae2 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xa4b91ed6 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xa4ec2f33 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xa4fa0280 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa5043344 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xa5100be8 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xa52153bc sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xa5256793 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xa55d1ee1 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xa585183c ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xa5c226ce cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xa5e86d15 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f1f3d0 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa63c7567 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xa6499bbd pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xa67a0216 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa6bfed95 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xa6c7af4d register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xa6efdbc8 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa76ff693 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xa79d0085 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa7b19602 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa7bf0ffd sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xa7c0d17b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xa7ef34eb disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa82f5a6c __css_put +EXPORT_SYMBOL_GPL vmlinux 0xa83daf37 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xa842ac52 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xa854ef58 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa89bc285 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xa8f01e10 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa8f7eeb6 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa915ca91 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xa91ee5a7 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xa930453f rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xa93415ae blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0xa9375757 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xa967df44 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xa9929bd2 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xa995d6c2 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9d19580 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xa9dd9eab get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xa9e8668b spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xa9ecc1c4 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xa9f7d0f3 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xaa0a29a6 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xaa110e75 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xaa158003 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xaa2a5745 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa683286 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xaac4e672 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab116a3c rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab13ff2b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xab66289e __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6cbb4d flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xaba39b31 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xabad3648 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xabaeb95e stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xabb57caa sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xac1c7ece wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xac8a171b tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacedbbbd regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad2551d3 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xad2d7acf rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad715fb1 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xad8a7b7a __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xad8bd64b usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xada61968 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade29ea9 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae349dd5 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xae3ec95e file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xae5c2edb usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xaea5dbfb noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xaed2a443 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xaedcaa68 ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xaf160fed scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xaf1d4034 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf84ffca transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xaffa1999 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb0219ed4 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xb03b833f ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xb03de06a ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb08605cd dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0xb0c4bc5d posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xb0d013a0 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1257016 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18506b9 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xb1a04098 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1c9fca9 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xb1f9997a stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xb1fec592 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xb20a17c2 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xb21a5859 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xb24826dc user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xb260c0cd rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xb27a92f6 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xb285f9e3 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xb2b35d1b raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xb2b9be6d fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb2d6d07e blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xb2d8f192 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xb306dc70 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb352acb5 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb4335be9 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xb43ad59f ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xb4672836 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xb468dacc device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xb4c6cf21 sysfs_remove_link +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 0xb541e67b queue_work +EXPORT_SYMBOL_GPL vmlinux 0xb5858c36 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5a8bdc9 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xb5c74f75 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb667258e get_device +EXPORT_SYMBOL_GPL vmlinux 0xb66e85e7 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xb6877b65 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xb68fe798 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xb6aaac7c sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb71bac2b fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xb7354504 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb776767e rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xb7774562 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xb79801f3 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb844afc5 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xb84e4c47 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xb877e907 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xb87982ee ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb87b48b6 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xb8a151d9 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb9561d00 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb990cab8 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xb9ab74ff mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb9cd0445 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e7ab4d ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba2e8d6d device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xba647b3b ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xba83b368 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xbaa3f64d cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbae14147 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb01b12b sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0a4957 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb9ec4af __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbbf08367 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xbbf3cd31 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xbc99b85b sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xbcb2d540 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbce5db8d crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xbd28d342 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd54d44a md_stop +EXPORT_SYMBOL_GPL vmlinux 0xbd6e3d12 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xbd6e679a usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xbd81c62f crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xbda9240e sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xbdb02a7f inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbdbf7c18 platform_device_register_resndata +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 0xbdddcddc vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xbdf6f801 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0xbdfb6786 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe293388 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbeab190d aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xbeb34f54 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xbeb37863 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbee44df4 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf32ba9a kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xbf373eee regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xbfa17669 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xbfce1bc1 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xbfde4ec5 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xbfe250f9 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xc03c3dcc kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc046114a skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xc07f91d1 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xc082bcd0 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xc08fef1a queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xc0aaaa9e hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d3dafd ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xc0e1402d __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xc0e3d7c4 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xc0eba136 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xc0fae00f __inet_twsk_hashdance +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 0xc173f253 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17bac96 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xc18bc125 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xc1a17cf7 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc1a7b906 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xc1aa1c64 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xc1bc3244 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc24ebff1 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc25b5982 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2cdca95 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2eea66a driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc2fe1e20 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc33fbe99 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3685ff8 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc37bf726 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xc3959be5 blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3d27ccc firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc3ec9773 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc429339f crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xc44bf172 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc490aba3 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xc491d3b6 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xc4abf814 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc51fd0c2 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc58cdb60 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5c6297f regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc677510d device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc71e079a md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xc7584c82 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xc7627288 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc7c4125f devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc820eec2 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xc822da95 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xc8451a7b ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xc8681a79 usb_ifnum_to_if +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 0xc88ed8c8 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xc891a033 dm_rh_get_region_key +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 0xc9159d9f cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xc92a8803 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xc9338eef ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9670c4f sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xc986c65d tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc9873d6c init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9ecfabc crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xca49ffef task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xca5de2d2 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xca817f86 edac_class +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca9b5dad print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xcab70bf3 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcad11385 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xcb15a7c9 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xcb16a8ba dm_put +EXPORT_SYMBOL_GPL vmlinux 0xcb29d5f7 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xcbb820be skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xcbede8eb seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc402455 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xcc5de82c regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc8a49a1 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcc949ddc tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xccbc380a ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccdfc67d crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xcd1b5ae7 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcd212a59 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcd55c9f3 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xcd6f31f0 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0xcd742b1f blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xcdbc7436 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xcdc50510 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdfea222 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xce01ba86 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xce070420 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce46717d led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xce4beee9 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce910331 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xcebd05e5 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xcef929ee fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xcf205a08 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf889806 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xcf95b3f3 free_css_id +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 0xd0a2383c inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0xd0bb9a7a sysdev_class_unregister +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 0xd0eff791 shake_page +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd0f610fb ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xd11b0237 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b olpc_ec_cmd +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd17f6f79 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xd182e9e2 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1e7dd96 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd246aaa1 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xd25d0e28 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2970b8a __olpc_ofw +EXPORT_SYMBOL_GPL vmlinux 0xd2a51521 is_hwpoison_address +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d084f4 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xd2da4bc3 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd2f84e5d sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xd3208f3a fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd32e4f50 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33d5aaf ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xd341db6f i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xd3668195 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xd369df3f rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd397bbac regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xd3aa7216 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3c1986e tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xd3e288b4 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xd3f9c6c0 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xd47e3cf9 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xd4be9ff9 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd4d34da9 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xd4dd2b9d udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd5059c7a tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xd50dfb43 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd536fb29 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xd5512129 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5a64791 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xd5a9cc0e regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xd5b007bb uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xd5d2d771 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xd647c55b ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xd65bcde1 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xd65c4304 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd6940f79 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xd6cdf263 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6f69b85 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd72670aa scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd748ad29 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd75938f5 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7f16da0 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xd8250a5c iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd874b1da edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd92485e9 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xd9493bbf usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd977b054 dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0xd9cec7a3 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd9ee4663 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0xd9f5fd6d wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xda1612ee crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda331d7b inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xda43e013 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xdadc1900 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb056dcb zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xdb0597c3 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb57799a blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xdb5f2b45 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xdbcd0c92 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xdc65853b sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdca060e7 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xdcb83dff xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdceffb3b pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xdcfe7cd7 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xdd0bf1e8 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xdd1da3e0 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xdd309a04 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xdd47f9d6 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xdd6d457f dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xdd91eb4f ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdda7a795 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xde17555a ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde4ac87a sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xde6e35ff pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xde8aa578 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xde8ce5f9 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xdea8c303 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xdf3952b9 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xdf6c6186 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xdfc7cbcd mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xdfef424a fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe03e7667 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xe056fa04 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0c3bbb3 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe11829f4 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe12f8724 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1568d9c erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0xe17c2fe1 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xe181e443 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xe187ee35 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe1d6680a ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0xe265a692 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xe26cdd9a sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2af54f1 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xe2caa429 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0xe3091a18 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xe31e5d31 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xe32cdfd1 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xe37e8fc1 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xe38dbd0a fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xe3a04335 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3a94211 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xe3ac8db2 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xe3ba6173 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xe3f64d30 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe4035a42 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xe41785ba crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xe4183af6 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe4aafd9b blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4ee5d58 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xe503c600 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xe5107341 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe56530e7 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xe571f5b4 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xe5c38a26 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xe5dd59a8 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe5f75e95 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe6334afe init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6564673 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xe661db1d cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xe690aa6e perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xe6a3b281 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7171af3 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe726a93d __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7810810 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe7b6f8bf ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xe7bf0e60 mmput +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7c5bbe2 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xe7e98738 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8046c2b driver_find +EXPORT_SYMBOL_GPL vmlinux 0xe81aed21 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe8263bef md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xe826ec19 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8ae3a5c led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xe8b70d1e adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xe8ce01b5 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xe8ebaf34 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe953300d rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xe9568451 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9759d38 devres_find +EXPORT_SYMBOL_GPL vmlinux 0xe9793b90 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe9ad7c9c unregister_pernet_device +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 0xea222d80 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea37f5e0 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xea3a877b debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xeab0ba43 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xeab4a756 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb559082 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xeb97ea22 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xebb9eced usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec473dbe disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0xec5ceec6 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xec659dfe device_rename +EXPORT_SYMBOL_GPL vmlinux 0xed49611a find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xed7a5e4b fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xedabe2d1 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xedbf202f ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee740d12 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xee811ee9 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xeed42ea6 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xeed7fa49 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xeedc16b2 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xeedf57b4 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xeee4e3b0 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xeee733d3 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xeee8d7b7 device_create +EXPORT_SYMBOL_GPL vmlinux 0xeeea5180 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef47912c ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xef657f8f xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef8a5c69 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xef92b3fc usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xef955c20 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xefb682aa sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xeff50675 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0xf002d791 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf086f911 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0xf0a94556 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xf10bee22 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf10ee40d dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0xf127535b dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xf14c13f2 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xf15cd932 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xf16855ff ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xf1791ac9 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf19aa21b sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1dedc0e usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xf25aaa6e usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xf2777aa4 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xf284c860 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xf2c11390 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xf2e45981 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xf2ed9132 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf311c7c4 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xf3a9ba1a spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3fae4a6 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf41af2fe inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xf41fed5b vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xf43a9ba1 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xf450c271 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xf45fe6fd crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf48ed866 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf49cc8ca ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf4a7e0fc ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4e53d49 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54d848d blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf55c5b54 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf575e42b crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xf589316f crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5abc448 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xf5fbff57 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xf60c764b rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf61ab63f pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xf627c175 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xf6677e2d devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6a58fde usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ee488b sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf72725cf ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xf7274da8 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xf745cc75 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xf79625f4 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7be7e03 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xf7cf1c75 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0xf81d7a3f get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf83af12c shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xf846b94a device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xf85a65a2 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xf872c59b hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf87e139f pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf88eb952 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8f75b6f sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf94cead1 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ab309f ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9da6a92 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa142e01 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xfa8fde58 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xfa9430ad blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xfab2251a ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfaceb42e debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xfb0d0ffe olpc_ofw_present +EXPORT_SYMBOL_GPL vmlinux 0xfb16a0fb crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb7e5b95 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0xfb8556a8 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xfbd032c0 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xfbea7431 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc35ca71 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc716789 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc7e8692 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xfc82a52c print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfca4b9b0 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xfcc8f28d ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xfcf27c2a blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xfd2ce3d5 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xfd71c04e usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd72fcd6 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xfd8e2158 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfd8e503a uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xfda98f81 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfde42ed6 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xfe3a93b6 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xfe50b9c8 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xfe752ad7 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed73a40 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff16170a crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff9916a4 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffaeec8c scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xffba76ad dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xffc6b13f crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xffd7677c inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xffe455e6 nf_unregister_afinfo --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/i386/generic-pae.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/i386/generic-pae.modules @@ -0,0 +1,3306 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6pack +74x164 +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 +ab8500-ponkey +ab8500-usb +abituguru +abituguru3 +abyss +ac3200 +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acl7225b +acpi_ipmi +acpi_pad +acpiphp +acpiphp_ibm +acquirewdt +act2000 +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s120x +ad2s1210 +ad2s90 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5398 +ad5446 +ad5624r_spi +ad5930 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7745 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +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 +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16251 +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 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt75 +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +aes_generic +aes-i586 +aesni-intel +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +ali-agp +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd76x_edac +amd76xrom +amd8111e +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +analog +ansi_cprng +anubis +aoe +apds9802als +apds990x +apm +appledisplay +applesmc +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +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 +basic_mmio_gpio +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcm63xx +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bmp085 +bna +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcm80211 +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +bu21013_ts +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 +carl9170 +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_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +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 +cpia2 +cpqarray +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535_gpio +cs5535-gpio +cs5535-mfd +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 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +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-raid +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 +ds620 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +dummy_hcd +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-lmedm04 +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_midpci +dynapro +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +earth-pt1 +easycap +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 +ec_sys +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 +emc2103 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +encrypted +ene_ir +eni +enic +epat +epca +epia +epic100 +e_powersaver +eql +erst-dbg +es3210 +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +eth16i +ethoc +eurotechwdt +evbug +ewrk3 +exofs +exportfs +f71805f +f71808e_wdt +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 +fpu +freevxfs +friq +frpw +fsam7400 +fscache +fschmd +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +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_ncm +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-usb +gpio-addr-flash +gpio-charger +gpio-fan +gpio-i2cmux +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_vbus +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_konica +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_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +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-axff +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +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_timesource +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +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-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +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 +i7300_edac +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 +ibmlana +ibmmca +ibmpex +ibmphp +ibm_rtl +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +ii_pci20kc +ili9320 +imm +imon +imx074 +in2000 +industrialio +inexio +inftl +initio +inport +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +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_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +iris +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_boot_sysfs +iscsi_ibft +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +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 +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +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 +leds-88pm860x +leds-adp5520 +leds-alix2 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lp3944 +leds-lp5521 +leds-lp5523 +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 +libceph +libcrc32c +libcxgbi +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_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 +lp3972 +lp486e +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4215 +ltc4245 +ltc4261 +ltpc +ltv350qv +lxfb +lzo +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 +max17042_battery +max2165 +max3100 +max3107 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8998 +mb862xxfb +mb862xxfb_accel +mb86a16 +mb86a20s +mbp_nvidia_bl +mc13783-adc +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc33880 +mc44s803 +mce_amd_inj +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdacon +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +metronomefb +meye +mfd +mga +michael_mic +micrel +microcode +microtek +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +ml_ioh_gpio +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mos7720 +mos7840 +moto_modem +moxa +mpc624 +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mrst_max3110 +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_defrag_ipv6 +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 +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntfs +nuvoton-cir +nvidiafb +nvram +nv_tco +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +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 +ov2640 +ov6650 +ov7670 +ov772x +ov9640 +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_platform +pata_qdi +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pbe5 +pc110pad +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca953x +pca9541 +pca954x +pcbc +pcbit +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pch_can +pch_dma +pch_gbe +pch_gpio +pch_phub +pch_uart +pci +pci200syn +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 +pn544 +pn_pep +poc +pohmelfs +poseidon +poulsbo +powermate +power_meter +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +progear_bl +proteon +ps2mult +psmouse +pt +pvrusb2 +pwc +pxa2xx_spi +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qt1010 +qt602240_ts +quatech_daqp_cs +quatech_usb2 +quickstart +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192se_pci +r8192u_usb +r82600_edac +r852 +r8712u +r8a66597-hcd +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +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-wl1273 +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +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-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +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-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-msi-digivox-ii +rc-msi-digivox-iii +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-002t +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-terratec-slim +rc-tevii-nec +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +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 +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-ds3232 +rtc-ds3234 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +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-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl8150 +rtl8180 +rtl8187 +rtl8192ce +rtlwifi +rts_pstor +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +s921 +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 +sam-ba +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 +sbe-2t3e3 +sbni +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-platform +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 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +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 +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc9194 +smc91c92_cs +smc-mca +sm_common +smctr +smc-ultra +smc-ultra32 +sm_ftl +smm665 +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-aloop +snd-als100 +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt1605 +snd-azt2316 +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-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +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-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-sis7019 +snd-soc-88pm860x +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-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max98088 +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-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +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-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +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 +softing +softing_cs +solos-pci +sony-laptop +sonypi +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +specialix +spectrum_cs +speedfax +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +spi_topcliff_pch +squashfs +sr030pc30 +ssb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc1100-wmi +tc3589x-keypad +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 +tda18218 +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-kstrtox +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tm6000 +tm6000-alsa +tm6000-dvb +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 +tps6524x-regulator +tps6586x-regulator +trancevibrator +tranzport +tridentfb +trusted +ts5500_flash +ts_bm +tsc2007 +tscan1 +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 +twofish_common +twofish_generic +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +uas +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 +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 +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +vicam +video +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio_balloon +virtio_console +virtio-rng +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt6656_stage +vt8231 +vt8623fb +vx855 +vx855_gpio +vxge +w1_bq27000 +w1_ds2423 +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 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +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 +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +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 +xenbus_probe_frontend +xen-evtchn +xen-fbfront +xenfs +xen-gntdev +xen-kbdfront +xen-netfront +xen-pcifront +xen-platform-pci +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_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +z85230 +zatm +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/i386/virtual.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/i386/virtual.modules @@ -0,0 +1,520 @@ +8021q +8139cp +8139too +8390 +acpi_ipmi +acpi_pad +acpiphp +act_csum +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +aes_generic +aes-i586 +aesni-intel +af_802154 +af_alg +af_key +af-rxrpc +ah4 +ah6 +ahci +algif_hash +algif_skcipher +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 +cachefiles +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 +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-raid +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 +ec_sys +einj +em_cmp +em_meta +em_nbyte +em_text +em_u32 +e_powersaver +eql +erst-dbg +esp4 +esp6 +evbug +exportfs +fat +faulty +fb_sys_fops +fcrypt +floppy +fpu +fscache +gameport +garp +gcm +gf128mul +ghash-generic +ghes +gre +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_pe_sip +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 +mac80211 +mce-inject +mce-xeon75xx +md4 +michael_mic +microcode +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_defrag_ipv6 +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 +nls_cp437 +nls_iso8859-1 +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 +seed +seqiv +serio_raw +serpent +serport +sha1_generic +sha256_generic +sha512_generic +sit +slip +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 +test-kstrtox +tgr192 +tipc +ts_bm +ts_fsm +ts_kmp +tulip +tunnel4 +tunnel6 +twofish_common +twofish_generic +twofish-i586 +ufs +usb-storage +usbtouchscreen +vesafb +veth +vfat +vga16fb +vgastate +video +virtio_balloon +vmac +vmw_balloon +vmw_pvscsi +vmxnet3 +wanrouter +wp512 +x25 +xcbc +xen-evtchn +xen-fbfront +xenfs +xen-gntdev +xen-kbdfront +xen-platform-pci +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_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +zlib +zlib_deflate --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/i386/virtual +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/i386/virtual @@ -0,0 +1,11795 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0xa405852f kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xe0a9ef06 kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x907665bd scx200_cb_base +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 0x68a4f635 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 0xeec81264 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x27fe8742 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 0x0b9f8c52 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x0eb66a9b pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x100ec686 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x1ad4cc01 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x6d04a6de pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x71a762c8 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x8c07e73a paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xa77e7ccd pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xc1954419 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xe6683971 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xf4b82125 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xf753fc76 pi_schedule_claimed +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x04fc6a3f ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x08bc3f4f ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1abe76d2 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x32a239f8 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x33b20f28 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x343f8f27 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3d50ed2c ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3f653126 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4bee51fb ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4e164d09 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x57309e81 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5ac1f6fe ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67ef4629 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x68e392e3 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x778c778f ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7c1557f7 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7f81b5c7 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9985f25c ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xaa648bc3 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb40f7a20 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcee9c9e9 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf1774721 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf199a943 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf7fd0cfa ipmi_request_settime +EXPORT_SYMBOL drivers/char/nsc_gpio 0x020b3756 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0x25f1a751 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0xde7bbfe4 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 0x76ec9b51 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xc3cf2e2e edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xd47abdea edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04609d93 fw_core_add_address_handler +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 0x17d52843 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c383b04 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x324ff7cd fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c0f5ca6 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x407fcd88 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x51a02fca fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5832aa9f fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6515bf80 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x66dcf753 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x68318251 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6a37df14 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x89ed0be8 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x91f5b83c fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9266f2bd fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9f3a0895 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb0d3c303 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd0b71dc8 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd38a617b fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe10659c6 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe907e762 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xee896e8b fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf700ae33 fw_bus_type +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03654112 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03fd71c5 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09d8f376 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a3c35bb drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c3274a2 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c596417 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12912411 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x182e7f5c drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19afaa18 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x205ffebc drm_property_destroy +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 0x231d5e72 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2410c1ba drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24920571 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x266ff9e1 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2718e296 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bf1ba86 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c893888 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f0aec57 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x304f2e85 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31911dc3 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32e44dff drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3561db91 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39f9a673 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bee2203 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb7aed0 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ff383f3 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40511610 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x422545dc drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42f22efc drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44086128 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45a0ba01 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x467c3a4e drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a20833f drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b87ec47 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d62eaba drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f124bf7 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f1f8a2e drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50484133 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x558a3de5 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56f448c2 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5712ee94 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59493ed3 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a8945aa drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ae4e3cb drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b69532e drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e337024 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ffb77c8 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60e66579 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x620685bf drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6608aa68 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66333f84 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x663fde27 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67032874 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6755ee2b drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b487a27 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d39db1c drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6deabdf6 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6dee62a5 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71a171a1 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71bb7317 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x723737c7 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75a0bb30 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77746a1a drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77c7df68 drm_cvt_mode +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 0x7e5110a3 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80cba680 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81c5a7b9 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81d2aff8 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82f38cb6 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x840248e9 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b9c9027 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c590adc drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8df0190e drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x900f8cb3 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9190f4a2 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c96469 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x940eeb46 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9504659c drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x950dc4ba drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97ead91f drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98d889f0 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99362d31 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99516e2e drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a4105e8 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b342d9b drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f55a435 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2d951b8 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4ef1286 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7300d4b drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9669747 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa19886a drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab51f087 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabec8e47 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1ce9717 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2fb30b3 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb39e4ef3 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb47efa8c drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb55fa99f drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb64dc47b drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbedc52eb drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5a5115f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5b520b3 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7e8a898 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca17bc75 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca392519 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce4aa502 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf2fbf7d drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd24826d6 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd30f116b drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd69927a1 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd76c2213 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbe810f9 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbfbeb65 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf1aed32 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfce9309 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0db677c drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe126c05a drm_crtc_init +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 0xe5190fcf drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6484dda drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9235b6a drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe950cd4b drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe995a2d8 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea4f7a11 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xece82124 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed411ddc drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0fd493b drm_mm_clean +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 0xf628b77d drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf69c32ca drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfac3c9af drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbff70ad drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe46cd7d drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff3b56fd drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff6d7e95 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x03fcb9f4 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08c390f1 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b58abcf drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10c6cd40 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x135ecc4a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15d5b2fb drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x19263da3 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1cf74747 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e3c0381 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x215810d9 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x255392fe drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2be9a7ca drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3a1f031d drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e438dd3 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x444a0f6f drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5b1368a3 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a05b45e drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77bb1291 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x837cde63 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x89239b81 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b7ff3ed drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa152b89a drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa4bd00dc drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb85bf133 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb9fbf2db drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc8e0925c drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcbea3f31 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd60ea6c4 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd86fb7e drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf47970a9 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0185e8e0 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x01bf2ff4 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x11221ee7 ttm_bo_validate +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 0x1362d5fb ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x185e3648 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1bcdeea7 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c260180 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25636c7a ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f1aeb94 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3188cb23 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x318eb491 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34084053 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3e663049 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3ed21879 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fe77ef1 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x41b356e2 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46eaf1f7 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47103734 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c01d00f ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50c4fccc ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53169902 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6139481f ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6e67ccdb ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x71fbe23b ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x73eae668 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7cd6ce0f ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81a476a7 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83c499b7 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86d6c682 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x878f4455 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8ad1b9c9 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8dfe8358 ttm_bo_evict_mm +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 0x9fc36e5c ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xafbb070e ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb2436542 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc017fb09 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc0d45451 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc165fb9f ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4443c27 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc0c4fac ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce751cf0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcebaf8f4 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4493454 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf0e94e41 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf2dcf797 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf4cd1dc4 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa0eb151 ttm_mem_global_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x8280cbe3 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x82c0f9d0 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x1122c357 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x3218f841 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x2f5317b3 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x8e74e289 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x46f15f08 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x65314db5 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x07ea7c93 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1df3b3ab ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2b43d27e ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3053cde3 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3a304106 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x56894774 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x56b2e99e ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6f99ddb5 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8732bf43 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x89842866 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8d5adac5 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb70e8be4 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbad6d11f ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc47a6832 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdf941908 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xea93d831 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfaf4177c ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0278cb78 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0370dba7 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x041c624a ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0605e878 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08e16357 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a4b630f ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b5799dc ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0bc4019f ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c7683b5 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0de4ea24 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0fab480a ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12f8f9df ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1aa3ed56 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1aaca9af ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23cfa1f8 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27274a4a ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a9fec22 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c67b1fa ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2caff952 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33c57177 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x342e44a2 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e1d0583 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e76d3ab ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40a6db58 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45c9d685 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d7c4eae ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4df03506 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51a55538 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5546eb7d ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55d52e10 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6347ec77 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64b308ad ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a20f259 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7226f62e rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7727218d ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7dabe071 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83bd0fd6 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x868b8c21 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89400137 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e40b99e ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e928d3d ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94f46e31 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ada85f6 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa43016dd ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6ee1db3 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa95e948d ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad1102f6 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb28e81fd ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb742641a ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbc330ce9 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf7bdc1c ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc16449e8 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc428beaf ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc98a13d9 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd228991c ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd2b00f1f ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdeb14c5e ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe89c6da0 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf059a39f ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf09eee36 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1635c6a ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf382526d ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf66b84ea ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8e2ffe4 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfcd471c6 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff5faede ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffbca18f ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x088f8ed8 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x13fca767 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2396f400 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2700d0e0 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2effe01a ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x526f6be3 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5cdce1f2 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5d7db748 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 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x832a0f63 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9456b9b1 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd08f1517 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfe6d73eb ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x23d0bae4 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2fcbadce ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x394b605e ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x905dc776 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9af9bb2f ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa9636935 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xaf545bdd 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 0x4799c70e iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x67597084 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb0625116 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbfac44af iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcac73e0d iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd6dbeef9 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe06cc162 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf0d75dd2 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0c15ae5e rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x158c89c5 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x332fe6c5 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5253cfae rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5c8959fd rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67507863 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67635e0e rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6fdc55d1 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x758c184b rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fedce7b rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8b0c2273 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x968303bf rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9c90e93c rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaca25238 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xacb9bef3 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb3821895 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc3b49b60 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf23614f1 rdma_connect +EXPORT_SYMBOL drivers/input/gameport/gameport 0x02a66c2e gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x259989b7 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x46837bc0 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4c07f451 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5c661204 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x920c15b5 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa5cc37cb gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc0cbb8ce gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf4cbaaab gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x1cc41f88 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x58fd10ca input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6a533da2 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf13091e3 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x01669533 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x1d5cba7f ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x4ae8d787 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x8bcdcf42 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x4d1b913a cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x573b758b cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x72afa5ff cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xcbf0a48b cma3000_exit +EXPORT_SYMBOL drivers/input/sparse-keymap 0x508d2798 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x792fdcdd sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa1327620 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa90ca715 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb65cb1e7 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe7c8a291 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x62b8f061 ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x6c17a2f5 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xb481e92b ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xca1af08b ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x74a6c883 capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xa943b82e capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x02ce98fb capi_ctr_ready +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 0x2294e89a capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2afb5fff 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 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x58f057ef capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x879c0d9e attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8cd0b0c0 capi_ctr_resume_output +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 0xa71faaba capi20_put_message +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 0xcf176647 capi_ctr_suspend_output +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 0xf036d29b detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf0e7c451 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x129f2bef b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1fd9b89a avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x37ebb2a7 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x414a5d07 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x507b4834 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x522652d6 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x695cabf6 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6b1f3b7d avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x70f8bdc6 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x94a63c99 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xaeda6476 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbbb56790 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc7a47904 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd750cfa7 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf1603ecf b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x079c4525 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2cf48bd6 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x39c8fded b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5a53eb34 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7cf47d72 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x81230bd9 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x93142dda b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb832f4b9 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdb95f611 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 0xaa84526e proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x15b7f368 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1c18167c mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1ebb99d3 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xbb65d2c9 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xa921e955 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xe9cd7516 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 0x7a7aa9d0 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2c176773 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x58954da4 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa8c79bfa isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa9c87185 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xb0ed22f4 isac_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x02af355d isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7a8a3492 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa538d5eb 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 0x0526f850 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x22faab5c recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b095a12 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3610e365 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x365708f1 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3a027d98 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ac8f672 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x45a91908 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5344683d recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58315319 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ce83c45 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5fb5e30f mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x799e85b8 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x874258d1 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb13248f7 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcbd69fdb mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcd82de2d get_next_bframe +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 0xd870b917 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdc7dde9a recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8e1ba7d mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xedcc1e4e create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xedcfe0d2 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/raid456 0x5b38581b raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x31df67be max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xbc826ad0 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x0ddbb6a5 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xb903f15d mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x27e72c17 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xa4f230e9 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x487672f4 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xe4a868cd tda18218_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 0x44095a73 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xf7f2f3dd xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0194fc46 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0fb2302b flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x167e1c61 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x25bf4c85 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x31f6a6f0 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x37cf17f8 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x44468d88 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4a7d0ca3 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4b7b8f91 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4fa8ef6d flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x62942689 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x632e1dd9 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x64384aa0 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8a784e84 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9466fcd1 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9909ed1a flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa140b549 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa20eee23 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xca56074d flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xda12e876 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x3a9be99c bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x475dd386 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xa0698d6c bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd101b8e0 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x151f5126 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x18bfe2f4 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1d314b79 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x204b2bbb write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x3f4aec69 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x979ada33 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa6dfecf0 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbe1c1f5b dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbf3bd2b1 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xc251beb4 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00a13735 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x035f80d4 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0d1b2df1 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x12c80475 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de5dde2 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x262b9c81 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2a66ca2e dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c202fc3 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2da2ef12 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x305edfc2 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4015aaaa dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x535c9781 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x688c2da8 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6a5185e7 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6f355149 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x75aef3ba dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80d6d0ba 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 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 0x89c2ea16 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x96aa762c dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9a762a03 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9e889bd9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa33c9a4e dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb31a0054 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2a7596d 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 0xd6ee7f28 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdcdc0e7e dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe4c5d919 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf18f35cb dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf47e5cbc dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf764cbf8 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc3b495c dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0378e38c usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x36e84184 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x716a4d2d dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7d403759 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbc87f158 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe008aded dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xedbcad00 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x60c5b335 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0da25b85 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2065b580 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2143f905 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2b0a7998 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x534b4f95 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xafd8dfa2 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb0f91e71 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xba2409f7 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbe2e4238 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4163fc5 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xeb63f232 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x796edb7c af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x656ff716 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xedec1ed6 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x93de061f bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xd3447ea5 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xbfd61424 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x70a16bfa cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x693aa0aa cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xb9e198b5 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x0909ef0f cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x422894b3 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x81b30d88 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x351a6cc8 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x582872a5 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x5e89e3cb dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xb2b1ed25 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xdb78c52d dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x23e5c810 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x2f104943 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x43921182 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x63397770 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6ffaf1dd dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8bfb70e8 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xde38568a dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xdeb698ad dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x5ea354a2 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x04418da6 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4bc35e52 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6d81ff53 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6fe2cc10 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa0a8c9c0 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcac6d86b dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x00638a2c dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x39909f0e dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xd13b3c70 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xda3a51a0 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x414c5add dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7811c3cd dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x819b3f06 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8883dabb dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x91589d66 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x94b4bd1c dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xde11ddfb dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf22edd16 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x27a8e7e5 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x429f3628 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x57949484 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x863af563 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa20e2696 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb7c3b10a dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd0ef87b5 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd9a25630 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf323c998 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf8f5668e dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xfcb0b90e dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x41ff243b dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x6820651c dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x708c6f59 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xa81d2c2f dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x519a5f2a ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xb215eb66 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x00f9e9e3 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xc8f9e996 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x7bf97cef isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x31159b88 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x5d172870 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x68b0e4e6 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x4970b3b1 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xe1739172 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x7423f979 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xb7750461 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xd9281e52 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x242736f6 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0xd69b0cbe mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xa5c8859c mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xa3042713 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x6791d009 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x7df9fa72 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xd116e48c or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x22c9225a or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xfcdeaf84 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xc860b32f s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x30ebdc8e s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xeec3545e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x394c231e s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x2b2e7f36 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x52f4764e sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x88983f79 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x0a7ced95 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x5f2852c4 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x146f0cc3 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xaa7c70df stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x11a6c251 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xf64890b5 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xd0ba2b6e stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x850e3b58 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xa4053a37 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xd098b5bf stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x4800a21e tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x9af623f6 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x310459c5 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x93a0eaa4 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x991947ba tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xadbed452 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xefd663c1 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x1926e83a tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x62598eda tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x2cf4b366 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xef1088c0 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xc4d4600a ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x15267114 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x1ebcfd4a zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x8eb65740 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x922cab9a zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x47c1e3be ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x9169547b ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xbaae55b1 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x24e8af57 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x67f47d8e lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x682f99c2 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x84ccfd8b lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xbb6fe61d lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd19458f0 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd867729c lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xed70a687 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/rc-core 0x402b7f4c ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x961ef443 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x4d2576f9 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x7979025f bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8054ab93 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/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 0xcbb08f58 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xe6fea9bc btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x16c36e55 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x84244880 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x975ea6e6 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xcf176352 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xf32364c0 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x02a80ef1 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x0e2d5ce1 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x126e0d54 cx2341x_handler_init +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 0xc184ec1e cx2341x_ctrl_get_menu +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 0xdce15221 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe1250879 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0xea2b6b99 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x2eab8d4f vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x552eeb3a vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x320a8052 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x432bed77 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa21d06d3 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb8f05111 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xde50e48d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xe66e66f0 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5095b7cd cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x63c9e661 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9e70ab62 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xab892430 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc568d686 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc6927b8d cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x06f74838 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0c77f455 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0d2a6ddc cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2018c069 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2cc9f8a8 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2f8a0991 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3993715d cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x39bf664c cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x40418817 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5557d473 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x57a814f2 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x67a68f9b cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7bb23dc4 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7ffd7c69 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8593f5c6 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9376c9bc cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x96b8a72f cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9a58bc87 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9c623122 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc6010451 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcbe6deaa cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfae16df0 cx88_newstation +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x7805400b em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x9a650344 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x21974ef1 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x685a8caf gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x854dd525 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc0c1a2e1 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xdb2054f2 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xea81983d gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xec99c699 gspca_resume +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x04325399 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x180b6a1e ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3133cb8d ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4f39c816 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x57a7a6ed ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x58b3cfb1 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6414b2ba ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x69d0d182 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa0b4c081 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb0872ca1 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xca21603d ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe97ddb82 ivtv_udma_setup +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 0x12d60298 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x302b7b14 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x437199bd saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x47107950 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5efcf144 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x65d4887f saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7c7737b9 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x907b619b saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbc318193 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdffc8d95 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xedfea931 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf1fcbbd7 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/soc_camera 0x78a30e1f soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0xca2db5d8 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xcddd0236 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xdcf59f17 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x01e0177f tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xd17ed4f3 tveeprom_hauppauge_analog +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 0x1abb5fd2 v4l2_ctrl_check +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 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 0x5fe5dfb4 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x86dcdf03 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa4bf0ba4 v4l2_ctrl_query_menu +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-mem2mem 0x89075dcc v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xa4522090 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd2f9f127 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd757e84f v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x13e70cfc videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x452d2f65 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x564199ec videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x854e9efa videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x91e5ea1e videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9974782f videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0c3891e0 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x17a11376 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x2708c821 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x28298bb0 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x2b5bb299 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x31cbb6a5 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x35075db1 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3761aa2c v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x444ed702 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x4942aa5a v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4f8683c3 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x537bfd1b v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0x56c78fd0 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x578d0354 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x68f1080f v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x6a3f8f61 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x773d422c v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x7a0f2507 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7dbf9018 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x7faea017 v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x809be5f7 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x8df6d0cb v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x9069ce87 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x949839e1 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x96de03d8 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x97b2e2c7 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x9ec1c18c v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xb1a8ce22 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0xb63501a8 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xc892a243 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xc8f33b98 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xd14cd690 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xd61168fd v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xdee6ffe2 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf0233fb7 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf6bf811d video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xf8b881a3 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xff872788 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x17ceab56 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xb1d55055 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xb3ceb9a4 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd997a39a videocodec_register +EXPORT_SYMBOL drivers/memstick/core/memstick 0x22218e81 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa38e64b6 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb8131f40 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcabeaee6 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd0425cf2 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd491e940 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd731e326 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe13ddd44 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe4b9f03e memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xece647b0 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfb39dccb memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfc608300 memstick_suspend_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x028886b7 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x02e0d566 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0461f32a mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06a583db mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1d86ea67 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2d2a80a0 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x34c274ae mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3cf61450 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b0bfba2 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b11e2cb mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4ff1ddf5 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x51dd3dae mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x522cdd85 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5479de39 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7483c567 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x887d7aaa mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9982ca84 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9d54a82b mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9f0fc2b6 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaeaa30d0 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb04d1f07 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb75a5553 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb89cdabd mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc086128a mpt_HardResetHandler +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 0xc497c6ab mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcbf50dfc mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcbfef971 mpt_raid_phys_disk_pg0 +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 0xe2fcc5f0 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfaa440fc mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0d6f59ef mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1ad5d798 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x24896e40 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2f1eed6f mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3d8a6003 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x40dde0de mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x44779b95 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x46c20d6e mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x51f2cdce mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x68c82d5e mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7a456e66 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x829bd103 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8a32f3fa mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x934a45f1 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa0d8eff2 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa135ee94 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa232924c mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaaa22887 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xab7eebde mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb0119df1 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc9bbd932 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcbda688f mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd426c686 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe83e55ac mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe9dcb2c2 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeb57c8fa mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x181cbf9c i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x28f05bfe i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x573ba5b6 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5d8d12d8 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x624ac3ea i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x62dc2ab2 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6495f11a i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x886794f9 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8953949e i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8be608a6 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9a29c9ac i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb37dadf7 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbd3a8c32 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc29d8f2a i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc58b8545 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0d0ec71 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd49548e2 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe1057d8c i2o_parm_issue +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x4c80275d pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xfcd459d3 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19db4268 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1f94f893 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x32cfbef5 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7e029b23 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8b16a144 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x99ed0fbc mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa1f98311 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xaaf67654 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb0e849e0 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbde32fd1 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xccd17e15 mc13783_to_mc13xxx +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd9a327a5 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdcdbbd49 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfa3546cf mc13xxx_get_flags +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 0xa2411dfb ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xa7214831 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/c2port/core 0x9fea46ac c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xc72d0e2a c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x3f91fc45 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x7c1c9ec8 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0a1559b6 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x0e440c8e tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x10377d90 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x205e0a4b tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x37c98cf5 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x40ad5fe2 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x4240b0d3 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x4991859f tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x6f638ade tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xd5124c0b tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xe1b7ba44 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe60dffca tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xfe6b6d9d mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x4ee7a07a cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x56da29cc cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x81220852 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x20c35c6e register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7d9171ae unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8012bbbe map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf6675ff8 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xb50d93ad mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x87357be1 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xb85b0177 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x502fe5df del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xd2abddad add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x31944239 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xfa9fdf64 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x671f04fe nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x88fe256e nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x90ef2063 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xbadbe3aa nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe41f0a25 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf72fb4f1 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xfa2e0b94 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x25a6082a 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 0xb54d10d5 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 0x08570e1f onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5733606f flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x61c68f22 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9972f0ca onenand_addr +EXPORT_SYMBOL drivers/net/8390 0x17d3758a ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0x3244252c ei_open +EXPORT_SYMBOL drivers/net/8390 0x38dcd583 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x50484d89 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x5d6a6748 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0x5fa43ab4 ei_close +EXPORT_SYMBOL drivers/net/8390 0x65e989ab ei_poll +EXPORT_SYMBOL drivers/net/8390 0x77d15949 ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xb448c63a ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xe26de53d ei_start_xmit +EXPORT_SYMBOL drivers/net/8390p 0x00c0c1a6 eip_poll +EXPORT_SYMBOL drivers/net/8390p 0x30eab060 eip_tx_timeout +EXPORT_SYMBOL drivers/net/8390p 0x310b1d38 NS8390p_init +EXPORT_SYMBOL drivers/net/8390p 0x38ad20f4 eip_netdev_ops +EXPORT_SYMBOL drivers/net/8390p 0x462988a3 eip_start_xmit +EXPORT_SYMBOL drivers/net/8390p 0x46b4b584 eip_close +EXPORT_SYMBOL drivers/net/8390p 0x4efd64ba eip_open +EXPORT_SYMBOL drivers/net/8390p 0xa9058ec6 eip_set_multicast_list +EXPORT_SYMBOL drivers/net/8390p 0xb663e226 eip_interrupt +EXPORT_SYMBOL drivers/net/8390p 0xb7c6ff6c __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/8390p 0xdfc354fc eip_get_stats +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x02bd1d86 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1b63fbb8 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3e0accaf arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x60d6f13f arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa34b5c55 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb4045add arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb8f51019 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd5f9a3a4 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe93904c7 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf48bca18 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xb2763d12 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc003ebea com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf227e74e com20020_found +EXPORT_SYMBOL drivers/net/bnx2 0xfaa5e8e4 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0x910a2921 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x36d1501c cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x10cb0c86 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x17cc391f dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1f4fc282 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x26edd033 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2bba5956 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x41cce907 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x50e31b70 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5abde559 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6ececdc4 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x86c65f4b cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x91d921fe cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc4c8fc47 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc52bbada cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd0cb0a94 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd3b62885 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf7d6ea5b cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x00ac9182 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2dd7e8bd cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3d6bc213 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3f234747 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x62b9ae91 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x66601d0d cxgb4_l2t_get +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 0x9a7ad8f5 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd5cb4597 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe2b89bf3 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xec9fe5c5 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf31e095c cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf324404f cxgb4_register_uld +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1da888fb hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4bce79a3 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6d431cf2 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9f2e0dab hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xaf6e849b hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x13be53c6 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x260a396a sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3b26c1c8 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4f52cbe0 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x528a394a irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7d225172 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xba68a42d sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe159459f sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe506726c sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf5e431ac sirdev_receive +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/mlx4/mlx4_core 0x0c2b7084 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/pppox 0x8476b80b register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xc93e9cbb pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xcb2472b9 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x38c4d367 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x1de8fc50 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4e6bcfe8 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x54bcdb49 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x554074c9 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x9dea9248 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 0x03d348bb detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x06868cf9 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x15f57841 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x203c4430 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x52df3c12 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x557eb40c unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7826194f hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xae49889a hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd5f6e420 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd9c731cb unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdbffe2f6 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/z85230 0x04f6f08a z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x14b11f54 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x2425b10e z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x26fb3833 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x29426ef8 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x3d829370 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x49013966 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x821536f0 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xa590227b z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xbd2b4af9 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xf1c4d940 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0xf27005bd z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0xf995a0b9 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0xfa1b0ea5 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xd9a9c2d1 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x1ee5160c init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x561ea65d reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xbfd4f0cd 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 0x384ba55a ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4cf91a60 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x50d72abf ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5442aa90 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7669ae05 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x85ebad0d ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x872b1b7e ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x91073f20 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xeb34bafd ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf5ed402a ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5dcc05ff ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8a2f2f3f ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfb7ac660 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x069066c3 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08709eb6 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0fc76a0a ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10425833 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1093752c ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x120260fc ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12ea54bd ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15c5b89e ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x175c100a ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f9ec84c ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22bbc5e5 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22ef1104 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23960199 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2472d5ca ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24bc488f ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ade4c9e ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b18eb2b ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b7fc40a ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d3cc7b5 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d3df846 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31a43f98 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f62ec92 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x433656e6 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4449cebc ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48a9e9db ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b7e33ba ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b5ad3b9 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5baeebac ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5dc922a6 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ec50587 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61e1d276 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62e18d3a ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65f8acb3 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a12c363 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6df4775b ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fa2717d ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71bc3631 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7354b753 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b42779d ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x809ced75 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85811dd7 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x886e7e92 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b614216 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f481760 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95b8b4b9 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c49e706 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9deabc85 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f51ac8b ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa064d89b ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1e6c737 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3bd8068 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa42920a8 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa74ec1a0 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9d5b131 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae24edf1 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0c2a513 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2f2fd11 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7308770 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbba62ee6 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc5f59c0 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd3df13c ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe5a2135 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc17d46d7 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1b0a9f7 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc488085e ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc54fb321 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc60955f1 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc63895b4 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7dd36ec ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd750843 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdf8fbcb ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf9cce4d ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd05f4ac3 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd583b430 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd76083d4 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde01e73a ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5242365 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb65caab ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0323a4a ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf14ea77c ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2ea25eb ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf543119b ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5724a4f ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb3cda0b ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc52703b ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeaa9dea ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/atmel 0x0fb5a630 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x2c566f29 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x569a5a8f stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x02e2585e hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1378b2fc hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1f11315d hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x20db81c9 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22f386ff hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x26fe0680 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x41c960f3 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x435cdc7c hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5128248a hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6008e317 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x64f8e9e7 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7be251fe hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x88e0f14b hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x920ff47d hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa516a890 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa8522282 hostap_remove_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 0xbc1a72d0 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc3ae9507 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc7abd46b hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcb8402af prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcdf6d0c5 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe28a01ca hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe7f1224c hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe8a0dc10 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xea9974cb hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0218865c libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x022c16b7 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0cf47e5e libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x26017020 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3f4fd33d free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4f731783 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x62eda936 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x77c72f5f libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7d9a3474 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x83ef3e2d libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x882bf9a4 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x90f79bb4 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa5801eb0 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb046b0f5 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb18b6730 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb783f31b libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdca9001a libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7e4ba0c libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe967d2cd libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe994d393 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xead72376 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01ea2024 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0846edee iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0b4bd579 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x11913e73 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x11b91d92 iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14791564 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x16e18a81 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1c46689b iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1e7a56bb iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1ef3f238 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21a3c0d7 iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24c53bff iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x26859f9a iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x283e73f1 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28f5d3db iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31fec749 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x320cf143 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32af30fb iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x368d12ed iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x371cf062 iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39ffb8ef iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3bad26da iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3bfb9288 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3cc4f70b iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e8d6abc iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f639893 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41edf065 iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44e97c52 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5370d5f3 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53830442 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x555e08f7 iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5692f92a iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57122b82 iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x573b5e94 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57d5e3f8 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a022694 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5bb89e7b iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5cfbbdd2 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x60774702 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x610f8b17 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x623fd99f iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63cd83aa iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x64ac29f5 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x661ef46c iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b94bd48 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6fdccac7 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7266f749 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x726a2072 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x75cd0b07 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x76d7d9f8 iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x79203953 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x79ffbe18 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7f018a1a iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7f642163 iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x83fce293 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89b217e6 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a8cd14a iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b17b0e0 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8be5524f iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9220ab55 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94cc98db iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9a1c3e80 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9b04fd28 iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa052d0de iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa08514d8 iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5281a16 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6a2ae55 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa796f99f iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7bbcf59 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa997a809 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaabc742d iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb312d79c iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8df4012 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb9444462 iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbceb0f2d iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbfc76939 iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc1c965ab iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc8007b3a iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca6553a3 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbddb574 iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xccfc6c37 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf68c610 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3e4055f iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd772988c iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xda27b068 iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdbf59917 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe37d8b95 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe48b3b94 iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe4b7f3cb iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe6e0be52 iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe74a99af iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xef187b60 iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf0187397 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf49f29bb iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf7c10904 iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf8c32da6 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9a1fd40 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfefe370b iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff773e27 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff79b916 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3aaec741 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x51cd63d2 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5ae2133c orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x609efee5 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x67231592 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x69efe411 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x792563ea orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x79fac246 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7c443928 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9356c5dd orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x96ac11f7 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa3f46022 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb5932140 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd7595896 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe2c391c2 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf714b726 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ee17cab rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x105aa67b rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x23da10ae efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x41c01034 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x44936c3c rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x91dee189 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9a4307dd rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaf019949 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc31fa833 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc55d0bb1 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc64fc1bd rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe92e75f1 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf2a8346d rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf78c1a57 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xffd260d3 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/parport/parport 0x01de5f75 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x0597e0f5 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x06676222 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x0c72a92f parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x1b108470 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x263a7ea6 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x2e882a4b parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x40d72786 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x4879e8ee parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x52b2218b parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x5a0382c5 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x5d2914ee parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x5fc4abff parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x69d4a222 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x7409018f parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x8259869c parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x872a5c3b parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa2de1d9c parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xabb00799 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xad724112 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xb5897795 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xb6c2d7d6 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xd1c7a567 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xd255fa85 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xd2c9de70 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xd5c20759 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xdbcae1dd parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xe9a3a68d parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xeeffcb30 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xf52c7331 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x13b931d5 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xa88d6ad3 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0e2a1d89 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0e8736e8 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x253f2502 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x29e17976 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2b5b385c pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x31e1c9b7 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x33de659a pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x35b9b808 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6720645d pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7088c650 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x777f9ccb __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x84b9e93f pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb1f67fb3 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbafe09f4 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbb6796d8 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbe2b9d08 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc076e803 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc92cabd6 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf96ce78a pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0b16de35 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2f2961b7 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3fe05ece pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x55b7a34a pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7557e161 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa0128bcd pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa0521a5e pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaf1b8a7f pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb8b07170 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xce205629 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x0dbafd7e pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xd3bad92e pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x0f812493 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xa4413b8e pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xcf3a9986 pps_register_source +EXPORT_SYMBOL drivers/scsi/53c700 0x40dbc954 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0x8b287384 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x17b38613 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1fa84a1a fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x216fecc6 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3d61e353 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaa6f1539 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc48da932 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xebfc69a6 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x022449c7 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06bf59bf fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x141af9c6 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15605153 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c45e2d2 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e8c1938 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2984b812 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2ee61bb5 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3c4a1509 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x45900cf9 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4760cb05 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4860aca7 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50e20b7e fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x556a1945 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x606da19f fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x671bb55c fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67da3172 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c971a21 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d4b9013 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7032ddb9 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7b696374 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8119dfbe fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83825588 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8688137d fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x879dd815 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x887e8914 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x94c26f79 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b711df2 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa27032be fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa369c41c fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7bcb482 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd460366 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc152516b fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc17ec9cc fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2da1bb7 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca939070 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd3129ea5 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd9f94c46 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe1fb6244 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe66aa454 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9d8ba05 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeceff266 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xedf2318a fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf3fb1008 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xff3264a4 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x86a11a29 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x05cdfa7c osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0ae4327a osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0d4cf5c5 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x114fdf78 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1259efab osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1afde8c7 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1b0b7f37 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x27a1e699 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x312f295f osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4e4bfcf6 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60b92798 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x68ae1e1c osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7230f23c osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x785becac osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x85d65e6b osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8801a049 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8a43f338 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8fe67a96 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x93432a68 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa8092caf osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa846d92e osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xabbc67f9 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xacfe9c40 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb6a41b59 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc1a7602c osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc1e744f6 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc3937bae osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc4e8ec45 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc9a4570b osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd083bdc5 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xee418a4c osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf3018908 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf566c540 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf6ab0cf1 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfa8de7ef osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfded686d osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/osd 0x4615d34a osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x480b0e7f osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb24db772 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc4123e81 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe2ec3aeb osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xfc2a0b6f osduld_put_device +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1d40ee5f qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x58b2f941 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8afbb4a0 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb37ac9bf qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb73d321f 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 0xf2a03ecb qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x77978c4c raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x8078d753 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xc1b18e23 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0d4e1867 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x19dddfdd fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1ee12768 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2c5bce5d scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3178720f fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x328c64b4 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x55ef8589 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6b658bca scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6fe450c3 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x897e8e19 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9904f3f6 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc1e592d7 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc4d1da5d fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x07a48189 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x09c746c0 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0c81baf5 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0fee727f sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1155afa4 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2140b908 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2e3167f6 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x47fd650f scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x55c64c68 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x58245252 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5b0f5b40 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x716c506b sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x795288f0 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x79a7e172 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7d17e3cd sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9affeda5 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c1efc14 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa786f548 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xad97d05f scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb8b422b5 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0aa62fd sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc9d1e056 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xce8e1333 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd73f5ec7 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd1638fa sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa632ff7 sas_expander_alloc +EXPORT_SYMBOL drivers/ssb/ssb 0x09cfe84b ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x09eb2f71 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x10fe9090 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x1161db14 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x18b0afb3 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x3b5e2e39 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x40bdb7e7 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x4a647f9b ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x4b8d952c ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x4bf3159b ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x4d8cfafb ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x52aba2d6 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x53d881bf ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x6d01c058 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x7081feab ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x782a94f3 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xa3773b40 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xb06fe861 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xb254b23b ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xe2042894 ssb_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x05b7ef8a comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x33c4d5af comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x41343661 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4d25197b comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4d4df2b4 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x5b816c5c comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x620f5a3e comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x649e59d4 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x89717730 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8c38773a comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x90a3a2d2 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x96feb334 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbd22f67e comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xd236f3ee comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xd9edff9c comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x684d6c32 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x6e6750c8 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x7687093c subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xb12ea8f6 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x0f6a52b8 cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x23f22148 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x3f894e6b cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x010bae78 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x11eced19 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x19633c6c mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x20c0a215 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3682d48c mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3e28f9a1 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3e6ed878 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x713a8af5 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x762d8ccc mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7a592523 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x84788837 mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x867d2407 mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x872db50e mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xaf59c480 mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc3308592 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc368a286 mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xce3be38d mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdd38f7f4 mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xec987d34 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf7aff1ac mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x65a136ca subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x6b52cd42 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xac9fff21 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xadec49f4 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x1f719c55 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x126a15a6 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x2cd52311 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x4c4cac32 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x904c3b0f comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x9b857e17 comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xf2405501 comedi_dio_config +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x036574e6 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x180316fd cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x498f63ad cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x58effa6f cx25821_dev_get +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 0xaba0303f cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xb88601ed cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xf5669397 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xfbc5bc35 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x054d5566 go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x32e7200e go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x45df74a6 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x6e33a276 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x9909523b go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x9b13f524 go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x9bcb5d17 go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xcbd3a06e go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xf43ecca4 go7007_snd_init +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4af61ff9 vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x522c6ca9 hv_cb_utils +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xaeaa3ce5 vmbus_sendpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xca7d0330 vmbus_recvpacket +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 0xf52ac931 vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x0ffcc469 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x84e422fd adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xde2c6b48 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xf05ae1d0 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0436a98e iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x050f3f48 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0585cf95 iio_alloc_pollfunc +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0d2e8e52 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0f6ad935 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x190219b2 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1d962fb0 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1f31b193 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x26296978 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2bfc0e0d iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x37a8b9f7 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x469c9442 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4973a142 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4b4c6027 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4bf2c7ab iio_read_ring_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e45c946 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x51a2b816 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x67ea719e iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x692c643f iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6b4dd89d iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7060dced iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x818851a3 iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x88ee1ba4 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9599064f iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x97676f8d iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ef06908 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa2961ade iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa65a8716 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb1ed3bc6 iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb4f061a4 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbf00c09c iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc71be73f iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcbc8915e iio_triggered_ring_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd4dd982c iio_triggered_ring_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xddb1dead iio_get_new_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xeb40f216 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf32cd872 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf705a529 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf77f5275 iio_free_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfb503e67 iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfc5479c5 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfc8c5d81 iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfed6c86b iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x4628ad72 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xe1602cf3 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x091532ad iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0ce344fd iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x19e3cea7 iio_sw_ring_preenable +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1cdfb559 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x476fc038 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x49edb23d iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x63ac576c iio_sw_trigger_bh_to_ring +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7f69506d iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8f8dc902 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x92fadf3c iio_set_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9fa05e94 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xae70ca7b iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbcb2912d iio_sw_poll_func_th +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xcf81bfb1 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe8a4b2a7 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xea467a9f iio_get_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04986867 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x05dd75f8 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0635222b ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b917a69 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x23a7114d ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2476bed7 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2f23ebbd ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x30cb9212 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32d0fbfe ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x33df2584 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x393c4a45 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3f48a431 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x477c2476 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b7f901d ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5352d186 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x58d62609 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6252bbee notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65d1145a ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6b55cdd2 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x741403a4 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x782582af ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x793b6838 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x79919720 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7a7b1625 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b19a0f8 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b9dcfd7 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8113d26f ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x81d1bd27 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x85fe66b0 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x875cf0b9 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b04580a ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8bb6d0cb ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x910e8821 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x93ea1df5 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a0f3628 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9cf9b032 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa54f6fdc ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa81b3bd6 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa913b79d ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb704a763 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7475fb1 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb94c1118 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb5e8056 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbcbb937a ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf90f104 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc7606203 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfd1a3fa ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd45dab87 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd91306e2 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda0b5dba HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb691bab ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe2c0712c ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed7c93d6 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfd768611 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x490bbe84 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x86cf99a4 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x9afe957e tm6000_register_extension +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x0994c10a usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x17208d9b usbvideo_register +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x3d5a2c8f usbvideo_TestPattern +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x468e6799 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x99c4ea87 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xcc4d3904 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x06bf36b3 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x0fa41a2c vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x1e5ceaae vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x1f4f04f2 vme_dma_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 0x5ee76f6c vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x6e40cbe8 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 0x7a2af9f4 vme_master_request +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 0x87e7c4f4 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x8ef1f673 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x91d4f0a2 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9400103e vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x94bb0820 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xaf4509c9 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xbcbda39c vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xc295c060 vme_dma_list_exec +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 0xe1030552 vme_bus_type +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 0xea89c90e vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf82e53e0 vme_irq_generate +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x05d2d2a5 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0d8c23f9 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x130dccd9 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x1ab0dc36 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x1e96f0f3 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x1f72666a transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x29a8f054 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2e692db4 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x44b59ba1 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x4948630f fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x4e7b5495 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x4eaba532 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f6f10bb target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x5152542c sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x57da4cf0 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x621420eb transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x62d44ce8 transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x701c669b core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x74615021 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a4959c5 transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7b9f97d2 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7bb3ad20 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e02193e transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x814f4061 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x83e6901e transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x85527dd6 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b16377a transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x8bcca4b7 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x8c41a245 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x90894f8f transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x920b95e8 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x9405b158 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x9901eba4 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0xa7de3343 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9ffb18f iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xab197215 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xab9721a8 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc5e1f5a core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc152f4ba iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc1793409 transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0xc522e283 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xc555fcca transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xcd3c7898 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xd824a0f3 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xd95d9d21 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xe03f45b8 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xe0fadd7e transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xe2f84604 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xe43f485a target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xe5c84c57 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xedc22f42 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0597027 transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf488cbd1 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf943efab core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xfef00c7e transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/telephony/ixj 0xad706c46 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x63ab2d30 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xabcb09cb phone_unregister_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x219f2260 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x2b7168da usb_gadget_probe_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xfe8e2cb4 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xe1f969af 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 0x10d35de6 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x17200b45 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x335c14c9 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x51dfa0b1 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x54c960ee usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x81b59349 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x872608c2 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x912ec346 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9277d591 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9953fd5f usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa3be2e92 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb292c0f2 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb74685a2 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdf68f2dd usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xef0e6b81 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x20d9739b usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xa48bb9dd usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x80ad7b37 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x9cdc5f38 lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x6f12071f cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xc21fae94 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd26e87f2 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd557a416 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0x76ecf004 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x9fe1a9ad display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xcce9a608 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x26c8cf29 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x60047a78 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd9ef8df4 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1d46b760 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x278f5c26 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x9b8a28f9 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xe4655a7b matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x14a9d2f3 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x81cc8b56 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x2f77236f matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x7aca274b matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xdf5b4c6d matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xee7e7029 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x814e3534 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xc753cfa1 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x2cb50976 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x90356cfd matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe4be2fc0 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xf9d2e640 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xfe0b12c8 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xa66f8560 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x072eb6a8 video_output_register +EXPORT_SYMBOL drivers/video/output 0xc9e5ee30 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 0x466c8f21 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x78306cea svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x7cfeae27 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x870c566f svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x8e222d8d 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 0xb590339e 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 0xf9cb1a64 svga_get_tilemax +EXPORT_SYMBOL drivers/video/syscopyarea 0x91b78012 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x5233bddd sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x467e08b2 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 0x23697223 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xb199bc3b w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x795684b8 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x8f0f4f27 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd609d69d w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xffdda797 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x0cacb534 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x83f634da w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x96549570 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xfa36caa7 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 0x1655c19c config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x379c4774 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x3907dde7 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x5046a021 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x6cd3f308 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x72d2fe01 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x97d2f21a configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xa96cc440 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xada3e174 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xb6066cbf config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xe8d6e509 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xebf334fb config_group_init_type_name +EXPORT_SYMBOL fs/fscache/fscache 0x005c2021 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x00cb63fe __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x192882b8 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x1e6effd8 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x3da6684f __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x3fc8f120 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x4154d0f1 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x51c8e79e __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x5f42c070 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x61d29b98 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x74632b5a __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x80340e52 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x91e5713e __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x9ea1327a fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xa6521643 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xab976e65 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xb250a75d __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xb7c3dc71 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xcd3327a1 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xd290c72e fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xd69319c0 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xe1ce20c1 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xe7c72e7b __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xe85371d6 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xfc54772f 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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x0afdd4dd qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x6cd74f20 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa098f925 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xbd58ffab qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xf2fd92bf qtree_write_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x073572e6 lc_put +EXPORT_SYMBOL lib/lru_cache 0x0a756721 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x0bb5982e lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x261e071a lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x2d245de9 lc_changed +EXPORT_SYMBOL lib/lru_cache 0x2df832c7 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x778a22e4 lc_create +EXPORT_SYMBOL lib/lru_cache 0x84f9b8fe lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x8ce4bb23 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x9dc0b844 lc_del +EXPORT_SYMBOL lib/lru_cache 0xb65d0e73 lc_find +EXPORT_SYMBOL lib/lru_cache 0xc428ab8e lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xc862dea7 lc_set +EXPORT_SYMBOL lib/lru_cache 0xdfb4ef38 lc_get +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0x93c070e7 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x9cb3915f make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x00a5e7ae p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x0bd71106 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x127714d2 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x130adf7c p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1a2c7b0b p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x1d4c6332 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x21a0bb6a p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x35bf78e5 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x455232c9 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x4dad2336 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x57f8e216 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x5b7aca28 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x606255b7 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x627a72bb p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x656fe157 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x69dc0251 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x78688311 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x7d62f2fb p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x869b4a9e p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x8b1888c0 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x8da58daf p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x91bd79a3 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x9246c806 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x92be3ba1 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x94a916c5 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa2a5be32 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xa5ea64d4 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xab7187d7 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xad6eecbf p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xaed82eb5 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbb12c3f1 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xca01733b p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xca850cc5 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xcdc3036f p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xe0df4c67 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xe19978b9 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xef7589bf p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xf3615b86 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xf784cefc p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xfef5a34f p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xff358423 p9_client_disconnect +EXPORT_SYMBOL net/appletalk/appletalk 0x15bc5b35 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x3a618643 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x810b5d93 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xaa8c3c24 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x1168c78e atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x235b43e5 atm_charge +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x31a7c187 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x47262bea atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x4a7298ce atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x5c719f21 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x7eca953f vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x9642dfe6 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb8fe962b vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xcf41029a atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xcfd5fb7f atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xeffc46d9 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf27f7d29 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x18c79bf8 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3454cf22 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 0x5eb694eb ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x71a36b5b ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa1e82679 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xa349a4d6 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xa6ab9f4b ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xaf273bc2 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcd5db72e ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x044ccdf8 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f76a01e bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x198beae7 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x21ec795e bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x24ba1920 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x25fbf7bf bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x29306fb9 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x296ad096 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x372a3d62 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x53a92ed2 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61df6842 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6923d389 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x71b0a74b hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x740eed5d hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74186068 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74bf9601 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7f5eff74 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x92cff1d5 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9b2bfaa9 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9c06d5fe hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9cdf243e bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa27c519e bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa75c665b hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbb790dcf bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0866f7f hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc87b4fef bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc95a9029 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9ff90e4 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcbf3c953 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde695789 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe143244e hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xec4221da bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf1d9e7eb hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd7dcf74 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x812f98aa br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2c7d7cc5 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x644773a8 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa130ba91 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x03195604 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x0580362c cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0d544ce0 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x119e4bc5 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x1d4a1c33 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0x1d9949f9 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x2451f69e cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0x250b3397 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x2829f0f3 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x28831be8 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x324b32a6 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x3f8b1895 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x50203a33 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x56e709d2 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x69ace669 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x6a9311de cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x83728853 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x8ac1e0ee cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x995cee5f cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x99c394a0 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x9e91064a cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x9fb932d1 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0xa1311dcf cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xa91426c7 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xbc5fd6a5 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xd33fbd4b cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xd3e95f55 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xd9689c16 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xe96f9f5d cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xf2463102 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xffefc934 cfpkt_getlen +EXPORT_SYMBOL net/can/can 0x4fc2f51f can_rx_unregister +EXPORT_SYMBOL net/can/can 0x67f08bd8 can_rx_register +EXPORT_SYMBOL net/can/can 0x7710d279 can_send +EXPORT_SYMBOL net/can/can 0xabc6af83 can_proto_register +EXPORT_SYMBOL net/can/can 0xb648009c can_proto_unregister +EXPORT_SYMBOL net/ceph/libceph 0x08a60e57 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0a46653b __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x0c26d531 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x1803c2dd ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x18607ed4 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x21c1dedb ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x2301fadc ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x241c361d ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x2e7fe701 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3ad32998 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x3eeab9bb ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x495968b0 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x51da6f4d ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x626f5ce7 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x63d0c044 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x64a1e230 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x711ddc81 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x76fd4d95 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7887fb86 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7c3650d4 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x7e9f95d4 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x98a0121e ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9f84a2a3 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x9f8ac6ad ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xae524d03 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb16611fe ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb69cba6d ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xbec5bcd7 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xc1b04066 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xc37545a7 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc676bf91 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xce3f3808 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xcf0470ae ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0xd198fac1 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xded9a32d ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0xdfa127dd ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xe26ffef6 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xee0d12fa ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xeeee1653 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xefbba975 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf7f6e569 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xfc15a327 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xfcd4607c ceph_monc_open_session +EXPORT_SYMBOL net/ieee802154/ieee802154 0x03a70fb7 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0b90828a wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2ba994f8 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3cb9ba4d ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x610cf949 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7b79d1be wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7c27c0c0 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x804ca1f5 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x81ccf8f1 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa6aa9e92 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa947ee2f wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xab1b68d0 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc0990278 wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x645046f9 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x945bfec6 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xda1a3d49 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x2750e5fa ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xac2f57bf ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbe7ab57b ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0fbeedff nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x20679cff nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2da2eec0 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9cca73df nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9d1e6362 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd2915599 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe04c2208 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x66dadf4c xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xdd4c9d16 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x144e9b34 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x51fdb868 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7e99020a ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf48e6c43 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x1b649d42 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xf9832be7 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe9969eef xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xec70f94c xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x04ed293b ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x120eafb8 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x178d4638 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4713d536 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5390705b ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6db61fc2 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6e3c758a ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x816c7d7e ircomm_close +EXPORT_SYMBOL net/irda/irda 0x031275d3 irttp_udata_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 0x095be7bc irlap_close +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x17cc8a99 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x1c871d37 iriap_close +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 0x2d83804e irlmp_connect_response +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 0x61b5cb97 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x692e5786 irda_notify_init +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 0x7520a618 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x7850e180 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7b2c9d5f irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x7c941fc8 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x8cd01113 irttp_open_tsap +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 0x9c21f16e alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x9c448368 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x9d1a50a7 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa16527b7 irlap_open +EXPORT_SYMBOL net/irda/irda 0xa19bbe28 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xb3b93e32 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xb54bee44 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 0xbea8aea9 proc_irda +EXPORT_SYMBOL net/irda/irda 0xc065043b irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc6368983 iriap_open +EXPORT_SYMBOL net/irda/irda 0xcc45e7b7 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xcefef1d9 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe33ca128 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xfd0f05b6 irttp_data_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0xea15448c l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x035f1780 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x4921b243 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x52371590 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x589d42b7 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x6a5c35a2 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x710cefd7 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x80618c2e lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x984973a7 lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x021b6c80 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x0328eda0 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x0e326667 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x160051e3 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x22784de2 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x2c0d2ae3 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x2ec1b101 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x360bff91 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x36c290b8 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x387c05c4 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x3ac96609 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x430f8c46 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x44a5dca8 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x467a42d6 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x496d008d ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x4e5cbe31 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x58a7fa91 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x65a82fcb __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x6c4a96e0 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x70bcd0f6 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7ba48584 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x7d50f513 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x82c26759 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x857b42a5 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x89bfc65d ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x97333844 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x981ae3c2 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa92eb065 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb8ce9844 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc579ac74 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc8443dd8 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc93c8c9e ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xd30cb725 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xd48fd347 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xdec18e51 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe0d72ef8 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xe46bca20 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf8a24882 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xfa376654 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xfa79ca6b ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xfc58c972 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x031b1a60 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x201efcec register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x34d03e9a unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4363f8f6 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x55ababf5 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5b30986c ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7da95a22 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x809666de register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc09d79d4 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcf25883e ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xda9d5a91 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xee5c000a ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x48606804 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8271cc48 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xae0e0611 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xa2a53159 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x1006b593 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x1a19a5e5 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x43eb2ec7 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x445e5b69 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x54a1cc1a xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x650fe769 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x86ce2296 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x8a2016de xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc99c56ca xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xe80bb1af xt_unregister_match +EXPORT_SYMBOL net/phonet/phonet 0x0d02eda1 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x70499a96 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x717a0300 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x8e746798 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x8f9df17f phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x9306b9ff pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xa4153b19 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xed60ff29 pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x02d1b5b4 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0ee73121 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x184e4f05 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2d0692ce rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2e095b82 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x38ce1f16 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x44156f75 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6048a6d7 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x683c0aa3 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7827979f rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xba514acb rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc0b970ae rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd555b7f3 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xda8982ae rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfc0cec0c key_type_rxrpc +EXPORT_SYMBOL net/sunrpc/sunrpc 0x14b9c290 svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcf9de74b xdr_terminate_string +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x68c97d25 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x6c5fb319 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xae6a79c5 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x016d3220 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x01a6ddc6 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x0625862b cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0a2486e4 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x103f9c4b cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x20ca1a82 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x24437512 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x2462d44e ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x25633d63 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x2cd5609d wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x3efed48d cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x431b7a01 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x44abc240 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x473992c8 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x4b017cbc cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x51cdccdf cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x59da088f __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x5a0d94a1 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x62fe188f ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x64252873 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x66961af3 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x66d90e81 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x69578f92 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6f4ab386 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x78115294 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7ec1f21e ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8df5a187 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x8e1187e4 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9b8f4f5e cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x9be2bba1 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x9fadaeb8 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xa896d266 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xaca652f0 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb236a5a2 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xcace789d wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xd295dc70 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xd48f3050 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xd4fe231e cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xe10e65f1 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xeb795999 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xef64044c cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xf208c9ce wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xf2ec4506 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf6305ace cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xf7e55ad7 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/lib80211 0x005c01e7 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x11537c8d lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x264550d2 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x6e9a6efc lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0xb8465103 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xcda42e3b lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0xce469512 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xfdf6610d lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x34c936ad ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x371848f6 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x41ed4697 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 0x96d0aef7 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc23d0b67 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x1c15aa06 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 0xc669d4de 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 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 0x0629965b snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x02cf8373 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x18524822 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x2336e3a2 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x281480ac snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x324324d8 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3a003744 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x3aa4eb54 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x3d4598e2 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x40ebc328 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x467c213c snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x5c657209 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x64438d66 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x6b767d42 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x75b179d4 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x7929bee6 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x81939183 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x855e584a snd_card_create +EXPORT_SYMBOL sound/core/snd 0x87380b9d snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x88d84a2c snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x8ea72990 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa19066df snd_card_register +EXPORT_SYMBOL sound/core/snd 0xa7c0283e snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xaac331d3 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xabceb206 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xae63df9b snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xb105138f snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb98d0d6f snd_component_add +EXPORT_SYMBOL sound/core/snd 0xbe68155b snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xbe6f48ab snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xc1b94ff2 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xccd4dc85 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xcf75895b snd_device_register +EXPORT_SYMBOL sound/core/snd 0xdf470cee snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xe0004b36 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xe206e884 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe230369c snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xe2cb0b2b snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xe3db3261 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xefedd3fd snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xf52075a4 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xf5ffa92c snd_cards +EXPORT_SYMBOL sound/core/snd 0xfb23c5fc snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xfb30b676 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd-hwdep 0x407e93f5 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2405e8a8 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2d526e69 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x789487c0 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xdf50ad51 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xe82d3d2a snd_dma_alloc_pages_fallback +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 0x0615156e snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x181e057f snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x18e23efb snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x1c1e6f15 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x219c3013 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x21ea0f92 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x220c1d0e snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x224c2972 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x24863c98 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x293f3dac snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x2d62fe48 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x30d93291 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x32fa1ace snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x36e03385 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39337b1a snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3e5a2dce snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4e6087d9 snd_pcm_hw_constraint_pow2 +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 0x54651f02 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x564b5fb3 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x5d6c2ff5 snd_pcm_sgbuf_get_chunk_size +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 0x669d4b64 snd_pcm_hw_param_first +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 0x72a15f4f snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x78680634 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x7d09b017 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x918a2e7f snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x91b4fa64 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x933f38eb snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x97294569 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xa36868d7 snd_pcm_open_substream +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 0xb8ec6c42 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbb77e70e snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xbbcdeafa snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xbd8edf09 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xbdce06d3 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xbebd3b92 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xc0620dc0 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xcaab46b1 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xcd37baa8 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xdffb5e7d snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xec188c5b snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xec63e5ce snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf6813ae6 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0550712e snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06d7e15e snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x093814b2 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x286e0cd9 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x42312c7d snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x59ce2540 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x63f91502 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x669a4db4 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x70668f2b snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x81a904fb snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x81fcdce2 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9237c8ea snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb1df22d8 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb3c28493 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb90ddf73 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc2be9c7a snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf98b3806 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-timer 0x162b01ed snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x33ba8d4f snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x510acba9 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x5c1c6522 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x60525313 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x662d0314 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x6b1b6deb snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x9a50c6b9 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xb1c28473 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xb4b11465 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xc5bd841b snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xc9fc6163 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xf58e6446 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 0x69c10823 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 0x2b157aa8 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2c7e1114 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5900398d snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5f64bcc5 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x60e879bb snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6d615e81 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7e158e63 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x865d6141 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe5c1d0bc snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x05796bf3 snd_opl4_read +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x4099c01f snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x5e2a3221 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x66e49229 snd_opl4_write +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x82aef468 snd_opl4_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x064cb54b snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x16757390 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6504f168 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6f060465 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8911db47 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xcfab10b0 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe71545b8 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfabd4e19 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfbe80804 snd_vx_setup_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x25bc7cb2 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x6bf8b6f5 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x813ededc snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x98ebb458 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa5908bc3 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa747bda2 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4b8c29af snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4fbd6b85 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xca6d8448 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd1bb1ad4 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe93e0ea2 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe9d1388c snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x139b8530 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1afc2eb4 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x3beb0756 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xce52514c snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x4387e1ca snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x47488a2e snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x037552de snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x291b1c9f snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x3fb486b9 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x698d939c snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x69f3215c snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8f1fb173 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb2dc487d snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0bb4fae5 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0f74a317 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x333581a9 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x581c123f snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xaccb4618 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xba52de81 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x3ae14bea snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xf3152a67 snd_tea6330t_detect +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x0d9fac77 snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x1e764642 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x3766befa snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x8baf6c57 snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x91d70263 snd_es1688_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x04c431c2 snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x05645722 snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0a1cd907 snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0f919fb4 snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x14977b4f snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1922dbbe snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x38506aca snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x3c4a9725 snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x55bfffdb snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7135238b snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x830995d7 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x896ce4c5 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9c0f4b6d snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9f1e6682 snd_gf1_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xaa55d62c snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb8e54f5e snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xbac0488d snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc031177d snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc7f8ac1d snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xca20fb79 snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd02fc12c snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd11f2414 snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd320b1c1 snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe70c56c9 snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe95a960b snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xed8b1d50 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf0b5bfee snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf178bf8a snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf527eb2d snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf660e550 snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfb4e68ec snd_gus_dram_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x03872484 snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x176b0739 snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x195fcfa6 snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x441b363c snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x4afe1848 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x6e2ad4bc snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x7453a5c2 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x8b29f5ea snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xace2724e snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xd69704b6 snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xe7f1f8ed snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xec1b6109 snd_msndmix_new +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x58e447cf snd_aci_get_aci +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xfa1ad431 snd_aci_cmd +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x08b37f18 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2c2a50ad snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x38370c97 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5cbe76d3 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x69982eee snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8178240b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8f424152 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9534029b snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa572bce2 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf7674d39 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x6afbfa14 snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x2fedf753 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x8f852a64 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x94b9ce2e snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x4adcb2b1 snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x8438563f snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x8741effd snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x96a11a5a snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1141111f snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1926c577 snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1c276f98 snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x2cb674df snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x2ffe8fb0 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x94764304 snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xafda0f72 snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xbd1d66a2 snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xcbcc912a snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xe67b08a9 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xed593610 snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x012a6f02 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x06928f4c snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x0803b236 snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x10004e98 snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x3101efb1 snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x35a350cb snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x36f30fe7 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x455dbad7 snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x4c17e00d snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x4f5d9b4b snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x57431e30 snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x6f6f701c snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9b576ceb snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xad263420 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc5c320cd snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd210940d snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe1b38301 snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xee5023e5 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf15b010e snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf81d42c3 snd_wss_mce_up +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x12c6c5ee snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x286542a2 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3d49499f snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4233db8f snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x451b3033 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4c2198fe snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x54703080 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5c2c4c88 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7c901098 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x89f01336 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9f156ac9 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb040ba3f snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc430d033 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd86941b0 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe75e3ec3 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xeafec316 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xeebd1f14 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xfa48e506 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x156d12fd snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x182a9210 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x32e933d5 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x423bec0e snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x51d2f563 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x83eff679 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x900ac836 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb2381067 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdecad924 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xb25a0279 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7f417c53 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xbaded5e7 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xf01293d5 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x04fad4a1 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x05266dc3 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x07292bb3 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1a4549f0 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x28a47ef0 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x330ecae4 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5411860b oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x85d004a6 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9002dece oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa3141cc6 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa80f95a6 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaa47eed6 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb9d4ea89 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbd20b041 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbf06efbe oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc1e42b41 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdbcb5603 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xeac57fd7 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef851ef8 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3644177 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3ad7734 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x45f6154e snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6bdd50c3 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6bea2687 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6ca39f98 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x899b01ae snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soundcore 0xddde8a5c sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4e79f2e2 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 0x66e429f1 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x9bffb657 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa124ccea snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc9b24dbf snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xcf4c6c22 snd_emux_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x169428c4 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2c5c5587 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5c3c0c2b snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x877d1a43 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x89bd513a snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb12cf3f9 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc2390f81 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe4b3b377 __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 0x789cf2e5 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x0d988934 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4db74ccd dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x543067cb dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x74ea4959 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 0xe20ff6dd dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xfbd84316 dm_mem_cache_shrink +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x0034ce69 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x003d0958 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x003f4b81 page_symlink +EXPORT_SYMBOL vmlinux 0x0043336e vga_put +EXPORT_SYMBOL vmlinux 0x0047a29f scsi_finish_command +EXPORT_SYMBOL vmlinux 0x007a7d5a genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0086b546 block_commit_write +EXPORT_SYMBOL vmlinux 0x009ccca0 agp_free_memory +EXPORT_SYMBOL vmlinux 0x00c9489e simple_link +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0134738f input_register_device +EXPORT_SYMBOL vmlinux 0x013d74ad scm_fp_dup +EXPORT_SYMBOL vmlinux 0x014236fe tty_devnum +EXPORT_SYMBOL vmlinux 0x016d75bf tcf_action_exec +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a308c7 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01b8b90f neigh_connected_output +EXPORT_SYMBOL vmlinux 0x01b9bec8 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01dc5f74 init_task +EXPORT_SYMBOL vmlinux 0x01e17535 d_set_d_op +EXPORT_SYMBOL vmlinux 0x01e8e024 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x01f28bff dm_register_target +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0216f5f4 lro_flush_all +EXPORT_SYMBOL vmlinux 0x0231d2f5 simple_write_begin +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023b9bef dev_crit +EXPORT_SYMBOL vmlinux 0x02421742 __elv_add_request +EXPORT_SYMBOL vmlinux 0x02565213 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x0258f1e5 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x025efb02 simple_empty +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026a6811 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x0287456b fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x0287b291 skb_find_text +EXPORT_SYMBOL vmlinux 0x028b82c3 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02d740c5 alloc_file +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02dffbfd do_sync_write +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x0300d722 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x030c8271 nla_append +EXPORT_SYMBOL vmlinux 0x0327da96 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0343cdc5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x03566b87 dev_warn +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0386c8f6 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x03ab6393 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04153f60 skb_insert +EXPORT_SYMBOL vmlinux 0x0416d62a names_cachep +EXPORT_SYMBOL vmlinux 0x0420635f km_new_mapping +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0440e0b9 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x044e33a7 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x045831dc vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04c3632f dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x054462f4 nobh_write_end +EXPORT_SYMBOL vmlinux 0x0552d980 ilookup +EXPORT_SYMBOL vmlinux 0x055f47c7 journal_update_format +EXPORT_SYMBOL vmlinux 0x056d8d13 elv_rb_find +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0585ad79 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x05a8817c __lru_cache_add +EXPORT_SYMBOL vmlinux 0x05d99a89 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x0601fb97 vfs_read +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0624d73f tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x062db08e iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x065e6243 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0680fb59 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x0687509e vm_insert_page +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x069007fd i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06c9ee2b serio_close +EXPORT_SYMBOL vmlinux 0x06d6873e scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06e77de7 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0712a415 proc_symlink +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0737bea7 d_find_alias +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x07751ccf i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new +EXPORT_SYMBOL vmlinux 0x077dca39 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079f7f69 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07c15e68 sock_no_listen +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07d8dd8c blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x07d95b7d cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07f04e4b rfkill_set_states +EXPORT_SYMBOL vmlinux 0x07fe2a6f ip6_frag_init +EXPORT_SYMBOL vmlinux 0x0800402f scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x08289214 bmap +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08496318 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x0854b83b submit_bio +EXPORT_SYMBOL vmlinux 0x087829be block_read_full_page +EXPORT_SYMBOL vmlinux 0x087e4372 devm_iounmap +EXPORT_SYMBOL vmlinux 0x08814a4f tcf_hash_check +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x089e8713 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x08c855bd mark_page_accessed +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x0902e57d kobject_get +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0936de56 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x09469d6b flex_array_shrink +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099adb22 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x09a42c0d scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x09a8aee6 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c81257 security_path_truncate +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09f20dda idr_init +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a69f7a4 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x0a898346 netdev_printk +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad57ae5 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x0aeb89fd __seq_open_private +EXPORT_SYMBOL vmlinux 0x0b055a6a nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b565059 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b747560 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x0b833784 simple_setattr +EXPORT_SYMBOL vmlinux 0x0b91f2dc key_link +EXPORT_SYMBOL vmlinux 0x0bbf0cc9 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x0bc7a669 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x0beeffc7 pci_request_region +EXPORT_SYMBOL vmlinux 0x0c2e2acf directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x0c36452e __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x0c4bd10e dev_alloc_name +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb2260a gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cce6aa5 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x0cf4f105 kernel_connect +EXPORT_SYMBOL vmlinux 0x0cf733c2 neigh_table_init +EXPORT_SYMBOL vmlinux 0x0d0d9fd7 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x0d1f9da7 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d40a579 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d7959a6 phy_detach +EXPORT_SYMBOL vmlinux 0x0d7aea59 put_disk +EXPORT_SYMBOL vmlinux 0x0d8e9b42 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x0d9e6edd pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x0da06f9b mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0daaa7e3 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x0dd83f2e d_lookup +EXPORT_SYMBOL vmlinux 0x0ded09bd pid_task +EXPORT_SYMBOL vmlinux 0x0e0cac77 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x0e17186d vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e17aabb kernel_bind +EXPORT_SYMBOL vmlinux 0x0e30435b key_payload_reserve +EXPORT_SYMBOL vmlinux 0x0e335f52 bio_put +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e53ae8a vfs_writev +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e805fbc ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x0e8b2ab8 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x0eab4689 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x0eb733b7 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x0ee4a00a genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x0ef38b1e register_quota_format +EXPORT_SYMBOL vmlinux 0x0f0cc809 pci_request_regions +EXPORT_SYMBOL vmlinux 0x0f135443 lock_may_read +EXPORT_SYMBOL vmlinux 0x0f24b45a pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x0f8ab8df filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x0f9909e6 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x0fa8fc5c security_path_rmdir +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd4ca5b __serio_register_port +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffbd32f xfrm_register_type +EXPORT_SYMBOL vmlinux 0x10152546 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x101858e7 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x102c3e74 mdiobus_write +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x103f5303 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x104443f4 elevator_exit +EXPORT_SYMBOL vmlinux 0x104f9440 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1065602f __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x106defc9 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x10a2a892 tty_throttle +EXPORT_SYMBOL vmlinux 0x10a9d522 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x10b79e8b ip_route_output_key +EXPORT_SYMBOL vmlinux 0x10d0e4d6 __scm_send +EXPORT_SYMBOL vmlinux 0x10d8adf7 i2c_add_adapter +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 0x11331f80 blk_start_queue +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117f185e contig_page_data +EXPORT_SYMBOL vmlinux 0x118153cc vm_map_ram +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x118f2767 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x119b4e60 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x11aac5ec generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x11d7d0ed vfs_rmdir +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11fd283f mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x122c809e in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x122f20c7 sk_dst_check +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x127a373f try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x1286f63a filemap_fault +EXPORT_SYMBOL vmlinux 0x128f163a udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12bef97d pnp_is_active +EXPORT_SYMBOL vmlinux 0x12c10d22 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x12c804b0 km_report +EXPORT_SYMBOL vmlinux 0x12cbb099 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x12d08e73 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fa5a14 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x1351cb43 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x1355255b __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x1372d1b5 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x1378e9e8 user_path_at +EXPORT_SYMBOL vmlinux 0x139a043e tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13cd94e0 fb_blank +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d867c7 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x141eedd3 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1431143c seq_path +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x143b7fe0 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x1447e8eb pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x144898d1 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x144c8597 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x1452e2b2 pipe_lock +EXPORT_SYMBOL vmlinux 0x147fed58 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x14a0a3b4 set_groups +EXPORT_SYMBOL vmlinux 0x14e6a18e pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x14ecdc6f seq_puts +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1574c0b9 del_timer +EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x15904e0b dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x15942b21 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x15978910 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x159c478d tcf_exts_change +EXPORT_SYMBOL vmlinux 0x15b51372 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x15b87985 unregister_8022_client +EXPORT_SYMBOL vmlinux 0x15becbd4 dev_mc_del +EXPORT_SYMBOL vmlinux 0x15c7011c bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x15c8909f posix_acl_permission +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x160a8e33 blk_complete_request +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x160f8cd8 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x1615ef5f phy_connect +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x162a34d8 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16319af0 dma_supported +EXPORT_SYMBOL vmlinux 0x1641b5c5 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x164bfb09 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x16532aac dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x16766138 kernel_accept +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x167ed95e dput +EXPORT_SYMBOL vmlinux 0x16996d8b blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x16ab0f25 inode_change_ok +EXPORT_SYMBOL vmlinux 0x16c75b4d dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x16cc40c0 path_put +EXPORT_SYMBOL vmlinux 0x16d1cbc8 udp_proc_register +EXPORT_SYMBOL vmlinux 0x16d8898e cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x16eef1a4 free_buffer_head +EXPORT_SYMBOL vmlinux 0x16f6d9e4 d_genocide +EXPORT_SYMBOL vmlinux 0x1709be9f __kmap_atomic +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x170cbdf2 input_reset_device +EXPORT_SYMBOL vmlinux 0x171421e1 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x175bfc39 __nla_reserve +EXPORT_SYMBOL vmlinux 0x178348ff audit_log_format +EXPORT_SYMBOL vmlinux 0x17954c60 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x17a2d010 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x17a334e0 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x17a8f79d skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x17b446a3 mca_device_set_name +EXPORT_SYMBOL vmlinux 0x17caec49 fb_class +EXPORT_SYMBOL vmlinux 0x17d3b6ec cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1828edbc i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x189e0ac1 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x18d70e3c mount_nodev +EXPORT_SYMBOL vmlinux 0x18db2686 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x18e6a6ff ps2_handle_response +EXPORT_SYMBOL vmlinux 0x18fd5d86 d_move +EXPORT_SYMBOL vmlinux 0x19076e61 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x1965045d blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x19706654 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x1986ad88 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x1994299d get_gendisk +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19de5dc5 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x19e92440 flex_array_put +EXPORT_SYMBOL vmlinux 0x19e9857c con_is_bound +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a0caa5b sock_wake_async +EXPORT_SYMBOL vmlinux 0x1a198c9e writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x1a416cfa pnp_get_resource +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a46d249 find_get_page +EXPORT_SYMBOL vmlinux 0x1a5eef5e skb_push +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a704068 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa9fb63 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x1aaec4f5 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9aa3f4 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x1b9ca4ab ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb6c5da __nla_put +EXPORT_SYMBOL vmlinux 0x1bbc70f7 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x1c098f14 pci_find_bus +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c3326d7 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x1c359531 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x1c59ed3e uart_match_port +EXPORT_SYMBOL vmlinux 0x1c5a05b9 dst_destroy +EXPORT_SYMBOL vmlinux 0x1c5dabaa icmp_send +EXPORT_SYMBOL vmlinux 0x1c680219 register_netdevice +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c9b7e73 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x1c9b8066 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x1ca879ca cdrom_check_events +EXPORT_SYMBOL vmlinux 0x1caba493 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce11f30 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d4a2003 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x1d4d2b82 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x1d4d441d have_submounts +EXPORT_SYMBOL vmlinux 0x1d4d46c4 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x1d54fd8a read_cache_pages +EXPORT_SYMBOL vmlinux 0x1d7f0cda sock_rfree +EXPORT_SYMBOL vmlinux 0x1da7eb5d ip6_route_output +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd2a03d sync_blockdev +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd98fc6 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x1de12965 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x1df65373 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e0fa9d7 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x1e139813 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x1e300a17 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x1e35c0a9 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x1e37d7f6 sget +EXPORT_SYMBOL vmlinux 0x1e3bd10e dma_pool_free +EXPORT_SYMBOL vmlinux 0x1e3e27df ps2_end_command +EXPORT_SYMBOL vmlinux 0x1e436092 skb_append +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e90b015 ip_fragment +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ebbe3f4 input_grab_device +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f0930a7 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x1f8a17cb pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x1fbd32f8 mpage_readpages +EXPORT_SYMBOL vmlinux 0x1fc2256b __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x1fcc3d11 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd434bf inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2002dd17 bio_split +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20069d87 __alloc_skb +EXPORT_SYMBOL vmlinux 0x200c0a52 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x201f81dc arp_xmit +EXPORT_SYMBOL vmlinux 0x205a1a22 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20891167 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x20a7ae98 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x212346d2 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x212b5b71 __register_binfmt +EXPORT_SYMBOL vmlinux 0x2158e0ba dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2191b8a8 mount_bdev +EXPORT_SYMBOL vmlinux 0x2199a928 udp_prot +EXPORT_SYMBOL vmlinux 0x219aba14 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x21add650 input_event +EXPORT_SYMBOL vmlinux 0x21af4853 dm_put_device +EXPORT_SYMBOL vmlinux 0x21c1a14a netdev_alert +EXPORT_SYMBOL vmlinux 0x21ca6cd0 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x21d4ae3f generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e1fc10 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x21f9ef39 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x220a5429 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x22235a44 path_get +EXPORT_SYMBOL vmlinux 0x2223f123 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x224ed6ae sock_wfree +EXPORT_SYMBOL vmlinux 0x22546d2c md_register_thread +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x22817237 lookup_one_len +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228bad73 pci_clear_master +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22f2b83c mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x2304ed64 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x2313be87 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x2317772a journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x23197a22 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x232247e1 unlock_page +EXPORT_SYMBOL vmlinux 0x2327bb20 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x2342ef54 vga_client_register +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x236bd3db ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x23754cb4 netlink_unicast +EXPORT_SYMBOL vmlinux 0x238e872e simple_transaction_read +EXPORT_SYMBOL vmlinux 0x239daa52 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x23a4e669 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23c417b8 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f07d95 elv_rb_add +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240e760c dev_addr_add +EXPORT_SYMBOL vmlinux 0x2412c40f prepare_creds +EXPORT_SYMBOL vmlinux 0x2414033c dev_uc_add +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246683e4 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x246fcd96 pci_disable_device +EXPORT_SYMBOL vmlinux 0x24a64c2f unregister_md_personality +EXPORT_SYMBOL vmlinux 0x24a671e0 task_nice +EXPORT_SYMBOL vmlinux 0x24c185f9 noop_llseek +EXPORT_SYMBOL vmlinux 0x24c42b47 get_super +EXPORT_SYMBOL vmlinux 0x24ced483 dquot_release +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2500d743 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x254e9b3e register_cdrom +EXPORT_SYMBOL vmlinux 0x255d4e16 __getblk +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25867090 mii_link_ok +EXPORT_SYMBOL vmlinux 0x259c91de dev_disable_lro +EXPORT_SYMBOL vmlinux 0x25a4ef25 lock_may_write +EXPORT_SYMBOL vmlinux 0x25b27c90 tty_port_init +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25ebe3aa xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x25f6cf0c radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x25fb3a8d vfs_readdir +EXPORT_SYMBOL vmlinux 0x260977dc skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x260bd696 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x262443ae icmpv6_send +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace +EXPORT_SYMBOL vmlinux 0x26525979 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x265821e2 pci_choose_state +EXPORT_SYMBOL vmlinux 0x266b7aac generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x2680f399 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x2692316a I_BDEV +EXPORT_SYMBOL vmlinux 0x269a6fe0 devm_free_irq +EXPORT_SYMBOL vmlinux 0x26af7df3 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26dc37ae dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x26e09f9d acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2707a701 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x274fc8c0 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x27629412 unregister_key_type +EXPORT_SYMBOL vmlinux 0x2766e8bc save_mount_options +EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279a1b18 input_unregister_device +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27c79bed hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x27df160c __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x27f84bb2 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x281bcf5c mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x28285def dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x2847b13b scsi_print_result +EXPORT_SYMBOL vmlinux 0x2861262c jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x28622041 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x2877d79c cfb_fillrect +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a4be4d skb_dequeue +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28f92bd3 complete_request_key +EXPORT_SYMBOL vmlinux 0x290e413d dcb_setapp +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x2923d3d5 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x292a6981 __lock_page +EXPORT_SYMBOL vmlinux 0x294fb206 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29660c54 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x296e7fd1 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x29721c41 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x297e7015 open_exec +EXPORT_SYMBOL vmlinux 0x299d9957 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x299fae0b vfs_fsync +EXPORT_SYMBOL vmlinux 0x29b3e78c sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x2a0aa80c dquot_enable +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a5f69c2 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa5fc71 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x2aa613fd pnp_register_driver +EXPORT_SYMBOL vmlinux 0x2aaec0c3 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1cd921 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x2b21e8ff alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b31894f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2b66ab17 nf_register_hook +EXPORT_SYMBOL vmlinux 0x2b66ed54 d_validate +EXPORT_SYMBOL vmlinux 0x2b7807c1 journal_stop +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba67c14 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bd6beb0 key_put +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c029ad1 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x2c1bcfce lock_fb_info +EXPORT_SYMBOL vmlinux 0x2c1cd5e0 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2dd51d netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x2c3592d5 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x2c6d7cb8 bdget_disk +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c963f1b pci_restore_state +EXPORT_SYMBOL vmlinux 0x2ca7e3db unregister_snap_client +EXPORT_SYMBOL vmlinux 0x2ccb97e4 unlock_buffer +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2a2f69 read_cache_page +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d55e056 pci_map_rom +EXPORT_SYMBOL vmlinux 0x2d56a5bb pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d93466f xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x2da347fe key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x2da86892 locks_free_lock +EXPORT_SYMBOL vmlinux 0x2dc3bb1d kmem_cache_create +EXPORT_SYMBOL vmlinux 0x2dc4f096 tty_register_device +EXPORT_SYMBOL vmlinux 0x2dcd4e87 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd20117 netdev_set_master +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2dee160b unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2dff02b6 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x2e039e1e agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x2e12e8ba sock_create_lite +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e2f023d elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x2e4eccc6 set_page_dirty +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e8560c0 mem_map +EXPORT_SYMBOL vmlinux 0x2e9dcfcb __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x2eb30a11 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x2ebc0408 genl_register_family +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ef69190 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x2ef87205 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x2f03b033 fput +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f0ed542 netlink_set_err +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f308f3e netif_device_detach +EXPORT_SYMBOL vmlinux 0x2fcd54e8 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x30016a8f bio_add_page +EXPORT_SYMBOL vmlinux 0x3003c5bb shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x305111d7 dev_notice +EXPORT_SYMBOL vmlinux 0x3051c43c d_invalidate +EXPORT_SYMBOL vmlinux 0x30785b28 override_creds +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30ad31d0 md_integrity_register +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30d8024a iput +EXPORT_SYMBOL vmlinux 0x30daf11b should_remove_suid +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30e83b07 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x30e88486 do_splice_to +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3149648a xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x317b33f0 find_lock_page +EXPORT_SYMBOL vmlinux 0x31896001 netif_skb_features +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31aebe89 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x31b0d60f page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x31b599ba proc_create_data +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ea424f scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x32283fdd insert_inode_locked +EXPORT_SYMBOL vmlinux 0x323aec52 skb_split +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x32420d73 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x3286b69e mpage_readpage +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x32e756f7 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x32f76e07 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x3308a185 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x335b2efe ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x3374a7a9 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x3374d8e3 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x337b42bc i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x339a3622 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x33ae68d1 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x33aebc02 input_inject_event +EXPORT_SYMBOL vmlinux 0x33bd6d31 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33df49f5 generic_read_dir +EXPORT_SYMBOL vmlinux 0x3408c81c mca_bus_type +EXPORT_SYMBOL vmlinux 0x341eb358 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x343c9d6a bdi_init +EXPORT_SYMBOL vmlinux 0x343d4a20 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x343f6c78 simple_rmdir +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x346b54b0 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x346d8716 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34726185 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x3485b1b7 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34af2537 request_key_async +EXPORT_SYMBOL vmlinux 0x34bd3c22 spi_release_transport +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x34c30d3b write_inode_now +EXPORT_SYMBOL vmlinux 0x34d4e2c1 read_dev_sector +EXPORT_SYMBOL vmlinux 0x34f833bb flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x35336896 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x3559e888 cad_pid +EXPORT_SYMBOL vmlinux 0x35978803 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x35a970e1 rename_lock +EXPORT_SYMBOL vmlinux 0x35af59bd set_bdi_congested +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c61912 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3621fe35 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x36603ecd dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x3665f015 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x36668618 bdget +EXPORT_SYMBOL vmlinux 0x366dca7e nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x367e78bd netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36b2e75c set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x36b6eaee vfs_create +EXPORT_SYMBOL vmlinux 0x36c66e4d simple_rename +EXPORT_SYMBOL vmlinux 0x36d1663f uart_resume_port +EXPORT_SYMBOL vmlinux 0x36d45a25 keyring_clear +EXPORT_SYMBOL vmlinux 0x36e25843 input_register_handler +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x37247e79 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x3725a1cc proto_unregister +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x377f7989 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x37a22924 journal_forget +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c1110e bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x37c2d369 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x37cbfeaf thaw_process +EXPORT_SYMBOL vmlinux 0x37db354d __destroy_inode +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f5fba8 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37f64f8f skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x380fa1ff ida_get_new_above +EXPORT_SYMBOL vmlinux 0x3814900e register_md_personality +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x381fd099 blk_insert_request +EXPORT_SYMBOL vmlinux 0x383d1d53 arp_tbl +EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each +EXPORT_SYMBOL vmlinux 0x386120de skb_queue_head +EXPORT_SYMBOL vmlinux 0x386aba4d input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x386efa1c put_mnt_ns +EXPORT_SYMBOL vmlinux 0x387c2baf radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0x387c3db0 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x387d020e revert_creds +EXPORT_SYMBOL vmlinux 0x38802fa7 __invalidate_device +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388c2d5b give_up_console +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x388fcf81 sock_create_kern +EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake +EXPORT_SYMBOL vmlinux 0x38ab8c08 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x38b6da79 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38bac9e2 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x38c9f3e7 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x38f1b5ee generic_make_request +EXPORT_SYMBOL vmlinux 0x38f296d6 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x39041cc6 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x39043df4 datagram_poll +EXPORT_SYMBOL vmlinux 0x3964ec43 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x3973d258 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39994d83 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x399cd464 llc_add_pack +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39ba5db4 tty_port_put +EXPORT_SYMBOL vmlinux 0x39c4428b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x39da1ace poll_initwait +EXPORT_SYMBOL vmlinux 0x39ed4574 seq_lseek +EXPORT_SYMBOL vmlinux 0x39feb75c netdev_emerg +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a1d7ac4 release_sock +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a2453e3 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a3d6b14 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x3a5de6dd inet_accept +EXPORT_SYMBOL vmlinux 0x3a67e96b ll_rw_block +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3aa849d4 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x3ac52236 setup_new_exec +EXPORT_SYMBOL vmlinux 0x3ad148b9 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x3ad63667 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x3b11522b hippi_type_trans +EXPORT_SYMBOL vmlinux 0x3b29065f netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b7f22b7 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bdc13b7 journal_errno +EXPORT_SYMBOL vmlinux 0x3bed7941 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x3bf80da9 __devm_release_region +EXPORT_SYMBOL vmlinux 0x3c061b9a i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x3c212a4f bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c30181f mmc_free_host +EXPORT_SYMBOL vmlinux 0x3c30369c pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x3c454aa8 fd_install +EXPORT_SYMBOL vmlinux 0x3c5281e2 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x3c5d4615 do_truncate +EXPORT_SYMBOL vmlinux 0x3c6193e7 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x3c71706f inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb29e41 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ce9bf54 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x3cef9ec9 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x3d0629e9 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d317d2f acpi_bus_add +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3db93446 km_state_expired +EXPORT_SYMBOL vmlinux 0x3dd2aa6b alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x3dd9e19d security_path_chown +EXPORT_SYMBOL vmlinux 0x3ddd0481 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x3de28f63 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x3de767d4 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x3def2fe9 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e089782 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x3e13fd4d vga_tryget +EXPORT_SYMBOL vmlinux 0x3e1c6759 kdb_current_task +EXPORT_SYMBOL vmlinux 0x3e24429f tcf_register_action +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e38f825 dma_pool_create +EXPORT_SYMBOL vmlinux 0x3e3de835 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e542259 netdev_info +EXPORT_SYMBOL vmlinux 0x3e672e51 path_is_under +EXPORT_SYMBOL vmlinux 0x3e877e1a kmem_cache_size +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ebab4e4 kobject_put +EXPORT_SYMBOL vmlinux 0x3ebbe5ba dump_seek +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee2c66f netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x3ee4764e mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x3ee649bc machine_to_phys_order +EXPORT_SYMBOL vmlinux 0x3ef5d46c find_inode_number +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3efb4c6e ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f14a8de splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x3f18564e agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x3f21d5bc __bread +EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f93f4d5 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x3fb3dea6 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffa46aa __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x401b3e5e simple_readpage +EXPORT_SYMBOL vmlinux 0x403d0104 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x404dd4cc mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x40584a77 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4092214f serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +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 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c13371 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d3c1fd security_path_link +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x411caac4 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414ea35b scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x41579849 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419027a3 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x41c03d4f pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x41c36287 tty_port_close +EXPORT_SYMBOL vmlinux 0x41e9963a netif_napi_del +EXPORT_SYMBOL vmlinux 0x41ede14e security_inode_permission +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41f4485c __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x41fbb19f block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x42045206 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42157f62 follow_down_one +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x422dcf78 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x4247b7db llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x424dbad9 is_bad_inode +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x425a28e8 mount_single +EXPORT_SYMBOL vmlinux 0x4275b4b5 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d2f005 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x42fb1619 mdiobus_register +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43031f82 end_page_writeback +EXPORT_SYMBOL vmlinux 0x43116717 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x431c8565 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x43569507 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x435fdc92 register_nls +EXPORT_SYMBOL vmlinux 0x4362d7dc ppp_input_error +EXPORT_SYMBOL vmlinux 0x4365af10 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x4367234b pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x436760bd security_inode_readlink +EXPORT_SYMBOL vmlinux 0x4367d854 sock_i_uid +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4392c735 bioset_free +EXPORT_SYMBOL vmlinux 0x439c272a journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x43a3673f dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x43cc58b4 security_path_symlink +EXPORT_SYMBOL vmlinux 0x43ccc7ae __register_chrdev +EXPORT_SYMBOL vmlinux 0x43e7b7d6 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x43ecd2af journal_flush +EXPORT_SYMBOL vmlinux 0x4411d8f8 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x442424a8 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x442b9ae5 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44688925 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x446c7873 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x446e8689 register_snap_client +EXPORT_SYMBOL vmlinux 0x4477bdd5 mpage_writepages +EXPORT_SYMBOL vmlinux 0x449f0342 noop_fsync +EXPORT_SYMBOL vmlinux 0x44a5f867 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x44a74260 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x44a9a3fc skb_pull +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c837f3 iget_locked +EXPORT_SYMBOL vmlinux 0x44e48dfc blkdev_get +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x453cce0f generic_fillattr +EXPORT_SYMBOL vmlinux 0x454f323b journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x456e6dce radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45850bef pci_enable_device +EXPORT_SYMBOL vmlinux 0x458dc235 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45a6c21b netif_rx +EXPORT_SYMBOL vmlinux 0x45b83772 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x45d04c62 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45e41757 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x45eb161b xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x465d065f pci_write_vpd +EXPORT_SYMBOL vmlinux 0x46649213 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x4665007c tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x46650aaf elv_queue_empty +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x466c97fc devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x4670d650 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x4695b35b max8998_write_reg +EXPORT_SYMBOL vmlinux 0x46b49454 stop_tty +EXPORT_SYMBOL vmlinux 0x46c11309 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x46d561c8 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x46dff17f blk_remove_plug +EXPORT_SYMBOL vmlinux 0x4714e85c udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x471b72fa dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x471e504c abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x474364b2 nf_log_packet +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475268bd vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x475310e4 neigh_destroy +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 0x47963963 bio_integrity_trim +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 0x47e10883 bdput +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4837b7d8 xfrm_input +EXPORT_SYMBOL vmlinux 0x483c613a tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x48483064 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485aa660 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x485e97e3 register_con_driver +EXPORT_SYMBOL vmlinux 0x486698b4 fb_get_mode +EXPORT_SYMBOL vmlinux 0x48849b96 dst_discard +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x4898850f tty_port_close_end +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48b14bba qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x48fb672b ihold +EXPORT_SYMBOL vmlinux 0x48fdf3ae page_readlink +EXPORT_SYMBOL vmlinux 0x49028939 pci_release_region +EXPORT_SYMBOL vmlinux 0x493e5104 bdevname +EXPORT_SYMBOL vmlinux 0x49428f09 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49606cce dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x49693fbf __free_pages +EXPORT_SYMBOL vmlinux 0x496c1584 seq_release_private +EXPORT_SYMBOL vmlinux 0x49808d86 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x498b3b41 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x4996c19b vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b9dfd3 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x49c050cd generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x4a02888d secpath_dup +EXPORT_SYMBOL vmlinux 0x4a328615 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a3b2aae pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x4a40cfde input_set_abs_params +EXPORT_SYMBOL vmlinux 0x4a42f750 register_exec_domain +EXPORT_SYMBOL vmlinux 0x4a5218de dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x4a63e1ef scsi_prep_return +EXPORT_SYMBOL vmlinux 0x4a6dd8ea filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad207d4 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x4adad3f5 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x4adff67e pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x4aecf849 __sock_create +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b14784c security_path_chmod +EXPORT_SYMBOL vmlinux 0x4b17648d eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x4b2a9739 scsi_host_put +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b3e0277 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x4b6fd6fc dev_mc_flush +EXPORT_SYMBOL vmlinux 0x4b70d486 dma_ops +EXPORT_SYMBOL vmlinux 0x4b830504 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x4b8afa55 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x4b8d5b5f blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4be030f6 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x4be83170 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x4bfe140e tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c17d23e netif_notify_peers +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c8d2db2 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x4cac54ee inode_get_bytes +EXPORT_SYMBOL vmlinux 0x4cae15fe find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cf968f1 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x4cfbdafc __kfree_skb +EXPORT_SYMBOL vmlinux 0x4cfdc9fa filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d6d023f pci_iounmap +EXPORT_SYMBOL vmlinux 0x4d7f15f3 inet_addr_type +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d98155d kunmap_high +EXPORT_SYMBOL vmlinux 0x4d9dd2e0 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x4db5a209 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dd16a3e __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x4de1f0ae d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e46d8e0 sock_no_bind +EXPORT_SYMBOL vmlinux 0x4e5452ff scm_detach_fds +EXPORT_SYMBOL vmlinux 0x4e578e6b __napi_schedule +EXPORT_SYMBOL vmlinux 0x4e5eb035 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e936c65 skb_clone +EXPORT_SYMBOL vmlinux 0x4ea193b4 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x4ebb8d9e neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x4ed2de86 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x4ee2b648 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x4eeeb835 block_truncate_page +EXPORT_SYMBOL vmlinux 0x4f16d03d bio_map_kern +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f213638 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x4f36ec68 md_check_recovery +EXPORT_SYMBOL vmlinux 0x4f382f9a da903x_query_status +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f7b271c scsi_put_command +EXPORT_SYMBOL vmlinux 0x4f7fe3ac rtnl_notify +EXPORT_SYMBOL vmlinux 0x4f8d9101 log_wait_commit +EXPORT_SYMBOL vmlinux 0x4f94fa7e tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x4fa4ad96 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x4fa9c9d6 dm_table_event +EXPORT_SYMBOL vmlinux 0x4fb6eed9 agp_free_page_array +EXPORT_SYMBOL vmlinux 0x4fd7c31a scsi_device_resume +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x500e29c9 __find_get_block +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5031ecfb fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505aef56 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x5070ef3b unregister_netdev +EXPORT_SYMBOL vmlinux 0x5071e0e2 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50b7ea66 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x50eedeb8 printk +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x514ba1c4 elv_register_queue +EXPORT_SYMBOL vmlinux 0x514e4835 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x51586dab agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x51589a66 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x5176c7b6 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x51786508 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x51a8b6ac ht_create_irq +EXPORT_SYMBOL vmlinux 0x51b26ecf tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x51c89b03 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d1013c block_write_begin +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f0f857 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x520ebc34 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x522abdb5 elv_rb_del +EXPORT_SYMBOL vmlinux 0x522f6872 invalidate_partition +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x524dc5b5 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x5260fead dev_get_by_name +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527c3621 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x52872b97 ida_destroy +EXPORT_SYMBOL vmlinux 0x528ade04 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x529e7e26 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52fad687 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530c1b68 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x5311e256 bdev_read_only +EXPORT_SYMBOL vmlinux 0x5316f260 d_alloc_root +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x532edccc tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x532fe503 framebuffer_release +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53407087 fb_pan_display +EXPORT_SYMBOL vmlinux 0x53720b56 dev_driver_string +EXPORT_SYMBOL vmlinux 0x537f5e32 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x537f64c2 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53beac7b phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c3271f lease_get_mtime +EXPORT_SYMBOL vmlinux 0x53ddd7c8 cont_write_begin +EXPORT_SYMBOL vmlinux 0x53fb6364 module_refcount +EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x5402b523 skb_seq_read +EXPORT_SYMBOL vmlinux 0x5423669c input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5463c993 audit_log_end +EXPORT_SYMBOL vmlinux 0x547c6f7f tcp_read_sock +EXPORT_SYMBOL vmlinux 0x547c984a netif_rx_ni +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b944e7 file_sb_list_del +EXPORT_SYMBOL vmlinux 0x54cc22b5 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x54d872ba percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x54d97175 simple_write_end +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54fcc081 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x550ddcda scsi_register_interface +EXPORT_SYMBOL vmlinux 0x5531ae49 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x5537aecf ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x55547693 ip_options_compile +EXPORT_SYMBOL vmlinux 0x5580377f rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x558a5ccf bdi_register +EXPORT_SYMBOL vmlinux 0x558cd35d dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55b9d713 dm_get_device +EXPORT_SYMBOL vmlinux 0x55c0b99d tcp_child_process +EXPORT_SYMBOL vmlinux 0x55e962fa i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x55fe835f blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x56067dce ip_getsockopt +EXPORT_SYMBOL vmlinux 0x5612981d path_lookup +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565c7b35 put_page +EXPORT_SYMBOL vmlinux 0x566330d5 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x56848df3 netpoll_setup +EXPORT_SYMBOL vmlinux 0x5692f77b security_d_instantiate +EXPORT_SYMBOL vmlinux 0x569c7808 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x56a17171 bio_endio +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cfae88 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x56ea8c89 mdiobus_free +EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc +EXPORT_SYMBOL vmlinux 0x57092b84 serio_rescan +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5739ce66 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x574540a3 set_bh_page +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575a26b5 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x5774e588 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x57810962 load_nls +EXPORT_SYMBOL vmlinux 0x578a9e95 set_disk_ro +EXPORT_SYMBOL vmlinux 0x57973f11 flex_array_get +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57a72390 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b33a6c bd_set_size +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c509bc rtnl_unicast +EXPORT_SYMBOL vmlinux 0x57d0a419 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e626d7 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x58043347 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x5817f0cb blk_put_request +EXPORT_SYMBOL vmlinux 0x581ca8c9 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x582be1f3 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x582ed0bd vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58b7463e tcp_close +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x5901b9f7 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x59201691 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594af5ff scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy +EXPORT_SYMBOL vmlinux 0x59679508 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x599ee3da mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x59a7f438 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x59f50b3e fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5ecfd0 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x5a6b8115 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a85562c bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x5a90b706 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x5a9f5cd5 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5acaad92 input_get_keycode +EXPORT_SYMBOL vmlinux 0x5ae7f108 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b45d324 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x5b4ab285 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b6c2eec cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5b8b13c6 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x5b93b094 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x5bacff46 eth_type_trans +EXPORT_SYMBOL vmlinux 0x5bc97788 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x5bcc4857 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x5bd72796 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x5c009819 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x5c1b4e08 pci_find_capability +EXPORT_SYMBOL vmlinux 0x5c1cd92e nonseekable_open +EXPORT_SYMBOL vmlinux 0x5c1fcc20 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x5c3606ff blk_register_region +EXPORT_SYMBOL vmlinux 0x5c440f75 journal_force_commit +EXPORT_SYMBOL vmlinux 0x5c4a8dc7 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c8123cb blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5cbfc45f mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0x5ce72cf2 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x5cf81499 get_sb_single +EXPORT_SYMBOL vmlinux 0x5d012419 blk_make_request +EXPORT_SYMBOL vmlinux 0x5d0545c1 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x5d0dd915 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x5d251b4b padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x5d278ffc xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x5d2846aa mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x5d3a7cee xfrm_state_add +EXPORT_SYMBOL vmlinux 0x5d40573b inet_listen +EXPORT_SYMBOL vmlinux 0x5d516f1e scsi_get_command +EXPORT_SYMBOL vmlinux 0x5d62bbe2 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d8f173e xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dbca2c9 inode_permission +EXPORT_SYMBOL vmlinux 0x5ddcb9f3 km_state_notify +EXPORT_SYMBOL vmlinux 0x5df2bad3 key_type_keyring +EXPORT_SYMBOL vmlinux 0x5e01ddc2 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e0c4105 pci_get_slot +EXPORT_SYMBOL vmlinux 0x5e33c5af security_file_mmap +EXPORT_SYMBOL vmlinux 0x5e3f6519 set_security_override +EXPORT_SYMBOL vmlinux 0x5e52259f tc_classify +EXPORT_SYMBOL vmlinux 0x5e5dfbcf inet6_getname +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e707bf6 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x5e7f52f6 dev_open +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb85f6f xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x5ec29f5e dm_table_get_size +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5efec225 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f0566e4 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5f1191f7 get_fs_type +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f2dc2f5 page_put_link +EXPORT_SYMBOL vmlinux 0x5f570a5f kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x5f77b552 init_buffer +EXPORT_SYMBOL vmlinux 0x5f7c9f8a backlight_device_register +EXPORT_SYMBOL vmlinux 0x5f90aec2 check_disk_change +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fa2c874 flush_old_exec +EXPORT_SYMBOL vmlinux 0x5fb0c42c tty_write_room +EXPORT_SYMBOL vmlinux 0x5fbeec16 dquot_operations +EXPORT_SYMBOL vmlinux 0x5fce52c7 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x5fe72d40 kmap_high +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600100f5 dentry_open +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x605e6d5b poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x606ab8eb blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x608fb975 dev_mc_init +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60d54dc9 alloc_trdev +EXPORT_SYMBOL vmlinux 0x60d6ecb4 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x60e04e29 skb_unlink +EXPORT_SYMBOL vmlinux 0x60e8638b scsi_init_io +EXPORT_SYMBOL vmlinux 0x611832cc ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6123e664 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x615e7dda pskb_copy +EXPORT_SYMBOL vmlinux 0x61639711 seq_open_private +EXPORT_SYMBOL vmlinux 0x617b0c99 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a3ef3e cdev_init +EXPORT_SYMBOL vmlinux 0x61b4f14c journal_load +EXPORT_SYMBOL vmlinux 0x61b6c5c4 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d3e6c7 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x61df2020 pci_release_regions +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x621254d2 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x621a5745 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x621ceb9e xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x621f4f76 filp_close +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x62280618 tty_name +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623a263d simple_statfs +EXPORT_SYMBOL vmlinux 0x624065c0 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x6269e5b3 amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62aeaa63 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x62b33f1c clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x62c81d49 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x62d2e1b1 blk_run_queue +EXPORT_SYMBOL vmlinux 0x62f03f1d tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x62f90837 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63243243 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x635a83d0 __rta_fill +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x6385f166 register_gifconf +EXPORT_SYMBOL vmlinux 0x63a0b10f kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x63a57028 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x63b98171 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x63bf2a44 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x63db18ac __bforget +EXPORT_SYMBOL vmlinux 0x63e00341 netdev_state_change +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f0f506 d_add_ci +EXPORT_SYMBOL vmlinux 0x63f95c6e mount_pseudo +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6405bf70 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x640b2bd7 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6448b2a3 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x644f1abc pci_set_master +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64514e7f serio_unregister_port +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x6480adc0 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x64924827 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64bcf705 set_user_nice +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64f6a67a xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x65135407 md_write_end +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6541a5e1 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x654931c3 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x655e8419 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6562dcca pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x656a6637 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x6578ee7c register_qdisc +EXPORT_SYMBOL vmlinux 0x6594a011 eth_header +EXPORT_SYMBOL vmlinux 0x6594e1c8 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x65b8ef64 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x65c69a81 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x65db7939 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e6c322 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x660f70f7 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x66138238 blk_peek_request +EXPORT_SYMBOL vmlinux 0x661e4b59 create_proc_entry +EXPORT_SYMBOL vmlinux 0x6622dab2 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x66269f95 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x66355efc vprintk +EXPORT_SYMBOL vmlinux 0x664c207d neigh_seq_start +EXPORT_SYMBOL vmlinux 0x664f7073 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x6655e6ae remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x6655f43e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x6659bf54 i2c_release_client +EXPORT_SYMBOL vmlinux 0x66725887 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x6687b35c inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a0d01c kthread_stop +EXPORT_SYMBOL vmlinux 0x66a33408 thaw_super +EXPORT_SYMBOL vmlinux 0x66add3c3 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66db77c6 vfs_link +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x671557b4 textsearch_register +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6729d4f0 registered_fb +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6755bd87 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x67754e62 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x677a756d mmc_can_trim +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x67aaa290 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x68172b95 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x68178207 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x681dcc8d sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x68553182 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x685c3c4d blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68846c3a thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x688ec413 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x68907422 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x68ab3e99 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x690458e5 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x6906873c ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x6908739b unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x690cbc3f md_flush_request +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697c458d jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x6982a5f3 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x6995c2f1 dev_change_flags +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b28913 netpoll_poll +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e2d442 mapping_tagged +EXPORT_SYMBOL vmlinux 0x69e40185 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x69e5e4d3 journal_abort +EXPORT_SYMBOL vmlinux 0x69efc7f6 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0ebb1a writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x6a1d6ada mca_device_write_pos +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a2eb70d phy_print_status +EXPORT_SYMBOL vmlinux 0x6a414b6d splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x6a6394e5 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x6a661974 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a7c26d0 filemap_flush +EXPORT_SYMBOL vmlinux 0x6a7d4cbb blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x6abbd536 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acf1137 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae8397c bio_clone +EXPORT_SYMBOL vmlinux 0x6af921ac posix_lock_file +EXPORT_SYMBOL vmlinux 0x6b0585a8 ip6_xmit +EXPORT_SYMBOL vmlinux 0x6b09115b kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b211793 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b621118 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b7d1303 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x6b8f0099 set_pages_wb +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf1e9db tr_type_trans +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2d9ba6 inet_put_port +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c64fe62 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x6c70105d take_over_console +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c7b22ee locks_init_lock +EXPORT_SYMBOL vmlinux 0x6c8a3ba4 sk_alloc +EXPORT_SYMBOL vmlinux 0x6ca9c024 dst_release +EXPORT_SYMBOL vmlinux 0x6cc3d84c nla_put +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6d1129d2 get_agp_version +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d49f49c ps2_drain +EXPORT_SYMBOL vmlinux 0x6d4c9a7b sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x6d5e784c mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d6d6064 tcp_connect +EXPORT_SYMBOL vmlinux 0x6d6ef45f module_put +EXPORT_SYMBOL vmlinux 0x6d79441b tcp_splice_read +EXPORT_SYMBOL vmlinux 0x6d7eee04 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x6da55907 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x6dad2eea generic_write_sync +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e1d876f buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x6e2ca227 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x6e2ce3ef mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x6e454f0a cdev_alloc +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e980671 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x6e9bfa23 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea15702 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x6ec3d037 arp_invalidate +EXPORT_SYMBOL vmlinux 0x6ec67d61 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x6ece4e85 kill_fasync +EXPORT_SYMBOL vmlinux 0x6ee4f607 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x6f07e419 kfree_skb +EXPORT_SYMBOL vmlinux 0x6f2936d8 filp_open +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f42d8fa skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x6f44f965 genl_register_ops +EXPORT_SYMBOL vmlinux 0x6f467952 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f7728b7 simple_fill_super +EXPORT_SYMBOL vmlinux 0x6f8133f9 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f90ac20 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x6fcf029e pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x6fe14677 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x6fe49ef2 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70094e9c inet_csk_accept +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x702a383f cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x703a592d backlight_force_update +EXPORT_SYMBOL vmlinux 0x703bdcbf mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70580cf7 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x70b7b9a7 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x70ba951d mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d76fe2 udp_disconnect +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x710811cc lock_sock_nested +EXPORT_SYMBOL vmlinux 0x71144033 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x7119f4f4 key_task_permission +EXPORT_SYMBOL vmlinux 0x71205378 add_timer +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x71421851 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x71514313 cdev_del +EXPORT_SYMBOL vmlinux 0x715ae950 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x715b3e19 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71ddeeed dm_unregister_target +EXPORT_SYMBOL vmlinux 0x7210044e udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x7231d773 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x7258293d __ip_dev_find +EXPORT_SYMBOL vmlinux 0x72630cc2 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7280e0ec sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x728528c7 dquot_initialize +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c7342a aio_put_req +EXPORT_SYMBOL vmlinux 0x72db1510 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73117629 tcf_em_register +EXPORT_SYMBOL vmlinux 0x7320cd16 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x732902af d_delete +EXPORT_SYMBOL vmlinux 0x73398105 dev_close +EXPORT_SYMBOL vmlinux 0x734d580b iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x7381ffbb flex_array_clear +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x73876876 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7399ec1b prepare_binprm +EXPORT_SYMBOL vmlinux 0x739c5268 dst_alloc +EXPORT_SYMBOL vmlinux 0x739f0da3 softnet_data +EXPORT_SYMBOL vmlinux 0x73a74118 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73ac7d7e dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x73b05bd1 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x73cc96f9 bio_map_user +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741d6a3e register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x7420b9e5 __napi_complete +EXPORT_SYMBOL vmlinux 0x7441d885 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x74727751 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748a613f jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x748b6cde simple_dir_operations +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c5ff05 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x75078bad tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x7516bbeb bio_init +EXPORT_SYMBOL vmlinux 0x7519dd68 audit_log_start +EXPORT_SYMBOL vmlinux 0x751bf589 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x751e2cb6 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x752c4490 mutex_unlock +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75663679 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75b5d74f blk_sync_queue +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75dc3ed1 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x75f7a57d init_net +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76232173 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x764bf36e tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x767de750 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x7683d7cc tcp_poll +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76a42c86 i2c_transfer +EXPORT_SYMBOL vmlinux 0x76a5da63 vc_resize +EXPORT_SYMBOL vmlinux 0x76aa55c2 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76f931bd sock_recvmsg +EXPORT_SYMBOL vmlinux 0x76fe2d42 input_set_keycode +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x771d4b55 set_irq_chip +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7740fc02 touch_atime +EXPORT_SYMBOL vmlinux 0x778ca959 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a73416 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x77aa43e3 boot_cpu_data +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d9f79f intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e7e4ba nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7805ae90 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x780ad261 unlock_super +EXPORT_SYMBOL vmlinux 0x780de646 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x78284c58 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x784f7c4f seq_bitmap +EXPORT_SYMBOL vmlinux 0x7850b0db __put_cred +EXPORT_SYMBOL vmlinux 0x7868220b journal_init_dev +EXPORT_SYMBOL vmlinux 0x7881bcb9 block_sync_page +EXPORT_SYMBOL vmlinux 0x78973769 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x78a41fd7 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x78a82a41 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x78ba83c6 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next +EXPORT_SYMBOL vmlinux 0x78debc63 block_write_full_page +EXPORT_SYMBOL vmlinux 0x78df08aa test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794ee704 inet6_bind +EXPORT_SYMBOL vmlinux 0x795cf8c3 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x7968e06a journal_start_commit +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aba23b d_drop +EXPORT_SYMBOL vmlinux 0x79ad3406 arp_send +EXPORT_SYMBOL vmlinux 0x79be01c3 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x79de030c replace_mount_options +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3b632f bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a495b85 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a91fd7c seq_escape +EXPORT_SYMBOL vmlinux 0x7aa88719 __bio_clone +EXPORT_SYMBOL vmlinux 0x7ac51d5f revalidate_disk +EXPORT_SYMBOL vmlinux 0x7ad7c981 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7afadac8 blk_start_request +EXPORT_SYMBOL vmlinux 0x7b00c241 elv_add_request +EXPORT_SYMBOL vmlinux 0x7b053a15 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x7b094048 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b10ab4a current_task +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b255677 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x7b3e31c0 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x7b4318c4 find_vma +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b745b1c inet_select_addr +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7b9d368c kset_register +EXPORT_SYMBOL vmlinux 0x7ba191b3 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x7ba9d804 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bd8084a wake_up_process +EXPORT_SYMBOL vmlinux 0x7bdd5907 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x7bf3a833 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x7bf439de simple_transaction_get +EXPORT_SYMBOL vmlinux 0x7bfdf041 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x7c079ffe blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c273916 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x7c2e1764 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c588e2e __sk_dst_check +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cbaa67e keyring_search +EXPORT_SYMBOL vmlinux 0x7ce4bb5c netdev_features_change +EXPORT_SYMBOL vmlinux 0x7ce94405 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d180d81 scsi_host_get +EXPORT_SYMBOL vmlinux 0x7d3c71c7 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x7d4f85cc generic_block_bmap +EXPORT_SYMBOL vmlinux 0x7d58706d phy_device_register +EXPORT_SYMBOL vmlinux 0x7d5a7d7a udp_poll +EXPORT_SYMBOL vmlinux 0x7d831bb6 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7db83f32 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x7dc5cdeb release_pages +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7ddadb7f pci_bus_type +EXPORT_SYMBOL vmlinux 0x7df1b096 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x7e0d3c3e inet_shutdown +EXPORT_SYMBOL vmlinux 0x7e0f2876 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e1eda3f dqput +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e58e550 inode_init_owner +EXPORT_SYMBOL vmlinux 0x7e690100 request_key +EXPORT_SYMBOL vmlinux 0x7e93d0af __pagevec_release +EXPORT_SYMBOL vmlinux 0x7e9851ee drop_super +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eb2d158 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x7ec66da5 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f1f9f4a acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f456005 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x7f45e19c dquot_quota_off +EXPORT_SYMBOL vmlinux 0x7f5aac80 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x7f5c0afd mutex_lock +EXPORT_SYMBOL vmlinux 0x7f6e8482 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x7f903c17 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x7f99fede kthread_bind +EXPORT_SYMBOL vmlinux 0x7fa91394 tty_port_open +EXPORT_SYMBOL vmlinux 0x7faef7ce account_page_writeback +EXPORT_SYMBOL vmlinux 0x7fc24d4c free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x7fda7fd4 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x7fe66791 d_rehash +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x801ce970 key_validate +EXPORT_SYMBOL vmlinux 0x804103b9 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x804ce3d3 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x8054d547 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x805b3a69 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x8062410a netif_carrier_on +EXPORT_SYMBOL vmlinux 0x80714f61 vmap +EXPORT_SYMBOL vmlinux 0x808d64a4 default_llseek +EXPORT_SYMBOL vmlinux 0x808fe0bf xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x80a81b21 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x80af65ec radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x80b18846 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x80c09aba sg_miter_next +EXPORT_SYMBOL vmlinux 0x80c14495 deny_write_access +EXPORT_SYMBOL vmlinux 0x811defe7 key_unlink +EXPORT_SYMBOL vmlinux 0x8123a6b8 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x812c1a35 inet_del_protocol +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 0x8178f3f8 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x819bf27c ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81a8ead9 seq_read +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dca4d1 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x8204a4e1 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820a8464 padata_start +EXPORT_SYMBOL vmlinux 0x820d64d0 serio_reconnect +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8220ea61 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x822bfe8a acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x828f2f1a jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b61d35 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x82cd24ba netdev_warn +EXPORT_SYMBOL vmlinux 0x82f462a5 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x83510e77 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x8371bb8b bio_integrity_free +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x8384e0b3 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x83863bba phy_disconnect +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83ae2362 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x83e49d0f ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x83f8babf ppp_unit_number +EXPORT_SYMBOL vmlinux 0x83fd71bb set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x84059ae0 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x8449cbaa blk_init_tags +EXPORT_SYMBOL vmlinux 0x844c753a pagecache_write_end +EXPORT_SYMBOL vmlinux 0x844da606 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x8460a0b1 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x847ac9ba ppp_channel_index +EXPORT_SYMBOL vmlinux 0x849d13fd pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84b02bd9 poll_freewait +EXPORT_SYMBOL vmlinux 0x84e5066a generic_file_open +EXPORT_SYMBOL vmlinux 0x84f27479 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x84f534f4 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x84fb16a6 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x85046490 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x8559c531 dm_table_get +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856d7f8d vfs_mknod +EXPORT_SYMBOL vmlinux 0x856e7ad4 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x857960b0 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x857e3b9b neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x85aa4d0f mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x85b7b422 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x8605bb92 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x861dd1f0 file_update_time +EXPORT_SYMBOL vmlinux 0x862555ae pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x863bdddb md_unregister_thread +EXPORT_SYMBOL vmlinux 0x86476309 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86538904 simple_unlink +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866ec25e kill_pgrp +EXPORT_SYMBOL vmlinux 0x86796d55 set_blocksize +EXPORT_SYMBOL vmlinux 0x8682e46a vfs_unlink +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869e96ad add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86dcc71d netif_device_attach +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8708aa64 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x870c6fd8 neigh_for_each +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x876041b8 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87744100 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x87789e69 make_EII_client +EXPORT_SYMBOL vmlinux 0x8785bde3 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878f0074 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x8790807a padata_add_cpu +EXPORT_SYMBOL vmlinux 0x879e15ba posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87af67f9 netdev_notice +EXPORT_SYMBOL vmlinux 0x87aff25b mca_device_claimed +EXPORT_SYMBOL vmlinux 0x87b94bc0 redraw_screen +EXPORT_SYMBOL vmlinux 0x87c9a6f2 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x87d3a5c5 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x87d67abb radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x87dceaa6 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x87fd96ff __break_lease +EXPORT_SYMBOL vmlinux 0x87fd9ac4 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88410ec6 dquot_commit +EXPORT_SYMBOL vmlinux 0x88816de5 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x8887f5d2 scsi_execute +EXPORT_SYMBOL vmlinux 0x888b899a tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88ab6076 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x88d2ad44 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x88d8929d filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x88e53283 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x88f46a26 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x89003ac3 bio_copy_user +EXPORT_SYMBOL vmlinux 0x8904081f cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x890ace41 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x896d6a89 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x89726084 pci_iomap +EXPORT_SYMBOL vmlinux 0x89740850 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897a9cf4 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x89867de0 rfkill_register +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b4574b generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x89ca367f elevator_change +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a09d244 tty_check_change +EXPORT_SYMBOL vmlinux 0x8a207811 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x8a2612b5 genphy_read_status +EXPORT_SYMBOL vmlinux 0x8a2d2f2d netif_napi_add +EXPORT_SYMBOL vmlinux 0x8a2fc154 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x8a53ca0d __quota_error +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a93e66e textsearch_prepare +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aae28e1 eisa_bus_type +EXPORT_SYMBOL vmlinux 0x8ace755d radix_tree_delete +EXPORT_SYMBOL vmlinux 0x8ad29db4 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x8ad2cab4 dma_find_channel +EXPORT_SYMBOL vmlinux 0x8ae545d3 led_blink_set +EXPORT_SYMBOL vmlinux 0x8ae5ae57 journal_create +EXPORT_SYMBOL vmlinux 0x8b136ba4 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b35fa07 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x8b574c76 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b780969 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x8b794db2 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8b971b26 lease_modify +EXPORT_SYMBOL vmlinux 0x8b97eb7a write_one_page +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock +EXPORT_SYMBOL vmlinux 0x8bc98777 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x8c01daf6 seq_open +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c2d2cbe input_register_handle +EXPORT_SYMBOL vmlinux 0x8c5d0d27 bh_submit_read +EXPORT_SYMBOL vmlinux 0x8c649e57 input_open_device +EXPORT_SYMBOL vmlinux 0x8c71769f phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x8c8ae0bb journal_set_features +EXPORT_SYMBOL vmlinux 0x8c910937 generic_write_end +EXPORT_SYMBOL vmlinux 0x8c952f10 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x8caad780 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x8cbdcdec fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd7cece bitmap_unplug +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8d07fcb9 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x8d12da7f tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x8d305cd9 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6e21b9 agp_bridge +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all +EXPORT_SYMBOL vmlinux 0x8dab51c6 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dd5f819 input_close_device +EXPORT_SYMBOL vmlinux 0x8dddf932 key_alloc +EXPORT_SYMBOL vmlinux 0x8df6074c dev_add_pack +EXPORT_SYMBOL vmlinux 0x8dff8573 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e2021ff do_splice_from +EXPORT_SYMBOL vmlinux 0x8e28d96a dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x8e6836f3 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x8e81eee1 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e93e36c pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x8e98ca57 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ed0f699 vga_get +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8eed26b9 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x8efeb99a tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f26dd96 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f50eeb7 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f73cea5 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x8f749162 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x8f750ebd dquot_drop +EXPORT_SYMBOL vmlinux 0x8f882f01 lock_rename +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fb08d7a create_mnt_ns +EXPORT_SYMBOL vmlinux 0x8fe6dad5 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9008389a pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x90174919 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x901836ef filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x906ef277 journal_extend +EXPORT_SYMBOL vmlinux 0x90768c1f generic_writepages +EXPORT_SYMBOL vmlinux 0x9076d086 sock_release +EXPORT_SYMBOL vmlinux 0x908b3223 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90b2945e sock_create +EXPORT_SYMBOL vmlinux 0x90dae506 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x90f9fdfe intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0x91273055 bio_free +EXPORT_SYMBOL vmlinux 0x91273dc8 mb_cache_create +EXPORT_SYMBOL vmlinux 0x913bbb4a xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9147631c elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x91546b07 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x918b7c45 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x91ac5277 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x91bbded3 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x91c29709 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x91cd5ace dm_snap_origin +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923ebb98 nla_reserve +EXPORT_SYMBOL vmlinux 0x924fcf17 proc_mkdir +EXPORT_SYMBOL vmlinux 0x925d41c7 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x9266888c __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x926c61b2 kmap +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92c99c86 kernel_listen +EXPORT_SYMBOL vmlinux 0x92d123f5 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x92f0b1b7 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x934335cf lookup_hash +EXPORT_SYMBOL vmlinux 0x9343a876 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9355058b i2c_clients_command +EXPORT_SYMBOL vmlinux 0x93625e49 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x936db080 misc_deregister +EXPORT_SYMBOL vmlinux 0x93975a01 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c4b94b proto_register +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93c9a30b kernel_getpeername +EXPORT_SYMBOL vmlinux 0x93e753ca alloc_disk_node +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x943a3b3c sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x9498d1b8 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94d85368 do_sync_read +EXPORT_SYMBOL vmlinux 0x953633ed sock_init_data +EXPORT_SYMBOL vmlinux 0x953b796a uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x95452d30 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9546cc3e bio_kmalloc +EXPORT_SYMBOL vmlinux 0x9549acc5 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95688114 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x95735c61 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x9579d74a dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x959ac8ef jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x959c1ac5 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x95c8da10 release_firmware +EXPORT_SYMBOL vmlinux 0x95cdf21b dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x95de012d inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x960010fb jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x9626a0cd inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x96371d94 __block_write_begin +EXPORT_SYMBOL vmlinux 0x9640adc5 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x96585ff5 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x9667a487 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96a0cea8 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96d48e3e mpage_writepage +EXPORT_SYMBOL vmlinux 0x97126240 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x97147396 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x9734476e dev_uc_flush +EXPORT_SYMBOL vmlinux 0x97448202 tty_register_driver +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97878fb7 find_or_create_page +EXPORT_SYMBOL vmlinux 0x9797fb06 flush_signals +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97e0f6a5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x97e2b378 freeze_super +EXPORT_SYMBOL vmlinux 0x97e6bc49 inet_ioctl +EXPORT_SYMBOL vmlinux 0x97f8ecf3 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x980a8661 inode_init_always +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9877f1d4 module_layout +EXPORT_SYMBOL vmlinux 0x98830ddd ipv4_specific +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98be7f8a tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x98c686b8 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x98f3d3b8 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x9910ee79 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x991a4db9 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x992fa0d5 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x99367bda unregister_cdrom +EXPORT_SYMBOL vmlinux 0x993ca38b do_SAK +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9964ea1d inode_add_bytes +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a9d0d5 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x99aacbf9 ethtool_op_get_flags +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 0x99ea5588 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x99f097b8 fb_set_var +EXPORT_SYMBOL vmlinux 0x9a0cd997 sock_no_getname +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a201cbc set_device_ro +EXPORT_SYMBOL vmlinux 0x9a68bd9a journal_get_create_access +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9ab09a3c lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x9adb7647 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x9afdff3b pnp_start_dev +EXPORT_SYMBOL vmlinux 0x9b0eb975 follow_up +EXPORT_SYMBOL vmlinux 0x9b1714fd seq_release +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b41c80d block_write_end +EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b7973be vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x9b8d6446 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bdb682b freeze_bdev +EXPORT_SYMBOL vmlinux 0x9be4e76a intel_gtt_get +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 0x9c576474 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x9c5dbbb1 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c9b1d96 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x9c9c85e6 dcb_getapp +EXPORT_SYMBOL vmlinux 0x9cb164ae input_set_capability +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce67ec0 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9cfe5ae3 __breadahead +EXPORT_SYMBOL vmlinux 0x9d2e8540 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3f6b5b alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x9d50b31a framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x9d69e687 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x9d7a3bd7 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0x9d823edd blk_requeue_request +EXPORT_SYMBOL vmlinux 0x9da4e7c7 page_address +EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x9deb4b41 brioctl_set +EXPORT_SYMBOL vmlinux 0x9df7802b vfs_rename +EXPORT_SYMBOL vmlinux 0x9dfd9e71 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x9e03a6b5 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e1bdc28 init_timer_key +EXPORT_SYMBOL vmlinux 0x9e1ce7b9 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4d0af3 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x9e5cf242 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e82518f add_disk +EXPORT_SYMBOL vmlinux 0x9e905fbb padata_alloc +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea1d237 neigh_update +EXPORT_SYMBOL vmlinux 0x9ea3450f pci_disable_msi +EXPORT_SYMBOL vmlinux 0x9eb65119 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9eca2806 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f1efa9e tty_mutex +EXPORT_SYMBOL vmlinux 0x9f21a993 misc_register +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f58d2a6 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x9f63df6a netlink_broadcast +EXPORT_SYMBOL vmlinux 0x9f653943 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x9f83e096 km_query +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9f93e1 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x9fa25542 dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x9fab3107 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x9faf2e1d phy_driver_register +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fd47f0f sock_no_poll +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0xa000dff7 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xa01ba786 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xa037ab8d set_create_files_as +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07e403b pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b7fdcc vfs_getattr +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d42ff7 seq_putc +EXPORT_SYMBOL vmlinux 0xa0eae25c blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f74ce7 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xa0fa4b78 sockfd_lookup +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 0xa1205053 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa128dcb6 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xa12cd4e5 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xa139aa3d blk_rq_init +EXPORT_SYMBOL vmlinux 0xa1401799 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1552232 sock_register +EXPORT_SYMBOL vmlinux 0xa176f98f tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xa18a6a54 sock_i_ino +EXPORT_SYMBOL vmlinux 0xa196cd28 dma_set_mask +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1ad51d8 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1c37273 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c83710 vfs_readlink +EXPORT_SYMBOL vmlinux 0xa1c84bfe xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xa1c9880f __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa217eec6 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xa2204b9f skb_trim +EXPORT_SYMBOL vmlinux 0xa23069e9 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xa2609ed2 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xa2706b08 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xa27f11cd thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0xa28418dc xfrm_register_km +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b61eaa lock_super +EXPORT_SYMBOL vmlinux 0xa2d74edc dev_get_flags +EXPORT_SYMBOL vmlinux 0xa2e62d4b generic_unplug_device +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f5ca2a ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xa307adf2 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35b2633 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3637692 fsync_bdev +EXPORT_SYMBOL vmlinux 0xa3646127 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xa36a9b95 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xa36f36e4 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xa3826ac3 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xa39136ce processors +EXPORT_SYMBOL vmlinux 0xa3aa0db1 dm_table_put +EXPORT_SYMBOL vmlinux 0xa3b4462f con_copy_unimap +EXPORT_SYMBOL vmlinux 0xa3b8107b xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xa3cfb88a mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0xa3de4f69 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xa3f2fd89 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xa439819f get_phy_device +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43deed7 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4428d42 bio_pair_release +EXPORT_SYMBOL vmlinux 0xa455a46a kobject_add +EXPORT_SYMBOL vmlinux 0xa4a0b7e9 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa4a99db3 cdev_add +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4b99859 agp_backend_release +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e642da scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xa4f98408 md_error +EXPORT_SYMBOL vmlinux 0xa500806e md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xa5021d2c dev_load +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa559da38 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5fe2087 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xa625af9e inet_register_protosw +EXPORT_SYMBOL vmlinux 0xa62833b2 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa65fdfd4 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xa67e37b1 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6a18d38 kobject_set_name +EXPORT_SYMBOL vmlinux 0xa6ada143 genphy_update_link +EXPORT_SYMBOL vmlinux 0xa6b10ba9 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xa6be87bb inet_frag_find +EXPORT_SYMBOL vmlinux 0xa6cad18d tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e5c796 genphy_suspend +EXPORT_SYMBOL vmlinux 0xa6e62ed5 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xa6f0be30 scsi_register +EXPORT_SYMBOL vmlinux 0xa70056df kill_anon_super +EXPORT_SYMBOL vmlinux 0xa702f43c arp_find +EXPORT_SYMBOL vmlinux 0xa70cd0c7 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa739a649 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xa75b649f mdiobus_read +EXPORT_SYMBOL vmlinux 0xa7912979 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xa7d88a7d napi_gro_flush +EXPORT_SYMBOL vmlinux 0xa7da1d3c tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xa7e4985b acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xa7e8d401 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xa7f410bb dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xa817ba31 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa86e22e0 dquot_acquire +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8b52090 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xa8b65285 eisa_driver_register +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8db1100 __f_setown +EXPORT_SYMBOL vmlinux 0xa8e0aaf8 phy_start +EXPORT_SYMBOL vmlinux 0xa8e1f5a7 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa91739a2 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa92ab737 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xa941b800 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xa9461eb0 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xa94e206f journal_check_available_features +EXPORT_SYMBOL vmlinux 0xa9818381 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xa993e0c0 km_policy_notify +EXPORT_SYMBOL vmlinux 0xa9b21aad fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xa9b32161 inet_bind +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9c1b627 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xa9c9519d tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xa9cb824d generic_getxattr +EXPORT_SYMBOL vmlinux 0xa9d0401e kunmap +EXPORT_SYMBOL vmlinux 0xa9d8315f vfs_llseek +EXPORT_SYMBOL vmlinux 0xa9d9d438 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xa9fc140a ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xa9fe4bb3 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xaa002b2b get_write_access +EXPORT_SYMBOL vmlinux 0xaa11c1a6 igrab +EXPORT_SYMBOL vmlinux 0xaa4e7851 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa78862d tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa87b45b otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xaa8ec5b9 input_release_device +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaaaf0339 d_path +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaaed6262 mutex_trylock +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0d5e29 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xab1a35a3 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xab495db4 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xab51022c ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab632a58 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabe555dd elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xabebd090 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac0cc434 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac219208 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xac2e82c3 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xac41f76e mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0xaca20605 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xacab7c73 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace1bf1c send_sig +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad21dd8c tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xad2656fd journal_start +EXPORT_SYMBOL vmlinux 0xad36c4d3 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad503e8e mmc_host_disable +EXPORT_SYMBOL vmlinux 0xad881067 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xad9bd82c dev_err +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadbb3090 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xadc05482 napi_complete +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xaddfbf62 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xade88a58 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xae0e91a9 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xae1a3ec3 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xae269551 genphy_resume +EXPORT_SYMBOL vmlinux 0xae315a3f phy_start_aneg +EXPORT_SYMBOL vmlinux 0xae6b77a4 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaec20e01 wireless_send_event +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaeedf41e bdi_unregister +EXPORT_SYMBOL vmlinux 0xaef60a8a vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xaefa9dd4 skb_store_bits +EXPORT_SYMBOL vmlinux 0xaf1cc80d d_splice_alias +EXPORT_SYMBOL vmlinux 0xaf352214 pnp_find_card +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafa2e295 set_binfmt +EXPORT_SYMBOL vmlinux 0xafc0cdd6 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xafc7a068 write_cache_pages +EXPORT_SYMBOL vmlinux 0xafcae1c0 blk_end_request +EXPORT_SYMBOL vmlinux 0xafdc8846 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xafe614cb neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xafe81879 journal_wipe +EXPORT_SYMBOL vmlinux 0xaff9a2ab alloc_disk +EXPORT_SYMBOL vmlinux 0xaffd4811 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb00f658f pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xb0392a56 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xb04e3bb9 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xb05651b0 skb_set_dev +EXPORT_SYMBOL vmlinux 0xb0693077 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xb06f5941 serio_open +EXPORT_SYMBOL vmlinux 0xb0768eb1 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb0976dab pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xb0a8fd0a intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xb0b3ef13 fasync_helper +EXPORT_SYMBOL vmlinux 0xb0b46f3e bio_alloc +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0b914cf pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xb0d92420 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e350ce __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xb10004e4 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xb1062edb pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xb10c5e8e __blk_run_queue +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb115efe4 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb126b919 ps2_command +EXPORT_SYMBOL vmlinux 0xb14269d4 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xb146d95d mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xb1559aad blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb17f5d3e netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xb1802ecf __lookup_one_len +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19a509f jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xb1a1f74c __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xb1a6d90e ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1db6c9a scsi_ioctl +EXPORT_SYMBOL vmlinux 0xb1f0271d pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb2099227 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb22dd11c md_write_start +EXPORT_SYMBOL vmlinux 0xb22e8567 get_phy_id +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2352288 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xb24db052 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2ad0de3 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xb2c2e18c vc_cons +EXPORT_SYMBOL vmlinux 0xb2d1e2ef cpufreq_get_policy +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 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb331aeb8 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xb34378b9 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xb344b0ff pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb35ae6da mmc_request_done +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb40c4513 migrate_page +EXPORT_SYMBOL vmlinux 0xb40d4925 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xb4156911 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb455573f led_brightness_set +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb456b3bb __ht_create_irq +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb49cb882 __ps2_command +EXPORT_SYMBOL vmlinux 0xb4b073a6 kill_pid +EXPORT_SYMBOL vmlinux 0xb4b17a63 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xb4b59840 __devm_request_region +EXPORT_SYMBOL vmlinux 0xb4e18963 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xb4ec7d09 mii_check_link +EXPORT_SYMBOL vmlinux 0xb4f781e1 dget_parent +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5103962 scsi_print_command +EXPORT_SYMBOL vmlinux 0xb5209524 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0xb521bdf3 arp_create +EXPORT_SYMBOL vmlinux 0xb52e888e register_console +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb538633c serio_interrupt +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54d1f83 scsi_execute_req +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb5830d66 journal_restart +EXPORT_SYMBOL vmlinux 0xb595d4b0 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5bdd013 register_key_type +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d37a61 kstat +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5ea5018 get_disk +EXPORT_SYMBOL vmlinux 0xb6056fea xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xb61cfc79 is_container_init +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb65f9699 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xb6630e8a security_file_permission +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6816b9a inet_getname +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6a5a19b seq_printf +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6aacf0a dump_write +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c809a0 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0xb6ddf410 inode_lock +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb704f7e1 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xb71e3459 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb76b887d bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xb76c61c3 dm_snap_cow +EXPORT_SYMBOL vmlinux 0xb782595d dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0xb7a22094 console_start +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7cb2fad fifo_set_limit +EXPORT_SYMBOL vmlinux 0xb80d7159 wait_iff_congested +EXPORT_SYMBOL vmlinux 0xb82178be tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xb858c070 mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb873c58f skb_checksum_help +EXPORT_SYMBOL vmlinux 0xb88eefd5 inet6_release +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8abc758 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xb8e52abc inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xb8e7a9f7 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb91d141c i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xb94be953 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xb978357f set_pages_uc +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb992a64a xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xb99a7cf8 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xb9a626f7 end_writeback +EXPORT_SYMBOL vmlinux 0xb9dbfb3b devm_ioremap +EXPORT_SYMBOL vmlinux 0xb9e06e69 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9f64c9e dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba03cf52 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5ba2f3 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xba71b4bb fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xba8e967e xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xba98036d tty_vhangup +EXPORT_SYMBOL vmlinux 0xbaa0a12f inode_set_bytes +EXPORT_SYMBOL vmlinux 0xbaa263a0 inet_release +EXPORT_SYMBOL vmlinux 0xbaa46248 register_framebuffer +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbab92827 __d_drop +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbaf42155 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xbb023f9f scsi_device_put +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1f6513 commit_creds +EXPORT_SYMBOL vmlinux 0xbb209ead isapnp_protocol +EXPORT_SYMBOL vmlinux 0xbb388e0d acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xbb55dcca single_release +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb6ad7e2 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xbb6e8fe1 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb82edaf blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbb816b0 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbba8ec2 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xbbcbdd09 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0xbbfad06b pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xbbfd195c read_cache_page_async +EXPORT_SYMBOL vmlinux 0xbc11f89e jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xbc132c6b tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc2ca2e1 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xbc2e5efd swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xbc34add2 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xbc516788 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xbc5b7669 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xbc8a849f llc_sap_open +EXPORT_SYMBOL vmlinux 0xbca93ce6 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xbcb04539 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xbcb98e07 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xbcbadda5 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbccf940f xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xbce8f729 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xbcebd3e5 force_sig +EXPORT_SYMBOL vmlinux 0xbd04d026 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xbd060cbe agp_find_bridge +EXPORT_SYMBOL vmlinux 0xbd0ad60a tty_set_operations +EXPORT_SYMBOL vmlinux 0xbd31b2c4 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbd4e0b69 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbde67113 tcp_prot +EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdfbb9e4 fb_show_logo +EXPORT_SYMBOL vmlinux 0xbe079878 eth_header_parse +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe188d04 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xbe23b9ed radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe9b3d0f abort_creds +EXPORT_SYMBOL vmlinux 0xbea469cb block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf17a4f0 skb_checksum +EXPORT_SYMBOL vmlinux 0xbf332266 pci_target_state +EXPORT_SYMBOL vmlinux 0xbf4e22fe bioset_create +EXPORT_SYMBOL vmlinux 0xbf6e415b pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf9b9521 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa41c0f netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xbfc09de6 kill_block_super +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc32350 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0xbfcacb59 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xbfde5633 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc00a3a17 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc0389a99 pci_select_bars +EXPORT_SYMBOL vmlinux 0xc045f03b generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xc049d7f8 dev_trans_start +EXPORT_SYMBOL vmlinux 0xc0564d58 input_free_device +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0785f74 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xc08b316e blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0b3d22c dev_uc_del +EXPORT_SYMBOL vmlinux 0xc0cdd4c3 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc13127bd abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xc14e669e tcp_check_req +EXPORT_SYMBOL vmlinux 0xc1758bfe invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xc17bc739 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xc1bc65d4 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d5249d ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xc227e969 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc257b8de sk_common_release +EXPORT_SYMBOL vmlinux 0xc25a248f netdev_crit +EXPORT_SYMBOL vmlinux 0xc266b3b9 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc29a02cf cfb_imageblit +EXPORT_SYMBOL vmlinux 0xc2b4d582 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e8e1c6 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xc30e4919 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xc313a79a llc_sap_find +EXPORT_SYMBOL vmlinux 0xc326edd7 seq_write +EXPORT_SYMBOL vmlinux 0xc330938a agp_create_memory +EXPORT_SYMBOL vmlinux 0xc33d129a file_permission +EXPORT_SYMBOL vmlinux 0xc3449ade mii_check_media +EXPORT_SYMBOL vmlinux 0xc38cc2b2 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d6e100 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xc3dc31ea inet_recvmsg +EXPORT_SYMBOL vmlinux 0xc3e0dc94 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xc3e6361e ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xc3ee41e9 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xc3f17ace vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc40ee750 dqget +EXPORT_SYMBOL vmlinux 0xc4278a37 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xc434fb23 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xc43fc25b __scm_destroy +EXPORT_SYMBOL vmlinux 0xc452493d in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a60d74 agp_copy_info +EXPORT_SYMBOL vmlinux 0xc4b1bb16 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xc4faa6da scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xc50d0955 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xc50e55f6 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xc523a710 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc54a59f6 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc587d950 get_sb_bdev +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f305e6 mca_device_read_pos +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc6051aae blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xc605db56 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc6469bac xfrm_lookup +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc669fe68 udplite_prot +EXPORT_SYMBOL vmlinux 0xc67bd7e5 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xc6890b17 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6a1522c blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xc6a8e897 register_8022_client +EXPORT_SYMBOL vmlinux 0xc6c242f8 truncate_setsize +EXPORT_SYMBOL vmlinux 0xc6c82c72 unload_nls +EXPORT_SYMBOL vmlinux 0xc6cc72ca eth_header_cache +EXPORT_SYMBOL vmlinux 0xc6d4afaa inet_frags_init +EXPORT_SYMBOL vmlinux 0xc6dfae07 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xc700bb57 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xc703654f thaw_bdev +EXPORT_SYMBOL vmlinux 0xc71591f0 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc717d820 sk_filter +EXPORT_SYMBOL vmlinux 0xc71def50 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc724b936 input_flush_device +EXPORT_SYMBOL vmlinux 0xc727967e blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xc744f0e0 blk_init_queue +EXPORT_SYMBOL vmlinux 0xc75bbb84 padata_do_serial +EXPORT_SYMBOL vmlinux 0xc7620293 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc78fe41b generic_removexattr +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b342c6 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xc7cd5531 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xc7d2b2aa sock_no_connect +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7f7491e sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xc7fd692b generic_setxattr +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc83c4a41 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xc8473ffd security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84c533a fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xc84f7b47 dquot_disable +EXPORT_SYMBOL vmlinux 0xc886002f dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a37b2d cdrom_open +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c3762f mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xc8f0b005 iunique +EXPORT_SYMBOL vmlinux 0xc8f19b4e skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xc8f559d7 dev_get_stats +EXPORT_SYMBOL vmlinux 0xc90bff12 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xc9137bd3 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xc91a95fd elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xc94ccecc ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xc94d36f0 generic_listxattr +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc965bc12 kill_litter_super +EXPORT_SYMBOL vmlinux 0xc969f4de generic_setlease +EXPORT_SYMBOL vmlinux 0xc9a1ebac inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b2123d simple_getattr +EXPORT_SYMBOL vmlinux 0xc9c28e17 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xc9d63aca blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xca117d41 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xca349fb8 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca9c402f napi_frags_finish +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcac6c908 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcad8b1d7 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xcaec9bc7 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xcafb0e06 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb4583e6 tty_hangup +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb7b046f xrlim_allow +EXPORT_SYMBOL vmlinux 0xcb7c6589 scsi_unregister +EXPORT_SYMBOL vmlinux 0xcb9be3de sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xcbbac22a swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xcbbd1e5e padata_free +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbccaa76 inet_sendpage +EXPORT_SYMBOL vmlinux 0xcbf2e89d ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc38e192 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc5b510d pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xcc5bb9c4 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc9334a4 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcccb8f95 setattr_copy +EXPORT_SYMBOL vmlinux 0xcd20d431 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2e1a61 single_open +EXPORT_SYMBOL vmlinux 0xcd4808f1 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xcd53484c tty_kref_put +EXPORT_SYMBOL vmlinux 0xcd53d7e0 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xcd7bacec generic_permission +EXPORT_SYMBOL vmlinux 0xcd7e1efd vfs_mkdir +EXPORT_SYMBOL vmlinux 0xcd955d71 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xcddf26eb i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xcdf7a17d dev_alert +EXPORT_SYMBOL vmlinux 0xce095088 mod_timer +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce1bd894 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xce218396 noop_qdisc +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce97d8cf bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xceabe48b nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xcec023ea fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xcecef285 flex_array_free +EXPORT_SYMBOL vmlinux 0xcedc1924 follow_pfn +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef18941 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf16dbbc pci_dev_put +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf47a04a dentry_path_raw +EXPORT_SYMBOL vmlinux 0xcf68deb8 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcfa64b11 load_nls_default +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfc7948f search_binary_handler +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xd010d8fc tcp_ioctl +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01fc9b1 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xd04ac343 mddev_congested +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08eaa05 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b427d0 first_ec +EXPORT_SYMBOL vmlinux 0xd0d6bb2e generic_write_checks +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0ce80 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fed2df tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1153025 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd11d6079 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd1384b85 __lock_buffer +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1485fe5 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xd166481b request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xd1760c45 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xd1768223 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1e1b1b6 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xd1ec9272 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd21a777f blk_unplug +EXPORT_SYMBOL vmlinux 0xd21d9b7c alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd21dbd76 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xd225d13b mmc_host_enable +EXPORT_SYMBOL vmlinux 0xd22b8360 ip_defrag +EXPORT_SYMBOL vmlinux 0xd22fbe9e blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd23c652c blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xd23c8104 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xd240e905 security_path_mknod +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 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd288e5cb ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xd28fb7cd new_inode +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29a8db9 mca_device_set_claim +EXPORT_SYMBOL vmlinux 0xd29c6d4a tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xd2a1644f security_path_rename +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2c8a014 blk_get_request +EXPORT_SYMBOL vmlinux 0xd2d49fa0 pci_get_class +EXPORT_SYMBOL vmlinux 0xd2e17b67 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2f2db58 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xd2f5f24f agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xd31be3ca acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xd31e287f vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xd32507fa mmc_erase +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd35ee5b9 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xd37d5991 ilookup5 +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3fa7a74 _dev_info +EXPORT_SYMBOL vmlinux 0xd40e9ca7 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xd429344c tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd4992ccc pci_match_id +EXPORT_SYMBOL vmlinux 0xd4a55274 i2c_master_send +EXPORT_SYMBOL vmlinux 0xd4dc75a0 agp_generic_enable +EXPORT_SYMBOL vmlinux 0xd4e60bc5 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xd4f7b897 mount_ns +EXPORT_SYMBOL vmlinux 0xd50253c1 vfs_statfs +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd51f1c5a sk_run_filter +EXPORT_SYMBOL vmlinux 0xd5277e25 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xd5432f57 spi_dv_device +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd553dd77 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xd5542131 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xd55b93f5 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd591179b qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c107fd inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xd5cb7055 journal_destroy +EXPORT_SYMBOL vmlinux 0xd5ce120c dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xd5d9034f pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xd5df018d iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xd5f88271 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd6209a99 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd64c58fe __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd651e98e tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xd656b336 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xd6690201 dquot_transfer +EXPORT_SYMBOL vmlinux 0xd671a354 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xd67351fd get_user_pages +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6c01cbe md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xd6e6ec3e try_to_release_page +EXPORT_SYMBOL vmlinux 0xd6ebdd38 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xd6ee392c tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7000059 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xd700b3aa mmc_resume_host +EXPORT_SYMBOL vmlinux 0xd7104b86 dcache_readdir +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd71d17a3 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xd747f782 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a46923 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xd7b73417 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xd7ce96c2 mntget +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7de8db9 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f1f11d mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xd807be6f blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xd80f7b3b unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xd836c694 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xd83aa8a2 dump_trace +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd858a535 journal_ack_err +EXPORT_SYMBOL vmlinux 0xd861d4bb padata_stop +EXPORT_SYMBOL vmlinux 0xd8662cd8 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xd8744808 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xd88fba0b rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8c7eb3c scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f49ead simple_set_mnt +EXPORT_SYMBOL vmlinux 0xd904b488 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd9243178 mca_register_driver +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd939f179 posix_test_lock +EXPORT_SYMBOL vmlinux 0xd942b0fe __mutex_init +EXPORT_SYMBOL vmlinux 0xd95b8a79 input_allocate_device +EXPORT_SYMBOL vmlinux 0xd96f297d rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98d9592 __dst_free +EXPORT_SYMBOL vmlinux 0xd99177e5 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9e909e7 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xd9e9dc24 journal_init_inode +EXPORT_SYMBOL vmlinux 0xd9f34e82 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xd9f61ed1 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda1ec885 sg_miter_start +EXPORT_SYMBOL vmlinux 0xda20ea91 nf_log_register +EXPORT_SYMBOL vmlinux 0xda292612 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xda2dd396 set_anon_super +EXPORT_SYMBOL vmlinux 0xda377c97 rt6_lookup +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaf1ac80 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb20cfe1 pci_dev_get +EXPORT_SYMBOL vmlinux 0xdb58483e __inet6_hash +EXPORT_SYMBOL vmlinux 0xdb622002 blk_plug_device +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb94f3da unlock_rename +EXPORT_SYMBOL vmlinux 0xdbbeebf6 notify_change +EXPORT_SYMBOL vmlinux 0xdbc00ea9 km_policy_expired +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbdb8b4d bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xdbdec47e netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xdbdf1a3a generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xdbe5f201 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdbeaf1c5 generic_show_options +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0713fc free_task +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc171d68 set_pages_x +EXPORT_SYMBOL vmlinux 0xdc17891e scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xdc193be0 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2f40fc dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc664016 netlink_ack +EXPORT_SYMBOL vmlinux 0xdca72986 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xdcd54182 fb_find_mode +EXPORT_SYMBOL vmlinux 0xdcd79ad6 start_tty +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd4d6df1 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xdd6ed945 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xdd9051b9 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0xddb27d9a dev_printk +EXPORT_SYMBOL vmlinux 0xddbab06c pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xddbf011e ppp_dev_name +EXPORT_SYMBOL vmlinux 0xddc3c2c7 user_revoke +EXPORT_SYMBOL vmlinux 0xdde317db skb_copy +EXPORT_SYMBOL vmlinux 0xddfc94ca simple_lookup +EXPORT_SYMBOL vmlinux 0xddfd3f22 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xddfeefce qdisc_list_del +EXPORT_SYMBOL vmlinux 0xde003935 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xde0a1164 pci_get_device +EXPORT_SYMBOL vmlinux 0xde0a9bc4 unregister_console +EXPORT_SYMBOL vmlinux 0xde393f09 aio_complete +EXPORT_SYMBOL vmlinux 0xde591704 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xde594dce pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xde5de08e request_firmware +EXPORT_SYMBOL vmlinux 0xde6d6402 register_netdev +EXPORT_SYMBOL vmlinux 0xde6e6d27 unregister_nls +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde8ae38a console_stop +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xded8545c generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xdee8a042 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xdef40f89 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xdf027fa4 skb_pad +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf317717 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf813357 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf99632d scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfc6d14a rfkill_unregister +EXPORT_SYMBOL vmlinux 0xdfd58b01 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xe00166de mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xe0126008 follow_down +EXPORT_SYMBOL vmlinux 0xe042b1bf mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xe065ff12 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xe069919a dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0838cda iterate_mounts +EXPORT_SYMBOL vmlinux 0xe08a064b soft_cursor +EXPORT_SYMBOL vmlinux 0xe08b5a91 del_gendisk +EXPORT_SYMBOL vmlinux 0xe09230b0 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xe094d6f9 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0afba61 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0d815b2 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1413edb dquot_file_open +EXPORT_SYMBOL vmlinux 0xe1415f38 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xe1423843 c1e_detected +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe192b8b5 mmc_add_host +EXPORT_SYMBOL vmlinux 0xe1a775e7 dentry_unhash +EXPORT_SYMBOL vmlinux 0xe1bc7ede del_timer_sync +EXPORT_SYMBOL vmlinux 0xe1c3de1f tty_unregister_device +EXPORT_SYMBOL vmlinux 0xe208efca tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26d5d87 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xe28d6a41 mntput +EXPORT_SYMBOL vmlinux 0xe2b0c34e generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe348c6cb inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xe35203ce find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xe360e889 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xe37f511d d_instantiate +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3bfd912 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3c6f386 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xe3d123c3 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xe3d1278a iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xe3e458fd pci_enable_msix +EXPORT_SYMBOL vmlinux 0xe3e9c5e8 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xe3f82546 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove +EXPORT_SYMBOL vmlinux 0xe40d3522 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xe41d48eb jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xe4313acb journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43c04b9 d_alloc +EXPORT_SYMBOL vmlinux 0xe446558a make_bad_inode +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe47c66fa kthread_create +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4850567 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe4aadae2 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe4b83d37 nf_afinfo +EXPORT_SYMBOL vmlinux 0xe4beccc7 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xe4d67e97 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xe4f0a3db mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xe506e694 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe554d8e3 pci_save_state +EXPORT_SYMBOL vmlinux 0xe5568e39 mca_device_status +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe55fb84c phy_device_free +EXPORT_SYMBOL vmlinux 0xe5610c02 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5fe8066 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xe6186804 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xe6458c55 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xe64975a0 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6d79482 dm_io +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 0xe7338de0 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xe734e44b scsi_add_device +EXPORT_SYMBOL vmlinux 0xe7380f63 kset_unregister +EXPORT_SYMBOL vmlinux 0xe7452e86 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe76c3a99 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xe7735d5e i2c_use_client +EXPORT_SYMBOL vmlinux 0xe78e37f1 current_fs_time +EXPORT_SYMBOL vmlinux 0xe7a2f6e9 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xe7b4ef7a textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xe7cb5bab free_netdev +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe81ef3ff generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xe82107be md_done_sync +EXPORT_SYMBOL vmlinux 0xe82ea4ea ps2_init +EXPORT_SYMBOL vmlinux 0xe83bedad input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe85665b8 consume_skb +EXPORT_SYMBOL vmlinux 0xe8575c4f jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xe863500a blk_free_tags +EXPORT_SYMBOL vmlinux 0xe865b728 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xe8730788 set_trace_device +EXPORT_SYMBOL vmlinux 0xe877fed0 sock_no_accept +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87a0f5f tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xe8837320 blkdev_put +EXPORT_SYMBOL vmlinux 0xe89d4e9d ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe919966e generic_readlink +EXPORT_SYMBOL vmlinux 0xe922c9c7 pipe_unlock +EXPORT_SYMBOL vmlinux 0xe93afcc1 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe95fddd3 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xe9900716 init_special_inode +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9df5ffd vfs_readv +EXPORT_SYMBOL vmlinux 0xe9e652a3 ether_setup +EXPORT_SYMBOL vmlinux 0xe9ebd260 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xe9f84295 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0e7b60 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea18f250 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xea447e8e tty_shutdown +EXPORT_SYMBOL vmlinux 0xea5dcdc2 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xea6ce547 scsi_device_get +EXPORT_SYMBOL vmlinux 0xea6d0c67 scsi_free_command +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea851144 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9609de ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeaa99d6c scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xeac4433d agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0xeacd793f blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeae31f92 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaf40c3d do_munmap +EXPORT_SYMBOL vmlinux 0xeb262700 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xeb3cab6c hex2bin +EXPORT_SYMBOL vmlinux 0xeb54a419 iget5_locked +EXPORT_SYMBOL vmlinux 0xeb77272f mnt_pin +EXPORT_SYMBOL vmlinux 0xeb876497 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xebb7205e xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xebcb8aba padata_do_parallel +EXPORT_SYMBOL vmlinux 0xebf3ea53 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xec098107 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2d11b3 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec3ce543 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xec3f6cb2 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xec47b31c mark_info_dirty +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec559259 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xec6d19c6 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xec7078b3 elevator_init +EXPORT_SYMBOL vmlinux 0xec861154 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0xec869516 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xec918735 deactivate_super +EXPORT_SYMBOL vmlinux 0xec9dc7b5 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xeca3ef52 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0xeca6d974 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xecb538ec submit_bh +EXPORT_SYMBOL vmlinux 0xecd08404 sock_map_fd +EXPORT_SYMBOL vmlinux 0xecd13dca default_file_splice_read +EXPORT_SYMBOL vmlinux 0xecdaf2ec set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xece0d014 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xecfe9d5e put_tty_driver +EXPORT_SYMBOL vmlinux 0xed0b4d6b jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xed0daca9 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xed1377b4 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xed13e45b dev_uc_init +EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed31e2a2 sock_update_classid +EXPORT_SYMBOL vmlinux 0xed618858 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xed7173bf bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xed7be940 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xed7d8f8b x86_hyper +EXPORT_SYMBOL vmlinux 0xed85f477 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedad1fd9 inode_init_once +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd3207c vmtruncate +EXPORT_SYMBOL vmlinux 0xeddec09a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xede69095 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xedf7db2b kobject_init +EXPORT_SYMBOL vmlinux 0xee16df79 agp_put_bridge +EXPORT_SYMBOL vmlinux 0xee1e57a3 journal_clear_err +EXPORT_SYMBOL vmlinux 0xee2cda5c tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee696504 kmem_cache_name +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeec68ec9 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xeee20aaf kernel_read +EXPORT_SYMBOL vmlinux 0xeef07c00 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xef18bec1 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef350963 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef5214f7 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef802792 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefaa4c1c dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xefbb7988 skb_make_writable +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf009872b fget +EXPORT_SYMBOL vmlinux 0xf0513fc7 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf067adfd scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xf09c0111 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf0bf7068 acpi_root_dir +EXPORT_SYMBOL vmlinux 0xf0d22416 xfrm_dst_ifdown +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 0xf1191ac4 dev_mc_add +EXPORT_SYMBOL vmlinux 0xf11c2a2b tty_free_termios +EXPORT_SYMBOL vmlinux 0xf11c3d1c scsi_block_requests +EXPORT_SYMBOL vmlinux 0xf11ec69d qdisc_reset +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf13e15d0 sk_wait_data +EXPORT_SYMBOL vmlinux 0xf16978ee dma_async_device_register +EXPORT_SYMBOL vmlinux 0xf16c01a9 sk_stream_error +EXPORT_SYMBOL vmlinux 0xf16cd813 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xf17335b4 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xf184e06c __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xf1912275 dquot_destroy +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a1309c lro_receive_skb +EXPORT_SYMBOL vmlinux 0xf1aee57f acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xf1c5173e agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e5f0a1 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f36944 may_umount_tree +EXPORT_SYMBOL vmlinux 0xf201135e pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xf201ce02 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf22ba06f task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xf230c79f __blk_end_request +EXPORT_SYMBOL vmlinux 0xf2329f8a tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2495cab ppp_input +EXPORT_SYMBOL vmlinux 0xf24dfce0 put_io_context +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2b55a7f vlan_gro_frags +EXPORT_SYMBOL vmlinux 0xf2bb31cb sk_reset_timer +EXPORT_SYMBOL vmlinux 0xf2c31981 vfs_symlink +EXPORT_SYMBOL vmlinux 0xf2ce8b69 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xf2dc6936 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2f6d77a bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xf2fae8a6 dquot_resume +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf32dabd5 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf3415a62 dev_addr_init +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf3463434 amd_northbridges +EXPORT_SYMBOL vmlinux 0xf350e878 bdi_destroy +EXPORT_SYMBOL vmlinux 0xf37843d4 sync_inode +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf392bd72 neigh_create +EXPORT_SYMBOL vmlinux 0xf394d011 register_filesystem +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3af886c update_region +EXPORT_SYMBOL vmlinux 0xf3b2417c nf_getsockopt +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf44827f4 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xf45cce8e scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xf45e6dc2 pcim_iomap +EXPORT_SYMBOL vmlinux 0xf46e7c4e mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0xf4779222 uart_register_driver +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf495f79b blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4a764c4 rfkill_destroy +EXPORT_SYMBOL vmlinux 0xf4b12c5b __netif_schedule +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b86134 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xf4c012c5 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xf4c873a6 nobh_writepage +EXPORT_SYMBOL vmlinux 0xf4e282a8 security_path_unlink +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf5096396 d_alloc_name +EXPORT_SYMBOL vmlinux 0xf5142158 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf5157257 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xf522996a simple_release_fs +EXPORT_SYMBOL vmlinux 0xf53519ca copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf55d7e9a jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xf5867cf2 f_setown +EXPORT_SYMBOL vmlinux 0xf5999815 get_io_context +EXPORT_SYMBOL vmlinux 0xf5aa99fa iget_failed +EXPORT_SYMBOL vmlinux 0xf5b51355 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xf5bb4d73 netdev_err +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c50f28 pipe_to_file +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5fa8897 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xf60561a7 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xf6068eb7 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf60a1649 vfs_write +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf64edd0b writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xf6556445 __brelse +EXPORT_SYMBOL vmlinux 0xf66901bc send_sig_info +EXPORT_SYMBOL vmlinux 0xf67643b4 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xf680f148 phy_stop +EXPORT_SYMBOL vmlinux 0xf68db61d blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xf69f0c2a wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6bfb82d bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf716d165 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xf742f47a blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xf74b3335 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf766fb23 napi_get_frags +EXPORT_SYMBOL vmlinux 0xf77d7c26 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7c7bec5 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xf7cf2c68 dquot_alloc +EXPORT_SYMBOL vmlinux 0xf7e4f3fc fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xf7e6e20a jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xf7ebfd30 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xf7fcead7 bio_unmap_user +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 0xf853c000 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xf876de3d kick_iocb +EXPORT_SYMBOL vmlinux 0xf88a41ba pci_disable_msix +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8d85bfb scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xf8dfe9de nf_register_hooks +EXPORT_SYMBOL vmlinux 0xf8f06078 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xf8f8bb6d inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xf90e0921 phy_attach +EXPORT_SYMBOL vmlinux 0xf91936da linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xf9268182 skb_put +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf944c304 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xf94a22c3 kern_path +EXPORT_SYMBOL vmlinux 0xf969bfd1 dev_emerg +EXPORT_SYMBOL vmlinux 0xf98a5a35 udp_ioctl +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c2fd87 file_remove_suid +EXPORT_SYMBOL vmlinux 0xf9d7c536 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xfa2139d8 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xfa71d88b skb_queue_tail +EXPORT_SYMBOL vmlinux 0xfa7c6637 neigh_lookup +EXPORT_SYMBOL vmlinux 0xfa8c44d9 cpu_info +EXPORT_SYMBOL vmlinux 0xfa9fa437 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xfad8e9ce xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xfaf57ae6 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb03bfd5 key_revoke +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0e4eff dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xfb2e7e8a fddi_type_trans +EXPORT_SYMBOL vmlinux 0xfb3f4d7f lookup_bdev +EXPORT_SYMBOL vmlinux 0xfb611549 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xfb6708da napi_gro_receive +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfba77124 mnt_unpin +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbf30036 no_llseek +EXPORT_SYMBOL vmlinux 0xfbfbcd09 cdrom_release +EXPORT_SYMBOL vmlinux 0xfbfcdd75 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xfc027481 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc08468a udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xfc11f524 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xfc207e9c atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xfc273cf8 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc50827b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc69e635 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xfc998fe8 may_umount +EXPORT_SYMBOL vmlinux 0xfca27cf6 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xfca4f89b kobject_del +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcd3853b __neigh_event_send +EXPORT_SYMBOL vmlinux 0xfcd93b23 log_start_commit +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcdc41f5 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xfcdd0ed7 pci_pme_active +EXPORT_SYMBOL vmlinux 0xfce5fdf0 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd010a83 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xfd034c04 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xfd128324 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xfd5124c3 nf_reinject +EXPORT_SYMBOL vmlinux 0xfd680947 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xfd684018 agp_enable +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd7f65c5 install_exec_creds +EXPORT_SYMBOL vmlinux 0xfd8a8003 journal_revoke +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 0xfe362fd6 dev_addr_del +EXPORT_SYMBOL vmlinux 0xfe4cf369 set_pages_nx +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c02ae sk_free +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe7cdb29 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xfea48ba8 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff096622 phy_find_first +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff258997 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xff30ac1f address_space_init_once +EXPORT_SYMBOL vmlinux 0xff36c35e __page_symlink +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff5add6c __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff7d221a mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xff8959b8 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xff9d7e21 mmc_release_host +EXPORT_SYMBOL vmlinux 0xffaf579b sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xffb6619d bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xffb8cebf grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffe333cc tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xfff9c981 llc_sap_close +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 0x002b9425 kvm_write_tsc +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 0x0828b94c kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08753985 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x09e6ea25 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0e7241a6 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1538d95a kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18fc845e kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1bb60d02 hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1bdb9bab kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1da24088 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ec5e9ff kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x208ebb00 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x226fbcb3 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2836fdc9 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28d7bc7d kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x290d7529 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2b09ee44 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2b50d419 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2dfe286f kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3db7c255 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e702827 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x409d1917 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44725e12 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f9b356e kvm_emulate_hypercall +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 0x56d077ad kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x589d48d3 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59b97bd3 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c1671ed kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63079946 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x665a1af4 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x66b35569 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x68f7024a kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x72381c12 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x736be0b8 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74b60ea5 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x76b2f45a kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x783a3a9a kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7ca9a9a7 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x81911e0b kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x829435a7 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82ce9eec kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x83b0ef3c kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88dd798d kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e63e60a is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x91bea95a kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x969f9506 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x991c8a52 kvm_get_rflags +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 0x9c0b5b84 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9e31317e gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2db67e2 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa5d328ab kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaaa36e68 kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xada8410e kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb42aeb7c kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4bf208d kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb7202288 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb774322e kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbb8eb7ab kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc57c925 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd4b4754 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbeecd487 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3715613 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3cd9e4e gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc97c5ebd kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcb29f1fd kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcb90ed46 kvm_release_page_clean +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 0xd47b5832 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7cbec9c kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7d39c6b kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7dfdb19 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf7d6193 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe12a5c62 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1a0a990 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe437e1ae kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4753e56 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe67ea4f3 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea8f7123 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec31a2ea kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xecded166 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf09cc59f kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0c6f2a0 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf5cf6a64 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfeeaa7d4 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x1edaac17 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/af_alg 0x0c192230 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x14e3f582 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x7af812f2 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x93feff78 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xa3a979d8 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xe27f8ad0 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xeb0fa163 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xec34b8a5 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x7f994393 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x1dfbc28a async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xaa08632b async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xa0f9da13 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xa8d842bf async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x72dcc4a7 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x97fae1ca async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xccd278df async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf6739d11 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6571f1a9 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xa23573a8 async_xor_val +EXPORT_SYMBOL_GPL crypto/cryptd 0x1c46387e cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x42973daa cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x703f7e33 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7d7d4b9b cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x7e6ac87b cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x80a94378 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x9714d8fa cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xb01da8a4 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb55031da cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xbd0621d2 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa16792c4 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 0x2622bfb1 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4e7e1ca6 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4fac464b ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x520371cc ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5473fcb8 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x789e688f ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8a7df492 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8bdae76b ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9c7c9438 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa20849c0 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaddc5869 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb42282a4 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xda4d8832 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe1f5c876 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf0f7f0f3 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xff0265f1 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x214929ef __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x9dc9000d __pata_platform_remove +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 0x017998eb btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1727f047 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7688b159 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xae6855b9 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb6acfee0 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbf092937 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xde89a6f1 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xeb3d084f btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0xe6eac807 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x01065350 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x014a74f3 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x02a70408 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x104aaad0 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x166b7cd1 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x334dca66 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3f8ca06c tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4c3f278d tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x52679021 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6361e031 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6f07bdd9 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x895b3c42 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x931398b0 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x94754d29 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9ea15f1b tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaea385c7 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb568119c tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb704fb24 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcd0ef85b tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcd566645 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcf07a93a tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd5a41fdd tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xeabb6531 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x378bed94 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x3f5c7bcb tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/dca/dca 0x022baa49 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x109278da free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x257d2aed register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2c370b7d 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 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe0219930 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe40a1302 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe752d4e7 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x257123e5 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x26b81426 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x34d9a691 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3a0f8031 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x43b4f5a7 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4d343f3e edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5c512829 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5cca9faa edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6211b6bd edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b607003 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6dfa3d9d edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7b1c33c9 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8235a147 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9fe6dfc5 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa1e32a8f edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa498aa5a edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa688155c edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xabf2b9d9 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xacb78b3e edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcca4a1a5 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xccc1de40 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdff01b9c edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf0f0f38c edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf1dfbdee find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfc01f762 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +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 0x1502296d 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 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xedbca0ae amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xff582b9a amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xc0bb404a cs5535_gpio_setup_event +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 0x3504fb21 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xf0d0bc8d __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3969575e drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xda30c6c9 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 0x0e05d7d0 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1022b7a6 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x273ae619 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x285e0f8f hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34225403 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34cca944 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3b536930 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x56361885 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5ec6031f hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x719dcfa6 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x84b556ca hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x953d86c6 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9ded3740 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb5435eff __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcd976c27 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd35a7eee hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd402bb65 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd626ec90 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdadce0c6 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdfc0b8f6 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe3f1cd9b hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xed9ffe14 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf0a26ee3 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf8c951e6 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfa997148 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfd204257 hid_register_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 0x7e422c8b roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0761724e usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x208e4447 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x34a56c72 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc9abe24c usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x513a53d1 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x564fd447 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x77c1a606 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x79020e27 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xac228cda lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x6356633a nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xa6149a3d i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xa9adb471 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x5a172fea i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xc8a6d90c i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x53dfcfe2 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x8ffd718d adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x911917ba adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xbdfe16c0 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xc7ad8b19 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x042a5d6b wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x483fd7e6 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4c87ab47 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x54cf22a9 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6015ee8b wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6722cf85 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8495d778 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x992bca22 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xda04b47b wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe492db4a wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfb60a563 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfe4c4e4f 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 0x03768832 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x03c37cbd gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0f8ac46e gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x12ce6c6d gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1a3eacc9 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2350631a gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x57571d27 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7a3afb35 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x92cba977 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x96f4e5f1 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9f896689 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb047ea64 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb2251a99 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc0a14fd6 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe4b4aefc gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe60124f9 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xef07d5cc gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/md/raid456 0xea09665d md_raid5_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xf4d09f81 md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x391d4640 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x417ce660 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x443e99a2 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7360209a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x73886409 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x840bfec5 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x97d08db1 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa28242ac saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbdbb0404 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe2aadf64 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xee73ff54 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0c5d5ca0 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3d9df80a saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x40ebd06a saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x67a89352 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x9d24938d saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc02496b1 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfad8b42a saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x548fbd9d microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x11a6e70d mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x9e901fe4 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x2e0da0a5 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x4c8d5f78 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x6082c68a tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x9b6f5975 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x6573e0ef tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x87d98238 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x1300d6b7 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x33482a3d tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x515727af simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x00569d39 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0874387f mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1e1745e0 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x36ada5f6 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3f8a1cfe mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5d67d7dc mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6607faed mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6fb138c1 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x774bd3da mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x83f412c6 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x90623905 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xad414678 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xba3688c1 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xda70a661 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xeaa884fc mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf4e95c25 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfc7c53b1 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0873d817 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x237811b8 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3a4c6936 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x477ddd50 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x515a5f17 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x53dde0cb smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x54ed8e9a smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x61d5c78a smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6ea20599 sms_board_power +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 0x7e1d7b53 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x83734674 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8b8e443b smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x96a75f57 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa7715f1b smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb0b27973 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xce5dc259 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe4bb1238 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf3dd32b6 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf473b8a1 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x28f44d78 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x6dd00956 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7d54e803 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb63b8df2 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe64edb24 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xfbcf8310 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xfbfc771f ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x08f318f3 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1112d578 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x11346baf rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x17494017 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1803a6c5 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1e751f55 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x34580cef rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x54adb7e2 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x70fbf0bb rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8d414158 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9bce9217 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9cb29fb8 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9e68aed6 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xae43b66b ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbb23acc0 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc9a59fde ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe8eb2d2b rc_register_device +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0cddd273 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1618811f cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x16fa0362 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3e5e7201 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4c24993b cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5696a382 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5b7f6114 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x89d6d91e cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9c9420e0 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9d1904cd cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa501a4bd cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xabdd223a cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb5ddc1cf cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc1b658e9 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd4ff15d5 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xdd2f3989 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe051585b cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xefeb8c47 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf967a672 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xc97d6f76 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x237b90c0 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x30eaa903 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x33df8140 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbe6f611c em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc1139a09 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd6222259 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x04179b30 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x26cb3d6f saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x3ebdae3e saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x80085c5b saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x936c24a6 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/soc_camera 0x3b5b59a1 soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4ee24337 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x5bf7f285 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x75314c80 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xee510c51 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xfd7368fe v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xff93fd1a v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x1d69796c v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x44c06f11 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x838b8bd6 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 0xae0c15cd v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x22bd1461 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2bbe7560 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2cfd284c v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3c0e6666 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8199f2c0 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x83044295 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x92947325 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x97815952 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9afee9c9 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe535fb8c v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf36be572 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf816fc2a v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf8fd1920 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfcb7828d v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0ecf7e33 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x196309b0 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1baabd7a videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1c902fcd videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x35a3e2f1 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x35ef29da videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4551beba videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x464f6780 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4a81eb10 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5e495509 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6aea55dc videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x811587d5 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x879ac2dc videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x91b573a0 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x944f3ac5 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x985777ef videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xacb92bb4 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb0d4fa56 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcf60f49c videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd0b39ffe videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd7accdba videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe775f999 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf0cfdd0a videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfd9ad5f5 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x16497dd0 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x1e83c157 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xb0679b6a videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0a435b15 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1e826d9a videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3c5bb7b5 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x40f5440b videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x93584749 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa01ca7b9 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa584e484 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd817608e videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf85cf064 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x074c359b videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x66953989 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x70214247 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x054a6fa1 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0e4e36a8 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3973f455 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3c2e33bf v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3febecca v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x426b2351 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x46425d0f v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4908fd58 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x66e71def v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x68b4ba34 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x74251f26 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x893e57fd v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x90a23354 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x98963855 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9f82b825 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd30f4889 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf47ac75f v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf97ff124 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0c1972e9 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1c6f1213 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x36494725 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8e7d6e0a i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x91b251e6 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa01fe5a7 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xede7a051 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf67b74e2 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x789ecbdf mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x182549a9 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4894006a pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x67a420f8 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x72f8ebdd pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x968616b4 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb30cd5af pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb5f16c72 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd5a996ed pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd8fa8bf2 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd906b860 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf745fcb1 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x2d537767 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xfa64e8ba pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x18ece093 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x41b06879 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5791aa19 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa9183466 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe921a24f pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x04a036a6 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x0beac3fe sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9a143948 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb4cfe979 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd73cac9d sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x49e473ff ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x70fc26b0 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xac4083d0 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xaca1e4be wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xc3fe1de7 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x010b51c0 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x28aff491 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x7d9fb72f cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xfeb2e286 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 0x3b7aa456 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x462de45e enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x477a7e75 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x47873d9a enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x678926a6 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc9914684 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xefd8f634 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xfce64a34 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4fa02b15 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x682ff170 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x927df825 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc8e3c7ab sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xce9980b1 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe26fd451 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe73511eb sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9325ed5d cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc555fe08 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xec4f05ab cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x157afb5a cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x474f0c1c cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb8483877 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x7396e850 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x112db697 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x38fb1a8a cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x5a876d9c cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x04d51594 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x06c7161e DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x1584bb10 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x053cf4c6 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x06bebacf get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0898e8cc deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x09765ee8 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x10d4be39 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x16abf0de parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2b9e491d get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3c1fb701 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x416940d8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4a25857b default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6b14be95 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6b287465 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6d379b12 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7c893b8f register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x98485954 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9b76093b mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa015c7ab put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa267ade7 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae73650b unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd2c28376 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdd6d42a7 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x21eaf36f register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x6b1c8b26 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd2ae5434 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf2432e03 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x576c6f82 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x6289e1b7 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xdbcd3fcd sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x19d9e5b7 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x74940d57 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0529b06f ubi_leb_erase +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 0x7780ba44 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7a455f32 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7bbcc4e7 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x832e3ba9 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9f3dd791 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa03eddd3 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xaa0b8862 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb36438b3 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb4e7c00c ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb9386387 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd6dd4bcf ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe116d018 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x16bcf5ae register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1bc946b3 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x45bdd908 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x47ca18f0 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x48a7b8ef can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7112a719 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x79699a78 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xaab6bf51 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd2f19257 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe401e7f2 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xef34163c alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfaa886ef free_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x50c6f531 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7f5df145 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xca905dfc alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xeec409b1 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x31081552 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3e802619 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x56f91fde macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa9e1377c macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc93b6a1d macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0321d8ea mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x08afada1 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0c31ab56 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0c666f1a mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x15daff6c mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x175ca619 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1d68fc27 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x25a585c9 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x27a4258b mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x295a1367 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29c34278 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2af9e2ae mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x31343b90 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x330a917f mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3842af06 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3a871e4e mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ddad8ec mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x430774e5 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x47a7e23b mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x67ca7243 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x681d3850 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6f31cff2 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7300d0b7 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x74d433dd mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x759ed552 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x75ea9d0b mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x804b1c8f mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x80a85f41 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x81ce6c75 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x83421f63 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8342925a mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x84c70261 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x85421335 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x857c859b mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x86ff2ce1 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89bc9fb4 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89d2eeb7 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8fdfb978 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x928b2a87 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9edb36bb mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa2abba77 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa620161a mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaa11b30c mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb3e487a2 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbbe5701b mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd8aaca7 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc10ba524 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc1efce11 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4208fd7 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc52f7541 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc80699eb mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd66a021b mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd86f8d6d mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe788ca6c mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf02faf64 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5d9fef8b usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7d0a91e1 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4562cf72 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x49304599 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x80ebf62f generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9572a8ba rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb6ce9fda rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbfc87b32 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0158109d usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x04e426b8 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1414b476 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x18d8b976 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x204fe91c usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2f1f24fa usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x35b03ce4 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x41dbe8f4 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4b12e629 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5ea169a2 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6aa47cfd usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x80637baa usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8aab7b1f usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b59b2dd usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8e32d5d0 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa10aaef5 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb49854a0 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbd27348f usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc09a25dc usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc9afddba usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcf3014d4 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xda5e97cf usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe37a74da usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xea362052 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x01f6e871 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x10c0a90a i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1ffb18a6 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x32a53991 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x388926e2 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4a40bebb i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4ae43e49 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x52a42df3 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5dae8c89 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x79039775 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8bc9cf57 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa3d9fe28 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xba608a92 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbaaf6916 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc1000b27 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xca6705ac i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x062b13ad libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x0ef4c41f iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x1947ca9b iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xb0c3524a iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xec2787ee iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x09bf18e4 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2bb6a50f lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3e863476 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4014937f lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5967f761 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5de7d14e lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x65d182f8 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x68d99aa0 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6d9c62f9 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x83334b6a __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xae33d114 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xba00a43b lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd8c427a5 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe2cf42b4 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfee4de2c lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0530be64 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0a86e84c lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x30989e34 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5692df77 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7a07a172 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa74f7365 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb0aae7c6 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdd36c85e lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x6adaca26 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x989b46e4 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x03a4de09 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x29686b1b p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x320903a1 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x480c8beb p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4e4ce164 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x76e1a593 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x88441507 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xcb10b5d1 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xeeb0e8f1 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x06f4d010 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x084db194 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a47defc rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1893f60a rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x19f932d6 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2784eb16 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x282f655a rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2f3aa6fe rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3297edfc rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3dddb741 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x445fea16 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48de594d rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4df8d836 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x555b3c7c rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x65768435 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c575067 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6fb05f98 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x772bca1d rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x806ac231 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x82301488 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8cb40fed rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9933b918 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9c7e3dfc rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb182009c rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd19798b rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc6c88930 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd0807d96 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdc924397 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe09c4154 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe54988d6 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5c8f699 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xee7c66d6 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf976715b rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xff303f6a rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x076d73b8 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0a36dae6 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x11070702 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x23ea0033 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x26a5cf9a rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x38f4cc26 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x40f89c06 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x43cbb945 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x455d60d3 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x457f83cc rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x505c06f4 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58f4a61b rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ac9eb8a rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5bdeb43e rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5e478b5a rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x67670047 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6933bc28 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69f11827 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b509807 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c3e0595 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c740ada rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7375046f rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7504e94d rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b2190d9 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x820ecfc3 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8cf24afc rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x938b7e2f rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9a6a8046 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb2dcc2c3 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf8dd35c rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd26a31ca rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd33c7a80 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd33d2b8c rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd40c98dc rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd4e31f4c rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xddd082fe rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe24de8ad rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe3ae423a rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xebe5316e rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xedcfe1bc rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7acf7074 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x84819cfa rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8f4534b2 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb60cb40c rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbf916689 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xce90053c rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xea925e87 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfc6fb40c rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x04a91505 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1266664b rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4cebec8e rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4ff766c9 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x594b7820 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5e9a55cb rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x69c775e7 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x77aa5e60 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x857780b9 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9155a48d rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9f351e91 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcc6f3696 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe262c4dd rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4e19706 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe542a5c5 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x16297dad wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xe903cadb wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xf6be0dea wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0dc7cba6 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x499dc926 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xbc4f8d86 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc50946b4 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xccbc4eb0 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe0410b14 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xee42b4ae wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x4176986b acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xcd4f6ee8 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x3831b264 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6ba2ad75 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6c362b09 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x2f2a71d7 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x4f8ce299 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x62d9d709 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9673344f mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xdd24793b mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe22500c1 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe73f4840 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x35ebf707 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x579b6bfe wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc5950075 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc8bee1d5 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd4019c05 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xece3c0e2 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x2a6e4ba1 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x072af103 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0b9cce52 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0c2ad31b cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0d59d165 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1ccda5ab cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1cd757ca cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1d88545d cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x21d3384d cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2b2b4fa4 cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2fe49470 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a0b2c02 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x480b00c5 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x522ed8b6 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x60f9cbda cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6284baa9 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6b366f30 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6ed62871 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x72efd18b cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x73c9a100 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x78275423 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x864d526f cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x86e9748d cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8ec98cd1 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9225b19d cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x95e94382 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x992798f8 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9b1ca6e8 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa3a4f1ca cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaa57fa7e cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaa6ac30e cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb87bf972 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbcbb3338 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd3f4d85 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc3adccb8 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcb2bec88 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdbdd1245 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdbf37f4a cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddbaae85 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdf68b695 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe315dead cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe3aefb86 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeb567873 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xed9e0bea cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf89b02de cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5f9a3c4d fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x10c5130f iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x93e800df iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xcbe3ea57 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xda62d5ed iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe9cb56c5 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xfa1094bf iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x046f7ae0 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04cf56a7 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09762872 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09830ddf iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0acc938b iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1796cf5d __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ac4e270 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2453d140 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34340e18 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34e0f01f iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x37c44609 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3aed8bab iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4149ba85 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c615598 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5370715b iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x572a8b31 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x588298b7 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6695dc0e iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7615fa44 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7cfee31c iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86bc8da6 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x95a02150 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a40739e iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c8a22aa iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa14268c0 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa2dd6663 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4deaaa8 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5bbe2e3 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa6a0dc62 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa7e7553f __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8efba7d iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae4db6fc iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2e75edd iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb33f73f5 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb3f3fd1a iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc79e48a5 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd447def3 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd520900d iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc9d1a0b iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdfacde8e iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6ed6bf0 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8ba1b3b iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc5eb3ea iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x193d53b7 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x265a12ac iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4645e6a9 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4aeaf209 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x582c8de2 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x58633738 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5df54cbf iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9af3897c iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaca1f39d iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb31ea2ca iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb4a647bf iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd3410dcf iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd3b0888c iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdef3ba8a iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe7ff8f0e iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf89bdeff iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1d354401 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x271eea4f sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x27940bbe sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4bc8554b sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x569dcf67 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5d207745 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fa18f5c sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8742a15f sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x93df869b sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa0ba7829 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa909ee02 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf8d7349 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb43ee51a sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb7c7e952 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc0d7f4ee sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc51576bc __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcb270cee sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcd677c23 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6b835ac sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdc2d8701 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe3865aac sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf41d3fa4 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf7dce9f9 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1166a14f srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2100e97d srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3cb0f522 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9888d6f7 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb9b48fe1 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd62f4e57 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x64aed1ec scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x66f617f4 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6d8b7bd7 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x87b65d45 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x87fd80a9 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8b5513dc scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xadf99c7a scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc09e089a scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe49a5767 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2bdfd74b iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x30fff794 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x35e70f8f iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x382b731b iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43f29a33 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x44c18874 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x578f8e7a iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5b6cc08b iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x63e70186 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d4f87bb iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7c416ca0 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84b62a03 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x92262c8a iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x96d5187d iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x96f1897c iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc67331ee iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe3fff0c8 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4203754 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe849cb4a iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xead0cc3b iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed6f7c77 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf067a4d2 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9c4e5eb iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x20ea2aaf sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x850427be sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xabb35c25 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd88d3f1c sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x012df3f9 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x10b702ba srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7a804680 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa7a6a2ac srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xef618e82 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1e718dfd spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x49bc8c60 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8eeb3e3a spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xacdca710 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xbfa1367c spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfefbcc73 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0abd88ec comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1139f2ab comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe7291f60 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf1419f99 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf6e888f9 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x6a46ef21 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xf55c8645 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x0a5bb28e labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x5b1e4d07 labpc_common_attach +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 0x0c2db5e3 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x157d8da6 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x37e56b46 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3db33556 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x77f2e486 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x8223b72c ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x9847a0f1 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xa7a52406 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x35cb97c6 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x50ccca75 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x598ca28e ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xabeff8da ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xccd50d23 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd7a95016 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 0x107919a9 vmbus_open +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x12643291 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x195eb8ad osd_waitevent_waitex +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x1f473a1e osd_page_free +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x22e30b07 osd_waitevent_wait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x318af37c osd_page_alloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x40837821 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x539f5cf4 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5606358e vmbus_close +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x6a0824ff vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8abe81f5 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8d552274 osd_waitevent_create +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xe95976b7 osd_waitevent_set +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x005ec987 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x11559db3 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1432ee06 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2985bc43 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x435d314f speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x43fb646e serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x7f7d3f67 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xacf9dede spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc9a35dc0 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xefd33c62 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf641b531 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf9ae69f8 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x608f7863 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x92b5f4ea tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xa50a27a3 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0c8337c4 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x15908548 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x357b39ee usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4ddae67d usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x62999149 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x783d95e9 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7e11e6c5 usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x867b43bf usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa5ed6250 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa73b9c2a usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa77694ae usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb6adab8e sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb93eb576 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xcc5779fe usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe3a1f912 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xfbbe09fe usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x1f626b9e max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x35fa13c7 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x791fc796 max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x9dded603 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xf4d6b3d4 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xf98a320b max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1d7d604d __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x47e039e5 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa1a21214 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x0c40a247 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdf212fd9 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x15c5bd7c usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3b70e75d usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x547c2428 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x59506f31 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x79f45463 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xac6febdf usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc77932e5 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe00e5b32 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfa173e93 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0a4600a9 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0f0402ff usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x23798538 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2729470b ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3e611099 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x41fa3140 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4c07f82a ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f2b536c usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x756fdaef usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7748446b usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9595d2f3 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9d603f48 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa819b3c2 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb0a0fbb0 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb9145499 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc681a2b3 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc6a2c6b6 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdea1f7e5 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe0da65a3 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfef62218 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xff2701ec usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x04f1d33e usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x10c8d53a usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1785af53 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x28610bd3 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2dfe4089 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x38ad1383 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x42c42262 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x56dd4101 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x65d26ff6 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x67a5db6f usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x69841ce8 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x69ef6362 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x74157de2 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x77051456 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7cd8d0f5 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x86215ff1 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x86e162f6 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9e35c97e usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb0059c38 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcf47c6ac usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd9ab4019 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe00c86b1 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe9302e75 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x06cf1a16 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x32a16ac0 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc47030c8 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xea9e98ff rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xff736343 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x12932947 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x154bc14d wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2786f0d3 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2b0b255b wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x43343dd0 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x50aae127 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5f71d621 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x66607542 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7523aabd wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x85f0aa21 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa49b90da wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xad59f559 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xbe36cc50 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcf581931 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd26dad47 wusbhc_rh_suspend +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 0xffd355d5 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x41897c03 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x7272ffc5 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xb1486f86 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x414d69c8 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4610d4f5 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7ca95e4d umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa03d489c umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb0947245 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc5ac9650 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd0c81220 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe12b9415 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x103a7514 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x14cebfac uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x17f738ec uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1fac7e65 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20897bc2 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25e9e338 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x27e3fb28 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2906fcba uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x37f910cd uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3887a18b uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4daff943 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4efcebe9 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x59d5a41e uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e939ba8 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5fc54211 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6943b394 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f454617 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x77cd8ab6 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8086f3ca uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83c00d3a uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x86e3b19a uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x946caef2 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9889419f uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa142c83f uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb153e84c uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb2194a61 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb3f8cc38 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc0a60ea1 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xce85d990 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd20360da uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd7777e61 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe16e8e79 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe3cdb77c uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe4bbba82 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xebd909ae uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xef88d024 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf0562879 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xac84cd97 whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0076ea6a ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3cdae9e0 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x45763f6d ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x92f2c8a6 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9703920f ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb16113da ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf06cd731 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x28a52d93 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x6d8cdf4d fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xa9aac514 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x0d0af6ae sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x44f3ce3b sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 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 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xdf1a126e viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x22024ff0 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x344681dc w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5204b137 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x62a7ec44 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7a20a0b3 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe3d6617a w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe926e12e w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf5584d80 w1_touch_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x3826bc99 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa46de5ef dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbabd33ff 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 0x3aafcc01 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xe31245ca exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x11b2b067 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x22828522 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x23a4aaf0 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x2979e84b fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x2af38849 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x35ae4b64 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x70e52950 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x7dab1723 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x9b4da7e4 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x9dc66907 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x9fa65844 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xa10ddef5 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xa1dd5c81 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xddbe73cf fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xdf6c5109 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xe6b56c79 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xeced6eb5 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xf48b77d0 fat_search_long +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +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 0x1ea5c1aa nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5af3e856 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x88a9ab2e nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x947f6df7 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 0xf402d5aa nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2f618d1b nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7ee9c381 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb001c5ef nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x11e15501 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x128fff47 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x133499b2 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2b4614d7 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x565e3fd5 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9eefc081 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe6f5aa5a o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x25b919a6 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3a795b98 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x48b52586 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x869e32ec dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbc042b0e 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 0xddf43420 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 0x633a0e8e ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbad86247 ocfs2_stack_glue_register +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 fs/ocfs2/ocfs2_stackglue 0xfd386176 ocfs2_plock +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +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 0x5396bc8b garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x983c11b9 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xa4e06ea7 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xb190354d garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xcb501b83 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xd136a758 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x49735afc stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x9443d7c8 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x9734cf7f p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xe83e6ff6 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x8ab546ef 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 0x40b32509 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x039816a8 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0817a816 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0cc2a4bd dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d28ddde dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d86d0e9 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x16004e48 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x221653a9 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x281aa127 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x35fba523 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3a9f366e dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4723d76e dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4814f605 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a2d091f dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x747867bc dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8026cc16 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8916d50c dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8a2018a9 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8f82b2f3 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x92d628af dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x96508ea8 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x967b08f0 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa563c964 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb2bdf83 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2e5c7c8 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xced41db0 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd1767828 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd7e06b0d dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdcb913c6 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xddbd7f38 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe50f72ee dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf21e94fe dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf59e9eb9 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3c29ebff dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x52beb7e9 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7226dd75 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8e8c8f65 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa065adf3 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xad15120e dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/gre 0x589e2d1e gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xb3beb8fb gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xb6289139 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xe56a8af2 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x0a70e09e 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 0x29f55466 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x32da86c7 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5082e442 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 0x9b3e9cc3 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa54e339e nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb6d11179 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 0x0746e977 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x09743c57 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2d7930e1 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcb4dde86 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xda3df43f tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x667a8362 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x086c5d66 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x09a05d0f l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x252495f8 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6cd231c1 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x73e1b426 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x81a5d328 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9364a553 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d39b107 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa4e9d9b8 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb36b77f7 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc2e166ce l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfa8276e3 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x10a9c78f ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x31857cb7 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x51878e4c ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6e4c5736 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7be29339 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x124f3c87 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5bef50b6 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xbdb79e8b ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd54bab62 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01c0c232 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x032ed471 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x095726f7 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1752809a nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1c7a3c7f nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e25a367 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x225fc428 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22e59078 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22f26838 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x234cd07c nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x268eeb16 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2cace72d nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ded2dba nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3020eaf1 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3118b6f3 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3853c966 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38c5faaf __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e806910 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x420fa6d2 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44accba1 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ae0c916 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c3be198 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4e930b5d nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x514a3556 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x606c477b nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x608e1c7a nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66752235 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f0da99d nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x717e3dd6 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7185e84b __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71bc05d8 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73e84cae nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75137ae0 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a3a2804 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80c314fd nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x893914b1 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89ddddee nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8af16a68 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c8946b4 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92ee1bc2 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9479ce52 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x968a741e __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3e2e3db nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad9de807 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb8d4556 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb9de83d nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcca0bdf0 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf61996a nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0d657c9 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4a6c3f1 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7afc68e __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7fdbb29 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde100452 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe17d862f __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe232dc3d nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2e0354b nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe42112a5 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe525138f nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebc3172b nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecab6d30 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xa6b5ce16 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xd6d0c05b nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1f8f198d get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3cd92b32 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4a4939f0 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5fff89ef set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x64e3321f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x78ac8134 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x79334acb nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x82a5f06d set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcd6c6908 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe4154d08 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x0b340149 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x273ecfbc nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2f05c344 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x69f8cdaf nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc10ea892 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x66ac0c6a nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xe619f9b6 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x23aecddb nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x30fce444 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3fa72ec2 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4665b5ee nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x468e9afb ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4d2f9a6b ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x58e584d2 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x66b1b262 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9c7a1e46 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9dadd7c4 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc44f8289 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd7117e4b nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdff4314b nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xeecfa831 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xbdb3aa73 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5a54833c nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8c4b410f nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8ebc3728 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd29f773f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd72003d6 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xde2b7733 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xe0bec837 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1a5bc1c3 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2251650b xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x25703a9b xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b5d7b52 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3bdb5224 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44df7db7 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x463d5280 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f03e174 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x795e115b xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c8a76b2 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x929cbc41 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb37ee691 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc728df58 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd4cb9e9f xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x02d18bcf xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd995b363 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x012e3930 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x0f548c16 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x1bfba2de rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x293002dc rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x39c6959e rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x3b771af7 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x3fab0716 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x577c605f rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x5c70e1fc rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x619a3f61 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x6325694b rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x752003fa rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x82624d74 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8f7af765 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x956f5b64 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9f89a825 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xa2358c23 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xa54dab33 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xb6f354bc rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xeee9643d rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xeff0ee18 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xfb928294 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xfec50202 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1683803b rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x8e2f7d80 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 0x0998f984 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1a386747 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x39ee31eb gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3b46f1e8 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3b8b0b4e gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x45871fbf gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x687f0241 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x77aaae66 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 0x929a193a svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa013da91 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa60014ab 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 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0067ba8d svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0188d76d svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x033dbb68 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03457aba rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03b2bbd9 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0592af34 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05bc651e xdr_process_buf +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 0x0a2a1231 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a4de31a svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d2074ae xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e4028d3 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e86b5a7 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eeab8ce rpc_init_wait_queue +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 0x10514d20 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x105ed479 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x114768d3 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x119947ec xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x128bc5ae svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e694005 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1eb05bba xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x234b366e xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23a4d448 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2469eb3e xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24a5c077 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2559d110 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0ae653 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x309467c1 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30b1920a rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30f32a06 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x311644ee svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33052a76 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35107ce3 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361e8266 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x367c8ea2 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36f2c29b xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3704acfd rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38c24300 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38e48f69 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b809ce9 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b9bf0ec rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fa75195 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41aae9c7 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43a75fa2 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x443fd996 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4798229e xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47c60d9b svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c6a8b14 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d31eb21 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5252e0e1 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54ee5c65 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55915f05 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e1f7417 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f1b56ed xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60cf16e4 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66fb5673 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x695be57b rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6acfb160 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b2dea5c xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ed148ca sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6fe33084 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7369559e sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75a749bd unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75a7e4b7 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77b9ec90 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79dfc43a xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c7a6b85 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d326b9d rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d3c20db rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e277efe xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e2873f6 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e7be953 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85d03ad5 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x863cda2a cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x876ebfe8 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b62db1e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c82988d rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8df35283 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e5ce5a8 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9396108a rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95a27fee svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96db0340 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x984deaaf xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x986593d8 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98a846e9 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a02f99e auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a33b5cb xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0166a9f xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa321acd9 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3d18c84 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa665ffa9 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6d36a87 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6ebfe8b xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa98429ad xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacb5d8e7 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad02df3b xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadfd3ced xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb128c26a rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3802db8 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3aac21c svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb10d98a put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcd7ee26 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf154aea xdr_init_decode +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 0xc7ce522d rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7d1b8eb xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc88c88e8 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca0ffa01 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcaf9a8d7 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb2a0c16 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb2ae2ab auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce27cfa2 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce3f0900 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf51faa4 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcffa08be rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0529413 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1874834 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3211db1 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd395b016 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4a16ba3 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd57abae5 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6285709 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8229187 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd86d9bcc rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8d6e87b rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb546e7a xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeb40c00 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1e971ba xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3ce78e4 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5b5dee1 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe884f601 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe99e3021 svc_set_num_threads +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 0xeeec8586 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef440c64 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xefbb90fa svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf05a37ab rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1c73721 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3f3ded9 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf809149b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb447cdd rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb5007fc xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd33a469 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe55d0ee rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff515bfa xprt_complete_rqst +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2a7ac924 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x39f93ccc wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x458e4d3d wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6229accc wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x63d957e0 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x791b4314 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x867429d1 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe34ecab4 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe3df4b19 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xec9361e7 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xed1bf7e8 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfdc07701 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xffde1312 wimax_msg_send +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0087039d cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x03803bc5 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x09b4dfab cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1f753361 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x347a795f cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x382019ea cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3ee1d34e cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4ba98358 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5373c565 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x55dd5217 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x586a881f cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ad8e3cf cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6ad67726 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7ee1d149 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x88f45348 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x890a1459 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x89f1d036 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8b6545f4 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa48f1fb0 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa78827e8 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc2e22b70 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc67a41c8 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcec8955a cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdb0c23a4 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdf2e2f0c cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe4070695 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xed478db6 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xefc6c138 cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf4ebdac7 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf7ece29f cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf801c41a cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfa73d7da cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfaf0a846 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x205d5659 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x46af4733 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x7a904cbf ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb4bc53b0 ipcomp_destroy +EXPORT_SYMBOL_GPL security/keys/encrypted 0xe3829757 key_type_encrypted +EXPORT_SYMBOL_GPL security/keys/trusted 0xab4dc371 key_type_trusted +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x17bd57b7 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7adf7568 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9b1bbaf1 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa3b5c1ab snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xfee2abad snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xfff9582a snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00b7e340 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03aeb8a5 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05d572f0 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ce1669d snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1312a037 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17dac809 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x18ff9b3f snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1eb15d11 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f61e88c snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x248f146b snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26dfeeb1 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x270beede snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a1fbfb0 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3403293e snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b8284b8 hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c687170 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d1bb238 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e757ed6 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ef2c467 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x418ebf8c snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47374fc7 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47eb1657 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4adfc58b snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d325fbb snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e988a6c snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f94e49d snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fa6b387 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50264bd4 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54ecf3ad snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56da92c0 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59870612 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a99f591 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ab8db54 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ca854b8 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6077997b snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63ab3bf8 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e56c871 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71256f47 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78202f45 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c72ce30 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x824e547c snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82b72039 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x853ca189 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86eeae38 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x899c781c snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a5c683a snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x934f26a1 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95992f57 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x99d5e569 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9df57249 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f5f24a3 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0eda639 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa123aa5c snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4562407 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4f25cb6 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa65765b7 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb35977db snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3b9ac87 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb88ff2a3 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8f70bfd snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba0ead4c snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb4dc74d snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbca1456d snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf361235 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc07f92a7 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0c209f3 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc11bdd25 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 0xc74d87fc snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcbc08425 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcde80ccf snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd110cc6b snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd83771c6 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdbd41757 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde1ab63a snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfc21465 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe15b1b3b snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe66fca42 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeaa0651f snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeddc8f11 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf14931a3 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf258279f snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3c07190 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4b9a3f6 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5888ff4 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5e41f40 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf791cb52 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfaaae392 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xb83e0312 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xc07eb5b6 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x5b8bf836 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xc6ec710b max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x556bad6b aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9f8c129d aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc2bb52ad aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xea7066b6 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xee6da34e aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x73e094b5 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x8ed7694d tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x32caedf2 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x0add9ae8 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x156dc630 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xa0626d57 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x62bfe43c wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x0d77129f wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xc9ab92d1 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x16165d1b wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x1e739537 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x794700d5 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xa93ef4b9 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00c59a8f snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0110fbe0 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c54f93d snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d0b486f snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b7ef183 snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bddbdde snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c591626 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ce5ac7b snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ef88d75 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f06c118 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2129db74 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23926b8a snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x244cdc73 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x259b5128 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2680edf9 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x28a890f5 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a2cab73 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ddd14e4 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f00eac4 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f56563b snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37c555a3 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38dcdd95 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39183672 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a9a055b snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b1fe17b snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42628dc5 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x432c6734 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x438669e6 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43ede957 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x462ecc4e snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x470bcf9a snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48dcda66 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a5e7022 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d911031 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5392f03a snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a824a9a snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6063a57e snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61c754d1 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64e9df6d snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x681474c1 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69da8af2 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ff3bd3e snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71aba21e snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73fb56b8 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x789c0105 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7af9403a snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e5a6ff1 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84909320 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88a04f5b snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c0d6d99 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ca569b9 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8dcd54aa snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ff094e8 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91c819da snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9aa85449 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ac9e5d8 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b477ff1 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d7b03ff snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2986fa1 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafba9b6e snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb21ed5ff snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbae58dde snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbde71b16 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6910536 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc73a5486 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc73f3c55 snd_soc_put_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 0xc9e43c12 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc00e37b snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcce28777 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcea9c868 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3b92e43 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd44670c8 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd484877f snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9189867 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb8cc595 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe14d1dab snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5cda9da snd_soc_dapm_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 0xf27021a9 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf36d93f1 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6757e0a snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfaa053ee snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfab95642 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc1bef0e snd_soc_get_value_enum_double +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 0x001bfcc7 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x004ebb37 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x0058d6d4 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0071110e tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys +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 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 0x01a48552 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01a6c77e wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x01b15aa8 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x01df4913 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x022cf116 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x023f07d1 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x0249423d ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x02acc081 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x02fb829c scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x030ccfe1 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x03192447 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0367855c ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0368e58d crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x0415accc pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x045d43c9 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x04bf26af ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0545e3fc remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x05476f30 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0582f0cc debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x05b28922 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x06313f3e input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x063bf2ca ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x068c3379 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x06ca0097 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x06d7265d class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x071a3501 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x074991cc pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x07597c79 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x07622ef2 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x077de8ed sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b4943f dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x08296d70 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x0892b5f3 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x0899d150 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x08ca526b map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x08d7e5f2 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0940d6e2 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x09548b78 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x09572b5c xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x095e119f ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x0983d896 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x09869d5d tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x09dae647 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x09dde265 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x0a18c169 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x0a1d8336 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x0a6f2561 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0af17f3b wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b18ba89 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b2b7950 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x0b2ce75c sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x0b4cd1d0 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x0b9bdd5b dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0bd6208b ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c7ebcdb anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c8c1045 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd10c0b dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x0cdf621c fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x0ce66286 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x0d068737 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0d1f1171 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x0d20b5b2 md_run +EXPORT_SYMBOL_GPL vmlinux 0x0d2295c0 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x0d3bb6fb sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x0d4561ef inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x0d49c718 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d8ade78 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x0dab761b virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0x0dc52950 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x0dd731ee fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0de6fe5d xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x0deca529 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x0e0ea08e ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e32661b crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x0e54aae3 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0e7808dc usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x0e8301c8 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x0ea6b2fd disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ec8e384 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x0ed5648c lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f033f34 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x0f4fdb3c pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x0f5d5028 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fb1e126 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x0fc011ac crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101d9cd1 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x1047418e sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10c6474f blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x10cf77f9 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x10eb65d2 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x10f89e43 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x11282128 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x1163a698 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11933748 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11ad409c fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x11c4f238 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x11db93e9 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x11dc8859 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x120444e6 plugger_remove_plug +EXPORT_SYMBOL_GPL vmlinux 0x120a9cc9 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12dd638b ref_module +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13a4e8e4 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13c7306b sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x140738ab PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x140c3e61 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x142a3f96 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x1456d1bc tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x14750e7d get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x1492ed1f cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x14937f5e ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x14d1bebd sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x14d44015 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x14db9f39 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x14e82436 xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x14e959ab driver_find +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x152cbc7b pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +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 0x161050ce devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x163f5ad4 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x164dfd7e rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x16765ad9 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x167eb8b4 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x16a319a7 tcp_unregister_congestion_control +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 0x16f77e3f hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17442a97 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1797ec38 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x179e9892 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x17a66cfc crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x1804a5d2 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x1865d9d2 user_match +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x189c971c crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1916ce9a tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x191de18b blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1993c415 swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b63858 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x1a222f7a crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a9bdb84 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1aa39877 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x1ab5de27 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x1abaddca usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x1aed254c usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x1b0ce0d0 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1b1ac52a i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b47ce25 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x1b59bb2e debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x1b828031 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bf0375f dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x1bf25609 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1c1f0e2c blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x1c42bb4f device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x1c615303 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cac75c8 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x1caea705 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1cb00391 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x1cbe6594 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x1cc2a468 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x1cc5d920 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x1d01eba5 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x1d1c17ec inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1d1e348f ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x1d27a945 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1d681ab8 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d7922e9 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1da46fef proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1df3b9bb hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x1dffcd9b inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x1e2048ba inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e46080f unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x1e4a018b scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x1e5e3765 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e8cc5cc xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x1e97d36a skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ef9ff6b __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x1f22fe49 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x1f2fe578 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x1f34aaae aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1f3e8e83 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x1f496714 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x1f772666 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1faab19a css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1fb8002c mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fda6e7f disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0x20111310 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic +EXPORT_SYMBOL_GPL vmlinux 0x20311147 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x203572e9 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x205ebeda isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x20840dcd cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x20fd8de2 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x210f0825 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x2126791c hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2129c6d7 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x212c63ff inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x214e74c5 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2150c937 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x2185da76 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x218dd616 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x21916fe7 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x21a17875 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x21a6ffec fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x21bbed16 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x21d13ffd device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x220f7a70 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x22234a41 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22f294b0 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x231d7af4 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x234c1b91 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x235a19f7 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23835526 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x238643b2 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23d65dc3 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x23d95ba0 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x240580a9 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x242d7ae4 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x246ffe79 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x248e7e96 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x24ad2525 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x25831d72 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x259c01ed user_read +EXPORT_SYMBOL_GPL vmlinux 0x259e0653 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x25abffc8 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x25ad15ea use_mm +EXPORT_SYMBOL_GPL vmlinux 0x25cf0661 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x25d9009b spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x25f44e11 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x262f8587 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x265bd6ec dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x267712ed blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x26784a48 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x26bce706 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26efedd9 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +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 0x27b36e98 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x27c50388 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x281f53a8 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28da7e70 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28ecb2d6 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x28fccd9c blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x28fcefed usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x29567d89 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x29771ef9 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a18dd7b bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2a2a0327 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x2a358e78 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x2a3bad98 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a8d3d67 system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2acb1450 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x2b12b5f6 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x2b3fa489 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x2b42ef6b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2ba530bb uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2bedf1b2 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c22489b led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x2c4527c5 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0410 xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2cb4c4cd pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x2cb64e78 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d36dc82 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2d506b1a __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d5e54bf transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x2d7c747e ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db69cb4 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x2dc770d3 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x2dca6d1b hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x2dcbaf5e mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x2dd4e469 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x2de5f70d fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x2e415570 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e86653d tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x2ea3bdb7 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2eeb1a74 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2f03a537 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x2f0a4eea hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x2f131e7e gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x2f139119 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2f234f71 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f5f3381 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f8039fd alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x301b3c2a fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x302fac40 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3039109e inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x307f8e25 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x308cad33 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30de1255 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31ea272a tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x3220808b pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x323b2a69 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x323f288e acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0x325dd24a crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x32898b1c sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3298ef01 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x32b6b809 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32d99c5a rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x3375a93c ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x339714e7 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33d1a35a unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x3405c415 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34527342 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x34581f9c led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x3462a1c5 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x3481d524 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x348710e1 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x34b9d1ca ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x34db26cd fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x350871cf regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x35262713 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x35438cd0 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x355ef68b ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x356cf5a4 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x357bd2e1 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x3599d80f srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e803e5 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x35eebc72 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x360a181e find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3626343f init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36391167 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x363aac15 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36878507 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x368b30fa swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x369cc3d4 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x36f9ddad bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x36fe0b79 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x371093b0 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x371477ed power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x373a254a usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x37413d1a register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x375ae878 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x376a3908 __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x3771f15b pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x3773cf94 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x378d743e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x37909fdf sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3790ce13 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x37a42993 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x37a774e9 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x37adcbac regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x37f02b5c crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x37f24b8f ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x3810a154 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x381371c3 xen_swiotlb_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x38515982 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x38520d0f adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x389d45bd sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x38a70f1a shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38b7c0e2 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38ef8eb0 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x3943d39f platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x394dc12d led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x3950148c crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x395385e4 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x3982dde3 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39f86561 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a696168 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x3ab262e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x3ab3a4e4 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x3b1c413e class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3b2d702f bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x3b5484ba platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3babd844 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x3bcec2cb tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3bf037f8 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x3c0493bb __module_address +EXPORT_SYMBOL_GPL vmlinux 0x3c298730 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x3c8b9dbc usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cb36c48 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x3cc2bcd4 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3cca2a88 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d0b0351 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3d18044a ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d58b0c1 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d9e37d5 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x3dbffe68 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3df4e81a __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x3e2f0557 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x3e31d410 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x3e3a9940 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3ec7bee2 usb_control_msg +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 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f698116 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x3f6bf9cb sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f8a6383 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x3fc07a6d adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x3fd5b15e setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x3ff57a2f generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x4004db20 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x406646ab ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x407d6773 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x408524eb spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x41239d2d tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x41635c17 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x4172047d ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x42320cd3 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x4233155f platform_bus_type +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 0x42c989ff iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43627ecd bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4362b1fd usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x436c5a77 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x43a9846f __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4433f79f wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x443e3950 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4490b556 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x449c1e38 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x44a58fc5 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x44df6905 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x44ede4bc eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x450fed82 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x4526c54c acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x45288d10 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x45710879 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4578df19 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45abd48d sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x45b0ebba usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x45b0f6fc spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x45b1935f usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d9e60f pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x4624b64c ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x4630a041 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x46453688 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x465b9bee crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x4661bc38 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46af5955 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x46d5817a power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x46de7afb con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x46e7dc0f preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46fdad02 unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x479271c5 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x47c1e565 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x47c7efd0 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x47cfda7c dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x4812b97d regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x482412c1 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x482b79ef device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48ae486f ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x48d2954e spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x48edcac3 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48f33376 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x4914a3d4 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x493858dc crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x4939c3aa scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x493bc4f0 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x49706190 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49ca4458 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x49cd35a2 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x49d26812 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x49d75546 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x4a321795 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x4a3dbe9b pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4a3fd066 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x4a3fdff5 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x4a8cf9bb skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x4af533c9 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x4b19b128 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x4b1d630b debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x4b3016bf xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x4b45b700 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x4b6199d3 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x4b727724 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4b867dcb crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4bab6173 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x4bc5dd74 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x4bdd9955 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x4c08948f platform_device_register_resndata +EXPORT_SYMBOL_GPL vmlinux 0x4c0f7ff3 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4c63284c root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4c6da5b0 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c8282c2 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x4cb46e91 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x4cf4a318 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d296e1f gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x4d3db37c ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x4d8c331b debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x4d91addf blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x4da26bbc usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x4db58bbb usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x4dee667a blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x4df4c537 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x4df90948 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x4e15bf70 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x4e2a721a regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4e48421d sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x4e62a6df spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4e920ec5 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x4ea8e1b5 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f7459b2 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4fa4edc2 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fcfdd5c sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x501b341b ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x50391c55 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x505d0077 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50bb209f crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x50c5d3c1 stmpe_reg_write +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 0x511e46bd __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x51341dd9 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x5179c0e2 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51d67745 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x51dc68eb scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x51ea6936 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x51f88365 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x5240f2f9 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x524f1f5e tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x52527222 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x52686b23 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x5269c1e3 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x5273f60e shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x52818e9a crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x529bc382 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x52b20298 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x538c41eb xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5399e06d regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x539e4024 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x53b4206d regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5400211d sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x5412b71a vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5439703b usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5471f316 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x547d4e38 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x547eaa5a kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x5481f728 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x548aee28 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54fe9eb0 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x55043121 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x552e1bf1 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x5538f277 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5544b8c9 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x5576afbc kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x557e4b0c inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x55f77c00 vfs_cancel_lock +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 0x5659d21c cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56667fc3 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56b927c0 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x56c655d8 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e8ca6d free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x573d29a0 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x57902bad rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x579b5fad swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a7413b devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x57a80527 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x57d39345 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x57dced97 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x57defa55 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x5811c131 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x58393500 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x584f1a62 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x5878d2a4 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x587c361b pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x589e0dd3 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x58b4f02f xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x58c16189 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x591c9db2 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x593c97e5 unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x5973396a ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x597f61ff disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x59b3abb0 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x59e7807e ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x59fd0d65 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x5a082ca0 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x5a0d2295 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a31c177 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x5a324ced platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x5a360b13 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x5a590ded crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x5a5b121e __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a83761c skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x5a9d108f md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x5acf707b fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5af1d76c usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x5af66f4a class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5afd29de cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5b9876de crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x5bb2c8ac pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x5bb46ea2 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x5bb689f4 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bc9d23d md_stop +EXPORT_SYMBOL_GPL vmlinux 0x5bdf5a6f ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x5be48f4c sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x5be920a2 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x5bf09e43 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c1365e7 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x5c2ffe01 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d307cc0 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d50333b kick_process +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5da43807 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5df03c9a ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x5e00f959 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5e296f63 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x5e7b4101 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x5e9d51de ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x5ebdb695 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x5efc4118 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5f0d1f40 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x5f11ea46 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x5f165ef6 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x5f1be283 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f50f938 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x5f880b34 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x5faf4d9f spi_async +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5ff7d2f5 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x603a062a pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x603c2ea8 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x608219fa register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x608b390e udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ac2555 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x60b3a89f bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x6139b3f9 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x61c423ca user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x61f36da0 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x621ea269 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x62445819 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x62772f01 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62b5adc3 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x62ce200c wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x62fdf2ac pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x630a34ac ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63786b20 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x63af5f19 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x644000bb __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x6456fea5 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x64597e79 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x647488f2 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x6487d5f6 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x649d425e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6559fb9d sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x6570d07b dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x6574b7d1 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x657b370f __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x657e237d rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x658a7b43 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x659ee051 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x65aba661 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x65b09788 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65bee2fd cgroup_add_file +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 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6690e62f mmput +EXPORT_SYMBOL_GPL vmlinux 0x66a36b2d spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x66a47ce3 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66eba17e xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x673305b6 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x674f9837 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x675539cd n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x6763f87e init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67beda4c rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67cb253a crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x67f1f0c7 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x6823c9f1 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x688283f5 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6892b719 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x6899ae61 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x693b0725 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x69712684 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x697af029 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69d0437c xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x69e72a9a blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69ef59f4 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x69f9ed58 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x6a33bd95 input_class +EXPORT_SYMBOL_GPL vmlinux 0x6a39547a __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a9f92d1 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6acd96d8 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x6b01db5a fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b10e585 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6bc9db9c ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x6bf956df __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cc00024 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x6cc32d2c blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x6d19690d usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d4f14ec crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x6d788205 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x6d85f9fb locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x6deea623 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x6e02cd1f usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x6e119a85 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x6e1d1f87 spi_new_device +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 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f752245 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0x6f8f810a task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6fec1eb3 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x6fecb404 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70468453 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x704b34d2 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x704cdf99 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x704f9599 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709e845c tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x70e38d85 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x70eff26c debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x712dbd27 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x71395d8f ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x716997c6 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x7184725a hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x724fc27d device_del +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 0x728acff0 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x7297b9fb __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x72aa254d i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x72fdc774 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x733139da usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x734f6f28 xen_swiotlb_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x73647fb5 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x73697a40 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x738331fd device_register +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73bfb433 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x73cf3f17 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x73d32dec i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x73da801c nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x741918db sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x741cb58a da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x742adc71 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743e7971 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x745d9786 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x746968d9 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74b49cdd __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7573969a ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x759055cc blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75d6c8f1 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x75e6aaeb sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75ececa1 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7625bc7b spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x763a3d34 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x76ec93ad flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x76f23b39 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7743936e usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x77711456 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x77862d6f crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77c6ddd6 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77fd36c4 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7838ccc1 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7875029d pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x7888ee94 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x788d6307 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x78a93446 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x78bd827b usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x790060f2 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7949f134 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x79acac97 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x79b7eab7 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x79c6674b device_add +EXPORT_SYMBOL_GPL vmlinux 0x79e4a192 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x7a1bdb29 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x7a340254 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7a810b7f ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7af4aeb3 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x7b0cb262 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b47d7e9 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x7b64775a i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x7b7a18b5 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x7b7c227d relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x7ba45dd2 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x7ba6cd54 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7c0768d5 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x7c230dfe mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x7c45f048 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7cad034d pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x7cbc4eb1 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x7cd00e6a ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7d0edcbc dm_put +EXPORT_SYMBOL_GPL vmlinux 0x7d10e850 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x7d2524ad __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7d32c2f9 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7da74bc8 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7db43c3a usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dd79251 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x7e09ef69 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e1d4826 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e502b18 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e8745a0 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7ea610d9 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x7ebf35a6 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ec59276 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x7efc0c7e disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x7f0fc7af pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7f937b2a crypto_alloc_aead +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 0x801bc91b nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x802e3466 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80c38a7f plugger_init +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x814e8e11 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x81740199 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x817fcc7c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x81afeef6 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x82064d82 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8250fef2 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82e10046 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x82eb32ff debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x8303bb18 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x831f52f9 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x83284f48 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8349592a input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x836bef0a ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x837f90c0 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x838cf25f led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x83953828 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x83b62d66 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x84286c6d xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x846ab437 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x84c7fe8e devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x8510a8ac fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x851c474b register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x852da5e6 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x856429fb dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d2f65b ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86a87ef0 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x86ae0851 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x86f012b5 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x8707fadf rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x875bf1dc rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x876a3b60 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87a74081 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x881deaf1 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x882b0fbc wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x8831f8b1 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0x883e80b8 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x883e8f4d stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x884f8bed kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x8850cccb cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88ade8ba ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x88c677cf ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x88d5efcb sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88effb35 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x8901f7c7 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89397ca5 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x898872a4 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x89d77dc1 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x89daaede ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x89e38b76 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x89fb052b class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7def1f cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ae664f5 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8aeacbb4 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x8afca130 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b6aba36 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c1ebcd0 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c7a9b58 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8ccb1ae3 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cffd024 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x8d1fb6ea ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8d29cc0f blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8d4e2952 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x8d79c01a usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x8d9a8111 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x8d9ad7a6 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x8da47a7e sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x8dbbc2b4 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x8dd63abe inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x8e2c6b9c scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x8e3b43ea dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0x8e776201 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x8ea0fb50 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x8ec63d76 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x8ed13910 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x8ed8c493 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x8ed9df59 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x8edf5ceb device_move +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ee4423b sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8ef0ce80 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f74fad1 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x8f81b269 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8f86e2a0 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fc13557 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x8fdb7dc6 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8fe892d7 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x8ffc5625 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x90656f2d ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x906fdd23 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x90927d46 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90c5513e crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x90caf85c virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x90d5404d pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x90e09da2 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x911c67aa xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x912f8c1e ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x9145141d xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x919f882c wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x91d49c3a sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x91ebd3a8 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x91fb9086 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x925fc32b blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x927732af __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92bf8098 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92eece8b input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x92f6b78c xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x939bb92f shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x93a2b3c5 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93b54227 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x93b7b3ea noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x93c55870 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93f8f500 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x9439cb40 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94b1afdc devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x951d14e9 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x951e1577 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x952031ee usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x953dd3b1 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955caa2f regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9562b21b driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95b1505c __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x95bc0757 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x95c6829b tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x95da94ca perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x95f07763 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9644b60b device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x96c63a63 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96feeeac platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9724466a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x9734ed71 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x97360d64 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x97765c69 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x97858d67 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x97d08135 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x981f1191 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x983f3f63 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x9864c351 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x9869f369 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x987ba6fe ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x988d4e7b xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x98f1d492 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x98fa0a39 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x98fced8d platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99250877 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x995af8b6 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x99c1bfc8 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x99e34c09 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x99f0fc39 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x99f267b5 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a3a6c6c event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x9a755f40 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x9a889602 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x9abee10b device_create +EXPORT_SYMBOL_GPL vmlinux 0x9ac82f49 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x9ac89b7c cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x9b299fbb print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x9b30a364 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x9b4d4947 pxa_ssp_request +EXPORT_SYMBOL_GPL vmlinux 0x9b989552 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bbf1b93 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x9bcf5dde xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x9bd8ed32 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x9bec3511 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x9c1332df netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c3d1c42 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x9c8d43ce xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cc37ab7 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x9cd67462 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d16b3e5 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x9d235e29 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d50d835 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9dd4a2fa ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x9e19c177 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x9e20aca7 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x9e356858 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x9e4b7f58 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x9e5fc0d0 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x9e669b72 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x9e963c94 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x9eac0978 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9f08ea99 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x9f197315 plugger_set_plug +EXPORT_SYMBOL_GPL vmlinux 0x9f2b1792 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f41488a pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x9f417153 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9f930216 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x9fad2b0a __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9faf1b80 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x9fc96973 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9feeb7fb relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa036d51f __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa06b779e usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xa06c4bac pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa084fd5a sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xa0952ab5 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa0bcc48f pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa0dc0a9e xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0xa13229b6 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xa1562b6d device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xa158e9b2 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa1a75414 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xa1a9793b bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xa212bc6c usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa23b62d9 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xa28dbee0 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xa2b4cac2 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2e914f1 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3dbe0bb crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa479d515 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4f3e78e attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xa502391d unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xa52153bc sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xa52226fd usb_string +EXPORT_SYMBOL_GPL vmlinux 0xa575c33a ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xa5c226ce cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xa5e818c8 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xa5eb3d08 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa60c0d40 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa63aef43 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xa6d6a2be agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xa6e25fd6 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa749f9da regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa777e181 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xa78b9250 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xa823632f i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xa82ee680 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa82efadb __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xa84d515e dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8569b2c dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8eed773 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa915e2c2 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xa925d428 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa93415ae blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0xa95b6684 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9dd9eab get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xa9f16210 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa549c41 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xaa59362a tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xaac4e672 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0xaae5fdb7 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xaaf28667 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab270c23 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xab3110f6 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6cbb4d flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xaba5c948 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xabd31b91 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabf98c7e fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xac346468 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xac36670d crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xac3f0f3b sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xac6c00bd dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xac7263bb wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xac94b813 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacb89bf3 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad04d5ad xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xad090c64 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad0ad7de regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadcb4148 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xadf0d134 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xadffaac1 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae24b41f scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xae2d196b sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xae5dbfb1 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xae5eea4d swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae7f186e sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xaea0cc21 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xaed433ac pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xaeddfc95 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xaf02228d sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xaf143c68 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xaf31979e ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf3fb1b7 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xafb572bc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xafb8a644 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xafb92bff pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xb0024b8c devres_get +EXPORT_SYMBOL_GPL vmlinux 0xb025e015 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb0328f97 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xb0597b36 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xb0623ebe ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xb07304a5 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb082aa6e pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xb083cbd0 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xb0d013a0 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb0f16e57 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb115f2da acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xb129db55 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xb16378cd pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18506b9 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1c477b3 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xb1fb894f udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb27b26a2 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xb2ba7f67 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb342bb3b ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xb357c88c ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xb35e0d9b cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb414515f pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xb414e175 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xb42df29b ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xb457d92c blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb46ab94e rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xb475a4ad transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb4a848ff fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xb4d053b8 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e76ef9 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb4ea2214 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb535bfba raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb538815a inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb54e7130 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xb5551c34 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xb5858c36 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5a9a561 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60c2f04 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb62d5bba class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb65554a6 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb6a4a2c8 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xb6a8a821 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb6ec9a3b fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xb6ef224e tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb73a1950 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb79b2f34 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f08106 get_device +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb7fd476d scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb82e8ef5 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xb85c334f inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb8673f89 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xb869025e crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb872e69c wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb88b9398 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0xb89a3c67 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xb8a2d3c6 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9209f1c ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xb94f8cc2 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xb96950b6 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xb9781cf0 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xb99ade8a __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9ab74ff mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb9d69507 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb9d76581 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba10967e pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xba167100 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xba9952f5 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xbaa3f64d cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbad26f3b sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xbad600e9 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaf58611 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xbaf6c7f4 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1ce5eb xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0xbb280775 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xbb3e0d10 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbba0d34d dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xbbacbc3f spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbd3ba09 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbbfe662e usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xbc121c92 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xbc2cfbc4 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xbc3fa493 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xbc7a1d19 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0xbc949bf0 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xbc984e84 find_module +EXPORT_SYMBOL_GPL vmlinux 0xbca31dcd sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbcbb4999 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xbcd1806d file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xbd01347a put_device +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd5dcdf3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xbd9aa045 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbdc8407f fib_rules_register +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 0xbddba590 css_depth +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3da3d0 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xbe5843c8 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xbe650037 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbed17d4f acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xbed91f9d vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xbefd1b2d rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xbf053a49 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbf0d955c pxa_ssp_free +EXPORT_SYMBOL_GPL vmlinux 0xbf162785 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf32ba9a kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xbf3ada30 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xbfa1c946 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xbfb7fe52 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbfe1b319 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xbfee8ab2 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xbffa6112 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xc0337c0f xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xc03c3dcc kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc058077e kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xc085241a filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xc0bae92f led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c18583 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xc0e9f750 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xc0f028d0 sdio_writesb +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 0xc14dd2da css_id +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc16e8379 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1a17cf7 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc1a59839 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc23bab04 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xc251d602 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xc259d42e regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xc25ee868 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc26fef41 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2875391 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xc2a1aef8 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc3829708 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3aadd41 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc3d27ccc firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc3d9d872 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xc419903e crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42c9e0b da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc4522d91 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xc452b305 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xc4557fb4 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a80cac class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc4bacf6c pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xc4bd8392 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xc4c357cc ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc4c8f7a8 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xc4f53cf4 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc5375bbc inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc56225ab mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xc5638a32 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xc5950ac5 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xc59f556e led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xc5ab254d each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc5bc715d destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0xc5fcbd8d usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc62a3fea shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc62d54c6 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc6a2fd80 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xc6e86543 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc72186d3 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xc764131a blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xc7e04263 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xc7f748e6 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xc81b3593 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xc855d848 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc8736b03 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc899df0c seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xc8ab84c6 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xc8ad22b0 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xc8b55e6e crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8ddcae3 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xc8de10cb skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc90ccc8c unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xc90e2ce8 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9159d9f cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xc9262270 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc958dcaf dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xc95fb72d xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fccf18 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xca1515ed vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0xca22ef0b ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xca817f86 edac_class +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca89e70f raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xca983b6e regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcafe4f9f sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xcb740eac skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xcb9e81a7 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xcbe46865 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbffb671 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc25e3d8 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xcc2c417c system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xcc3c88f9 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xcc402455 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xcc562f3f stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc74a138 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xcc95f942 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xccbca469 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd1b2060 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcd212a59 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcd277446 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xcd37bbe6 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xcd3ca534 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xcdc27e05 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcdc291ca class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce4a4519 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xce5c96a2 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xcebabd34 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xcefb08c5 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0xceffb475 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xcf04c128 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfc6774f generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcff366d5 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd024e104 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd054b33f dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xd07087ea crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xd086e8ab srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0xd0bb9a7a sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c32645 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xd0d22616 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd0f407ac rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd1116eca anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd1388656 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xd13abd8e get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1a8b683 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd1b04dd2 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c19e46 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xd1cc12ec fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xd1cff011 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xd20e09a1 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd22ad4ba regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd245bc03 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2972a3b dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xd2a51521 is_hwpoison_address +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd3188fce platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xd3208f3a fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd3224880 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xd3240cf8 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd366cc36 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xd36b6e4d kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd440b983 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xd4693ac6 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xd46c6cdd platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd47177a8 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xd4a4bd5a inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xd4b2f7f6 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xd4ee2410 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0xd546ed87 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5b43fd0 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xd5d1ab16 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xd5d2d771 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xd5ef1c15 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xd5ef1ed7 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd619b1a1 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xd63cd6f3 __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0xd6902a17 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xd69d0437 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xd6b52c66 alloc_page_buffers +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 0xd71ef7a7 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd7555a56 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd786fa35 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xd78ae416 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7d31f64 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xd7d71c22 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7dfb281 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xd81437b0 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd8229484 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xd8250a5c iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd874b1da edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0xd881b95d dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd8f887ae __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd95063eb pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xd982f091 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xd9cec7a3 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd9e0d82d pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda1e244a tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xda2a4937 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xda3b5783 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xda3e01b1 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdaffc62d ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdbc29332 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdbe41d3b page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xdbe818fc show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc63d4d9 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdca45a20 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xdcbb2748 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdcfe334b cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xdd0bf1e8 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xdd0d719c power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xdd0e0418 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xdd61bb79 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xdd643c77 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xdd75731f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xdda7a795 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xde08d5cd xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xde3e7a5d rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde58a071 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xde5aea95 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xde8ce5f9 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xdeba57f5 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xdefcdbe3 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xdf267be9 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xe0065ec3 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe0236045 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xe02836c6 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xe05388ba drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xe069c38f usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe09f2c06 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xe0c3bbb3 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0efdf87 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe1322e71 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xe1445478 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xe1568d9c erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0xe19c2301 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xe1ad61bd apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xe1eb1cef ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xe20ee5e6 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xe23f73fc ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0xe244bc1a ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xe27761d7 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xe281e6f4 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2b1d027 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xe2caa429 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0xe2e9aa56 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3d004c3 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4e364ce xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe4efa138 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xe505352f xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xe5224a0f locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xe55d0bce mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xe5a9c1a6 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xe5cb69f1 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe61c6950 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xe62d577a power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6564673 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xe65a66e5 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe67bda89 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xe68220ba __class_register +EXPORT_SYMBOL_GPL vmlinux 0xe6846104 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xe6afba53 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe71aa6dc dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe76a8a72 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xe781516f register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xe79f6c30 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7c5e766 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xe7f0ce45 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xe7fba4cd isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe81aed21 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe82be077 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe862e913 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xe8c96485 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe955da61 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9975384 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xe9a8199d debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe9c322d1 fuse_file_poll +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 0xea37f5e0 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea614194 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb6c4ce1 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xec0458f0 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xec0c823e tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xec1ac41c rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec35c68b register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xec3b7228 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xec4cb633 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xec50db1e regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xec647178 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xec67c395 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xec8d03f7 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xeca7ff84 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xecc0f7c8 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xecc2b65c fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xecc5950f zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xed11fa05 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xed1a3d50 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xed4e1335 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xed56f6f1 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xeda02c88 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xedae1e3a usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedddcfe2 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xede40ddb usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xedf158d4 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee3050ee usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xee329603 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xee606468 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xee66bd15 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0xee68a33f rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xee860b6c xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xeeb6a068 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef776ac8 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xefb24127 xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0xefc12c28 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf018bdc0 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xf04f973c class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xf067d215 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf0d57750 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xf0d98346 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xf0fadb46 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xf1220ac1 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf17be006 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf18d48ac xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0xf19395b2 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xf1af84e9 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1dd8c58 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf283be6d sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xf2d3edbe __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3b941f6 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xf3d2e2d7 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xf3de5e37 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf3e92104 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf3efd02a queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xf3ff965b ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xf40b92b1 ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xf46da86e page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a6c472 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4eea1f0 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xf4f643ac ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf5425078 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5ab6d71 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf5affac7 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xf5e1555b sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xf5fbff57 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xf62bf7a9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6b90474 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e53a41 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ee488b sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf7550ca3 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xf76b07a7 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xf7774c2b ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xf777f087 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7b30c35 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xf7c47bb6 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xf7cf1c75 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0xf8278c7d bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf872c59b hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf878e6cc dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8896882 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xf88c18ad anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xf88eb952 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf917b678 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf9380aed dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xf958c029 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xf9610905 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf978bbb6 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf994ecaf dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9cbeb9c crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa7b6130 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa81de06 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xfaa8311e xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xfabaef7d adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfae5358c wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xfaed6bb9 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xfb0ed572 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb541d9e pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb71c776 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xfb74d85b sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xfb7688b9 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xfb7e5b95 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0xfba90e20 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xfbe59752 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfbeec218 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc259fe3 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfd43b7d5 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfdde5dcd __put_net +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdfc86b2 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xfe10de23 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xfe377604 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xfe3cf3b1 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0xfe5392c7 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0xfe673c9d usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xfe6b1205 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe752ad7 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeb40fd7 user_update +EXPORT_SYMBOL_GPL vmlinux 0xfec05f6a ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefedb68 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xff0bef80 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xff515793 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5c0464 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xff71fe40 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xff7a4f2a usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffd608ad print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xfffb35e5 perf_event_release_kernel --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/i386/generic-pae +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/i386/generic-pae @@ -0,0 +1,11795 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0xa405852f kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xe0a9ef06 kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x907665bd scx200_cb_base +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 0x68a4f635 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 0xeec81264 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x27fe8742 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 0x0b9f8c52 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x0eb66a9b pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x100ec686 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x1ad4cc01 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x6d04a6de pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x71a762c8 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x8c07e73a paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xa77e7ccd pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xc1954419 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xe6683971 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xf4b82125 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xf753fc76 pi_schedule_claimed +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x04fc6a3f ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x08bc3f4f ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1abe76d2 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x32a239f8 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x33b20f28 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x343f8f27 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3d50ed2c ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3f653126 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4bee51fb ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4e164d09 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x57309e81 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5ac1f6fe ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67ef4629 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x68e392e3 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x778c778f ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7c1557f7 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7f81b5c7 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9985f25c ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xaa648bc3 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb40f7a20 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcee9c9e9 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf1774721 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf199a943 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf7fd0cfa ipmi_request_settime +EXPORT_SYMBOL drivers/char/nsc_gpio 0x020b3756 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0x25f1a751 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0xde7bbfe4 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 0x76ec9b51 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xc3cf2e2e edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xd47abdea edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04609d93 fw_core_add_address_handler +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 0x17d52843 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c383b04 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x324ff7cd fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c0f5ca6 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x407fcd88 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x51a02fca fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5832aa9f fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6515bf80 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x66dcf753 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x68318251 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6a37df14 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x89ed0be8 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x91f5b83c fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9266f2bd fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9f3a0895 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb0d3c303 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd0b71dc8 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd38a617b fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe10659c6 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe907e762 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xee896e8b fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf700ae33 fw_bus_type +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03654112 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03fd71c5 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09d8f376 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a3c35bb drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c3274a2 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c596417 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12912411 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x182e7f5c drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19afaa18 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x205ffebc drm_property_destroy +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 0x231d5e72 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2410c1ba drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24920571 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x266ff9e1 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2718e296 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bf1ba86 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c893888 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f0aec57 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x304f2e85 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31911dc3 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32e44dff drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3561db91 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39f9a673 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bee2203 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb7aed0 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ff383f3 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40511610 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x422545dc drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42f22efc drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44086128 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45a0ba01 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x467c3a4e drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a20833f drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b87ec47 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d62eaba drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f124bf7 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f1f8a2e drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50484133 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x558a3de5 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56f448c2 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5712ee94 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59493ed3 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a8945aa drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ae4e3cb drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b69532e drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e337024 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ffb77c8 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60e66579 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x620685bf drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6608aa68 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66333f84 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x663fde27 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67032874 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6755ee2b drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b487a27 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d39db1c drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6deabdf6 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6dee62a5 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71a171a1 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71bb7317 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x723737c7 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75a0bb30 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77746a1a drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77c7df68 drm_cvt_mode +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 0x7e5110a3 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80cba680 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81c5a7b9 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81d2aff8 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82f38cb6 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x840248e9 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b9c9027 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c590adc drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8df0190e drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x900f8cb3 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9190f4a2 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c96469 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x940eeb46 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9504659c drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x950dc4ba drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97ead91f drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98d889f0 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99362d31 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99516e2e drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a4105e8 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b342d9b drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f55a435 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2d951b8 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4ef1286 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7300d4b drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9669747 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa19886a drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab51f087 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabec8e47 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1ce9717 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2fb30b3 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb39e4ef3 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb47efa8c drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb55fa99f drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb64dc47b drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbedc52eb drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5a5115f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5b520b3 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7e8a898 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca17bc75 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca392519 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce4aa502 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf2fbf7d drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd24826d6 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd30f116b drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd69927a1 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd76c2213 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbe810f9 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbfbeb65 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf1aed32 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfce9309 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0db677c drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe126c05a drm_crtc_init +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 0xe5190fcf drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6484dda drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9235b6a drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe950cd4b drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe995a2d8 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea4f7a11 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xece82124 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed411ddc drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0fd493b drm_mm_clean +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 0xf628b77d drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf69c32ca drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfac3c9af drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbff70ad drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe46cd7d drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff3b56fd drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff6d7e95 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x03fcb9f4 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08c390f1 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b58abcf drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10c6cd40 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x135ecc4a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15d5b2fb drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x19263da3 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1cf74747 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e3c0381 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x215810d9 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x255392fe drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2be9a7ca drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3a1f031d drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e438dd3 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x444a0f6f drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5b1368a3 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a05b45e drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77bb1291 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x837cde63 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x89239b81 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b7ff3ed drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa152b89a drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa4bd00dc drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb85bf133 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb9fbf2db drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc8e0925c drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcbea3f31 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd60ea6c4 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd86fb7e drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf47970a9 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0185e8e0 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x01bf2ff4 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x11221ee7 ttm_bo_validate +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 0x1362d5fb ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x185e3648 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1bcdeea7 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c260180 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25636c7a ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f1aeb94 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3188cb23 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x318eb491 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34084053 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3e663049 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3ed21879 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fe77ef1 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x41b356e2 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46eaf1f7 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47103734 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c01d00f ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50c4fccc ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53169902 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6139481f ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6e67ccdb ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x71fbe23b ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x73eae668 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7cd6ce0f ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81a476a7 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83c499b7 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86d6c682 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x878f4455 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8ad1b9c9 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8dfe8358 ttm_bo_evict_mm +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 0x9fc36e5c ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xafbb070e ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb2436542 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc017fb09 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc0d45451 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc165fb9f ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4443c27 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc0c4fac ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce751cf0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcebaf8f4 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4493454 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf0e94e41 ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf2dcf797 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf4cd1dc4 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa0eb151 ttm_mem_global_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x8280cbe3 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x82c0f9d0 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x1122c357 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x3218f841 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x2f5317b3 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x8e74e289 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x46f15f08 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x65314db5 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x07ea7c93 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1df3b3ab ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2b43d27e ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3053cde3 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3a304106 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x56894774 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x56b2e99e ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6f99ddb5 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8732bf43 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x89842866 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8d5adac5 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb70e8be4 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbad6d11f ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc47a6832 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdf941908 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xea93d831 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfaf4177c ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0278cb78 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0370dba7 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x041c624a ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0605e878 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08e16357 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a4b630f ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b5799dc ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0bc4019f ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c7683b5 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0de4ea24 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0fab480a ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12f8f9df ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1aa3ed56 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1aaca9af ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23cfa1f8 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27274a4a ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a9fec22 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c67b1fa ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2caff952 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33c57177 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x342e44a2 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e1d0583 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e76d3ab ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40a6db58 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45c9d685 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d7c4eae ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4df03506 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51a55538 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5546eb7d ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55d52e10 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6347ec77 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64b308ad ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a20f259 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7226f62e rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7727218d ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7dabe071 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83bd0fd6 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x868b8c21 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89400137 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e40b99e ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e928d3d ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94f46e31 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ada85f6 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa43016dd ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6ee1db3 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa95e948d ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad1102f6 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb28e81fd ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb742641a ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbc330ce9 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf7bdc1c ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc16449e8 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc428beaf ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc98a13d9 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd228991c ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd2b00f1f ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdeb14c5e ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe89c6da0 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf059a39f ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf09eee36 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1635c6a ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf382526d ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf66b84ea ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8e2ffe4 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfcd471c6 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff5faede ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffbca18f ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x088f8ed8 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x13fca767 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2396f400 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2700d0e0 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2effe01a ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x526f6be3 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5cdce1f2 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5d7db748 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 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x832a0f63 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9456b9b1 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd08f1517 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfe6d73eb ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x23d0bae4 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2fcbadce ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x394b605e ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x905dc776 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9af9bb2f ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa9636935 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xaf545bdd 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 0x4799c70e iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x67597084 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb0625116 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbfac44af iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcac73e0d iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd6dbeef9 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe06cc162 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf0d75dd2 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0c15ae5e rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x158c89c5 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x332fe6c5 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5253cfae rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5c8959fd rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67507863 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67635e0e rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6fdc55d1 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x758c184b rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fedce7b rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8b0c2273 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x968303bf rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9c90e93c rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaca25238 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xacb9bef3 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb3821895 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc3b49b60 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf23614f1 rdma_connect +EXPORT_SYMBOL drivers/input/gameport/gameport 0x02a66c2e gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x259989b7 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x46837bc0 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4c07f451 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5c661204 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x920c15b5 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa5cc37cb gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc0cbb8ce gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf4cbaaab gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x1cc41f88 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x58fd10ca input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6a533da2 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf13091e3 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x01669533 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x1d5cba7f ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x4ae8d787 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x8bcdcf42 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x4d1b913a cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x573b758b cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x72afa5ff cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xcbf0a48b cma3000_exit +EXPORT_SYMBOL drivers/input/sparse-keymap 0x508d2798 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x792fdcdd sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa1327620 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa90ca715 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb65cb1e7 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe7c8a291 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x62b8f061 ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x6c17a2f5 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xb481e92b ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xca1af08b ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x74a6c883 capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xa943b82e capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x02ce98fb capi_ctr_ready +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 0x2294e89a capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2afb5fff 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 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x58f057ef capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x879c0d9e attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8cd0b0c0 capi_ctr_resume_output +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 0xa71faaba capi20_put_message +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 0xcf176647 capi_ctr_suspend_output +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 0xf036d29b detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf0e7c451 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x129f2bef b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1fd9b89a avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x37ebb2a7 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x414a5d07 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x507b4834 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x522652d6 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x695cabf6 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6b1f3b7d avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x70f8bdc6 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x94a63c99 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xaeda6476 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbbb56790 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc7a47904 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd750cfa7 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf1603ecf b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x079c4525 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2cf48bd6 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x39c8fded b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5a53eb34 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7cf47d72 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x81230bd9 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x93142dda b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb832f4b9 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdb95f611 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 0xaa84526e proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x15b7f368 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1c18167c mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1ebb99d3 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xbb65d2c9 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xa921e955 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xe9cd7516 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 0x7a7aa9d0 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2c176773 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x58954da4 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa8c79bfa isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa9c87185 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xb0ed22f4 isac_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x02af355d isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7a8a3492 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa538d5eb 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 0x0526f850 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x22faab5c recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b095a12 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3610e365 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x365708f1 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3a027d98 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ac8f672 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x45a91908 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5344683d recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58315319 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ce83c45 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5fb5e30f mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x799e85b8 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x874258d1 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb13248f7 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcbd69fdb mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcd82de2d get_next_bframe +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 0xd870b917 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdc7dde9a recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8e1ba7d mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xedcc1e4e create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xedcfe0d2 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/raid456 0x5b38581b raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x31df67be max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xbc826ad0 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x0ddbb6a5 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xb903f15d mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x27e72c17 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xa4f230e9 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x487672f4 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xe4a868cd tda18218_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 0x44095a73 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xf7f2f3dd xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0194fc46 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0fb2302b flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x167e1c61 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x25bf4c85 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x31f6a6f0 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x37cf17f8 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x44468d88 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4a7d0ca3 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4b7b8f91 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4fa8ef6d flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x62942689 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x632e1dd9 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x64384aa0 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8a784e84 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9466fcd1 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9909ed1a flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa140b549 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa20eee23 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xca56074d flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xda12e876 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x3a9be99c bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x475dd386 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xa0698d6c bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd101b8e0 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x151f5126 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x18bfe2f4 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1d314b79 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x204b2bbb write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x3f4aec69 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x979ada33 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa6dfecf0 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbe1c1f5b dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbf3bd2b1 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xc251beb4 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00a13735 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x035f80d4 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0d1b2df1 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x12c80475 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de5dde2 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x262b9c81 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2a66ca2e dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c202fc3 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2da2ef12 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x305edfc2 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4015aaaa dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x535c9781 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x688c2da8 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6a5185e7 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6f355149 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x75aef3ba dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80d6d0ba 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 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 0x89c2ea16 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x96aa762c dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9a762a03 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9e889bd9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa33c9a4e dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb31a0054 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2a7596d 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 0xd6ee7f28 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdcdc0e7e dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe4c5d919 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf18f35cb dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf47e5cbc dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf764cbf8 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc3b495c dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0378e38c usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x36e84184 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x716a4d2d dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7d403759 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbc87f158 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe008aded dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xedbcad00 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x60c5b335 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0da25b85 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2065b580 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2143f905 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2b0a7998 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x534b4f95 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xafd8dfa2 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb0f91e71 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xba2409f7 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbe2e4238 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4163fc5 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xeb63f232 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x796edb7c af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x656ff716 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xedec1ed6 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x93de061f bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xd3447ea5 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xbfd61424 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x70a16bfa cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x693aa0aa cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xb9e198b5 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x0909ef0f cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x422894b3 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x81b30d88 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x351a6cc8 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x582872a5 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x5e89e3cb dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xb2b1ed25 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xdb78c52d dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x23e5c810 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x2f104943 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x43921182 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x63397770 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6ffaf1dd dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8bfb70e8 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xde38568a dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xdeb698ad dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x5ea354a2 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x04418da6 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4bc35e52 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6d81ff53 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6fe2cc10 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa0a8c9c0 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcac6d86b dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x00638a2c dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x39909f0e dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xd13b3c70 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xda3a51a0 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x414c5add dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7811c3cd dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x819b3f06 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8883dabb dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x91589d66 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x94b4bd1c dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xde11ddfb dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf22edd16 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x27a8e7e5 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x429f3628 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x57949484 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x863af563 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa20e2696 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb7c3b10a dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd0ef87b5 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd9a25630 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf323c998 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf8f5668e dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xfcb0b90e dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x41ff243b dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x6820651c dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x708c6f59 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xa81d2c2f dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x519a5f2a ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xb215eb66 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x00f9e9e3 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xc8f9e996 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x7bf97cef isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x31159b88 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x5d172870 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x68b0e4e6 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x4970b3b1 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xe1739172 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x7423f979 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xb7750461 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xd9281e52 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x242736f6 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0xd69b0cbe mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xa5c8859c mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xa3042713 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x6791d009 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x7df9fa72 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xd116e48c or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x22c9225a or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xfcdeaf84 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xc860b32f s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x30ebdc8e s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xeec3545e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x394c231e s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x2b2e7f36 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x52f4764e sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x88983f79 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x0a7ced95 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x5f2852c4 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x146f0cc3 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xaa7c70df stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x11a6c251 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xf64890b5 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xd0ba2b6e stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x850e3b58 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xa4053a37 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xd098b5bf stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x4800a21e tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x9af623f6 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x310459c5 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x93a0eaa4 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x991947ba tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xadbed452 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xefd663c1 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x1926e83a tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x62598eda tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x2cf4b366 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xef1088c0 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xc4d4600a ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x15267114 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x1ebcfd4a zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x8eb65740 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x922cab9a zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x47c1e3be ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x9169547b ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xbaae55b1 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x24e8af57 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x67f47d8e lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x682f99c2 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x84ccfd8b lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xbb6fe61d lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd19458f0 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd867729c lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xed70a687 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/rc-core 0x402b7f4c ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x961ef443 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x4d2576f9 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x7979025f bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8054ab93 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/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 0xcbb08f58 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xe6fea9bc btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x16c36e55 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x84244880 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x975ea6e6 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xcf176352 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xf32364c0 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x02a80ef1 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x0e2d5ce1 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x126e0d54 cx2341x_handler_init +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 0xc184ec1e cx2341x_ctrl_get_menu +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 0xdce15221 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe1250879 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0xea2b6b99 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x2eab8d4f vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x552eeb3a vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x320a8052 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x432bed77 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa21d06d3 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb8f05111 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xde50e48d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xe66e66f0 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5095b7cd cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x63c9e661 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9e70ab62 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xab892430 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc568d686 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc6927b8d cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x06f74838 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0c77f455 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0d2a6ddc cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2018c069 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2cc9f8a8 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2f8a0991 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3993715d cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x39bf664c cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x40418817 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5557d473 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x57a814f2 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x67a68f9b cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7bb23dc4 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7ffd7c69 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8593f5c6 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9376c9bc cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x96b8a72f cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9a58bc87 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9c623122 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc6010451 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcbe6deaa cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfae16df0 cx88_newstation +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x7805400b em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x9a650344 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x21974ef1 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x685a8caf gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x854dd525 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc0c1a2e1 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xdb2054f2 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xea81983d gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xec99c699 gspca_resume +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x04325399 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x180b6a1e ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3133cb8d ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4f39c816 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x57a7a6ed ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x58b3cfb1 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6414b2ba ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x69d0d182 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa0b4c081 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb0872ca1 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xca21603d ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe97ddb82 ivtv_udma_setup +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 0x12d60298 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x302b7b14 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x437199bd saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x47107950 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5efcf144 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x65d4887f saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7c7737b9 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x907b619b saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbc318193 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdffc8d95 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xedfea931 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf1fcbbd7 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/soc_camera 0x78a30e1f soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0xca2db5d8 soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xcddd0236 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xdcf59f17 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x01e0177f tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xd17ed4f3 tveeprom_hauppauge_analog +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 0x1abb5fd2 v4l2_ctrl_check +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 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 0x5fe5dfb4 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x86dcdf03 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa4bf0ba4 v4l2_ctrl_query_menu +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-mem2mem 0x89075dcc v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xa4522090 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd2f9f127 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd757e84f v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x13e70cfc videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x452d2f65 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x564199ec videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x854e9efa videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x91e5ea1e videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9974782f videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0c3891e0 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x17a11376 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x2708c821 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x28298bb0 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x2b5bb299 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x31cbb6a5 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x35075db1 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3761aa2c v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x444ed702 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x4942aa5a v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4f8683c3 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x537bfd1b v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0x56c78fd0 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x578d0354 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x68f1080f v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x6a3f8f61 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x773d422c v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x7a0f2507 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7dbf9018 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0x7faea017 v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x809be5f7 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x8df6d0cb v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x9069ce87 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x949839e1 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x96de03d8 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x97b2e2c7 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x9ec1c18c v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xb1a8ce22 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0xb63501a8 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xc892a243 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xc8f33b98 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xd14cd690 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xd61168fd v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xdee6ffe2 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf0233fb7 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf6bf811d video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xf8b881a3 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xff872788 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x17ceab56 videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xb1d55055 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xb3ceb9a4 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd997a39a videocodec_register +EXPORT_SYMBOL drivers/memstick/core/memstick 0x22218e81 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa38e64b6 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb8131f40 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcabeaee6 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd0425cf2 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd491e940 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd731e326 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe13ddd44 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe4b9f03e memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xece647b0 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfb39dccb memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfc608300 memstick_suspend_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x028886b7 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x02e0d566 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0461f32a mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06a583db mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1d86ea67 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2d2a80a0 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x34c274ae mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3cf61450 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b0bfba2 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b11e2cb mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4ff1ddf5 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x51dd3dae mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x522cdd85 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5479de39 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7483c567 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x887d7aaa mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9982ca84 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9d54a82b mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9f0fc2b6 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaeaa30d0 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb04d1f07 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb75a5553 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb89cdabd mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc086128a mpt_HardResetHandler +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 0xc497c6ab mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcbf50dfc mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcbfef971 mpt_raid_phys_disk_pg0 +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 0xe2fcc5f0 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfaa440fc mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0d6f59ef mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1ad5d798 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x24896e40 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2f1eed6f mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3d8a6003 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x40dde0de mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x44779b95 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x46c20d6e mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x51f2cdce mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x68c82d5e mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7a456e66 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x829bd103 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8a32f3fa mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x934a45f1 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa0d8eff2 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa135ee94 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa232924c mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaaa22887 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xab7eebde mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb0119df1 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc9bbd932 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcbda688f mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd426c686 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe83e55ac mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe9dcb2c2 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeb57c8fa mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x181cbf9c i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x28f05bfe i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x573ba5b6 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5d8d12d8 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x624ac3ea i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x62dc2ab2 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6495f11a i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x886794f9 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8953949e i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8be608a6 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9a29c9ac i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb37dadf7 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbd3a8c32 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc29d8f2a i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc58b8545 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0d0ec71 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd49548e2 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe1057d8c i2o_parm_issue +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x4c80275d pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xfcd459d3 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19db4268 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1f94f893 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x32cfbef5 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7e029b23 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8b16a144 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x99ed0fbc mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa1f98311 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xaaf67654 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb0e849e0 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbde32fd1 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xccd17e15 mc13783_to_mc13xxx +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd9a327a5 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdcdbbd49 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfa3546cf mc13xxx_get_flags +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 0xa2411dfb ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xa7214831 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/c2port/core 0x9fea46ac c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xc72d0e2a c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x3f91fc45 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x7c1c9ec8 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0a1559b6 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x0e440c8e tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x10377d90 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x205e0a4b tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x37c98cf5 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x40ad5fe2 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x4240b0d3 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x4991859f tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x6f638ade tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xd5124c0b tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xe1b7ba44 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe60dffca tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xfe6b6d9d mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x4ee7a07a cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x56da29cc cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x81220852 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x20c35c6e register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7d9171ae unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8012bbbe map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf6675ff8 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xb50d93ad mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x87357be1 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xb85b0177 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x502fe5df del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xd2abddad add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x31944239 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xfa9fdf64 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x671f04fe nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x88fe256e nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x90ef2063 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xbadbe3aa nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe41f0a25 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf72fb4f1 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xfa2e0b94 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x25a6082a 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 0xb54d10d5 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 0x08570e1f onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5733606f flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x61c68f22 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9972f0ca onenand_addr +EXPORT_SYMBOL drivers/net/8390 0x17d3758a ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0x3244252c ei_open +EXPORT_SYMBOL drivers/net/8390 0x38dcd583 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x50484d89 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x5d6a6748 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0x5fa43ab4 ei_close +EXPORT_SYMBOL drivers/net/8390 0x65e989ab ei_poll +EXPORT_SYMBOL drivers/net/8390 0x77d15949 ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0xb448c63a ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xe26de53d ei_start_xmit +EXPORT_SYMBOL drivers/net/8390p 0x00c0c1a6 eip_poll +EXPORT_SYMBOL drivers/net/8390p 0x30eab060 eip_tx_timeout +EXPORT_SYMBOL drivers/net/8390p 0x310b1d38 NS8390p_init +EXPORT_SYMBOL drivers/net/8390p 0x38ad20f4 eip_netdev_ops +EXPORT_SYMBOL drivers/net/8390p 0x462988a3 eip_start_xmit +EXPORT_SYMBOL drivers/net/8390p 0x46b4b584 eip_close +EXPORT_SYMBOL drivers/net/8390p 0x4efd64ba eip_open +EXPORT_SYMBOL drivers/net/8390p 0xa9058ec6 eip_set_multicast_list +EXPORT_SYMBOL drivers/net/8390p 0xb663e226 eip_interrupt +EXPORT_SYMBOL drivers/net/8390p 0xb7c6ff6c __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/8390p 0xdfc354fc eip_get_stats +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x02bd1d86 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1b63fbb8 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3e0accaf arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x60d6f13f arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa34b5c55 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb4045add arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb8f51019 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd5f9a3a4 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe93904c7 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf48bca18 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xb2763d12 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc003ebea com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf227e74e com20020_found +EXPORT_SYMBOL drivers/net/bnx2 0xfaa5e8e4 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0x910a2921 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x36d1501c cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x10cb0c86 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x17cc391f dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1f4fc282 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x26edd033 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2bba5956 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x41cce907 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x50e31b70 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5abde559 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6ececdc4 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x86c65f4b cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x91d921fe cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc4c8fc47 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc52bbada cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd0cb0a94 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd3b62885 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf7d6ea5b cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x00ac9182 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2dd7e8bd cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3d6bc213 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3f234747 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x62b9ae91 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x66601d0d cxgb4_l2t_get +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 0x9a7ad8f5 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd5cb4597 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe2b89bf3 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xec9fe5c5 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf31e095c cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf324404f cxgb4_register_uld +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1da888fb hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4bce79a3 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6d431cf2 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9f2e0dab hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xaf6e849b hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x13be53c6 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x260a396a sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3b26c1c8 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4f52cbe0 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x528a394a irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7d225172 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xba68a42d sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe159459f sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe506726c sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf5e431ac sirdev_receive +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/mlx4/mlx4_core 0x0c2b7084 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/pppox 0x8476b80b register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xc93e9cbb pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xcb2472b9 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x38c4d367 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x1de8fc50 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4e6bcfe8 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x54bcdb49 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x554074c9 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x9dea9248 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 0x03d348bb detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x06868cf9 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x15f57841 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x203c4430 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x52df3c12 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x557eb40c unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7826194f hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xae49889a hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd5f6e420 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd9c731cb unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdbffe2f6 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/z85230 0x04f6f08a z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x14b11f54 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x2425b10e z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x26fb3833 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x29426ef8 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x3d829370 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x49013966 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x821536f0 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xa590227b z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xbd2b4af9 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xf1c4d940 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0xf27005bd z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0xf995a0b9 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0xfa1b0ea5 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xd9a9c2d1 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x1ee5160c init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x561ea65d reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xbfd4f0cd 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 0x384ba55a ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4cf91a60 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x50d72abf ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5442aa90 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7669ae05 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x85ebad0d ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x872b1b7e ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x91073f20 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xeb34bafd ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf5ed402a ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5dcc05ff ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8a2f2f3f ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfb7ac660 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x069066c3 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08709eb6 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0fc76a0a ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10425833 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1093752c ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x120260fc ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12ea54bd ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15c5b89e ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x175c100a ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f9ec84c ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22bbc5e5 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22ef1104 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23960199 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2472d5ca ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24bc488f ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ade4c9e ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b18eb2b ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b7fc40a ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d3cc7b5 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d3df846 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31a43f98 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f62ec92 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x433656e6 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4449cebc ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48a9e9db ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b7e33ba ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b5ad3b9 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5baeebac ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5dc922a6 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ec50587 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61e1d276 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62e18d3a ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65f8acb3 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a12c363 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6df4775b ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fa2717d ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71bc3631 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7354b753 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b42779d ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x809ced75 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85811dd7 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x886e7e92 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b614216 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f481760 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95b8b4b9 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c49e706 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9deabc85 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f51ac8b ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa064d89b ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1e6c737 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3bd8068 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa42920a8 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa74ec1a0 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9d5b131 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae24edf1 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0c2a513 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2f2fd11 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7308770 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbba62ee6 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc5f59c0 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd3df13c ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe5a2135 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc17d46d7 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1b0a9f7 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc488085e ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc54fb321 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc60955f1 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc63895b4 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7dd36ec ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd750843 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdf8fbcb ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf9cce4d ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd05f4ac3 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd583b430 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd76083d4 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde01e73a ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5242365 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb65caab ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0323a4a ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf14ea77c ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2ea25eb ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf543119b ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5724a4f ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb3cda0b ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc52703b ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeaa9dea ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/atmel 0x0fb5a630 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x2c566f29 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x569a5a8f stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x02e2585e hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1378b2fc hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1f11315d hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x20db81c9 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22f386ff hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x26fe0680 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x41c960f3 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x435cdc7c hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5128248a hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6008e317 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x64f8e9e7 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7be251fe hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x88e0f14b hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x920ff47d hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa516a890 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa8522282 hostap_remove_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 0xbc1a72d0 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc3ae9507 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc7abd46b hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcb8402af prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcdf6d0c5 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe28a01ca hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe7f1224c hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe8a0dc10 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xea9974cb hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0218865c libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x022c16b7 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0cf47e5e libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x26017020 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3f4fd33d free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4f731783 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x62eda936 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x77c72f5f libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7d9a3474 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x83ef3e2d libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x882bf9a4 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x90f79bb4 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa5801eb0 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb046b0f5 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb18b6730 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb783f31b libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdca9001a libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7e4ba0c libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe967d2cd libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe994d393 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xead72376 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01ea2024 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0846edee iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0b4bd579 iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x11913e73 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x11b91d92 iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14791564 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x16e18a81 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1c46689b iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1e7a56bb iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1ef3f238 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21a3c0d7 iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24c53bff iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x26859f9a iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x283e73f1 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28f5d3db iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31fec749 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x320cf143 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32af30fb iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x368d12ed iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x371cf062 iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39ffb8ef iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3bad26da iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3bfb9288 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3cc4f70b iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e8d6abc iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f639893 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41edf065 iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44e97c52 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5370d5f3 iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53830442 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x555e08f7 iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5692f92a iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57122b82 iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x573b5e94 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57d5e3f8 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a022694 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5bb89e7b iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5cfbbdd2 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x60774702 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x610f8b17 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x623fd99f iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63cd83aa iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x64ac29f5 iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x661ef46c iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b94bd48 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6fdccac7 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7266f749 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x726a2072 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x75cd0b07 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x76d7d9f8 iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x79203953 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x79ffbe18 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7f018a1a iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7f642163 iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x83fce293 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89b217e6 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a8cd14a iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b17b0e0 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8be5524f iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9220ab55 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94cc98db iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9a1c3e80 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9b04fd28 iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa052d0de iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa08514d8 iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5281a16 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6a2ae55 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa796f99f iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7bbcf59 iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa997a809 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaabc742d iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb312d79c iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8df4012 iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb9444462 iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbceb0f2d iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbfc76939 iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc1c965ab iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc8007b3a iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca6553a3 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbddb574 iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xccfc6c37 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf68c610 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3e4055f iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd772988c iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xda27b068 iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdbf59917 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe37d8b95 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe48b3b94 iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe4b7f3cb iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe6e0be52 iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe74a99af iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xef187b60 iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf0187397 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf49f29bb iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf7c10904 iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf8c32da6 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9a1fd40 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfefe370b iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff773e27 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff79b916 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3aaec741 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x51cd63d2 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5ae2133c orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x609efee5 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x67231592 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x69efe411 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x792563ea orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x79fac246 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7c443928 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9356c5dd orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x96ac11f7 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa3f46022 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb5932140 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd7595896 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe2c391c2 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf714b726 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ee17cab rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x105aa67b rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x23da10ae efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x41c01034 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x44936c3c rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x91dee189 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9a4307dd rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaf019949 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc31fa833 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc55d0bb1 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc64fc1bd rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe92e75f1 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf2a8346d rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf78c1a57 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xffd260d3 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/parport/parport 0x01de5f75 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x0597e0f5 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x06676222 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x0c72a92f parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x1b108470 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x263a7ea6 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x2e882a4b parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x40d72786 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x4879e8ee parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x52b2218b parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x5a0382c5 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x5d2914ee parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x5fc4abff parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x69d4a222 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x7409018f parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x8259869c parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x872a5c3b parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa2de1d9c parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xabb00799 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xad724112 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xb5897795 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xb6c2d7d6 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xd1c7a567 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xd255fa85 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xd2c9de70 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xd5c20759 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xdbcae1dd parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xe9a3a68d parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xeeffcb30 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xf52c7331 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x13b931d5 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xa88d6ad3 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0e2a1d89 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0e8736e8 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x253f2502 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x29e17976 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2b5b385c pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x31e1c9b7 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x33de659a pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x35b9b808 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6720645d pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7088c650 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x777f9ccb __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x84b9e93f pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb1f67fb3 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbafe09f4 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbb6796d8 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbe2b9d08 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc076e803 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc92cabd6 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf96ce78a pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0b16de35 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2f2961b7 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3fe05ece pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x55b7a34a pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7557e161 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa0128bcd pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa0521a5e pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaf1b8a7f pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb8b07170 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xce205629 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x0dbafd7e pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xd3bad92e pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x0f812493 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xa4413b8e pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xcf3a9986 pps_register_source +EXPORT_SYMBOL drivers/scsi/53c700 0x40dbc954 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0x8b287384 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x17b38613 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1fa84a1a fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x216fecc6 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3d61e353 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaa6f1539 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc48da932 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xebfc69a6 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x022449c7 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06bf59bf fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x141af9c6 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15605153 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c45e2d2 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e8c1938 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2984b812 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2ee61bb5 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3c4a1509 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x45900cf9 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4760cb05 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4860aca7 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50e20b7e fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x556a1945 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x606da19f fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x671bb55c fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67da3172 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c971a21 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d4b9013 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7032ddb9 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7b696374 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8119dfbe fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83825588 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8688137d fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x879dd815 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x887e8914 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x94c26f79 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b711df2 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa27032be fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa369c41c fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7bcb482 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd460366 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc152516b fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc17ec9cc fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2da1bb7 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca939070 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd3129ea5 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd9f94c46 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe1fb6244 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe66aa454 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9d8ba05 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeceff266 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xedf2318a fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf3fb1008 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xff3264a4 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x86a11a29 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x05cdfa7c osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0ae4327a osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0d4cf5c5 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x114fdf78 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1259efab osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1afde8c7 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1b0b7f37 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x27a1e699 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x312f295f osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4e4bfcf6 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60b92798 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x68ae1e1c osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7230f23c osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x785becac osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x85d65e6b osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8801a049 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8a43f338 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8fe67a96 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x93432a68 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa8092caf osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa846d92e osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xabbc67f9 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xacfe9c40 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb6a41b59 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc1a7602c osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc1e744f6 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc3937bae osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc4e8ec45 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc9a4570b osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd083bdc5 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xee418a4c osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf3018908 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf566c540 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf6ab0cf1 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfa8de7ef osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfded686d osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/osd 0x4615d34a osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x480b0e7f osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb24db772 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc4123e81 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe2ec3aeb osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xfc2a0b6f osduld_put_device +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1d40ee5f qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x58b2f941 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8afbb4a0 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb37ac9bf qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb73d321f 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 0xf2a03ecb qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x77978c4c raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x8078d753 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xc1b18e23 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0d4e1867 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x19dddfdd fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1ee12768 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2c5bce5d scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3178720f fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x328c64b4 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x55ef8589 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6b658bca scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6fe450c3 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x897e8e19 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9904f3f6 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc1e592d7 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc4d1da5d fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x07a48189 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x09c746c0 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0c81baf5 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0fee727f sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1155afa4 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2140b908 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2e3167f6 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x47fd650f scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x55c64c68 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x58245252 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5b0f5b40 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x716c506b sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x795288f0 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x79a7e172 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7d17e3cd sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9affeda5 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c1efc14 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa786f548 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xad97d05f scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb8b422b5 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0aa62fd sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc9d1e056 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xce8e1333 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd73f5ec7 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd1638fa sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa632ff7 sas_expander_alloc +EXPORT_SYMBOL drivers/ssb/ssb 0x09cfe84b ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x09eb2f71 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x10fe9090 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x1161db14 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x18b0afb3 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x3b5e2e39 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x40bdb7e7 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x4a647f9b ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x4b8d952c ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x4bf3159b ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x4d8cfafb ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x52aba2d6 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x53d881bf ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x6d01c058 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x7081feab ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x782a94f3 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xa3773b40 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xb06fe861 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xb254b23b ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xe2042894 ssb_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x05b7ef8a comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x33c4d5af comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x41343661 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4d25197b comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4d4df2b4 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x5b816c5c comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x620f5a3e comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x649e59d4 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x89717730 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8c38773a comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x90a3a2d2 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x96feb334 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbd22f67e comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xd236f3ee comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xd9edff9c comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x684d6c32 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x6e6750c8 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x7687093c subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xb12ea8f6 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x0f6a52b8 cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x23f22148 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x3f894e6b cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x010bae78 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x11eced19 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x19633c6c mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x20c0a215 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3682d48c mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3e28f9a1 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3e6ed878 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x713a8af5 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x762d8ccc mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7a592523 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x84788837 mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x867d2407 mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x872db50e mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xaf59c480 mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc3308592 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc368a286 mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xce3be38d mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdd38f7f4 mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xec987d34 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf7aff1ac mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x65a136ca subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x6b52cd42 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xac9fff21 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xadec49f4 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x1f719c55 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x126a15a6 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x2cd52311 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x4c4cac32 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x904c3b0f comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x9b857e17 comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xf2405501 comedi_dio_config +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x036574e6 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x180316fd cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x498f63ad cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x58effa6f cx25821_dev_get +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 0xaba0303f cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xb88601ed cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xf5669397 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xfbc5bc35 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x054d5566 go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x32e7200e go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x45df74a6 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x6e33a276 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x9909523b go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x9b13f524 go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x9bcb5d17 go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xcbd3a06e go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xf43ecca4 go7007_snd_init +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4af61ff9 vmbus_child_driver_unregister +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x522c6ca9 hv_cb_utils +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xaeaa3ce5 vmbus_sendpacket +EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xca7d0330 vmbus_recvpacket +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 0xf52ac931 vmbus_child_driver_register +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x0ffcc469 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x84e422fd adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xde2c6b48 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xf05ae1d0 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0436a98e iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x050f3f48 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0585cf95 iio_alloc_pollfunc +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0d2e8e52 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0f6ad935 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x190219b2 iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1d962fb0 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1f31b193 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x26296978 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2bfc0e0d iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x37a8b9f7 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x469c9442 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4973a142 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4b4c6027 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4bf2c7ab iio_read_ring_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e45c946 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x51a2b816 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x67ea719e iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x692c643f iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6b4dd89d iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7060dced iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x818851a3 iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x88ee1ba4 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9599064f iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x97676f8d iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ef06908 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa2961ade iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa65a8716 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb1ed3bc6 iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb4f061a4 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbf00c09c iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc71be73f iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcbc8915e iio_triggered_ring_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd4dd982c iio_triggered_ring_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xddb1dead iio_get_new_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xeb40f216 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf32cd872 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf705a529 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf77f5275 iio_free_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfb503e67 iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfc5479c5 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfc8c5d81 iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfed6c86b iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x4628ad72 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xe1602cf3 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x091532ad iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0ce344fd iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x19e3cea7 iio_sw_ring_preenable +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1cdfb559 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x476fc038 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x49edb23d iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x63ac576c iio_sw_trigger_bh_to_ring +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7f69506d iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8f8dc902 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x92fadf3c iio_set_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9fa05e94 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xae70ca7b iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbcb2912d iio_sw_poll_func_th +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xcf81bfb1 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe8a4b2a7 iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xea467a9f iio_get_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04986867 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x05dd75f8 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0635222b ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b917a69 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x23a7114d ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2476bed7 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2f23ebbd ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x30cb9212 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32d0fbfe ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x33df2584 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x393c4a45 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3f48a431 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x477c2476 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b7f901d ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5352d186 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x58d62609 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6252bbee notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65d1145a ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6b55cdd2 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x741403a4 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x782582af ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x793b6838 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x79919720 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7a7b1625 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b19a0f8 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b9dcfd7 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8113d26f ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x81d1bd27 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x85fe66b0 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x875cf0b9 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b04580a ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8bb6d0cb ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x910e8821 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x93ea1df5 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a0f3628 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9cf9b032 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa54f6fdc ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa81b3bd6 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa913b79d ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb704a763 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7475fb1 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb94c1118 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb5e8056 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbcbb937a ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf90f104 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc7606203 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfd1a3fa ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd45dab87 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd91306e2 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda0b5dba HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb691bab ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe2c0712c ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed7c93d6 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfd768611 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x490bbe84 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x86cf99a4 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x9afe957e tm6000_register_extension +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x0994c10a usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x17208d9b usbvideo_register +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x3d5a2c8f usbvideo_TestPattern +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x468e6799 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x99c4ea87 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xcc4d3904 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x06bf36b3 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x0fa41a2c vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x1e5ceaae vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x1f4f04f2 vme_dma_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 0x5ee76f6c vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x6e40cbe8 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 0x7a2af9f4 vme_master_request +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 0x87e7c4f4 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x8ef1f673 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x91d4f0a2 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9400103e vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x94bb0820 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xaf4509c9 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xbcbda39c vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xc295c060 vme_dma_list_exec +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 0xe1030552 vme_bus_type +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 0xea89c90e vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf82e53e0 vme_irq_generate +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x05d2d2a5 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0d8c23f9 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x130dccd9 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x1ab0dc36 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x1e96f0f3 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x1f72666a transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x29a8f054 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2e692db4 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x44b59ba1 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x4948630f fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x4e7b5495 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x4eaba532 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f6f10bb target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x5152542c sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x57da4cf0 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x621420eb transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x62d44ce8 transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x701c669b core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x74615021 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a4959c5 transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7b9f97d2 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7bb3ad20 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e02193e transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x814f4061 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x83e6901e transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x85527dd6 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b16377a transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x8bcca4b7 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x8c41a245 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x90894f8f transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x920b95e8 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x9405b158 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x9901eba4 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0xa7de3343 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9ffb18f iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xab197215 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xab9721a8 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc5e1f5a core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc152f4ba iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc1793409 transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0xc522e283 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xc555fcca transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xcd3c7898 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xd824a0f3 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xd95d9d21 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xe03f45b8 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xe0fadd7e transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xe2f84604 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xe43f485a target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xe5c84c57 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xedc22f42 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0597027 transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf488cbd1 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf943efab core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xfef00c7e transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/telephony/ixj 0xad706c46 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x63ab2d30 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xabcb09cb phone_unregister_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x219f2260 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x2b7168da usb_gadget_probe_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xfe8e2cb4 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xe1f969af 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 0x10d35de6 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x17200b45 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x335c14c9 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x51dfa0b1 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x54c960ee usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x81b59349 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x872608c2 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x912ec346 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9277d591 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9953fd5f usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa3be2e92 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb292c0f2 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb74685a2 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdf68f2dd usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xef0e6b81 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x20d9739b usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xa48bb9dd usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x80ad7b37 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x9cdc5f38 lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x6f12071f cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xc21fae94 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd26e87f2 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd557a416 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0x76ecf004 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x9fe1a9ad display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xcce9a608 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x26c8cf29 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x60047a78 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd9ef8df4 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1d46b760 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x278f5c26 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x9b8a28f9 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xe4655a7b matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x14a9d2f3 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x81cc8b56 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x2f77236f matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x7aca274b matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xdf5b4c6d matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xee7e7029 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x814e3534 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xc753cfa1 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x2cb50976 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x90356cfd matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe4be2fc0 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xf9d2e640 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xfe0b12c8 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xa66f8560 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x072eb6a8 video_output_register +EXPORT_SYMBOL drivers/video/output 0xc9e5ee30 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 0x466c8f21 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x78306cea svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x7cfeae27 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x870c566f svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x8e222d8d 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 0xb590339e 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 0xf9cb1a64 svga_get_tilemax +EXPORT_SYMBOL drivers/video/syscopyarea 0x91b78012 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x5233bddd sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x467e08b2 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 0x23697223 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xb199bc3b w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x795684b8 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x8f0f4f27 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd609d69d w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xffdda797 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x0cacb534 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x83f634da w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x96549570 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xfa36caa7 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 0x1655c19c config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x379c4774 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x3907dde7 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x5046a021 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x6cd3f308 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x72d2fe01 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x97d2f21a configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xa96cc440 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xada3e174 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xb6066cbf config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xe8d6e509 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xebf334fb config_group_init_type_name +EXPORT_SYMBOL fs/fscache/fscache 0x005c2021 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x00cb63fe __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x192882b8 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x1e6effd8 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x3da6684f __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x3fc8f120 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x4154d0f1 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x51c8e79e __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x5f42c070 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x61d29b98 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x74632b5a __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x80340e52 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x91e5713e __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x9ea1327a fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xa6521643 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xab976e65 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xb250a75d __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xb7c3dc71 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xcd3327a1 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xd290c72e fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xd69319c0 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xe1ce20c1 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xe7c72e7b __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xe85371d6 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xfc54772f 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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x0afdd4dd qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x6cd74f20 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa098f925 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xbd58ffab qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xf2fd92bf qtree_write_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x073572e6 lc_put +EXPORT_SYMBOL lib/lru_cache 0x0a756721 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x0bb5982e lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x261e071a lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x2d245de9 lc_changed +EXPORT_SYMBOL lib/lru_cache 0x2df832c7 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x778a22e4 lc_create +EXPORT_SYMBOL lib/lru_cache 0x84f9b8fe lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x8ce4bb23 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x9dc0b844 lc_del +EXPORT_SYMBOL lib/lru_cache 0xb65d0e73 lc_find +EXPORT_SYMBOL lib/lru_cache 0xc428ab8e lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xc862dea7 lc_set +EXPORT_SYMBOL lib/lru_cache 0xdfb4ef38 lc_get +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0x93c070e7 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x9cb3915f make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x00a5e7ae p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x0bd71106 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x127714d2 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x130adf7c p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1a2c7b0b p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x1d4c6332 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x21a0bb6a p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x35bf78e5 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x455232c9 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x4dad2336 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x57f8e216 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x5b7aca28 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x606255b7 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x627a72bb p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x656fe157 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x69dc0251 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x78688311 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x7d62f2fb p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x869b4a9e p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x8b1888c0 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x8da58daf p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x91bd79a3 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x9246c806 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x92be3ba1 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x94a916c5 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa2a5be32 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xa5ea64d4 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xab7187d7 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xad6eecbf p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xaed82eb5 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbb12c3f1 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xca01733b p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xca850cc5 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xcdc3036f p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xe0df4c67 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xe19978b9 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xef7589bf p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xf3615b86 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xf784cefc p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xfef5a34f p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xff358423 p9_client_disconnect +EXPORT_SYMBOL net/appletalk/appletalk 0x15bc5b35 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x3a618643 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x810b5d93 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xaa8c3c24 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x1168c78e atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x235b43e5 atm_charge +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x31a7c187 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x47262bea atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x4a7298ce atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x5c719f21 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x7eca953f vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x9642dfe6 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb8fe962b vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xcf41029a atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xcfd5fb7f atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xeffc46d9 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf27f7d29 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x18c79bf8 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3454cf22 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 0x5eb694eb ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x71a36b5b ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa1e82679 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xa349a4d6 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xa6ab9f4b ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xaf273bc2 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcd5db72e ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x044ccdf8 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f76a01e bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x198beae7 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x21ec795e bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x24ba1920 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x25fbf7bf bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x29306fb9 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x296ad096 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x372a3d62 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x53a92ed2 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61df6842 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6923d389 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x71b0a74b hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x740eed5d hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74186068 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74bf9601 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7f5eff74 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x92cff1d5 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9b2bfaa9 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9c06d5fe hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9cdf243e bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa27c519e bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa75c665b hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbb790dcf bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0866f7f hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc87b4fef bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc95a9029 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9ff90e4 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcbf3c953 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde695789 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe143244e hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xec4221da bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf1d9e7eb hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd7dcf74 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x812f98aa br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2c7d7cc5 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x644773a8 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa130ba91 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x03195604 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x0580362c cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0d544ce0 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x119e4bc5 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x1d4a1c33 cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0x1d9949f9 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x2451f69e cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0x250b3397 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x2829f0f3 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x28831be8 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x324b32a6 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0x3f8b1895 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x50203a33 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x56e709d2 cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x69ace669 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0x6a9311de cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0x83728853 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x8ac1e0ee cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x995cee5f cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x99c394a0 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x9e91064a cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x9fb932d1 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0xa1311dcf cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0xa91426c7 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0xbc5fd6a5 cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0xd33fbd4b cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xd3e95f55 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xd9689c16 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xe96f9f5d cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xf2463102 cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xffefc934 cfpkt_getlen +EXPORT_SYMBOL net/can/can 0x4fc2f51f can_rx_unregister +EXPORT_SYMBOL net/can/can 0x67f08bd8 can_rx_register +EXPORT_SYMBOL net/can/can 0x7710d279 can_send +EXPORT_SYMBOL net/can/can 0xabc6af83 can_proto_register +EXPORT_SYMBOL net/can/can 0xb648009c can_proto_unregister +EXPORT_SYMBOL net/ceph/libceph 0x08a60e57 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0a46653b __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x0c26d531 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x1803c2dd ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x18607ed4 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x21c1dedb ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x2301fadc ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x241c361d ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x2e7fe701 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3ad32998 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x3eeab9bb ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x495968b0 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x51da6f4d ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x626f5ce7 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x63d0c044 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x64a1e230 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x711ddc81 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x76fd4d95 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7887fb86 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7c3650d4 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x7e9f95d4 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x98a0121e ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9f84a2a3 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x9f8ac6ad ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xae524d03 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb16611fe ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb69cba6d ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xbec5bcd7 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xc1b04066 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xc37545a7 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc676bf91 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xce3f3808 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xcf0470ae ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0xd198fac1 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xded9a32d ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0xdfa127dd ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xe26ffef6 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xee0d12fa ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xeeee1653 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xefbba975 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf7f6e569 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xfc15a327 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xfcd4607c ceph_monc_open_session +EXPORT_SYMBOL net/ieee802154/ieee802154 0x03a70fb7 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0b90828a wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2ba994f8 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3cb9ba4d ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x610cf949 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7b79d1be wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7c27c0c0 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x804ca1f5 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x81ccf8f1 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa6aa9e92 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa947ee2f wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xab1b68d0 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc0990278 wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x645046f9 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x945bfec6 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xda1a3d49 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x2750e5fa ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xac2f57bf ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbe7ab57b ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0fbeedff nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x20679cff nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2da2eec0 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9cca73df nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9d1e6362 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd2915599 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe04c2208 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x66dadf4c xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xdd4c9d16 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x144e9b34 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x51fdb868 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7e99020a ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf48e6c43 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x1b649d42 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xf9832be7 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe9969eef xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xec70f94c xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x04ed293b ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x120eafb8 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x178d4638 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4713d536 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5390705b ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6db61fc2 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6e3c758a ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x816c7d7e ircomm_close +EXPORT_SYMBOL net/irda/irda 0x031275d3 irttp_udata_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 0x095be7bc irlap_close +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x17cc8a99 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x1c871d37 iriap_close +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 0x2d83804e irlmp_connect_response +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 0x61b5cb97 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x692e5786 irda_notify_init +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 0x7520a618 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x7850e180 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7b2c9d5f irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x7c941fc8 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x8cd01113 irttp_open_tsap +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 0x9c21f16e alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x9c448368 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x9d1a50a7 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa16527b7 irlap_open +EXPORT_SYMBOL net/irda/irda 0xa19bbe28 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xb3b93e32 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xb54bee44 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 0xbea8aea9 proc_irda +EXPORT_SYMBOL net/irda/irda 0xc065043b irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc6368983 iriap_open +EXPORT_SYMBOL net/irda/irda 0xcc45e7b7 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xcefef1d9 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe33ca128 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xfd0f05b6 irttp_data_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0xea15448c l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x035f1780 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x4921b243 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x52371590 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x589d42b7 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x6a5c35a2 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x710cefd7 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x80618c2e lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x984973a7 lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x021b6c80 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x0328eda0 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x0e326667 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x160051e3 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x22784de2 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x2c0d2ae3 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x2ec1b101 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x360bff91 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x36c290b8 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x387c05c4 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x3ac96609 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x430f8c46 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x44a5dca8 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x467a42d6 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x496d008d ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x4e5cbe31 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x58a7fa91 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x65a82fcb __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x6c4a96e0 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x70bcd0f6 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7ba48584 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x7d50f513 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x82c26759 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x857b42a5 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x89bfc65d ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x97333844 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x981ae3c2 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa92eb065 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb8ce9844 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc579ac74 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc8443dd8 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc93c8c9e ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xd30cb725 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xd48fd347 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xdec18e51 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe0d72ef8 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xe46bca20 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf8a24882 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xfa376654 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xfa79ca6b ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xfc58c972 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x031b1a60 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x201efcec register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x34d03e9a unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4363f8f6 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x55ababf5 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5b30986c ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7da95a22 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x809666de register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc09d79d4 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcf25883e ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xda9d5a91 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xee5c000a ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x48606804 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8271cc48 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xae0e0611 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xa2a53159 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x1006b593 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x1a19a5e5 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x43eb2ec7 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x445e5b69 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x54a1cc1a xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x650fe769 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x86ce2296 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x8a2016de xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc99c56ca xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xe80bb1af xt_unregister_match +EXPORT_SYMBOL net/phonet/phonet 0x0d02eda1 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x70499a96 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x717a0300 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x8e746798 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x8f9df17f phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x9306b9ff pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xa4153b19 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xed60ff29 pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x02d1b5b4 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0ee73121 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x184e4f05 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2d0692ce rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2e095b82 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x38ce1f16 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x44156f75 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6048a6d7 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x683c0aa3 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7827979f rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xba514acb rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc0b970ae rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd555b7f3 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xda8982ae rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfc0cec0c key_type_rxrpc +EXPORT_SYMBOL net/sunrpc/sunrpc 0x14b9c290 svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcf9de74b xdr_terminate_string +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x68c97d25 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x6c5fb319 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xae6a79c5 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x016d3220 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x01a6ddc6 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x0625862b cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0a2486e4 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x103f9c4b cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x20ca1a82 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x24437512 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x2462d44e ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x25633d63 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x2cd5609d wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x3efed48d cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x431b7a01 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x44abc240 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x473992c8 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x4b017cbc cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x51cdccdf cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x59da088f __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x5a0d94a1 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x62fe188f ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x64252873 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x66961af3 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x66d90e81 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x69578f92 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6f4ab386 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x78115294 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7ec1f21e ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8df5a187 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x8e1187e4 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9b8f4f5e cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x9be2bba1 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x9fadaeb8 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xa896d266 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xaca652f0 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb236a5a2 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xcace789d wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xd295dc70 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xd48f3050 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xd4fe231e cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xe10e65f1 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xeb795999 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xef64044c cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xf208c9ce wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xf2ec4506 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf6305ace cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xf7e55ad7 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/lib80211 0x005c01e7 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x11537c8d lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler +EXPORT_SYMBOL net/wireless/lib80211 0x264550d2 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x6e9a6efc lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0xb8465103 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xcda42e3b lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0xce469512 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xfdf6610d lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x34c936ad ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x371848f6 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x41ed4697 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 0x96d0aef7 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc23d0b67 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x1c15aa06 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 0xc669d4de 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 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 0x0629965b snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x02cf8373 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x18524822 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x2336e3a2 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x281480ac snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x324324d8 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3a003744 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x3aa4eb54 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x3d4598e2 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x40ebc328 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x467c213c snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x5c657209 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x64438d66 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x6b767d42 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x75b179d4 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x7929bee6 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x81939183 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x855e584a snd_card_create +EXPORT_SYMBOL sound/core/snd 0x87380b9d snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x88d84a2c snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x8ea72990 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa19066df snd_card_register +EXPORT_SYMBOL sound/core/snd 0xa7c0283e snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xaac331d3 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xabceb206 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xae63df9b snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xb105138f snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb98d0d6f snd_component_add +EXPORT_SYMBOL sound/core/snd 0xbe68155b snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xbe6f48ab snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xc1b94ff2 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xccd4dc85 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xcf75895b snd_device_register +EXPORT_SYMBOL sound/core/snd 0xdf470cee snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xe0004b36 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xe206e884 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe230369c snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xe2cb0b2b snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xe3db3261 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xefedd3fd snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xf52075a4 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xf5ffa92c snd_cards +EXPORT_SYMBOL sound/core/snd 0xfb23c5fc snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xfb30b676 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd-hwdep 0x407e93f5 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2405e8a8 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2d526e69 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x789487c0 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xdf50ad51 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xe82d3d2a snd_dma_alloc_pages_fallback +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 0x0615156e snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x181e057f snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x18e23efb snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x1c1e6f15 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x219c3013 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x21ea0f92 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x220c1d0e snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x224c2972 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x24863c98 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x293f3dac snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x2d62fe48 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x30d93291 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x32fa1ace snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x36e03385 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39337b1a snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3e5a2dce snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4e6087d9 snd_pcm_hw_constraint_pow2 +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 0x54651f02 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x564b5fb3 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x5d6c2ff5 snd_pcm_sgbuf_get_chunk_size +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 0x669d4b64 snd_pcm_hw_param_first +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 0x72a15f4f snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x78680634 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x7d09b017 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x918a2e7f snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x91b4fa64 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x933f38eb snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x97294569 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xa36868d7 snd_pcm_open_substream +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 0xb8ec6c42 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbb77e70e snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xbbcdeafa snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xbd8edf09 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xbdce06d3 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xbebd3b92 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xc0620dc0 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xcaab46b1 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xcd37baa8 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xdffb5e7d snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xec188c5b snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xec63e5ce snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf6813ae6 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0550712e snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06d7e15e snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x093814b2 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x286e0cd9 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x42312c7d snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x59ce2540 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x63f91502 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x669a4db4 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x70668f2b snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x81a904fb snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x81fcdce2 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9237c8ea snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb1df22d8 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb3c28493 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb90ddf73 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc2be9c7a snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf98b3806 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-timer 0x162b01ed snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x33ba8d4f snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x510acba9 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x5c1c6522 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x60525313 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x662d0314 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x6b1b6deb snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x9a50c6b9 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xb1c28473 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xb4b11465 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xc5bd841b snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xc9fc6163 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xf58e6446 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 0x69c10823 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 0x2b157aa8 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2c7e1114 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5900398d snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5f64bcc5 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x60e879bb snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6d615e81 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7e158e63 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x865d6141 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe5c1d0bc snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x05796bf3 snd_opl4_read +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x4099c01f snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x5e2a3221 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x66e49229 snd_opl4_write +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x82aef468 snd_opl4_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x064cb54b snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x16757390 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6504f168 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6f060465 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8911db47 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xcfab10b0 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe71545b8 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfabd4e19 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfbe80804 snd_vx_setup_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x25bc7cb2 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x6bf8b6f5 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x813ededc snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x98ebb458 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa5908bc3 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa747bda2 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4b8c29af snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4fbd6b85 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xca6d8448 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd1bb1ad4 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe93e0ea2 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe9d1388c snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x139b8530 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1afc2eb4 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x3beb0756 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xce52514c snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x4387e1ca snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x47488a2e snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x037552de snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x291b1c9f snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x3fb486b9 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x698d939c snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x69f3215c snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8f1fb173 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb2dc487d snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0bb4fae5 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0f74a317 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x333581a9 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x581c123f snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xaccb4618 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xba52de81 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x3ae14bea snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xf3152a67 snd_tea6330t_detect +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x0d9fac77 snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x1e764642 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x3766befa snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x8baf6c57 snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x91d70263 snd_es1688_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x04c431c2 snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x05645722 snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0a1cd907 snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0f919fb4 snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x14977b4f snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1922dbbe snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x38506aca snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x3c4a9725 snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x55bfffdb snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7135238b snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x830995d7 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x896ce4c5 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9c0f4b6d snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9f1e6682 snd_gf1_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xaa55d62c snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb8e54f5e snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xbac0488d snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc031177d snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc7f8ac1d snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xca20fb79 snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd02fc12c snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd11f2414 snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd320b1c1 snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe70c56c9 snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe95a960b snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xed8b1d50 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf0b5bfee snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf178bf8a snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf527eb2d snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf660e550 snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfb4e68ec snd_gus_dram_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x03872484 snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x176b0739 snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x195fcfa6 snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x441b363c snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x4afe1848 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x6e2ad4bc snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x7453a5c2 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x8b29f5ea snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xace2724e snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xd69704b6 snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xe7f1f8ed snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xec1b6109 snd_msndmix_new +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x58e447cf snd_aci_get_aci +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xfa1ad431 snd_aci_cmd +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x08b37f18 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2c2a50ad snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x38370c97 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5cbe76d3 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x69982eee snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8178240b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8f424152 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9534029b snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa572bce2 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf7674d39 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x6afbfa14 snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x2fedf753 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x8f852a64 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x94b9ce2e snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x4adcb2b1 snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x8438563f snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x8741effd snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x96a11a5a snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1141111f snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1926c577 snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1c276f98 snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x2cb674df snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x2ffe8fb0 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x94764304 snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xafda0f72 snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xbd1d66a2 snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xcbcc912a snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xe67b08a9 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xed593610 snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x012a6f02 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x06928f4c snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x0803b236 snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x10004e98 snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x3101efb1 snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x35a350cb snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x36f30fe7 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x455dbad7 snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x4c17e00d snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x4f5d9b4b snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x57431e30 snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x6f6f701c snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9b576ceb snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xad263420 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc5c320cd snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd210940d snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe1b38301 snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xee5023e5 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf15b010e snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf81d42c3 snd_wss_mce_up +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x12c6c5ee snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x286542a2 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3d49499f snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4233db8f snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x451b3033 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4c2198fe snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x54703080 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5c2c4c88 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7c901098 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x89f01336 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9f156ac9 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb040ba3f snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc430d033 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd86941b0 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe75e3ec3 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xeafec316 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xeebd1f14 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xfa48e506 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x156d12fd snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x182a9210 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x32e933d5 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x423bec0e snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x51d2f563 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x83eff679 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x900ac836 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb2381067 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdecad924 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xb25a0279 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7f417c53 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xbaded5e7 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xf01293d5 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x04fad4a1 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x05266dc3 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x07292bb3 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1a4549f0 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x28a47ef0 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x330ecae4 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5411860b oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x85d004a6 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9002dece oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa3141cc6 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa80f95a6 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaa47eed6 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb9d4ea89 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbd20b041 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbf06efbe oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc1e42b41 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdbcb5603 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xeac57fd7 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef851ef8 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3644177 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3ad7734 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x45f6154e snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6bdd50c3 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6bea2687 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6ca39f98 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x899b01ae snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soundcore 0xddde8a5c sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4e79f2e2 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 0x66e429f1 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x9bffb657 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa124ccea snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc9b24dbf snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xcf4c6c22 snd_emux_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x169428c4 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2c5c5587 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5c3c0c2b snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x877d1a43 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x89bd513a snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb12cf3f9 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc2390f81 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe4b3b377 __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 0x789cf2e5 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x0d988934 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4db74ccd dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x543067cb dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x74ea4959 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 0xe20ff6dd dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xfbd84316 dm_mem_cache_shrink +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x0034ce69 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x003d0958 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x003f4b81 page_symlink +EXPORT_SYMBOL vmlinux 0x0043336e vga_put +EXPORT_SYMBOL vmlinux 0x0047a29f scsi_finish_command +EXPORT_SYMBOL vmlinux 0x007a7d5a genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0086b546 block_commit_write +EXPORT_SYMBOL vmlinux 0x009ccca0 agp_free_memory +EXPORT_SYMBOL vmlinux 0x00c9489e simple_link +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0134738f input_register_device +EXPORT_SYMBOL vmlinux 0x013d74ad scm_fp_dup +EXPORT_SYMBOL vmlinux 0x014236fe tty_devnum +EXPORT_SYMBOL vmlinux 0x016d75bf tcf_action_exec +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a308c7 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01b8b90f neigh_connected_output +EXPORT_SYMBOL vmlinux 0x01b9bec8 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01dc5f74 init_task +EXPORT_SYMBOL vmlinux 0x01e17535 d_set_d_op +EXPORT_SYMBOL vmlinux 0x01e8e024 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x01f28bff dm_register_target +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0216f5f4 lro_flush_all +EXPORT_SYMBOL vmlinux 0x0231d2f5 simple_write_begin +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023b9bef dev_crit +EXPORT_SYMBOL vmlinux 0x02421742 __elv_add_request +EXPORT_SYMBOL vmlinux 0x02565213 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x0258f1e5 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x025efb02 simple_empty +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026a6811 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x0287456b fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x0287b291 skb_find_text +EXPORT_SYMBOL vmlinux 0x028b82c3 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02d740c5 alloc_file +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02dffbfd do_sync_write +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x0300d722 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x030c8271 nla_append +EXPORT_SYMBOL vmlinux 0x0327da96 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0343cdc5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x03566b87 dev_warn +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0386c8f6 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x03ab6393 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04153f60 skb_insert +EXPORT_SYMBOL vmlinux 0x0416d62a names_cachep +EXPORT_SYMBOL vmlinux 0x0420635f km_new_mapping +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0440e0b9 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x044e33a7 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x045831dc vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04c3632f dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x054462f4 nobh_write_end +EXPORT_SYMBOL vmlinux 0x0552d980 ilookup +EXPORT_SYMBOL vmlinux 0x055f47c7 journal_update_format +EXPORT_SYMBOL vmlinux 0x056d8d13 elv_rb_find +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0585ad79 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x05a8817c __lru_cache_add +EXPORT_SYMBOL vmlinux 0x05d99a89 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x0601fb97 vfs_read +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0624d73f tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x062db08e iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x065e6243 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0680fb59 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x0687509e vm_insert_page +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x069007fd i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06c9ee2b serio_close +EXPORT_SYMBOL vmlinux 0x06d6873e scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06e77de7 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0712a415 proc_symlink +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0737bea7 d_find_alias +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x07751ccf i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new +EXPORT_SYMBOL vmlinux 0x077dca39 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079f7f69 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07c15e68 sock_no_listen +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07d8dd8c blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x07d95b7d cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07f04e4b rfkill_set_states +EXPORT_SYMBOL vmlinux 0x07fe2a6f ip6_frag_init +EXPORT_SYMBOL vmlinux 0x0800402f scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x08289214 bmap +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08496318 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x0854b83b submit_bio +EXPORT_SYMBOL vmlinux 0x087829be block_read_full_page +EXPORT_SYMBOL vmlinux 0x087e4372 devm_iounmap +EXPORT_SYMBOL vmlinux 0x08814a4f tcf_hash_check +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x089e8713 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x08c855bd mark_page_accessed +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x0902e57d kobject_get +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0936de56 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x09469d6b flex_array_shrink +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099adb22 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x09a42c0d scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x09a8aee6 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c81257 security_path_truncate +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09f20dda idr_init +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a69f7a4 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x0a898346 netdev_printk +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad57ae5 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x0aeb89fd __seq_open_private +EXPORT_SYMBOL vmlinux 0x0b055a6a nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b565059 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b747560 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x0b833784 simple_setattr +EXPORT_SYMBOL vmlinux 0x0b91f2dc key_link +EXPORT_SYMBOL vmlinux 0x0bbf0cc9 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x0bc7a669 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x0beeffc7 pci_request_region +EXPORT_SYMBOL vmlinux 0x0c2e2acf directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x0c36452e __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x0c4bd10e dev_alloc_name +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb2260a gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cce6aa5 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x0cf4f105 kernel_connect +EXPORT_SYMBOL vmlinux 0x0cf733c2 neigh_table_init +EXPORT_SYMBOL vmlinux 0x0d0d9fd7 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x0d1f9da7 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d40a579 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d7959a6 phy_detach +EXPORT_SYMBOL vmlinux 0x0d7aea59 put_disk +EXPORT_SYMBOL vmlinux 0x0d8e9b42 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x0d9e6edd pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x0da06f9b mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0daaa7e3 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x0dd83f2e d_lookup +EXPORT_SYMBOL vmlinux 0x0ded09bd pid_task +EXPORT_SYMBOL vmlinux 0x0e0cac77 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x0e17186d vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e17aabb kernel_bind +EXPORT_SYMBOL vmlinux 0x0e30435b key_payload_reserve +EXPORT_SYMBOL vmlinux 0x0e335f52 bio_put +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e53ae8a vfs_writev +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e805fbc ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x0e8b2ab8 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x0eab4689 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x0eb733b7 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x0ee4a00a genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x0ef38b1e register_quota_format +EXPORT_SYMBOL vmlinux 0x0f0cc809 pci_request_regions +EXPORT_SYMBOL vmlinux 0x0f135443 lock_may_read +EXPORT_SYMBOL vmlinux 0x0f24b45a pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x0f8ab8df filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x0f9909e6 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x0fa8fc5c security_path_rmdir +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd4ca5b __serio_register_port +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffbd32f xfrm_register_type +EXPORT_SYMBOL vmlinux 0x10152546 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x101858e7 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x102c3e74 mdiobus_write +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x103f5303 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x104443f4 elevator_exit +EXPORT_SYMBOL vmlinux 0x104f9440 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1065602f __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x106defc9 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x10a2a892 tty_throttle +EXPORT_SYMBOL vmlinux 0x10a9d522 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x10b79e8b ip_route_output_key +EXPORT_SYMBOL vmlinux 0x10d0e4d6 __scm_send +EXPORT_SYMBOL vmlinux 0x10d8adf7 i2c_add_adapter +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 0x11331f80 blk_start_queue +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117f185e contig_page_data +EXPORT_SYMBOL vmlinux 0x118153cc vm_map_ram +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x118f2767 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x119b4e60 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x11aac5ec generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x11d7d0ed vfs_rmdir +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11fd283f mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x122c809e in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x122f20c7 sk_dst_check +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x127a373f try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x1286f63a filemap_fault +EXPORT_SYMBOL vmlinux 0x128f163a udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12bef97d pnp_is_active +EXPORT_SYMBOL vmlinux 0x12c10d22 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x12c804b0 km_report +EXPORT_SYMBOL vmlinux 0x12cbb099 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x12d08e73 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fa5a14 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x1351cb43 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x1355255b __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x1372d1b5 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x1378e9e8 user_path_at +EXPORT_SYMBOL vmlinux 0x139a043e tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13cd94e0 fb_blank +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d867c7 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x141eedd3 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1431143c seq_path +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x143b7fe0 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x1447e8eb pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x144898d1 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x144c8597 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x1452e2b2 pipe_lock +EXPORT_SYMBOL vmlinux 0x147fed58 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x14a0a3b4 set_groups +EXPORT_SYMBOL vmlinux 0x14e6a18e pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x14ecdc6f seq_puts +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1574c0b9 del_timer +EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x15904e0b dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x15942b21 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x15978910 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x159c478d tcf_exts_change +EXPORT_SYMBOL vmlinux 0x15b51372 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x15b87985 unregister_8022_client +EXPORT_SYMBOL vmlinux 0x15becbd4 dev_mc_del +EXPORT_SYMBOL vmlinux 0x15c7011c bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x15c8909f posix_acl_permission +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x160a8e33 blk_complete_request +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x160f8cd8 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x1615ef5f phy_connect +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x162a34d8 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16319af0 dma_supported +EXPORT_SYMBOL vmlinux 0x1641b5c5 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x164bfb09 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x16532aac dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x16766138 kernel_accept +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x167ed95e dput +EXPORT_SYMBOL vmlinux 0x16996d8b blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x16ab0f25 inode_change_ok +EXPORT_SYMBOL vmlinux 0x16c75b4d dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x16cc40c0 path_put +EXPORT_SYMBOL vmlinux 0x16d1cbc8 udp_proc_register +EXPORT_SYMBOL vmlinux 0x16d8898e cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x16eef1a4 free_buffer_head +EXPORT_SYMBOL vmlinux 0x16f6d9e4 d_genocide +EXPORT_SYMBOL vmlinux 0x1709be9f __kmap_atomic +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x170cbdf2 input_reset_device +EXPORT_SYMBOL vmlinux 0x171421e1 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x175bfc39 __nla_reserve +EXPORT_SYMBOL vmlinux 0x178348ff audit_log_format +EXPORT_SYMBOL vmlinux 0x17954c60 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x17a2d010 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x17a334e0 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x17a8f79d skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x17b446a3 mca_device_set_name +EXPORT_SYMBOL vmlinux 0x17caec49 fb_class +EXPORT_SYMBOL vmlinux 0x17d3b6ec cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1828edbc i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x189e0ac1 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x18d70e3c mount_nodev +EXPORT_SYMBOL vmlinux 0x18db2686 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x18e6a6ff ps2_handle_response +EXPORT_SYMBOL vmlinux 0x18fd5d86 d_move +EXPORT_SYMBOL vmlinux 0x19076e61 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x1965045d blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x19706654 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x1986ad88 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x1994299d get_gendisk +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19de5dc5 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x19e92440 flex_array_put +EXPORT_SYMBOL vmlinux 0x19e9857c con_is_bound +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a0caa5b sock_wake_async +EXPORT_SYMBOL vmlinux 0x1a198c9e writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x1a416cfa pnp_get_resource +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a46d249 find_get_page +EXPORT_SYMBOL vmlinux 0x1a5eef5e skb_push +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a704068 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa9fb63 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x1aaec4f5 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9aa3f4 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x1b9ca4ab ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb6c5da __nla_put +EXPORT_SYMBOL vmlinux 0x1bbc70f7 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x1c098f14 pci_find_bus +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c3326d7 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x1c359531 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x1c59ed3e uart_match_port +EXPORT_SYMBOL vmlinux 0x1c5a05b9 dst_destroy +EXPORT_SYMBOL vmlinux 0x1c5dabaa icmp_send +EXPORT_SYMBOL vmlinux 0x1c680219 register_netdevice +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c9b7e73 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x1c9b8066 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x1ca879ca cdrom_check_events +EXPORT_SYMBOL vmlinux 0x1caba493 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce11f30 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d4a2003 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x1d4d2b82 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x1d4d441d have_submounts +EXPORT_SYMBOL vmlinux 0x1d4d46c4 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x1d54fd8a read_cache_pages +EXPORT_SYMBOL vmlinux 0x1d7f0cda sock_rfree +EXPORT_SYMBOL vmlinux 0x1da7eb5d ip6_route_output +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd2a03d sync_blockdev +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd98fc6 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x1de12965 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x1df65373 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e0fa9d7 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x1e139813 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x1e300a17 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x1e35c0a9 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x1e37d7f6 sget +EXPORT_SYMBOL vmlinux 0x1e3bd10e dma_pool_free +EXPORT_SYMBOL vmlinux 0x1e3e27df ps2_end_command +EXPORT_SYMBOL vmlinux 0x1e436092 skb_append +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e90b015 ip_fragment +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ebbe3f4 input_grab_device +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f0930a7 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x1f8a17cb pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x1fbd32f8 mpage_readpages +EXPORT_SYMBOL vmlinux 0x1fc2256b __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x1fcc3d11 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd434bf inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2002dd17 bio_split +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20069d87 __alloc_skb +EXPORT_SYMBOL vmlinux 0x200c0a52 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x201f81dc arp_xmit +EXPORT_SYMBOL vmlinux 0x205a1a22 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20891167 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x20a7ae98 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x212346d2 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x212b5b71 __register_binfmt +EXPORT_SYMBOL vmlinux 0x2158e0ba dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2191b8a8 mount_bdev +EXPORT_SYMBOL vmlinux 0x2199a928 udp_prot +EXPORT_SYMBOL vmlinux 0x219aba14 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x21add650 input_event +EXPORT_SYMBOL vmlinux 0x21af4853 dm_put_device +EXPORT_SYMBOL vmlinux 0x21c1a14a netdev_alert +EXPORT_SYMBOL vmlinux 0x21ca6cd0 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x21d4ae3f generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e1fc10 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x21f9ef39 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x220a5429 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x22235a44 path_get +EXPORT_SYMBOL vmlinux 0x2223f123 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x224ed6ae sock_wfree +EXPORT_SYMBOL vmlinux 0x22546d2c md_register_thread +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x22817237 lookup_one_len +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228bad73 pci_clear_master +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22f2b83c mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x2304ed64 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x2313be87 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x2317772a journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x23197a22 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x232247e1 unlock_page +EXPORT_SYMBOL vmlinux 0x2327bb20 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x2342ef54 vga_client_register +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x236bd3db ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x23754cb4 netlink_unicast +EXPORT_SYMBOL vmlinux 0x238e872e simple_transaction_read +EXPORT_SYMBOL vmlinux 0x239daa52 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x23a4e669 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23c417b8 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f07d95 elv_rb_add +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240e760c dev_addr_add +EXPORT_SYMBOL vmlinux 0x2412c40f prepare_creds +EXPORT_SYMBOL vmlinux 0x2414033c dev_uc_add +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246683e4 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x246fcd96 pci_disable_device +EXPORT_SYMBOL vmlinux 0x24a64c2f unregister_md_personality +EXPORT_SYMBOL vmlinux 0x24a671e0 task_nice +EXPORT_SYMBOL vmlinux 0x24c185f9 noop_llseek +EXPORT_SYMBOL vmlinux 0x24c42b47 get_super +EXPORT_SYMBOL vmlinux 0x24ced483 dquot_release +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2500d743 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x254e9b3e register_cdrom +EXPORT_SYMBOL vmlinux 0x255d4e16 __getblk +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25867090 mii_link_ok +EXPORT_SYMBOL vmlinux 0x259c91de dev_disable_lro +EXPORT_SYMBOL vmlinux 0x25a4ef25 lock_may_write +EXPORT_SYMBOL vmlinux 0x25b27c90 tty_port_init +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25ebe3aa xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x25f6cf0c radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x25fb3a8d vfs_readdir +EXPORT_SYMBOL vmlinux 0x260977dc skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x260bd696 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x262443ae icmpv6_send +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace +EXPORT_SYMBOL vmlinux 0x26525979 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x265821e2 pci_choose_state +EXPORT_SYMBOL vmlinux 0x266b7aac generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x2680f399 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x2692316a I_BDEV +EXPORT_SYMBOL vmlinux 0x269a6fe0 devm_free_irq +EXPORT_SYMBOL vmlinux 0x26af7df3 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26dc37ae dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x26e09f9d acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2707a701 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x274fc8c0 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x27629412 unregister_key_type +EXPORT_SYMBOL vmlinux 0x2766e8bc save_mount_options +EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279a1b18 input_unregister_device +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27c79bed hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x27df160c __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x27f84bb2 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x281bcf5c mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x28285def dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x2847b13b scsi_print_result +EXPORT_SYMBOL vmlinux 0x2861262c jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x28622041 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x2877d79c cfb_fillrect +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a4be4d skb_dequeue +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28f92bd3 complete_request_key +EXPORT_SYMBOL vmlinux 0x290e413d dcb_setapp +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x2923d3d5 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x292a6981 __lock_page +EXPORT_SYMBOL vmlinux 0x294fb206 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29660c54 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x296e7fd1 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x29721c41 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x297e7015 open_exec +EXPORT_SYMBOL vmlinux 0x299d9957 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x299fae0b vfs_fsync +EXPORT_SYMBOL vmlinux 0x29b3e78c sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x2a0aa80c dquot_enable +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a5f69c2 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa5fc71 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x2aa613fd pnp_register_driver +EXPORT_SYMBOL vmlinux 0x2aaec0c3 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1cd921 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x2b21e8ff alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b31894f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2b66ab17 nf_register_hook +EXPORT_SYMBOL vmlinux 0x2b66ed54 d_validate +EXPORT_SYMBOL vmlinux 0x2b7807c1 journal_stop +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba67c14 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bd6beb0 key_put +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c029ad1 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x2c1bcfce lock_fb_info +EXPORT_SYMBOL vmlinux 0x2c1cd5e0 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2dd51d netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x2c3592d5 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x2c6d7cb8 bdget_disk +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c963f1b pci_restore_state +EXPORT_SYMBOL vmlinux 0x2ca7e3db unregister_snap_client +EXPORT_SYMBOL vmlinux 0x2ccb97e4 unlock_buffer +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2a2f69 read_cache_page +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d55e056 pci_map_rom +EXPORT_SYMBOL vmlinux 0x2d56a5bb pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d93466f xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x2da347fe key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x2da86892 locks_free_lock +EXPORT_SYMBOL vmlinux 0x2dc3bb1d kmem_cache_create +EXPORT_SYMBOL vmlinux 0x2dc4f096 tty_register_device +EXPORT_SYMBOL vmlinux 0x2dcd4e87 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd20117 netdev_set_master +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2dee160b unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2dff02b6 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x2e039e1e agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x2e12e8ba sock_create_lite +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e2f023d elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x2e4eccc6 set_page_dirty +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e8560c0 mem_map +EXPORT_SYMBOL vmlinux 0x2e9dcfcb __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x2eb30a11 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x2ebc0408 genl_register_family +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ef69190 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x2ef87205 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x2f03b033 fput +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f0ed542 netlink_set_err +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f308f3e netif_device_detach +EXPORT_SYMBOL vmlinux 0x2fcd54e8 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x30016a8f bio_add_page +EXPORT_SYMBOL vmlinux 0x3003c5bb shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x305111d7 dev_notice +EXPORT_SYMBOL vmlinux 0x3051c43c d_invalidate +EXPORT_SYMBOL vmlinux 0x30785b28 override_creds +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30ad31d0 md_integrity_register +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30d8024a iput +EXPORT_SYMBOL vmlinux 0x30daf11b should_remove_suid +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30e83b07 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x30e88486 do_splice_to +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3149648a xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x317b33f0 find_lock_page +EXPORT_SYMBOL vmlinux 0x31896001 netif_skb_features +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31aebe89 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x31b0d60f page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x31b599ba proc_create_data +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ea424f scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x32283fdd insert_inode_locked +EXPORT_SYMBOL vmlinux 0x323aec52 skb_split +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x32420d73 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x3286b69e mpage_readpage +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x32e756f7 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x32f76e07 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x3308a185 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x335b2efe ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x3374a7a9 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x3374d8e3 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x337b42bc i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x339a3622 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x33ae68d1 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x33aebc02 input_inject_event +EXPORT_SYMBOL vmlinux 0x33bd6d31 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33df49f5 generic_read_dir +EXPORT_SYMBOL vmlinux 0x3408c81c mca_bus_type +EXPORT_SYMBOL vmlinux 0x341eb358 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x343c9d6a bdi_init +EXPORT_SYMBOL vmlinux 0x343d4a20 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x343f6c78 simple_rmdir +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x346b54b0 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x346d8716 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34726185 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x3485b1b7 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34af2537 request_key_async +EXPORT_SYMBOL vmlinux 0x34bd3c22 spi_release_transport +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x34c30d3b write_inode_now +EXPORT_SYMBOL vmlinux 0x34d4e2c1 read_dev_sector +EXPORT_SYMBOL vmlinux 0x34f833bb flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x35336896 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x3559e888 cad_pid +EXPORT_SYMBOL vmlinux 0x35978803 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x35a970e1 rename_lock +EXPORT_SYMBOL vmlinux 0x35af59bd set_bdi_congested +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c61912 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3621fe35 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x36603ecd dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x3665f015 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x36668618 bdget +EXPORT_SYMBOL vmlinux 0x366dca7e nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x367e78bd netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36b2e75c set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x36b6eaee vfs_create +EXPORT_SYMBOL vmlinux 0x36c66e4d simple_rename +EXPORT_SYMBOL vmlinux 0x36d1663f uart_resume_port +EXPORT_SYMBOL vmlinux 0x36d45a25 keyring_clear +EXPORT_SYMBOL vmlinux 0x36e25843 input_register_handler +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x37247e79 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x3725a1cc proto_unregister +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x377f7989 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x37a22924 journal_forget +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c1110e bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x37c2d369 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x37cbfeaf thaw_process +EXPORT_SYMBOL vmlinux 0x37db354d __destroy_inode +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f5fba8 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37f64f8f skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x380fa1ff ida_get_new_above +EXPORT_SYMBOL vmlinux 0x3814900e register_md_personality +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x381fd099 blk_insert_request +EXPORT_SYMBOL vmlinux 0x383d1d53 arp_tbl +EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each +EXPORT_SYMBOL vmlinux 0x386120de skb_queue_head +EXPORT_SYMBOL vmlinux 0x386aba4d input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x386efa1c put_mnt_ns +EXPORT_SYMBOL vmlinux 0x387c2baf radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0x387c3db0 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x387d020e revert_creds +EXPORT_SYMBOL vmlinux 0x38802fa7 __invalidate_device +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388c2d5b give_up_console +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x388fcf81 sock_create_kern +EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake +EXPORT_SYMBOL vmlinux 0x38ab8c08 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x38b6da79 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38bac9e2 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x38c9f3e7 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x38f1b5ee generic_make_request +EXPORT_SYMBOL vmlinux 0x38f296d6 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x39041cc6 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x39043df4 datagram_poll +EXPORT_SYMBOL vmlinux 0x3964ec43 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x3973d258 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39994d83 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x399cd464 llc_add_pack +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39ba5db4 tty_port_put +EXPORT_SYMBOL vmlinux 0x39c4428b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x39da1ace poll_initwait +EXPORT_SYMBOL vmlinux 0x39ed4574 seq_lseek +EXPORT_SYMBOL vmlinux 0x39feb75c netdev_emerg +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a1d7ac4 release_sock +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a2453e3 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a3d6b14 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x3a5de6dd inet_accept +EXPORT_SYMBOL vmlinux 0x3a67e96b ll_rw_block +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3aa849d4 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x3ac52236 setup_new_exec +EXPORT_SYMBOL vmlinux 0x3ad148b9 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x3ad63667 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x3b11522b hippi_type_trans +EXPORT_SYMBOL vmlinux 0x3b29065f netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b7f22b7 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bdc13b7 journal_errno +EXPORT_SYMBOL vmlinux 0x3bed7941 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x3bf80da9 __devm_release_region +EXPORT_SYMBOL vmlinux 0x3c061b9a i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x3c212a4f bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c30181f mmc_free_host +EXPORT_SYMBOL vmlinux 0x3c30369c pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x3c454aa8 fd_install +EXPORT_SYMBOL vmlinux 0x3c5281e2 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x3c5d4615 do_truncate +EXPORT_SYMBOL vmlinux 0x3c6193e7 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x3c71706f inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb29e41 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ce9bf54 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x3cef9ec9 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x3d0629e9 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d317d2f acpi_bus_add +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3db93446 km_state_expired +EXPORT_SYMBOL vmlinux 0x3dd2aa6b alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x3dd9e19d security_path_chown +EXPORT_SYMBOL vmlinux 0x3ddd0481 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x3de28f63 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x3de767d4 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x3def2fe9 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e089782 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x3e13fd4d vga_tryget +EXPORT_SYMBOL vmlinux 0x3e1c6759 kdb_current_task +EXPORT_SYMBOL vmlinux 0x3e24429f tcf_register_action +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e38f825 dma_pool_create +EXPORT_SYMBOL vmlinux 0x3e3de835 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e542259 netdev_info +EXPORT_SYMBOL vmlinux 0x3e672e51 path_is_under +EXPORT_SYMBOL vmlinux 0x3e877e1a kmem_cache_size +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ebab4e4 kobject_put +EXPORT_SYMBOL vmlinux 0x3ebbe5ba dump_seek +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee2c66f netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x3ee4764e mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x3ee649bc machine_to_phys_order +EXPORT_SYMBOL vmlinux 0x3ef5d46c find_inode_number +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3efb4c6e ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f14a8de splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x3f18564e agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x3f21d5bc __bread +EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f93f4d5 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x3fb3dea6 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffa46aa __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x401b3e5e simple_readpage +EXPORT_SYMBOL vmlinux 0x403d0104 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x404dd4cc mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x40584a77 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4092214f serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +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 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c13371 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d3c1fd security_path_link +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x411caac4 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414ea35b scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x41579849 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419027a3 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x41c03d4f pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x41c36287 tty_port_close +EXPORT_SYMBOL vmlinux 0x41e9963a netif_napi_del +EXPORT_SYMBOL vmlinux 0x41ede14e security_inode_permission +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41f4485c __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x41fbb19f block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x42045206 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42157f62 follow_down_one +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x422dcf78 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x4247b7db llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x424dbad9 is_bad_inode +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x425a28e8 mount_single +EXPORT_SYMBOL vmlinux 0x4275b4b5 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d2f005 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x42fb1619 mdiobus_register +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43031f82 end_page_writeback +EXPORT_SYMBOL vmlinux 0x43116717 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x431c8565 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x43569507 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x435fdc92 register_nls +EXPORT_SYMBOL vmlinux 0x4362d7dc ppp_input_error +EXPORT_SYMBOL vmlinux 0x4365af10 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x4367234b pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x436760bd security_inode_readlink +EXPORT_SYMBOL vmlinux 0x4367d854 sock_i_uid +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4392c735 bioset_free +EXPORT_SYMBOL vmlinux 0x439c272a journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x43a3673f dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x43cc58b4 security_path_symlink +EXPORT_SYMBOL vmlinux 0x43ccc7ae __register_chrdev +EXPORT_SYMBOL vmlinux 0x43e7b7d6 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x43ecd2af journal_flush +EXPORT_SYMBOL vmlinux 0x4411d8f8 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x442424a8 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x442b9ae5 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44688925 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x446c7873 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x446e8689 register_snap_client +EXPORT_SYMBOL vmlinux 0x4477bdd5 mpage_writepages +EXPORT_SYMBOL vmlinux 0x449f0342 noop_fsync +EXPORT_SYMBOL vmlinux 0x44a5f867 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x44a74260 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x44a9a3fc skb_pull +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c837f3 iget_locked +EXPORT_SYMBOL vmlinux 0x44e48dfc blkdev_get +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x453cce0f generic_fillattr +EXPORT_SYMBOL vmlinux 0x454f323b journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x456e6dce radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45850bef pci_enable_device +EXPORT_SYMBOL vmlinux 0x458dc235 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45a6c21b netif_rx +EXPORT_SYMBOL vmlinux 0x45b83772 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x45d04c62 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45e41757 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x45eb161b xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x465d065f pci_write_vpd +EXPORT_SYMBOL vmlinux 0x46649213 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x4665007c tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x46650aaf elv_queue_empty +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x466c97fc devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x4670d650 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x4695b35b max8998_write_reg +EXPORT_SYMBOL vmlinux 0x46b49454 stop_tty +EXPORT_SYMBOL vmlinux 0x46c11309 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x46d561c8 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x46dff17f blk_remove_plug +EXPORT_SYMBOL vmlinux 0x4714e85c udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x471b72fa dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x471e504c abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x474364b2 nf_log_packet +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475268bd vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x475310e4 neigh_destroy +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 0x47963963 bio_integrity_trim +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 0x47e10883 bdput +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4837b7d8 xfrm_input +EXPORT_SYMBOL vmlinux 0x483c613a tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x48483064 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485aa660 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x485e97e3 register_con_driver +EXPORT_SYMBOL vmlinux 0x486698b4 fb_get_mode +EXPORT_SYMBOL vmlinux 0x48849b96 dst_discard +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x4898850f tty_port_close_end +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48b14bba qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x48fb672b ihold +EXPORT_SYMBOL vmlinux 0x48fdf3ae page_readlink +EXPORT_SYMBOL vmlinux 0x49028939 pci_release_region +EXPORT_SYMBOL vmlinux 0x493e5104 bdevname +EXPORT_SYMBOL vmlinux 0x49428f09 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49606cce dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x49693fbf __free_pages +EXPORT_SYMBOL vmlinux 0x496c1584 seq_release_private +EXPORT_SYMBOL vmlinux 0x49808d86 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x498b3b41 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x4996c19b vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b9dfd3 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x49c050cd generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x4a02888d secpath_dup +EXPORT_SYMBOL vmlinux 0x4a328615 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a3b2aae pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x4a40cfde input_set_abs_params +EXPORT_SYMBOL vmlinux 0x4a42f750 register_exec_domain +EXPORT_SYMBOL vmlinux 0x4a5218de dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x4a63e1ef scsi_prep_return +EXPORT_SYMBOL vmlinux 0x4a6dd8ea filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad207d4 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x4adad3f5 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x4adff67e pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x4aecf849 __sock_create +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b14784c security_path_chmod +EXPORT_SYMBOL vmlinux 0x4b17648d eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x4b2a9739 scsi_host_put +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b3e0277 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x4b6fd6fc dev_mc_flush +EXPORT_SYMBOL vmlinux 0x4b70d486 dma_ops +EXPORT_SYMBOL vmlinux 0x4b830504 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x4b8afa55 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x4b8d5b5f blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4be030f6 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x4be83170 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x4bfe140e tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c17d23e netif_notify_peers +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c8d2db2 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x4cac54ee inode_get_bytes +EXPORT_SYMBOL vmlinux 0x4cae15fe find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cf968f1 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x4cfbdafc __kfree_skb +EXPORT_SYMBOL vmlinux 0x4cfdc9fa filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d6d023f pci_iounmap +EXPORT_SYMBOL vmlinux 0x4d7f15f3 inet_addr_type +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d98155d kunmap_high +EXPORT_SYMBOL vmlinux 0x4d9dd2e0 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x4db5a209 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dd16a3e __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x4de1f0ae d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e46d8e0 sock_no_bind +EXPORT_SYMBOL vmlinux 0x4e5452ff scm_detach_fds +EXPORT_SYMBOL vmlinux 0x4e578e6b __napi_schedule +EXPORT_SYMBOL vmlinux 0x4e5eb035 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e936c65 skb_clone +EXPORT_SYMBOL vmlinux 0x4ea193b4 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x4ebb8d9e neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x4ed2de86 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x4ee2b648 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x4eeeb835 block_truncate_page +EXPORT_SYMBOL vmlinux 0x4f16d03d bio_map_kern +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f213638 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x4f36ec68 md_check_recovery +EXPORT_SYMBOL vmlinux 0x4f382f9a da903x_query_status +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f7b271c scsi_put_command +EXPORT_SYMBOL vmlinux 0x4f7fe3ac rtnl_notify +EXPORT_SYMBOL vmlinux 0x4f8d9101 log_wait_commit +EXPORT_SYMBOL vmlinux 0x4f94fa7e tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x4fa4ad96 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x4fa9c9d6 dm_table_event +EXPORT_SYMBOL vmlinux 0x4fb6eed9 agp_free_page_array +EXPORT_SYMBOL vmlinux 0x4fd7c31a scsi_device_resume +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x500e29c9 __find_get_block +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5031ecfb fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505aef56 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x5070ef3b unregister_netdev +EXPORT_SYMBOL vmlinux 0x5071e0e2 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50b7ea66 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x50eedeb8 printk +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x514ba1c4 elv_register_queue +EXPORT_SYMBOL vmlinux 0x514e4835 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x51586dab agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x51589a66 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x5176c7b6 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x51786508 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x51a8b6ac ht_create_irq +EXPORT_SYMBOL vmlinux 0x51b26ecf tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x51c89b03 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d1013c block_write_begin +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f0f857 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x520ebc34 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x522abdb5 elv_rb_del +EXPORT_SYMBOL vmlinux 0x522f6872 invalidate_partition +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x524dc5b5 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x5260fead dev_get_by_name +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527c3621 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x52872b97 ida_destroy +EXPORT_SYMBOL vmlinux 0x528ade04 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x529e7e26 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52fad687 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530c1b68 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x5311e256 bdev_read_only +EXPORT_SYMBOL vmlinux 0x5316f260 d_alloc_root +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x532edccc tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x532fe503 framebuffer_release +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53407087 fb_pan_display +EXPORT_SYMBOL vmlinux 0x53720b56 dev_driver_string +EXPORT_SYMBOL vmlinux 0x537f5e32 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x537f64c2 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53beac7b phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c3271f lease_get_mtime +EXPORT_SYMBOL vmlinux 0x53ddd7c8 cont_write_begin +EXPORT_SYMBOL vmlinux 0x53fb6364 module_refcount +EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x5402b523 skb_seq_read +EXPORT_SYMBOL vmlinux 0x5423669c input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5463c993 audit_log_end +EXPORT_SYMBOL vmlinux 0x547c6f7f tcp_read_sock +EXPORT_SYMBOL vmlinux 0x547c984a netif_rx_ni +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b944e7 file_sb_list_del +EXPORT_SYMBOL vmlinux 0x54cc22b5 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x54d872ba percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x54d97175 simple_write_end +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54fcc081 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x550ddcda scsi_register_interface +EXPORT_SYMBOL vmlinux 0x5531ae49 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x5537aecf ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x55547693 ip_options_compile +EXPORT_SYMBOL vmlinux 0x5580377f rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x558a5ccf bdi_register +EXPORT_SYMBOL vmlinux 0x558cd35d dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55b9d713 dm_get_device +EXPORT_SYMBOL vmlinux 0x55c0b99d tcp_child_process +EXPORT_SYMBOL vmlinux 0x55e962fa i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x55fe835f blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x56067dce ip_getsockopt +EXPORT_SYMBOL vmlinux 0x5612981d path_lookup +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565c7b35 put_page +EXPORT_SYMBOL vmlinux 0x566330d5 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x56848df3 netpoll_setup +EXPORT_SYMBOL vmlinux 0x5692f77b security_d_instantiate +EXPORT_SYMBOL vmlinux 0x569c7808 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x56a17171 bio_endio +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cfae88 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x56ea8c89 mdiobus_free +EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc +EXPORT_SYMBOL vmlinux 0x57092b84 serio_rescan +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5739ce66 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x574540a3 set_bh_page +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575a26b5 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x5774e588 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x57810962 load_nls +EXPORT_SYMBOL vmlinux 0x578a9e95 set_disk_ro +EXPORT_SYMBOL vmlinux 0x57973f11 flex_array_get +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57a72390 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b33a6c bd_set_size +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c509bc rtnl_unicast +EXPORT_SYMBOL vmlinux 0x57d0a419 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e626d7 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x58043347 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x5817f0cb blk_put_request +EXPORT_SYMBOL vmlinux 0x581ca8c9 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x582be1f3 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x582ed0bd vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58b7463e tcp_close +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x5901b9f7 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x59201691 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594af5ff scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy +EXPORT_SYMBOL vmlinux 0x59679508 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x599ee3da mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x59a7f438 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x59f50b3e fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5ecfd0 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x5a6b8115 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a85562c bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x5a90b706 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x5a9f5cd5 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5acaad92 input_get_keycode +EXPORT_SYMBOL vmlinux 0x5ae7f108 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b45d324 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x5b4ab285 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b6c2eec cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5b8b13c6 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x5b93b094 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x5bacff46 eth_type_trans +EXPORT_SYMBOL vmlinux 0x5bc97788 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x5bcc4857 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x5bd72796 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x5c009819 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x5c1b4e08 pci_find_capability +EXPORT_SYMBOL vmlinux 0x5c1cd92e nonseekable_open +EXPORT_SYMBOL vmlinux 0x5c1fcc20 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x5c3606ff blk_register_region +EXPORT_SYMBOL vmlinux 0x5c440f75 journal_force_commit +EXPORT_SYMBOL vmlinux 0x5c4a8dc7 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c8123cb blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5cbfc45f mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0x5ce72cf2 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x5cf81499 get_sb_single +EXPORT_SYMBOL vmlinux 0x5d012419 blk_make_request +EXPORT_SYMBOL vmlinux 0x5d0545c1 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x5d0dd915 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x5d251b4b padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x5d278ffc xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x5d2846aa mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x5d3a7cee xfrm_state_add +EXPORT_SYMBOL vmlinux 0x5d40573b inet_listen +EXPORT_SYMBOL vmlinux 0x5d516f1e scsi_get_command +EXPORT_SYMBOL vmlinux 0x5d62bbe2 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d8f173e xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dbca2c9 inode_permission +EXPORT_SYMBOL vmlinux 0x5ddcb9f3 km_state_notify +EXPORT_SYMBOL vmlinux 0x5df2bad3 key_type_keyring +EXPORT_SYMBOL vmlinux 0x5e01ddc2 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e0c4105 pci_get_slot +EXPORT_SYMBOL vmlinux 0x5e33c5af security_file_mmap +EXPORT_SYMBOL vmlinux 0x5e3f6519 set_security_override +EXPORT_SYMBOL vmlinux 0x5e52259f tc_classify +EXPORT_SYMBOL vmlinux 0x5e5dfbcf inet6_getname +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e707bf6 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x5e7f52f6 dev_open +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb85f6f xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x5ec29f5e dm_table_get_size +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5efec225 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f0566e4 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5f1191f7 get_fs_type +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f2dc2f5 page_put_link +EXPORT_SYMBOL vmlinux 0x5f570a5f kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x5f77b552 init_buffer +EXPORT_SYMBOL vmlinux 0x5f7c9f8a backlight_device_register +EXPORT_SYMBOL vmlinux 0x5f90aec2 check_disk_change +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fa2c874 flush_old_exec +EXPORT_SYMBOL vmlinux 0x5fb0c42c tty_write_room +EXPORT_SYMBOL vmlinux 0x5fbeec16 dquot_operations +EXPORT_SYMBOL vmlinux 0x5fce52c7 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x5fe72d40 kmap_high +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600100f5 dentry_open +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x605e6d5b poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x606ab8eb blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x608fb975 dev_mc_init +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60d54dc9 alloc_trdev +EXPORT_SYMBOL vmlinux 0x60d6ecb4 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x60e04e29 skb_unlink +EXPORT_SYMBOL vmlinux 0x60e8638b scsi_init_io +EXPORT_SYMBOL vmlinux 0x611832cc ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6123e664 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x615e7dda pskb_copy +EXPORT_SYMBOL vmlinux 0x61639711 seq_open_private +EXPORT_SYMBOL vmlinux 0x617b0c99 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a3ef3e cdev_init +EXPORT_SYMBOL vmlinux 0x61b4f14c journal_load +EXPORT_SYMBOL vmlinux 0x61b6c5c4 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d3e6c7 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x61df2020 pci_release_regions +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x621254d2 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x621a5745 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x621ceb9e xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x621f4f76 filp_close +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x62280618 tty_name +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623a263d simple_statfs +EXPORT_SYMBOL vmlinux 0x624065c0 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x6269e5b3 amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62aeaa63 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x62b33f1c clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x62c81d49 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x62d2e1b1 blk_run_queue +EXPORT_SYMBOL vmlinux 0x62f03f1d tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x62f90837 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63243243 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x635a83d0 __rta_fill +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x6385f166 register_gifconf +EXPORT_SYMBOL vmlinux 0x63a0b10f kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x63a57028 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x63b98171 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x63bf2a44 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x63db18ac __bforget +EXPORT_SYMBOL vmlinux 0x63e00341 netdev_state_change +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f0f506 d_add_ci +EXPORT_SYMBOL vmlinux 0x63f95c6e mount_pseudo +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6405bf70 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x640b2bd7 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6448b2a3 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x644f1abc pci_set_master +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64514e7f serio_unregister_port +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x6480adc0 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x64924827 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64bcf705 set_user_nice +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64f6a67a xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x65135407 md_write_end +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6541a5e1 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x654931c3 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x655e8419 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6562dcca pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x656a6637 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x6578ee7c register_qdisc +EXPORT_SYMBOL vmlinux 0x6594a011 eth_header +EXPORT_SYMBOL vmlinux 0x6594e1c8 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x65b8ef64 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x65c69a81 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x65db7939 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e6c322 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x660f70f7 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x66138238 blk_peek_request +EXPORT_SYMBOL vmlinux 0x661e4b59 create_proc_entry +EXPORT_SYMBOL vmlinux 0x6622dab2 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x66269f95 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x66355efc vprintk +EXPORT_SYMBOL vmlinux 0x664c207d neigh_seq_start +EXPORT_SYMBOL vmlinux 0x664f7073 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x6655e6ae remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x6655f43e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x6659bf54 i2c_release_client +EXPORT_SYMBOL vmlinux 0x66725887 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x6687b35c inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a0d01c kthread_stop +EXPORT_SYMBOL vmlinux 0x66a33408 thaw_super +EXPORT_SYMBOL vmlinux 0x66add3c3 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66db77c6 vfs_link +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x671557b4 textsearch_register +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6729d4f0 registered_fb +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6755bd87 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x67754e62 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x677a756d mmc_can_trim +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x67aaa290 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x68172b95 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x68178207 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x681dcc8d sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x68553182 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x685c3c4d blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68846c3a thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x688ec413 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x68907422 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x68ab3e99 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x690458e5 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x6906873c ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x6908739b unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x690cbc3f md_flush_request +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697c458d jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x6982a5f3 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x6995c2f1 dev_change_flags +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b28913 netpoll_poll +EXPORT_SYMBOL vmlinux 0x69d2575f efi +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e2d442 mapping_tagged +EXPORT_SYMBOL vmlinux 0x69e40185 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x69e5e4d3 journal_abort +EXPORT_SYMBOL vmlinux 0x69efc7f6 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0ebb1a writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x6a1d6ada mca_device_write_pos +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a2eb70d phy_print_status +EXPORT_SYMBOL vmlinux 0x6a414b6d splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x6a6394e5 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x6a661974 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a7c26d0 filemap_flush +EXPORT_SYMBOL vmlinux 0x6a7d4cbb blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x6abbd536 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acf1137 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae8397c bio_clone +EXPORT_SYMBOL vmlinux 0x6af921ac posix_lock_file +EXPORT_SYMBOL vmlinux 0x6b0585a8 ip6_xmit +EXPORT_SYMBOL vmlinux 0x6b09115b kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b211793 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b621118 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b7d1303 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x6b8f0099 set_pages_wb +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf1e9db tr_type_trans +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2d9ba6 inet_put_port +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c64fe62 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x6c70105d take_over_console +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c7b22ee locks_init_lock +EXPORT_SYMBOL vmlinux 0x6c8a3ba4 sk_alloc +EXPORT_SYMBOL vmlinux 0x6ca9c024 dst_release +EXPORT_SYMBOL vmlinux 0x6cc3d84c nla_put +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6d1129d2 get_agp_version +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d49f49c ps2_drain +EXPORT_SYMBOL vmlinux 0x6d4c9a7b sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x6d5e784c mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d6d6064 tcp_connect +EXPORT_SYMBOL vmlinux 0x6d6ef45f module_put +EXPORT_SYMBOL vmlinux 0x6d79441b tcp_splice_read +EXPORT_SYMBOL vmlinux 0x6d7eee04 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x6da55907 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x6dad2eea generic_write_sync +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e1d876f buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x6e2ca227 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x6e2ce3ef mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x6e454f0a cdev_alloc +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e980671 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x6e9bfa23 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea15702 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x6ec3d037 arp_invalidate +EXPORT_SYMBOL vmlinux 0x6ec67d61 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x6ece4e85 kill_fasync +EXPORT_SYMBOL vmlinux 0x6ee4f607 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x6f07e419 kfree_skb +EXPORT_SYMBOL vmlinux 0x6f2936d8 filp_open +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f42d8fa skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x6f44f965 genl_register_ops +EXPORT_SYMBOL vmlinux 0x6f467952 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f7728b7 simple_fill_super +EXPORT_SYMBOL vmlinux 0x6f8133f9 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f90ac20 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x6fcf029e pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x6fe14677 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x6fe49ef2 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70094e9c inet_csk_accept +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x702a383f cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x703a592d backlight_force_update +EXPORT_SYMBOL vmlinux 0x703bdcbf mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70580cf7 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x70b7b9a7 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x70ba951d mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d76fe2 udp_disconnect +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x710811cc lock_sock_nested +EXPORT_SYMBOL vmlinux 0x71144033 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x7119f4f4 key_task_permission +EXPORT_SYMBOL vmlinux 0x71205378 add_timer +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x71421851 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x71514313 cdev_del +EXPORT_SYMBOL vmlinux 0x715ae950 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x715b3e19 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71ddeeed dm_unregister_target +EXPORT_SYMBOL vmlinux 0x7210044e udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x7231d773 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x7258293d __ip_dev_find +EXPORT_SYMBOL vmlinux 0x72630cc2 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7280e0ec sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x728528c7 dquot_initialize +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c7342a aio_put_req +EXPORT_SYMBOL vmlinux 0x72db1510 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73117629 tcf_em_register +EXPORT_SYMBOL vmlinux 0x7320cd16 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x732902af d_delete +EXPORT_SYMBOL vmlinux 0x73398105 dev_close +EXPORT_SYMBOL vmlinux 0x734d580b iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x7381ffbb flex_array_clear +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x73876876 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7399ec1b prepare_binprm +EXPORT_SYMBOL vmlinux 0x739c5268 dst_alloc +EXPORT_SYMBOL vmlinux 0x739f0da3 softnet_data +EXPORT_SYMBOL vmlinux 0x73a74118 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73ac7d7e dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x73b05bd1 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x73cc96f9 bio_map_user +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741d6a3e register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x7420b9e5 __napi_complete +EXPORT_SYMBOL vmlinux 0x7441d885 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x74727751 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748a613f jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x748b6cde simple_dir_operations +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c5ff05 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x75078bad tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x7516bbeb bio_init +EXPORT_SYMBOL vmlinux 0x7519dd68 audit_log_start +EXPORT_SYMBOL vmlinux 0x751bf589 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x751e2cb6 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x752c4490 mutex_unlock +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75663679 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75b5d74f blk_sync_queue +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75dc3ed1 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x75f7a57d init_net +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76232173 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x764bf36e tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x767de750 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x7683d7cc tcp_poll +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76a42c86 i2c_transfer +EXPORT_SYMBOL vmlinux 0x76a5da63 vc_resize +EXPORT_SYMBOL vmlinux 0x76aa55c2 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76f931bd sock_recvmsg +EXPORT_SYMBOL vmlinux 0x76fe2d42 input_set_keycode +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x771d4b55 set_irq_chip +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7740fc02 touch_atime +EXPORT_SYMBOL vmlinux 0x778ca959 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a73416 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x77aa43e3 boot_cpu_data +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d9f79f intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e7e4ba nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7805ae90 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x780ad261 unlock_super +EXPORT_SYMBOL vmlinux 0x780de646 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x78284c58 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x784f7c4f seq_bitmap +EXPORT_SYMBOL vmlinux 0x7850b0db __put_cred +EXPORT_SYMBOL vmlinux 0x7868220b journal_init_dev +EXPORT_SYMBOL vmlinux 0x7881bcb9 block_sync_page +EXPORT_SYMBOL vmlinux 0x78973769 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x78a41fd7 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x78a82a41 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x78ba83c6 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next +EXPORT_SYMBOL vmlinux 0x78debc63 block_write_full_page +EXPORT_SYMBOL vmlinux 0x78df08aa test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794ee704 inet6_bind +EXPORT_SYMBOL vmlinux 0x795cf8c3 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x7968e06a journal_start_commit +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aba23b d_drop +EXPORT_SYMBOL vmlinux 0x79ad3406 arp_send +EXPORT_SYMBOL vmlinux 0x79be01c3 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x79de030c replace_mount_options +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3b632f bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a495b85 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a91fd7c seq_escape +EXPORT_SYMBOL vmlinux 0x7aa88719 __bio_clone +EXPORT_SYMBOL vmlinux 0x7ac51d5f revalidate_disk +EXPORT_SYMBOL vmlinux 0x7ad7c981 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7afadac8 blk_start_request +EXPORT_SYMBOL vmlinux 0x7b00c241 elv_add_request +EXPORT_SYMBOL vmlinux 0x7b053a15 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x7b094048 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b10ab4a current_task +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b255677 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x7b3e31c0 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x7b4318c4 find_vma +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b745b1c inet_select_addr +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7b9d368c kset_register +EXPORT_SYMBOL vmlinux 0x7ba191b3 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x7ba9d804 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bd8084a wake_up_process +EXPORT_SYMBOL vmlinux 0x7bdd5907 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x7bf3a833 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x7bf439de simple_transaction_get +EXPORT_SYMBOL vmlinux 0x7bfdf041 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x7c079ffe blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c273916 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x7c2e1764 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c588e2e __sk_dst_check +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cbaa67e keyring_search +EXPORT_SYMBOL vmlinux 0x7ce4bb5c netdev_features_change +EXPORT_SYMBOL vmlinux 0x7ce94405 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d180d81 scsi_host_get +EXPORT_SYMBOL vmlinux 0x7d3c71c7 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x7d4f85cc generic_block_bmap +EXPORT_SYMBOL vmlinux 0x7d58706d phy_device_register +EXPORT_SYMBOL vmlinux 0x7d5a7d7a udp_poll +EXPORT_SYMBOL vmlinux 0x7d831bb6 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7db83f32 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x7dc5cdeb release_pages +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7ddadb7f pci_bus_type +EXPORT_SYMBOL vmlinux 0x7df1b096 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x7e0d3c3e inet_shutdown +EXPORT_SYMBOL vmlinux 0x7e0f2876 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e1eda3f dqput +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e58e550 inode_init_owner +EXPORT_SYMBOL vmlinux 0x7e690100 request_key +EXPORT_SYMBOL vmlinux 0x7e93d0af __pagevec_release +EXPORT_SYMBOL vmlinux 0x7e9851ee drop_super +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eb2d158 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x7ec66da5 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f1f9f4a acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f456005 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x7f45e19c dquot_quota_off +EXPORT_SYMBOL vmlinux 0x7f5aac80 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x7f5c0afd mutex_lock +EXPORT_SYMBOL vmlinux 0x7f6e8482 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x7f903c17 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x7f99fede kthread_bind +EXPORT_SYMBOL vmlinux 0x7fa91394 tty_port_open +EXPORT_SYMBOL vmlinux 0x7faef7ce account_page_writeback +EXPORT_SYMBOL vmlinux 0x7fc24d4c free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x7fda7fd4 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x7fe66791 d_rehash +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x801ce970 key_validate +EXPORT_SYMBOL vmlinux 0x804103b9 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x804ce3d3 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x8054d547 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x805b3a69 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x8062410a netif_carrier_on +EXPORT_SYMBOL vmlinux 0x80714f61 vmap +EXPORT_SYMBOL vmlinux 0x808d64a4 default_llseek +EXPORT_SYMBOL vmlinux 0x808fe0bf xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x80a81b21 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x80af65ec radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x80b18846 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x80c09aba sg_miter_next +EXPORT_SYMBOL vmlinux 0x80c14495 deny_write_access +EXPORT_SYMBOL vmlinux 0x811defe7 key_unlink +EXPORT_SYMBOL vmlinux 0x8123a6b8 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x812c1a35 inet_del_protocol +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 0x8178f3f8 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x819bf27c ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81a8ead9 seq_read +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dca4d1 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x8204a4e1 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820a8464 padata_start +EXPORT_SYMBOL vmlinux 0x820d64d0 serio_reconnect +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8220ea61 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x822bfe8a acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x828f2f1a jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b61d35 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x82cd24ba netdev_warn +EXPORT_SYMBOL vmlinux 0x82f462a5 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x83510e77 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x8371bb8b bio_integrity_free +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x8384e0b3 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x83863bba phy_disconnect +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83ae2362 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x83e49d0f ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x83f8babf ppp_unit_number +EXPORT_SYMBOL vmlinux 0x83fd71bb set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x84059ae0 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x8449cbaa blk_init_tags +EXPORT_SYMBOL vmlinux 0x844c753a pagecache_write_end +EXPORT_SYMBOL vmlinux 0x844da606 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x8460a0b1 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x847ac9ba ppp_channel_index +EXPORT_SYMBOL vmlinux 0x849d13fd pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84b02bd9 poll_freewait +EXPORT_SYMBOL vmlinux 0x84e5066a generic_file_open +EXPORT_SYMBOL vmlinux 0x84f27479 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x84f534f4 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x84fb16a6 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x85046490 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x8559c531 dm_table_get +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856d7f8d vfs_mknod +EXPORT_SYMBOL vmlinux 0x856e7ad4 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x857960b0 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x857e3b9b neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x85aa4d0f mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x85b7b422 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x8605bb92 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x861dd1f0 file_update_time +EXPORT_SYMBOL vmlinux 0x862555ae pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x863bdddb md_unregister_thread +EXPORT_SYMBOL vmlinux 0x86476309 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86538904 simple_unlink +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866ec25e kill_pgrp +EXPORT_SYMBOL vmlinux 0x86796d55 set_blocksize +EXPORT_SYMBOL vmlinux 0x8682e46a vfs_unlink +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869e96ad add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86dcc71d netif_device_attach +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8708aa64 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x870c6fd8 neigh_for_each +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x876041b8 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87744100 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x87789e69 make_EII_client +EXPORT_SYMBOL vmlinux 0x8785bde3 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878f0074 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x8790807a padata_add_cpu +EXPORT_SYMBOL vmlinux 0x879e15ba posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87af67f9 netdev_notice +EXPORT_SYMBOL vmlinux 0x87aff25b mca_device_claimed +EXPORT_SYMBOL vmlinux 0x87b94bc0 redraw_screen +EXPORT_SYMBOL vmlinux 0x87c9a6f2 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x87d3a5c5 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x87d67abb radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x87dceaa6 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x87fd96ff __break_lease +EXPORT_SYMBOL vmlinux 0x87fd9ac4 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88410ec6 dquot_commit +EXPORT_SYMBOL vmlinux 0x88816de5 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x8887f5d2 scsi_execute +EXPORT_SYMBOL vmlinux 0x888b899a tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88ab6076 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x88d2ad44 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x88d8929d filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x88e53283 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x88f46a26 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x89003ac3 bio_copy_user +EXPORT_SYMBOL vmlinux 0x8904081f cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x890ace41 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x896d6a89 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x89726084 pci_iomap +EXPORT_SYMBOL vmlinux 0x89740850 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897a9cf4 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x89867de0 rfkill_register +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b4574b generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x89ca367f elevator_change +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a09d244 tty_check_change +EXPORT_SYMBOL vmlinux 0x8a207811 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x8a2612b5 genphy_read_status +EXPORT_SYMBOL vmlinux 0x8a2d2f2d netif_napi_add +EXPORT_SYMBOL vmlinux 0x8a2fc154 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x8a53ca0d __quota_error +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a93e66e textsearch_prepare +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aae28e1 eisa_bus_type +EXPORT_SYMBOL vmlinux 0x8ace755d radix_tree_delete +EXPORT_SYMBOL vmlinux 0x8ad29db4 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x8ad2cab4 dma_find_channel +EXPORT_SYMBOL vmlinux 0x8ae545d3 led_blink_set +EXPORT_SYMBOL vmlinux 0x8ae5ae57 journal_create +EXPORT_SYMBOL vmlinux 0x8b136ba4 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b35fa07 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x8b574c76 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b780969 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x8b794db2 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8b971b26 lease_modify +EXPORT_SYMBOL vmlinux 0x8b97eb7a write_one_page +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock +EXPORT_SYMBOL vmlinux 0x8bc98777 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x8c01daf6 seq_open +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c2d2cbe input_register_handle +EXPORT_SYMBOL vmlinux 0x8c5d0d27 bh_submit_read +EXPORT_SYMBOL vmlinux 0x8c649e57 input_open_device +EXPORT_SYMBOL vmlinux 0x8c71769f phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x8c8ae0bb journal_set_features +EXPORT_SYMBOL vmlinux 0x8c910937 generic_write_end +EXPORT_SYMBOL vmlinux 0x8c952f10 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x8caad780 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x8cbdcdec fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd7cece bitmap_unplug +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8d07fcb9 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x8d12da7f tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x8d305cd9 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6e21b9 agp_bridge +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all +EXPORT_SYMBOL vmlinux 0x8dab51c6 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dd5f819 input_close_device +EXPORT_SYMBOL vmlinux 0x8dddf932 key_alloc +EXPORT_SYMBOL vmlinux 0x8df6074c dev_add_pack +EXPORT_SYMBOL vmlinux 0x8dff8573 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e2021ff do_splice_from +EXPORT_SYMBOL vmlinux 0x8e28d96a dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x8e6836f3 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x8e81eee1 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e93e36c pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x8e98ca57 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ed0f699 vga_get +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8eed26b9 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x8efeb99a tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f26dd96 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f50eeb7 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f73cea5 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x8f749162 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x8f750ebd dquot_drop +EXPORT_SYMBOL vmlinux 0x8f882f01 lock_rename +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fb08d7a create_mnt_ns +EXPORT_SYMBOL vmlinux 0x8fe6dad5 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9008389a pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x90174919 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x901836ef filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x906ef277 journal_extend +EXPORT_SYMBOL vmlinux 0x90768c1f generic_writepages +EXPORT_SYMBOL vmlinux 0x9076d086 sock_release +EXPORT_SYMBOL vmlinux 0x908b3223 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90b2945e sock_create +EXPORT_SYMBOL vmlinux 0x90dae506 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x90f9fdfe intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0x91273055 bio_free +EXPORT_SYMBOL vmlinux 0x91273dc8 mb_cache_create +EXPORT_SYMBOL vmlinux 0x913bbb4a xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9147631c elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x91546b07 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x918b7c45 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x91ac5277 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x91bbded3 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x91c29709 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x91cd5ace dm_snap_origin +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923ebb98 nla_reserve +EXPORT_SYMBOL vmlinux 0x924fcf17 proc_mkdir +EXPORT_SYMBOL vmlinux 0x925d41c7 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x9266888c __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x926c61b2 kmap +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92c99c86 kernel_listen +EXPORT_SYMBOL vmlinux 0x92d123f5 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x92f0b1b7 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x934335cf lookup_hash +EXPORT_SYMBOL vmlinux 0x9343a876 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9355058b i2c_clients_command +EXPORT_SYMBOL vmlinux 0x93625e49 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x936db080 misc_deregister +EXPORT_SYMBOL vmlinux 0x93975a01 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c4b94b proto_register +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93c9a30b kernel_getpeername +EXPORT_SYMBOL vmlinux 0x93e753ca alloc_disk_node +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x943a3b3c sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x9498d1b8 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94d85368 do_sync_read +EXPORT_SYMBOL vmlinux 0x953633ed sock_init_data +EXPORT_SYMBOL vmlinux 0x953b796a uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x95452d30 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9546cc3e bio_kmalloc +EXPORT_SYMBOL vmlinux 0x9549acc5 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95688114 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x95735c61 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x9579d74a dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x959ac8ef jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x959c1ac5 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x95c8da10 release_firmware +EXPORT_SYMBOL vmlinux 0x95cdf21b dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x95de012d inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x960010fb jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x9626a0cd inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x96371d94 __block_write_begin +EXPORT_SYMBOL vmlinux 0x9640adc5 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x96585ff5 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x9667a487 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96a0cea8 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96d48e3e mpage_writepage +EXPORT_SYMBOL vmlinux 0x97126240 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x97147396 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x9734476e dev_uc_flush +EXPORT_SYMBOL vmlinux 0x97448202 tty_register_driver +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97878fb7 find_or_create_page +EXPORT_SYMBOL vmlinux 0x9797fb06 flush_signals +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97e0f6a5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x97e2b378 freeze_super +EXPORT_SYMBOL vmlinux 0x97e6bc49 inet_ioctl +EXPORT_SYMBOL vmlinux 0x97f8ecf3 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x980a8661 inode_init_always +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9877f1d4 module_layout +EXPORT_SYMBOL vmlinux 0x98830ddd ipv4_specific +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98be7f8a tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x98c686b8 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x98f3d3b8 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x9910ee79 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x991a4db9 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x992fa0d5 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x99367bda unregister_cdrom +EXPORT_SYMBOL vmlinux 0x993ca38b do_SAK +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9964ea1d inode_add_bytes +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a9d0d5 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x99aacbf9 ethtool_op_get_flags +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 0x99ea5588 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x99f097b8 fb_set_var +EXPORT_SYMBOL vmlinux 0x9a0cd997 sock_no_getname +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a201cbc set_device_ro +EXPORT_SYMBOL vmlinux 0x9a68bd9a journal_get_create_access +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9ab09a3c lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x9adb7647 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x9afdff3b pnp_start_dev +EXPORT_SYMBOL vmlinux 0x9b0eb975 follow_up +EXPORT_SYMBOL vmlinux 0x9b1714fd seq_release +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b41c80d block_write_end +EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b7973be vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x9b8d6446 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bdb682b freeze_bdev +EXPORT_SYMBOL vmlinux 0x9be4e76a intel_gtt_get +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 0x9c576474 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x9c5dbbb1 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c9b1d96 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x9c9c85e6 dcb_getapp +EXPORT_SYMBOL vmlinux 0x9cb164ae input_set_capability +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce67ec0 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9cfe5ae3 __breadahead +EXPORT_SYMBOL vmlinux 0x9d2e8540 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3f6b5b alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x9d50b31a framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x9d69e687 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x9d7a3bd7 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0x9d823edd blk_requeue_request +EXPORT_SYMBOL vmlinux 0x9da4e7c7 page_address +EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x9deb4b41 brioctl_set +EXPORT_SYMBOL vmlinux 0x9df7802b vfs_rename +EXPORT_SYMBOL vmlinux 0x9dfd9e71 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x9e03a6b5 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e1bdc28 init_timer_key +EXPORT_SYMBOL vmlinux 0x9e1ce7b9 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4d0af3 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x9e5cf242 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e82518f add_disk +EXPORT_SYMBOL vmlinux 0x9e905fbb padata_alloc +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea1d237 neigh_update +EXPORT_SYMBOL vmlinux 0x9ea3450f pci_disable_msi +EXPORT_SYMBOL vmlinux 0x9eb65119 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9eca2806 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f1efa9e tty_mutex +EXPORT_SYMBOL vmlinux 0x9f21a993 misc_register +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f58d2a6 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x9f63df6a netlink_broadcast +EXPORT_SYMBOL vmlinux 0x9f653943 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x9f83e096 km_query +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9f93e1 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x9fa25542 dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x9fab3107 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x9faf2e1d phy_driver_register +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fd47f0f sock_no_poll +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0xa000dff7 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xa01ba786 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xa037ab8d set_create_files_as +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07e403b pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b7fdcc vfs_getattr +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d42ff7 seq_putc +EXPORT_SYMBOL vmlinux 0xa0eae25c blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f74ce7 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xa0fa4b78 sockfd_lookup +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 0xa1205053 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa128dcb6 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xa12cd4e5 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xa139aa3d blk_rq_init +EXPORT_SYMBOL vmlinux 0xa1401799 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1552232 sock_register +EXPORT_SYMBOL vmlinux 0xa176f98f tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xa18a6a54 sock_i_ino +EXPORT_SYMBOL vmlinux 0xa196cd28 dma_set_mask +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1ad51d8 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1c37273 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c83710 vfs_readlink +EXPORT_SYMBOL vmlinux 0xa1c84bfe xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xa1c9880f __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa217eec6 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xa2204b9f skb_trim +EXPORT_SYMBOL vmlinux 0xa23069e9 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xa2609ed2 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xa2706b08 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xa27f11cd thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0xa28418dc xfrm_register_km +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b61eaa lock_super +EXPORT_SYMBOL vmlinux 0xa2d74edc dev_get_flags +EXPORT_SYMBOL vmlinux 0xa2e62d4b generic_unplug_device +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f5ca2a ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xa307adf2 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35b2633 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3637692 fsync_bdev +EXPORT_SYMBOL vmlinux 0xa3646127 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xa36a9b95 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xa36f36e4 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xa3826ac3 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xa39136ce processors +EXPORT_SYMBOL vmlinux 0xa3aa0db1 dm_table_put +EXPORT_SYMBOL vmlinux 0xa3b4462f con_copy_unimap +EXPORT_SYMBOL vmlinux 0xa3b8107b xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xa3cfb88a mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0xa3de4f69 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xa3f2fd89 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xa439819f get_phy_device +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43deed7 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4428d42 bio_pair_release +EXPORT_SYMBOL vmlinux 0xa455a46a kobject_add +EXPORT_SYMBOL vmlinux 0xa4a0b7e9 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa4a99db3 cdev_add +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4b99859 agp_backend_release +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e642da scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xa4f98408 md_error +EXPORT_SYMBOL vmlinux 0xa500806e md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xa5021d2c dev_load +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa559da38 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5fe2087 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xa625af9e inet_register_protosw +EXPORT_SYMBOL vmlinux 0xa62833b2 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa65fdfd4 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xa67e37b1 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6a18d38 kobject_set_name +EXPORT_SYMBOL vmlinux 0xa6ada143 genphy_update_link +EXPORT_SYMBOL vmlinux 0xa6b10ba9 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xa6be87bb inet_frag_find +EXPORT_SYMBOL vmlinux 0xa6cad18d tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e5c796 genphy_suspend +EXPORT_SYMBOL vmlinux 0xa6e62ed5 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xa6f0be30 scsi_register +EXPORT_SYMBOL vmlinux 0xa70056df kill_anon_super +EXPORT_SYMBOL vmlinux 0xa702f43c arp_find +EXPORT_SYMBOL vmlinux 0xa70cd0c7 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa739a649 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xa75b649f mdiobus_read +EXPORT_SYMBOL vmlinux 0xa7912979 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xa7d88a7d napi_gro_flush +EXPORT_SYMBOL vmlinux 0xa7da1d3c tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xa7e4985b acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xa7e8d401 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xa7f410bb dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xa817ba31 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa86e22e0 dquot_acquire +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8b52090 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xa8b65285 eisa_driver_register +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8db1100 __f_setown +EXPORT_SYMBOL vmlinux 0xa8e0aaf8 phy_start +EXPORT_SYMBOL vmlinux 0xa8e1f5a7 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa91739a2 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa92ab737 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xa941b800 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xa9461eb0 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xa94e206f journal_check_available_features +EXPORT_SYMBOL vmlinux 0xa9818381 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xa993e0c0 km_policy_notify +EXPORT_SYMBOL vmlinux 0xa9b21aad fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xa9b32161 inet_bind +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9c1b627 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xa9c9519d tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xa9cb824d generic_getxattr +EXPORT_SYMBOL vmlinux 0xa9d0401e kunmap +EXPORT_SYMBOL vmlinux 0xa9d8315f vfs_llseek +EXPORT_SYMBOL vmlinux 0xa9d9d438 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xa9fc140a ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xa9fe4bb3 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xaa002b2b get_write_access +EXPORT_SYMBOL vmlinux 0xaa11c1a6 igrab +EXPORT_SYMBOL vmlinux 0xaa4e7851 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa78862d tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa87b45b otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xaa8ec5b9 input_release_device +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaaaf0339 d_path +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaaed6262 mutex_trylock +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0d5e29 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xab1a35a3 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xab495db4 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xab51022c ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab632a58 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabe555dd elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xabebd090 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac0cc434 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac219208 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xac2e82c3 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xac41f76e mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0xaca20605 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xacab7c73 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace1bf1c send_sig +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad21dd8c tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xad2656fd journal_start +EXPORT_SYMBOL vmlinux 0xad36c4d3 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad503e8e mmc_host_disable +EXPORT_SYMBOL vmlinux 0xad881067 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xad9bd82c dev_err +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadbb3090 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xadc05482 napi_complete +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xaddfbf62 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xade88a58 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xae0e91a9 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xae1a3ec3 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xae269551 genphy_resume +EXPORT_SYMBOL vmlinux 0xae315a3f phy_start_aneg +EXPORT_SYMBOL vmlinux 0xae6b77a4 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaec20e01 wireless_send_event +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaeedf41e bdi_unregister +EXPORT_SYMBOL vmlinux 0xaef60a8a vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xaefa9dd4 skb_store_bits +EXPORT_SYMBOL vmlinux 0xaf1cc80d d_splice_alias +EXPORT_SYMBOL vmlinux 0xaf352214 pnp_find_card +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafa2e295 set_binfmt +EXPORT_SYMBOL vmlinux 0xafc0cdd6 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xafc7a068 write_cache_pages +EXPORT_SYMBOL vmlinux 0xafcae1c0 blk_end_request +EXPORT_SYMBOL vmlinux 0xafdc8846 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xafe614cb neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xafe81879 journal_wipe +EXPORT_SYMBOL vmlinux 0xaff9a2ab alloc_disk +EXPORT_SYMBOL vmlinux 0xaffd4811 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb00f658f pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xb0392a56 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xb04e3bb9 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xb05651b0 skb_set_dev +EXPORT_SYMBOL vmlinux 0xb0693077 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xb06f5941 serio_open +EXPORT_SYMBOL vmlinux 0xb0768eb1 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb0976dab pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xb0a8fd0a intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xb0b3ef13 fasync_helper +EXPORT_SYMBOL vmlinux 0xb0b46f3e bio_alloc +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0b914cf pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xb0d92420 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e350ce __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xb10004e4 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xb1062edb pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xb10c5e8e __blk_run_queue +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb115efe4 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb126b919 ps2_command +EXPORT_SYMBOL vmlinux 0xb14269d4 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xb146d95d mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xb1559aad blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb17f5d3e netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xb1802ecf __lookup_one_len +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19a509f jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xb1a1f74c __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xb1a6d90e ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1db6c9a scsi_ioctl +EXPORT_SYMBOL vmlinux 0xb1f0271d pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb2099227 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb22dd11c md_write_start +EXPORT_SYMBOL vmlinux 0xb22e8567 get_phy_id +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2352288 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xb24db052 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2ad0de3 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xb2c2e18c vc_cons +EXPORT_SYMBOL vmlinux 0xb2d1e2ef cpufreq_get_policy +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 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb331aeb8 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xb34378b9 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xb344b0ff pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb35ae6da mmc_request_done +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb40c4513 migrate_page +EXPORT_SYMBOL vmlinux 0xb40d4925 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xb4156911 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb455573f led_brightness_set +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb456b3bb __ht_create_irq +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb49cb882 __ps2_command +EXPORT_SYMBOL vmlinux 0xb4b073a6 kill_pid +EXPORT_SYMBOL vmlinux 0xb4b17a63 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xb4b59840 __devm_request_region +EXPORT_SYMBOL vmlinux 0xb4e18963 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xb4ec7d09 mii_check_link +EXPORT_SYMBOL vmlinux 0xb4f781e1 dget_parent +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5103962 scsi_print_command +EXPORT_SYMBOL vmlinux 0xb5209524 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0xb521bdf3 arp_create +EXPORT_SYMBOL vmlinux 0xb52e888e register_console +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb538633c serio_interrupt +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54d1f83 scsi_execute_req +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb5830d66 journal_restart +EXPORT_SYMBOL vmlinux 0xb595d4b0 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5bdd013 register_key_type +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d37a61 kstat +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5ea5018 get_disk +EXPORT_SYMBOL vmlinux 0xb6056fea xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xb61cfc79 is_container_init +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb65f9699 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xb6630e8a security_file_permission +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6816b9a inet_getname +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6a5a19b seq_printf +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6aacf0a dump_write +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c809a0 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0xb6ddf410 inode_lock +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb704f7e1 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xb71e3459 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb76b887d bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xb76c61c3 dm_snap_cow +EXPORT_SYMBOL vmlinux 0xb782595d dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0xb7a22094 console_start +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7cb2fad fifo_set_limit +EXPORT_SYMBOL vmlinux 0xb80d7159 wait_iff_congested +EXPORT_SYMBOL vmlinux 0xb82178be tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xb858c070 mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb873c58f skb_checksum_help +EXPORT_SYMBOL vmlinux 0xb88eefd5 inet6_release +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8abc758 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xb8e52abc inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xb8e7a9f7 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb91d141c i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xb94be953 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xb978357f set_pages_uc +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb992a64a xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xb99a7cf8 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xb9a626f7 end_writeback +EXPORT_SYMBOL vmlinux 0xb9dbfb3b devm_ioremap +EXPORT_SYMBOL vmlinux 0xb9e06e69 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9f64c9e dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba03cf52 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5ba2f3 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xba71b4bb fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xba8e967e xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xba98036d tty_vhangup +EXPORT_SYMBOL vmlinux 0xbaa0a12f inode_set_bytes +EXPORT_SYMBOL vmlinux 0xbaa263a0 inet_release +EXPORT_SYMBOL vmlinux 0xbaa46248 register_framebuffer +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbab92827 __d_drop +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbaf42155 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xbb023f9f scsi_device_put +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1f6513 commit_creds +EXPORT_SYMBOL vmlinux 0xbb209ead isapnp_protocol +EXPORT_SYMBOL vmlinux 0xbb388e0d acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xbb55dcca single_release +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb6ad7e2 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xbb6e8fe1 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb82edaf blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbb816b0 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbba8ec2 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xbbcbdd09 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0xbbfad06b pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xbbfd195c read_cache_page_async +EXPORT_SYMBOL vmlinux 0xbc11f89e jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xbc132c6b tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc2ca2e1 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xbc2e5efd swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xbc34add2 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xbc516788 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xbc5b7669 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xbc8a849f llc_sap_open +EXPORT_SYMBOL vmlinux 0xbca93ce6 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xbcb04539 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xbcb98e07 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xbcbadda5 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbccf940f xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xbce8f729 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xbcebd3e5 force_sig +EXPORT_SYMBOL vmlinux 0xbd04d026 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xbd060cbe agp_find_bridge +EXPORT_SYMBOL vmlinux 0xbd0ad60a tty_set_operations +EXPORT_SYMBOL vmlinux 0xbd31b2c4 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbd4e0b69 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbde67113 tcp_prot +EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdfbb9e4 fb_show_logo +EXPORT_SYMBOL vmlinux 0xbe079878 eth_header_parse +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe188d04 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xbe23b9ed radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe9b3d0f abort_creds +EXPORT_SYMBOL vmlinux 0xbea469cb block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf17a4f0 skb_checksum +EXPORT_SYMBOL vmlinux 0xbf332266 pci_target_state +EXPORT_SYMBOL vmlinux 0xbf4e22fe bioset_create +EXPORT_SYMBOL vmlinux 0xbf6e415b pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf9b9521 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa41c0f netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xbfc09de6 kill_block_super +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc32350 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0xbfcacb59 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xbfde5633 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc00a3a17 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc0389a99 pci_select_bars +EXPORT_SYMBOL vmlinux 0xc045f03b generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xc049d7f8 dev_trans_start +EXPORT_SYMBOL vmlinux 0xc0564d58 input_free_device +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0785f74 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xc08b316e blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0b3d22c dev_uc_del +EXPORT_SYMBOL vmlinux 0xc0cdd4c3 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc13127bd abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xc14e669e tcp_check_req +EXPORT_SYMBOL vmlinux 0xc1758bfe invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xc17bc739 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xc1bc65d4 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d5249d ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xc227e969 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc257b8de sk_common_release +EXPORT_SYMBOL vmlinux 0xc25a248f netdev_crit +EXPORT_SYMBOL vmlinux 0xc266b3b9 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc29a02cf cfb_imageblit +EXPORT_SYMBOL vmlinux 0xc2b4d582 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e8e1c6 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xc30e4919 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xc313a79a llc_sap_find +EXPORT_SYMBOL vmlinux 0xc326edd7 seq_write +EXPORT_SYMBOL vmlinux 0xc330938a agp_create_memory +EXPORT_SYMBOL vmlinux 0xc33d129a file_permission +EXPORT_SYMBOL vmlinux 0xc3449ade mii_check_media +EXPORT_SYMBOL vmlinux 0xc38cc2b2 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d6e100 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xc3dc31ea inet_recvmsg +EXPORT_SYMBOL vmlinux 0xc3e0dc94 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xc3e6361e ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xc3ee41e9 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xc3f17ace vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc40ee750 dqget +EXPORT_SYMBOL vmlinux 0xc4278a37 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xc434fb23 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xc43fc25b __scm_destroy +EXPORT_SYMBOL vmlinux 0xc452493d in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a60d74 agp_copy_info +EXPORT_SYMBOL vmlinux 0xc4b1bb16 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xc4faa6da scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xc50d0955 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xc50e55f6 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xc523a710 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc54a59f6 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc587d950 get_sb_bdev +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f305e6 mca_device_read_pos +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc6051aae blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xc605db56 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc6469bac xfrm_lookup +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc669fe68 udplite_prot +EXPORT_SYMBOL vmlinux 0xc67bd7e5 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xc6890b17 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6a1522c blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xc6a8e897 register_8022_client +EXPORT_SYMBOL vmlinux 0xc6c242f8 truncate_setsize +EXPORT_SYMBOL vmlinux 0xc6c82c72 unload_nls +EXPORT_SYMBOL vmlinux 0xc6cc72ca eth_header_cache +EXPORT_SYMBOL vmlinux 0xc6d4afaa inet_frags_init +EXPORT_SYMBOL vmlinux 0xc6dfae07 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xc700bb57 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xc703654f thaw_bdev +EXPORT_SYMBOL vmlinux 0xc71591f0 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc717d820 sk_filter +EXPORT_SYMBOL vmlinux 0xc71def50 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc724b936 input_flush_device +EXPORT_SYMBOL vmlinux 0xc727967e blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xc744f0e0 blk_init_queue +EXPORT_SYMBOL vmlinux 0xc75bbb84 padata_do_serial +EXPORT_SYMBOL vmlinux 0xc7620293 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc78fe41b generic_removexattr +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b342c6 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xc7cd5531 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xc7d2b2aa sock_no_connect +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7f7491e sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xc7fd692b generic_setxattr +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc83c4a41 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xc8473ffd security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84c533a fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xc84f7b47 dquot_disable +EXPORT_SYMBOL vmlinux 0xc886002f dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a37b2d cdrom_open +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c3762f mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xc8f0b005 iunique +EXPORT_SYMBOL vmlinux 0xc8f19b4e skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xc8f559d7 dev_get_stats +EXPORT_SYMBOL vmlinux 0xc90bff12 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xc9137bd3 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xc91a95fd elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xc94ccecc ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xc94d36f0 generic_listxattr +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc965bc12 kill_litter_super +EXPORT_SYMBOL vmlinux 0xc969f4de generic_setlease +EXPORT_SYMBOL vmlinux 0xc9a1ebac inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b2123d simple_getattr +EXPORT_SYMBOL vmlinux 0xc9c28e17 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xc9d63aca blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xca117d41 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xca349fb8 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca9c402f napi_frags_finish +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcac6c908 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcad8b1d7 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xcaec9bc7 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xcafb0e06 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb4583e6 tty_hangup +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb7b046f xrlim_allow +EXPORT_SYMBOL vmlinux 0xcb7c6589 scsi_unregister +EXPORT_SYMBOL vmlinux 0xcb9be3de sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xcbbac22a swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xcbbd1e5e padata_free +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbccaa76 inet_sendpage +EXPORT_SYMBOL vmlinux 0xcbf2e89d ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc38e192 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc5b510d pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xcc5bb9c4 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc9334a4 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcccb8f95 setattr_copy +EXPORT_SYMBOL vmlinux 0xcd20d431 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2e1a61 single_open +EXPORT_SYMBOL vmlinux 0xcd4808f1 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xcd53484c tty_kref_put +EXPORT_SYMBOL vmlinux 0xcd53d7e0 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xcd7bacec generic_permission +EXPORT_SYMBOL vmlinux 0xcd7e1efd vfs_mkdir +EXPORT_SYMBOL vmlinux 0xcd955d71 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xcddf26eb i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xcdf7a17d dev_alert +EXPORT_SYMBOL vmlinux 0xce095088 mod_timer +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce1bd894 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xce218396 noop_qdisc +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce97d8cf bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xceabe48b nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xcec023ea fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xcecef285 flex_array_free +EXPORT_SYMBOL vmlinux 0xcedc1924 follow_pfn +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcef18941 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf16dbbc pci_dev_put +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf47a04a dentry_path_raw +EXPORT_SYMBOL vmlinux 0xcf68deb8 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcfa64b11 load_nls_default +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfc7948f search_binary_handler +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xd010d8fc tcp_ioctl +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01fc9b1 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xd04ac343 mddev_congested +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08eaa05 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b427d0 first_ec +EXPORT_SYMBOL vmlinux 0xd0d6bb2e generic_write_checks +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0ce80 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fed2df tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1153025 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd11d6079 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd1384b85 __lock_buffer +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1485fe5 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xd166481b request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xd1760c45 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xd1768223 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1e1b1b6 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xd1ec9272 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd21a777f blk_unplug +EXPORT_SYMBOL vmlinux 0xd21d9b7c alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd21dbd76 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xd225d13b mmc_host_enable +EXPORT_SYMBOL vmlinux 0xd22b8360 ip_defrag +EXPORT_SYMBOL vmlinux 0xd22fbe9e blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd23c652c blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xd23c8104 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xd240e905 security_path_mknod +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 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd288e5cb ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xd28fb7cd new_inode +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29a8db9 mca_device_set_claim +EXPORT_SYMBOL vmlinux 0xd29c6d4a tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xd2a1644f security_path_rename +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2c8a014 blk_get_request +EXPORT_SYMBOL vmlinux 0xd2d49fa0 pci_get_class +EXPORT_SYMBOL vmlinux 0xd2e17b67 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2f2db58 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xd2f5f24f agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xd31be3ca acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xd31e287f vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xd32507fa mmc_erase +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd35ee5b9 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xd37d5991 ilookup5 +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3fa7a74 _dev_info +EXPORT_SYMBOL vmlinux 0xd40e9ca7 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xd429344c tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd4992ccc pci_match_id +EXPORT_SYMBOL vmlinux 0xd4a55274 i2c_master_send +EXPORT_SYMBOL vmlinux 0xd4dc75a0 agp_generic_enable +EXPORT_SYMBOL vmlinux 0xd4e60bc5 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xd4f7b897 mount_ns +EXPORT_SYMBOL vmlinux 0xd50253c1 vfs_statfs +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd51f1c5a sk_run_filter +EXPORT_SYMBOL vmlinux 0xd5277e25 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xd5432f57 spi_dv_device +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd553dd77 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xd5542131 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xd55b93f5 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd591179b qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c107fd inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xd5cb7055 journal_destroy +EXPORT_SYMBOL vmlinux 0xd5ce120c dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xd5d9034f pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xd5df018d iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xd5f88271 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd6209a99 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd64c58fe __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd651e98e tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xd656b336 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xd6690201 dquot_transfer +EXPORT_SYMBOL vmlinux 0xd671a354 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xd67351fd get_user_pages +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6c01cbe md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xd6e6ec3e try_to_release_page +EXPORT_SYMBOL vmlinux 0xd6ebdd38 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xd6ee392c tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7000059 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xd700b3aa mmc_resume_host +EXPORT_SYMBOL vmlinux 0xd7104b86 dcache_readdir +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd71d17a3 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xd747f782 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a46923 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xd7b73417 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xd7ce96c2 mntget +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7de8db9 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f1f11d mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xd807be6f blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xd80f7b3b unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xd836c694 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xd83aa8a2 dump_trace +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd858a535 journal_ack_err +EXPORT_SYMBOL vmlinux 0xd861d4bb padata_stop +EXPORT_SYMBOL vmlinux 0xd8662cd8 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xd8744808 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xd88fba0b rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8c7eb3c scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f49ead simple_set_mnt +EXPORT_SYMBOL vmlinux 0xd904b488 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd9243178 mca_register_driver +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd939f179 posix_test_lock +EXPORT_SYMBOL vmlinux 0xd942b0fe __mutex_init +EXPORT_SYMBOL vmlinux 0xd95b8a79 input_allocate_device +EXPORT_SYMBOL vmlinux 0xd96f297d rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98d9592 __dst_free +EXPORT_SYMBOL vmlinux 0xd99177e5 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9e909e7 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xd9e9dc24 journal_init_inode +EXPORT_SYMBOL vmlinux 0xd9f34e82 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xd9f61ed1 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda1ec885 sg_miter_start +EXPORT_SYMBOL vmlinux 0xda20ea91 nf_log_register +EXPORT_SYMBOL vmlinux 0xda292612 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xda2dd396 set_anon_super +EXPORT_SYMBOL vmlinux 0xda377c97 rt6_lookup +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaf1ac80 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb20cfe1 pci_dev_get +EXPORT_SYMBOL vmlinux 0xdb58483e __inet6_hash +EXPORT_SYMBOL vmlinux 0xdb622002 blk_plug_device +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb94f3da unlock_rename +EXPORT_SYMBOL vmlinux 0xdbbeebf6 notify_change +EXPORT_SYMBOL vmlinux 0xdbc00ea9 km_policy_expired +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbdb8b4d bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xdbdec47e netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xdbdf1a3a generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xdbe5f201 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdbeaf1c5 generic_show_options +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0713fc free_task +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc171d68 set_pages_x +EXPORT_SYMBOL vmlinux 0xdc17891e scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xdc193be0 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2f40fc dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc664016 netlink_ack +EXPORT_SYMBOL vmlinux 0xdca72986 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xdcd54182 fb_find_mode +EXPORT_SYMBOL vmlinux 0xdcd79ad6 start_tty +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd4d6df1 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xdd6ed945 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xdd9051b9 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0xddb27d9a dev_printk +EXPORT_SYMBOL vmlinux 0xddbab06c pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xddbf011e ppp_dev_name +EXPORT_SYMBOL vmlinux 0xddc3c2c7 user_revoke +EXPORT_SYMBOL vmlinux 0xdde317db skb_copy +EXPORT_SYMBOL vmlinux 0xddfc94ca simple_lookup +EXPORT_SYMBOL vmlinux 0xddfd3f22 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xddfeefce qdisc_list_del +EXPORT_SYMBOL vmlinux 0xde003935 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xde0a1164 pci_get_device +EXPORT_SYMBOL vmlinux 0xde0a9bc4 unregister_console +EXPORT_SYMBOL vmlinux 0xde393f09 aio_complete +EXPORT_SYMBOL vmlinux 0xde591704 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xde594dce pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xde5de08e request_firmware +EXPORT_SYMBOL vmlinux 0xde6d6402 register_netdev +EXPORT_SYMBOL vmlinux 0xde6e6d27 unregister_nls +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde8ae38a console_stop +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xded8545c generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xdee8a042 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xdef40f89 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xdf027fa4 skb_pad +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf317717 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf813357 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf99632d scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfc6d14a rfkill_unregister +EXPORT_SYMBOL vmlinux 0xdfd58b01 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xe00166de mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xe0126008 follow_down +EXPORT_SYMBOL vmlinux 0xe042b1bf mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xe065ff12 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xe069919a dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0838cda iterate_mounts +EXPORT_SYMBOL vmlinux 0xe08a064b soft_cursor +EXPORT_SYMBOL vmlinux 0xe08b5a91 del_gendisk +EXPORT_SYMBOL vmlinux 0xe09230b0 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xe094d6f9 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0afba61 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0d815b2 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1413edb dquot_file_open +EXPORT_SYMBOL vmlinux 0xe1415f38 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xe1423843 c1e_detected +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe192b8b5 mmc_add_host +EXPORT_SYMBOL vmlinux 0xe1a775e7 dentry_unhash +EXPORT_SYMBOL vmlinux 0xe1bc7ede del_timer_sync +EXPORT_SYMBOL vmlinux 0xe1c3de1f tty_unregister_device +EXPORT_SYMBOL vmlinux 0xe208efca tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26d5d87 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xe28d6a41 mntput +EXPORT_SYMBOL vmlinux 0xe2b0c34e generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe348c6cb inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xe35203ce find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xe360e889 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xe37f511d d_instantiate +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3bfd912 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3c6f386 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xe3d123c3 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xe3d1278a iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xe3e458fd pci_enable_msix +EXPORT_SYMBOL vmlinux 0xe3e9c5e8 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xe3f82546 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove +EXPORT_SYMBOL vmlinux 0xe40d3522 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xe41d48eb jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xe4313acb journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43c04b9 d_alloc +EXPORT_SYMBOL vmlinux 0xe446558a make_bad_inode +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe47c66fa kthread_create +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4850567 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe4aadae2 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe4b83d37 nf_afinfo +EXPORT_SYMBOL vmlinux 0xe4beccc7 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xe4d67e97 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xe4f0a3db mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xe506e694 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe554d8e3 pci_save_state +EXPORT_SYMBOL vmlinux 0xe5568e39 mca_device_status +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe55fb84c phy_device_free +EXPORT_SYMBOL vmlinux 0xe5610c02 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5fe8066 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xe6186804 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xe6458c55 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xe64975a0 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6d79482 dm_io +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 0xe7338de0 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xe734e44b scsi_add_device +EXPORT_SYMBOL vmlinux 0xe7380f63 kset_unregister +EXPORT_SYMBOL vmlinux 0xe7452e86 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe76c3a99 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xe7735d5e i2c_use_client +EXPORT_SYMBOL vmlinux 0xe78e37f1 current_fs_time +EXPORT_SYMBOL vmlinux 0xe7a2f6e9 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xe7b4ef7a textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xe7cb5bab free_netdev +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe81ef3ff generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xe82107be md_done_sync +EXPORT_SYMBOL vmlinux 0xe82ea4ea ps2_init +EXPORT_SYMBOL vmlinux 0xe83bedad input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe85665b8 consume_skb +EXPORT_SYMBOL vmlinux 0xe8575c4f jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xe863500a blk_free_tags +EXPORT_SYMBOL vmlinux 0xe865b728 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xe8730788 set_trace_device +EXPORT_SYMBOL vmlinux 0xe877fed0 sock_no_accept +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87a0f5f tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xe8837320 blkdev_put +EXPORT_SYMBOL vmlinux 0xe89d4e9d ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe919966e generic_readlink +EXPORT_SYMBOL vmlinux 0xe922c9c7 pipe_unlock +EXPORT_SYMBOL vmlinux 0xe93afcc1 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe95fddd3 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xe9900716 init_special_inode +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9df5ffd vfs_readv +EXPORT_SYMBOL vmlinux 0xe9e652a3 ether_setup +EXPORT_SYMBOL vmlinux 0xe9ebd260 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xe9f84295 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0e7b60 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea18f250 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xea447e8e tty_shutdown +EXPORT_SYMBOL vmlinux 0xea5dcdc2 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xea6ce547 scsi_device_get +EXPORT_SYMBOL vmlinux 0xea6d0c67 scsi_free_command +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea851144 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9609de ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeaa99d6c scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xeac4433d agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0xeacd793f blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeae31f92 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaf40c3d do_munmap +EXPORT_SYMBOL vmlinux 0xeb262700 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xeb3cab6c hex2bin +EXPORT_SYMBOL vmlinux 0xeb54a419 iget5_locked +EXPORT_SYMBOL vmlinux 0xeb77272f mnt_pin +EXPORT_SYMBOL vmlinux 0xeb876497 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xebb7205e xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xebcb8aba padata_do_parallel +EXPORT_SYMBOL vmlinux 0xebf3ea53 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xec098107 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2d11b3 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec3ce543 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xec3f6cb2 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xec47b31c mark_info_dirty +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec559259 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xec6d19c6 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xec7078b3 elevator_init +EXPORT_SYMBOL vmlinux 0xec861154 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0xec869516 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xec918735 deactivate_super +EXPORT_SYMBOL vmlinux 0xec9dc7b5 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xeca3ef52 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0xeca6d974 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xecb538ec submit_bh +EXPORT_SYMBOL vmlinux 0xecd08404 sock_map_fd +EXPORT_SYMBOL vmlinux 0xecd13dca default_file_splice_read +EXPORT_SYMBOL vmlinux 0xecdaf2ec set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xece0d014 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xecfe9d5e put_tty_driver +EXPORT_SYMBOL vmlinux 0xed0b4d6b jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xed0daca9 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xed1377b4 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xed13e45b dev_uc_init +EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed31e2a2 sock_update_classid +EXPORT_SYMBOL vmlinux 0xed618858 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xed7173bf bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xed7be940 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xed7d8f8b x86_hyper +EXPORT_SYMBOL vmlinux 0xed85f477 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedad1fd9 inode_init_once +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd3207c vmtruncate +EXPORT_SYMBOL vmlinux 0xeddec09a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xede69095 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xedf7db2b kobject_init +EXPORT_SYMBOL vmlinux 0xee16df79 agp_put_bridge +EXPORT_SYMBOL vmlinux 0xee1e57a3 journal_clear_err +EXPORT_SYMBOL vmlinux 0xee2cda5c tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee696504 kmem_cache_name +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeec68ec9 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xeee20aaf kernel_read +EXPORT_SYMBOL vmlinux 0xeef07c00 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xef18bec1 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef350963 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef5214f7 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef802792 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefaa4c1c dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xefbb7988 skb_make_writable +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf009872b fget +EXPORT_SYMBOL vmlinux 0xf0513fc7 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf067adfd scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xf09c0111 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf0bf7068 acpi_root_dir +EXPORT_SYMBOL vmlinux 0xf0d22416 xfrm_dst_ifdown +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 0xf1191ac4 dev_mc_add +EXPORT_SYMBOL vmlinux 0xf11c2a2b tty_free_termios +EXPORT_SYMBOL vmlinux 0xf11c3d1c scsi_block_requests +EXPORT_SYMBOL vmlinux 0xf11ec69d qdisc_reset +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf13e15d0 sk_wait_data +EXPORT_SYMBOL vmlinux 0xf16978ee dma_async_device_register +EXPORT_SYMBOL vmlinux 0xf16c01a9 sk_stream_error +EXPORT_SYMBOL vmlinux 0xf16cd813 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xf17335b4 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xf184e06c __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xf1912275 dquot_destroy +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a1309c lro_receive_skb +EXPORT_SYMBOL vmlinux 0xf1aee57f acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xf1c5173e agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e5f0a1 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f36944 may_umount_tree +EXPORT_SYMBOL vmlinux 0xf201135e pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xf201ce02 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf22ba06f task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xf230c79f __blk_end_request +EXPORT_SYMBOL vmlinux 0xf2329f8a tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2495cab ppp_input +EXPORT_SYMBOL vmlinux 0xf24dfce0 put_io_context +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2b55a7f vlan_gro_frags +EXPORT_SYMBOL vmlinux 0xf2bb31cb sk_reset_timer +EXPORT_SYMBOL vmlinux 0xf2c31981 vfs_symlink +EXPORT_SYMBOL vmlinux 0xf2ce8b69 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xf2dc6936 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2f6d77a bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xf2fae8a6 dquot_resume +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf32dabd5 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf3415a62 dev_addr_init +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf3463434 amd_northbridges +EXPORT_SYMBOL vmlinux 0xf350e878 bdi_destroy +EXPORT_SYMBOL vmlinux 0xf37843d4 sync_inode +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf392bd72 neigh_create +EXPORT_SYMBOL vmlinux 0xf394d011 register_filesystem +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3af886c update_region +EXPORT_SYMBOL vmlinux 0xf3b2417c nf_getsockopt +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf44827f4 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xf45cce8e scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xf45e6dc2 pcim_iomap +EXPORT_SYMBOL vmlinux 0xf46e7c4e mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0xf4779222 uart_register_driver +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf495f79b blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4a764c4 rfkill_destroy +EXPORT_SYMBOL vmlinux 0xf4b12c5b __netif_schedule +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b86134 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xf4c012c5 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xf4c873a6 nobh_writepage +EXPORT_SYMBOL vmlinux 0xf4e282a8 security_path_unlink +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf5096396 d_alloc_name +EXPORT_SYMBOL vmlinux 0xf5142158 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf5157257 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xf522996a simple_release_fs +EXPORT_SYMBOL vmlinux 0xf53519ca copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf55d7e9a jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xf5867cf2 f_setown +EXPORT_SYMBOL vmlinux 0xf5999815 get_io_context +EXPORT_SYMBOL vmlinux 0xf5aa99fa iget_failed +EXPORT_SYMBOL vmlinux 0xf5b51355 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xf5bb4d73 netdev_err +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c50f28 pipe_to_file +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5fa8897 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xf60561a7 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xf6068eb7 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf60a1649 vfs_write +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf64edd0b writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xf6556445 __brelse +EXPORT_SYMBOL vmlinux 0xf66901bc send_sig_info +EXPORT_SYMBOL vmlinux 0xf67643b4 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xf680f148 phy_stop +EXPORT_SYMBOL vmlinux 0xf68db61d blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xf69f0c2a wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6bfb82d bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf716d165 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xf742f47a blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xf74b3335 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf766fb23 napi_get_frags +EXPORT_SYMBOL vmlinux 0xf77d7c26 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7c7bec5 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xf7cf2c68 dquot_alloc +EXPORT_SYMBOL vmlinux 0xf7e4f3fc fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xf7e6e20a jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xf7ebfd30 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xf7fcead7 bio_unmap_user +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 0xf853c000 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xf876de3d kick_iocb +EXPORT_SYMBOL vmlinux 0xf88a41ba pci_disable_msix +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8d85bfb scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xf8dfe9de nf_register_hooks +EXPORT_SYMBOL vmlinux 0xf8f06078 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xf8f8bb6d inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xf90e0921 phy_attach +EXPORT_SYMBOL vmlinux 0xf91936da linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xf9268182 skb_put +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf944c304 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xf94a22c3 kern_path +EXPORT_SYMBOL vmlinux 0xf969bfd1 dev_emerg +EXPORT_SYMBOL vmlinux 0xf98a5a35 udp_ioctl +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c2fd87 file_remove_suid +EXPORT_SYMBOL vmlinux 0xf9d7c536 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xfa2139d8 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xfa71d88b skb_queue_tail +EXPORT_SYMBOL vmlinux 0xfa7c6637 neigh_lookup +EXPORT_SYMBOL vmlinux 0xfa8c44d9 cpu_info +EXPORT_SYMBOL vmlinux 0xfa9fa437 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xfad8e9ce xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xfaf57ae6 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb03bfd5 key_revoke +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0e4eff dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xfb2e7e8a fddi_type_trans +EXPORT_SYMBOL vmlinux 0xfb3f4d7f lookup_bdev +EXPORT_SYMBOL vmlinux 0xfb611549 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xfb6708da napi_gro_receive +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfba77124 mnt_unpin +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbf30036 no_llseek +EXPORT_SYMBOL vmlinux 0xfbfbcd09 cdrom_release +EXPORT_SYMBOL vmlinux 0xfbfcdd75 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xfc027481 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc08468a udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xfc11f524 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xfc207e9c atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xfc273cf8 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc50827b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc69e635 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xfc998fe8 may_umount +EXPORT_SYMBOL vmlinux 0xfca27cf6 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xfca4f89b kobject_del +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcd3853b __neigh_event_send +EXPORT_SYMBOL vmlinux 0xfcd93b23 log_start_commit +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcdc41f5 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xfcdd0ed7 pci_pme_active +EXPORT_SYMBOL vmlinux 0xfce5fdf0 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd010a83 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xfd034c04 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xfd128324 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xfd5124c3 nf_reinject +EXPORT_SYMBOL vmlinux 0xfd680947 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xfd684018 agp_enable +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd7f65c5 install_exec_creds +EXPORT_SYMBOL vmlinux 0xfd8a8003 journal_revoke +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 0xfe362fd6 dev_addr_del +EXPORT_SYMBOL vmlinux 0xfe4cf369 set_pages_nx +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c02ae sk_free +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe7cdb29 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xfea48ba8 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff096622 phy_find_first +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff258997 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xff30ac1f address_space_init_once +EXPORT_SYMBOL vmlinux 0xff36c35e __page_symlink +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff5add6c __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff7d221a mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xff8959b8 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xff9d7e21 mmc_release_host +EXPORT_SYMBOL vmlinux 0xffaf579b sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xffb6619d bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xffb8cebf grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffe333cc tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xfff9c981 llc_sap_close +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 0x002b9425 kvm_write_tsc +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 0x0828b94c kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08753985 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x09e6ea25 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0e7241a6 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1538d95a kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18fc845e kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1bb60d02 hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1bdb9bab kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1da24088 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ec5e9ff kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x208ebb00 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x226fbcb3 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2836fdc9 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28d7bc7d kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x290d7529 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2b09ee44 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2b50d419 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2dfe286f kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3db7c255 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e702827 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x409d1917 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44725e12 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f9b356e kvm_emulate_hypercall +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 0x56d077ad kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x589d48d3 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59b97bd3 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c1671ed kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63079946 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x665a1af4 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x66b35569 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x68f7024a kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x72381c12 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x736be0b8 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74b60ea5 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x76b2f45a kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x783a3a9a kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7ca9a9a7 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x81911e0b kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x829435a7 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82ce9eec kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x83b0ef3c kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88dd798d kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e63e60a is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x91bea95a kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x969f9506 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x991c8a52 kvm_get_rflags +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 0x9c0b5b84 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9e31317e gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2db67e2 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa5d328ab kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaaa36e68 kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xada8410e kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb42aeb7c kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4bf208d kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb7202288 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb774322e kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbb8eb7ab kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc57c925 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd4b4754 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbeecd487 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3715613 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3cd9e4e gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc97c5ebd kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcb29f1fd kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcb90ed46 kvm_release_page_clean +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 0xd47b5832 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7cbec9c kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7d39c6b kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7dfdb19 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf7d6193 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe12a5c62 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1a0a990 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe437e1ae kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4753e56 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe67ea4f3 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea8f7123 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec31a2ea kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xecded166 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf09cc59f kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0c6f2a0 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf5cf6a64 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfeeaa7d4 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x1edaac17 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/af_alg 0x0c192230 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x14e3f582 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x7af812f2 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x93feff78 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xa3a979d8 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xe27f8ad0 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xeb0fa163 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xec34b8a5 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x7f994393 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x1dfbc28a async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xaa08632b async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xa0f9da13 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xa8d842bf async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x72dcc4a7 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x97fae1ca async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xccd278df async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf6739d11 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6571f1a9 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xa23573a8 async_xor_val +EXPORT_SYMBOL_GPL crypto/cryptd 0x1c46387e cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x42973daa cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x703f7e33 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7d7d4b9b cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x7e6ac87b cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x80a94378 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x9714d8fa cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xb01da8a4 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb55031da cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xbd0621d2 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa16792c4 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 0x2622bfb1 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4e7e1ca6 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4fac464b ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x520371cc ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5473fcb8 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x789e688f ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8a7df492 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8bdae76b ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9c7c9438 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa20849c0 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaddc5869 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb42282a4 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xda4d8832 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe1f5c876 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf0f7f0f3 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xff0265f1 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x214929ef __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x9dc9000d __pata_platform_remove +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 0x017998eb btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1727f047 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7688b159 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xae6855b9 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb6acfee0 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbf092937 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xde89a6f1 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xeb3d084f btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0xe6eac807 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x01065350 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x014a74f3 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x02a70408 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x104aaad0 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x166b7cd1 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x334dca66 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3f8ca06c tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4c3f278d tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x52679021 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6361e031 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6f07bdd9 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x895b3c42 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x931398b0 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x94754d29 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9ea15f1b tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaea385c7 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb568119c tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb704fb24 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcd0ef85b tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcd566645 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcf07a93a tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd5a41fdd tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xeabb6531 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x378bed94 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x3f5c7bcb tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/dca/dca 0x022baa49 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x109278da free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x257d2aed register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2c370b7d 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 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe0219930 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe40a1302 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe752d4e7 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x257123e5 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x26b81426 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x34d9a691 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3a0f8031 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x43b4f5a7 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4d343f3e edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5c512829 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5cca9faa edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6211b6bd edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b607003 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6dfa3d9d edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7b1c33c9 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8235a147 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9fe6dfc5 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa1e32a8f edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa498aa5a edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa688155c edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xabf2b9d9 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xacb78b3e edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcca4a1a5 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xccc1de40 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdff01b9c edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf0f0f38c edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf1dfbdee find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfc01f762 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +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 0x1502296d 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 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xedbca0ae amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xff582b9a amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xc0bb404a cs5535_gpio_setup_event +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 0x3504fb21 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xf0d0bc8d __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3969575e drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xda30c6c9 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 0x0e05d7d0 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1022b7a6 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x273ae619 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x285e0f8f hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34225403 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34cca944 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3b536930 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x56361885 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5ec6031f hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x719dcfa6 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x84b556ca hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x953d86c6 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9ded3740 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb5435eff __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcd976c27 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd35a7eee hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd402bb65 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd626ec90 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdadce0c6 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdfc0b8f6 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe3f1cd9b hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xed9ffe14 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf0a26ee3 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf8c951e6 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfa997148 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfd204257 hid_register_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 0x7e422c8b roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0761724e usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x208e4447 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x34a56c72 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc9abe24c usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x513a53d1 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x564fd447 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x77c1a606 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x79020e27 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xac228cda lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x6356633a nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xa6149a3d i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xa9adb471 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x5a172fea i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xc8a6d90c i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x53dfcfe2 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x8ffd718d adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x911917ba adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xbdfe16c0 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xc7ad8b19 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x042a5d6b wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x483fd7e6 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4c87ab47 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x54cf22a9 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6015ee8b wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6722cf85 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8495d778 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x992bca22 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xda04b47b wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe492db4a wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfb60a563 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfe4c4e4f 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 0x03768832 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x03c37cbd gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0f8ac46e gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x12ce6c6d gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1a3eacc9 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2350631a gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x57571d27 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7a3afb35 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x92cba977 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x96f4e5f1 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9f896689 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb047ea64 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb2251a99 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc0a14fd6 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe4b4aefc gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe60124f9 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xef07d5cc gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/md/raid456 0xea09665d md_raid5_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xf4d09f81 md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x391d4640 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x417ce660 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x443e99a2 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7360209a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x73886409 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x840bfec5 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x97d08db1 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa28242ac saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbdbb0404 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe2aadf64 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xee73ff54 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0c5d5ca0 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3d9df80a saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x40ebd06a saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x67a89352 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x9d24938d saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc02496b1 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfad8b42a saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x548fbd9d microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x11a6e70d mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x9e901fe4 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x2e0da0a5 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x4c8d5f78 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x6082c68a tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x9b6f5975 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x6573e0ef tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x87d98238 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x1300d6b7 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x33482a3d tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x515727af simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x00569d39 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0874387f mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1e1745e0 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x36ada5f6 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3f8a1cfe mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5d67d7dc mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6607faed mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6fb138c1 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x774bd3da mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x83f412c6 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x90623905 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xad414678 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xba3688c1 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xda70a661 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xeaa884fc mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf4e95c25 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfc7c53b1 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0873d817 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x237811b8 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3a4c6936 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x477ddd50 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x515a5f17 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x53dde0cb smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x54ed8e9a smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x61d5c78a smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6ea20599 sms_board_power +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 0x7e1d7b53 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x83734674 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8b8e443b smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x96a75f57 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa7715f1b smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb0b27973 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xce5dc259 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe4bb1238 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf3dd32b6 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf473b8a1 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x28f44d78 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x6dd00956 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7d54e803 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb63b8df2 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe64edb24 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xfbcf8310 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xfbfc771f ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x08f318f3 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1112d578 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x11346baf rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x17494017 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1803a6c5 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1e751f55 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x34580cef rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x54adb7e2 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x70fbf0bb rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8d414158 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9bce9217 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9cb29fb8 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9e68aed6 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xae43b66b ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbb23acc0 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc9a59fde ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe8eb2d2b rc_register_device +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0cddd273 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1618811f cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x16fa0362 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3e5e7201 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4c24993b cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5696a382 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5b7f6114 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x89d6d91e cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9c9420e0 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9d1904cd cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa501a4bd cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xabdd223a cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb5ddc1cf cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc1b658e9 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd4ff15d5 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xdd2f3989 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe051585b cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xefeb8c47 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf967a672 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xc97d6f76 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x237b90c0 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x30eaa903 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x33df8140 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbe6f611c em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc1139a09 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd6222259 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x04179b30 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x26cb3d6f saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x3ebdae3e saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x80085c5b saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x936c24a6 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/soc_camera 0x3b5b59a1 soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4ee24337 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x5bf7f285 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x75314c80 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xee510c51 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xfd7368fe v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xff93fd1a v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x1d69796c v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x44c06f11 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x838b8bd6 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 0xae0c15cd v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x22bd1461 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2bbe7560 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2cfd284c v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3c0e6666 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8199f2c0 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x83044295 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x92947325 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x97815952 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9afee9c9 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe535fb8c v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf36be572 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf816fc2a v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf8fd1920 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfcb7828d v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0ecf7e33 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x196309b0 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1baabd7a videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1c902fcd videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x35a3e2f1 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x35ef29da videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4551beba videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x464f6780 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4a81eb10 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5e495509 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6aea55dc videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x811587d5 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x879ac2dc videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x91b573a0 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x944f3ac5 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x985777ef videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xacb92bb4 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb0d4fa56 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcf60f49c videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd0b39ffe videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd7accdba videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe775f999 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf0cfdd0a videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfd9ad5f5 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x16497dd0 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x1e83c157 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xb0679b6a videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0a435b15 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1e826d9a videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3c5bb7b5 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x40f5440b videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x93584749 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa01ca7b9 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa584e484 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd817608e videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf85cf064 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x074c359b videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x66953989 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x70214247 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x054a6fa1 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0e4e36a8 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3973f455 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3c2e33bf v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3febecca v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x426b2351 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x46425d0f v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4908fd58 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x66e71def v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x68b4ba34 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x74251f26 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x893e57fd v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x90a23354 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x98963855 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9f82b825 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd30f4889 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf47ac75f v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf97ff124 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0c1972e9 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1c6f1213 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x36494725 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8e7d6e0a i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x91b251e6 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa01fe5a7 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xede7a051 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf67b74e2 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x789ecbdf mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x182549a9 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4894006a pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x67a420f8 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x72f8ebdd pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x968616b4 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb30cd5af pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb5f16c72 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd5a996ed pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd8fa8bf2 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd906b860 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf745fcb1 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x2d537767 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xfa64e8ba pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x18ece093 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x41b06879 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5791aa19 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa9183466 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe921a24f pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x04a036a6 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x0beac3fe sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9a143948 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb4cfe979 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd73cac9d sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x49e473ff ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x70fc26b0 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xac4083d0 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xaca1e4be wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xc3fe1de7 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x010b51c0 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x28aff491 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x7d9fb72f cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xfeb2e286 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 0x3b7aa456 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x462de45e enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x477a7e75 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x47873d9a enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x678926a6 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc9914684 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xefd8f634 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xfce64a34 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4fa02b15 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x682ff170 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x927df825 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc8e3c7ab sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xce9980b1 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe26fd451 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe73511eb sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9325ed5d cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc555fe08 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xec4f05ab cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x157afb5a cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x474f0c1c cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb8483877 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x7396e850 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x112db697 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x38fb1a8a cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x5a876d9c cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x04d51594 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x06c7161e DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x1584bb10 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x053cf4c6 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x06bebacf get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0898e8cc deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x09765ee8 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x10d4be39 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x16abf0de parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2b9e491d get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3c1fb701 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x416940d8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4a25857b default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6b14be95 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6b287465 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6d379b12 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7c893b8f register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x98485954 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9b76093b mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa015c7ab put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa267ade7 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae73650b unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd2c28376 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdd6d42a7 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x21eaf36f register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x6b1c8b26 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd2ae5434 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf2432e03 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x576c6f82 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x6289e1b7 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xdbcd3fcd sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x19d9e5b7 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x74940d57 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0529b06f ubi_leb_erase +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 0x7780ba44 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7a455f32 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7bbcc4e7 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x832e3ba9 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9f3dd791 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa03eddd3 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xaa0b8862 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb36438b3 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb4e7c00c ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb9386387 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd6dd4bcf ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe116d018 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x16bcf5ae register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1bc946b3 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x45bdd908 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x47ca18f0 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x48a7b8ef can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7112a719 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x79699a78 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xaab6bf51 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd2f19257 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe401e7f2 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xef34163c alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfaa886ef free_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x50c6f531 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7f5df145 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xca905dfc alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xeec409b1 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x31081552 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3e802619 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x56f91fde macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa9e1377c macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc93b6a1d macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0321d8ea mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x08afada1 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0c31ab56 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0c666f1a mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x15daff6c mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x175ca619 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1d68fc27 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x25a585c9 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x27a4258b mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x295a1367 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29c34278 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2af9e2ae mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x31343b90 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x330a917f mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3842af06 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3a871e4e mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ddad8ec mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x430774e5 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x47a7e23b mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x67ca7243 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x681d3850 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6f31cff2 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7300d0b7 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x74d433dd mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x759ed552 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x75ea9d0b mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x804b1c8f mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x80a85f41 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x81ce6c75 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x83421f63 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8342925a mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x84c70261 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x85421335 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x857c859b mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x86ff2ce1 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89bc9fb4 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89d2eeb7 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8fdfb978 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x928b2a87 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9edb36bb mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa2abba77 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa620161a mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaa11b30c mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb3e487a2 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbbe5701b mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd8aaca7 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc10ba524 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc1efce11 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4208fd7 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc52f7541 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc80699eb mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd66a021b mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd86f8d6d mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe788ca6c mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf02faf64 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5d9fef8b usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7d0a91e1 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4562cf72 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x49304599 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x80ebf62f generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9572a8ba rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb6ce9fda rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbfc87b32 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0158109d usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x04e426b8 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1414b476 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x18d8b976 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x204fe91c usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2f1f24fa usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x35b03ce4 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x41dbe8f4 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4b12e629 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5ea169a2 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6aa47cfd usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x80637baa usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8aab7b1f usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b59b2dd usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8e32d5d0 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa10aaef5 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb49854a0 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbd27348f usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc09a25dc usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc9afddba usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcf3014d4 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xda5e97cf usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe37a74da usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xea362052 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x01f6e871 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x10c0a90a i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1ffb18a6 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x32a53991 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x388926e2 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4a40bebb i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4ae43e49 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x52a42df3 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5dae8c89 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x79039775 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8bc9cf57 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa3d9fe28 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xba608a92 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbaaf6916 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc1000b27 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xca6705ac i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x062b13ad libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x0ef4c41f iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x1947ca9b iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xb0c3524a iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xec2787ee iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x09bf18e4 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2bb6a50f lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3e863476 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4014937f lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5967f761 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5de7d14e lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x65d182f8 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x68d99aa0 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6d9c62f9 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x83334b6a __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xae33d114 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xba00a43b lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd8c427a5 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe2cf42b4 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfee4de2c lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0530be64 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0a86e84c lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x30989e34 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5692df77 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7a07a172 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa74f7365 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb0aae7c6 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdd36c85e lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x6adaca26 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x989b46e4 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x03a4de09 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x29686b1b p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x320903a1 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x480c8beb p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4e4ce164 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x76e1a593 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x88441507 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xcb10b5d1 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xeeb0e8f1 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x06f4d010 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x084db194 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a47defc rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1893f60a rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x19f932d6 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2784eb16 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x282f655a rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2f3aa6fe rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3297edfc rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3dddb741 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x445fea16 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48de594d rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4df8d836 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x555b3c7c rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x65768435 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c575067 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6fb05f98 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x772bca1d rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x806ac231 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x82301488 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8cb40fed rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9933b918 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9c7e3dfc rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb182009c rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd19798b rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc6c88930 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd0807d96 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdc924397 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe09c4154 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe54988d6 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5c8f699 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xee7c66d6 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf976715b rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xff303f6a rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x076d73b8 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0a36dae6 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x11070702 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x23ea0033 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x26a5cf9a rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x38f4cc26 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x40f89c06 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x43cbb945 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x455d60d3 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x457f83cc rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x505c06f4 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58f4a61b rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ac9eb8a rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5bdeb43e rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5e478b5a rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x67670047 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6933bc28 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69f11827 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b509807 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c3e0595 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c740ada rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7375046f rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7504e94d rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b2190d9 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x820ecfc3 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8cf24afc rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x938b7e2f rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9a6a8046 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb2dcc2c3 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf8dd35c rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd26a31ca rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd33c7a80 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd33d2b8c rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd40c98dc rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd4e31f4c rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xddd082fe rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe24de8ad rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe3ae423a rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xebe5316e rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xedcfe1bc rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7acf7074 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x84819cfa rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8f4534b2 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb60cb40c rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbf916689 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xce90053c rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xea925e87 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfc6fb40c rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x04a91505 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1266664b rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4cebec8e rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4ff766c9 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x594b7820 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5e9a55cb rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x69c775e7 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x77aa5e60 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x857780b9 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9155a48d rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9f351e91 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcc6f3696 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe262c4dd rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4e19706 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe542a5c5 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x16297dad wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xe903cadb wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xf6be0dea wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0dc7cba6 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x499dc926 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xbc4f8d86 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc50946b4 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xccbc4eb0 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe0410b14 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xee42b4ae wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x4176986b acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xcd4f6ee8 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x3831b264 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6ba2ad75 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6c362b09 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x2f2a71d7 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x4f8ce299 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x62d9d709 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9673344f mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xdd24793b mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe22500c1 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe73f4840 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x35ebf707 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x579b6bfe wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc5950075 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc8bee1d5 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd4019c05 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xece3c0e2 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x2a6e4ba1 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x072af103 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0b9cce52 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0c2ad31b cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0d59d165 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1ccda5ab cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1cd757ca cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1d88545d cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x21d3384d cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2b2b4fa4 cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2fe49470 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a0b2c02 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x480b00c5 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x522ed8b6 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x60f9cbda cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6284baa9 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6b366f30 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6ed62871 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x72efd18b cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x73c9a100 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x78275423 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x864d526f cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x86e9748d cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8ec98cd1 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9225b19d cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x95e94382 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x992798f8 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9b1ca6e8 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa3a4f1ca cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaa57fa7e cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaa6ac30e cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb87bf972 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbcbb3338 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd3f4d85 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc3adccb8 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcb2bec88 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdbdd1245 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdbf37f4a cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddbaae85 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdf68b695 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe315dead cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe3aefb86 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeb567873 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xed9e0bea cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf89b02de cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5f9a3c4d fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x10c5130f iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x93e800df iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xcbe3ea57 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xda62d5ed iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe9cb56c5 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xfa1094bf iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x046f7ae0 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04cf56a7 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09762872 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09830ddf iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0acc938b iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1796cf5d __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ac4e270 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2453d140 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34340e18 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34e0f01f iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x37c44609 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3aed8bab iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4149ba85 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c615598 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5370715b iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x572a8b31 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x588298b7 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6695dc0e iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7615fa44 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7cfee31c iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86bc8da6 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x95a02150 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a40739e iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c8a22aa iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa14268c0 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa2dd6663 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4deaaa8 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5bbe2e3 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa6a0dc62 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa7e7553f __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8efba7d iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae4db6fc iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2e75edd iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb33f73f5 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb3f3fd1a iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc79e48a5 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd447def3 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd520900d iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc9d1a0b iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdfacde8e iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6ed6bf0 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8ba1b3b iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc5eb3ea iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x193d53b7 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x265a12ac iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4645e6a9 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4aeaf209 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x582c8de2 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x58633738 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5df54cbf iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9af3897c iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaca1f39d iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb31ea2ca iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb4a647bf iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd3410dcf iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd3b0888c iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdef3ba8a iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe7ff8f0e iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf89bdeff iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1d354401 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x271eea4f sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x27940bbe sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4bc8554b sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x569dcf67 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5d207745 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fa18f5c sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8742a15f sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x93df869b sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa0ba7829 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa909ee02 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf8d7349 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb43ee51a sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb7c7e952 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc0d7f4ee sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc51576bc __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcb270cee sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcd677c23 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6b835ac sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdc2d8701 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe3865aac sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf41d3fa4 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf7dce9f9 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1166a14f srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2100e97d srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3cb0f522 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9888d6f7 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb9b48fe1 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd62f4e57 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x64aed1ec scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x66f617f4 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6d8b7bd7 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x87b65d45 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x87fd80a9 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8b5513dc scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xadf99c7a scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc09e089a scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe49a5767 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2bdfd74b iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x30fff794 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x35e70f8f iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x382b731b iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43f29a33 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x44c18874 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x578f8e7a iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5b6cc08b iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x63e70186 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d4f87bb iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7c416ca0 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84b62a03 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x92262c8a iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x96d5187d iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x96f1897c iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc67331ee iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe3fff0c8 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4203754 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe849cb4a iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xead0cc3b iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed6f7c77 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf067a4d2 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9c4e5eb iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x20ea2aaf sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x850427be sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xabb35c25 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd88d3f1c sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x012df3f9 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x10b702ba srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7a804680 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa7a6a2ac srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xef618e82 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1e718dfd spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x49bc8c60 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8eeb3e3a spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xacdca710 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xbfa1367c spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfefbcc73 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0abd88ec comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1139f2ab comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe7291f60 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf1419f99 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf6e888f9 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x6a46ef21 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xf55c8645 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x0a5bb28e labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x5b1e4d07 labpc_common_attach +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 0x0c2db5e3 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x157d8da6 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x37e56b46 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3db33556 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x77f2e486 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x8223b72c ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x9847a0f1 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xa7a52406 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x35cb97c6 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x50ccca75 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x598ca28e ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xabeff8da ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xccd50d23 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd7a95016 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 0x107919a9 vmbus_open +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x12643291 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x195eb8ad osd_waitevent_waitex +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x1f473a1e osd_page_free +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x22e30b07 osd_waitevent_wait +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x318af37c osd_page_alloc +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x40837821 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x539f5cf4 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5606358e vmbus_close +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x6a0824ff vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8abe81f5 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8d552274 osd_waitevent_create +EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0xe95976b7 osd_waitevent_set +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x005ec987 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x11559db3 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1432ee06 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2985bc43 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x435d314f speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x43fb646e serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x7f7d3f67 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xacf9dede spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc9a35dc0 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xefd33c62 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf641b531 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf9ae69f8 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x608f7863 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x92b5f4ea tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xa50a27a3 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0c8337c4 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x15908548 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x357b39ee usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4ddae67d usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x62999149 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x783d95e9 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7e11e6c5 usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x867b43bf usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa5ed6250 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa73b9c2a usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa77694ae usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb6adab8e sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb93eb576 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xcc5779fe usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe3a1f912 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xfbbe09fe usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x1f626b9e max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x35fa13c7 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x791fc796 max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x9dded603 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xf4d6b3d4 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xf98a320b max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1d7d604d __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x47e039e5 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa1a21214 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x0c40a247 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdf212fd9 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x15c5bd7c usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3b70e75d usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x547c2428 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x59506f31 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x79f45463 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xac6febdf usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc77932e5 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe00e5b32 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfa173e93 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0a4600a9 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0f0402ff usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x23798538 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2729470b ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3e611099 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x41fa3140 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4c07f82a ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f2b536c usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x756fdaef usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7748446b usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9595d2f3 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9d603f48 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa819b3c2 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb0a0fbb0 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb9145499 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc681a2b3 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc6a2c6b6 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdea1f7e5 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe0da65a3 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfef62218 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xff2701ec usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x04f1d33e usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x10c8d53a usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1785af53 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x28610bd3 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2dfe4089 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x38ad1383 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x42c42262 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x56dd4101 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x65d26ff6 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x67a5db6f usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x69841ce8 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x69ef6362 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x74157de2 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x77051456 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7cd8d0f5 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x86215ff1 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x86e162f6 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9e35c97e usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb0059c38 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcf47c6ac usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd9ab4019 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe00c86b1 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe9302e75 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x06cf1a16 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x32a16ac0 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc47030c8 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xea9e98ff rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xff736343 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x12932947 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x154bc14d wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2786f0d3 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2b0b255b wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x43343dd0 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x50aae127 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5f71d621 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x66607542 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7523aabd wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x85f0aa21 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa49b90da wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xad59f559 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xbe36cc50 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcf581931 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd26dad47 wusbhc_rh_suspend +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 0xffd355d5 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x41897c03 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x7272ffc5 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xb1486f86 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x414d69c8 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4610d4f5 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7ca95e4d umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa03d489c umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb0947245 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc5ac9650 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd0c81220 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe12b9415 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x103a7514 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x14cebfac uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x17f738ec uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1fac7e65 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20897bc2 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25e9e338 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x27e3fb28 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2906fcba uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x37f910cd uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3887a18b uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4daff943 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4efcebe9 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x59d5a41e uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e939ba8 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5fc54211 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6943b394 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f454617 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x77cd8ab6 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8086f3ca uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83c00d3a uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x86e3b19a uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x946caef2 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9889419f uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa142c83f uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb153e84c uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb2194a61 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb3f8cc38 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc0a60ea1 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xce85d990 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd20360da uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd7777e61 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe16e8e79 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe3cdb77c uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe4bbba82 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xebd909ae uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xef88d024 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf0562879 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xac84cd97 whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0076ea6a ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3cdae9e0 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x45763f6d ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x92f2c8a6 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9703920f ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb16113da ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf06cd731 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x28a52d93 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x6d8cdf4d fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xa9aac514 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x0d0af6ae sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x44f3ce3b sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 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 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xdf1a126e viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x22024ff0 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x344681dc w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5204b137 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x62a7ec44 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7a20a0b3 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe3d6617a w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe926e12e w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf5584d80 w1_touch_block +EXPORT_SYMBOL_GPL drivers/xen/xenbus/xenbus_probe_frontend 0x376a3908 __xenbus_register_frontend +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x3826bc99 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa46de5ef dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbabd33ff 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 0x3aafcc01 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xe31245ca exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x11b2b067 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x22828522 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x23a4aaf0 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x2979e84b fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x2af38849 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x35ae4b64 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x70e52950 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x7dab1723 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x9b4da7e4 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x9dc66907 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x9fa65844 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xa10ddef5 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xa1dd5c81 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xddbe73cf fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xdf6c5109 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xe6b56c79 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xeced6eb5 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xf48b77d0 fat_search_long +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +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 0x1ea5c1aa nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5af3e856 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x88a9ab2e nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x947f6df7 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 0xf402d5aa nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2f618d1b nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7ee9c381 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb001c5ef nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x11e15501 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x128fff47 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x133499b2 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2b4614d7 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x565e3fd5 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9eefc081 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe6f5aa5a o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x25b919a6 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3a795b98 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x48b52586 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x869e32ec dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbc042b0e 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 0xddf43420 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 0x633a0e8e ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbad86247 ocfs2_stack_glue_register +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 fs/ocfs2/ocfs2_stackglue 0xfd386176 ocfs2_plock +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +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 0x5396bc8b garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x983c11b9 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xa4e06ea7 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xb190354d garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xcb501b83 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xd136a758 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x49735afc stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x9443d7c8 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x9734cf7f p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xe83e6ff6 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x8ab546ef 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 0x40b32509 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x039816a8 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0817a816 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0cc2a4bd dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d28ddde dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d86d0e9 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x16004e48 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x221653a9 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x281aa127 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x35fba523 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3a9f366e dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4723d76e dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4814f605 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a2d091f dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x747867bc dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8026cc16 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8916d50c dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8a2018a9 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8f82b2f3 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x92d628af dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x96508ea8 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x967b08f0 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa563c964 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb2bdf83 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2e5c7c8 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xced41db0 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd1767828 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd7e06b0d dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdcb913c6 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xddbd7f38 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe50f72ee dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf21e94fe dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf59e9eb9 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3c29ebff dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x52beb7e9 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7226dd75 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8e8c8f65 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa065adf3 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xad15120e dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/gre 0x589e2d1e gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xb3beb8fb gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xb6289139 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xe56a8af2 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x0a70e09e 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 0x29f55466 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x32da86c7 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5082e442 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 0x9b3e9cc3 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa54e339e nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb6d11179 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 0x0746e977 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x09743c57 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2d7930e1 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcb4dde86 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xda3df43f tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x667a8362 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x086c5d66 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x09a05d0f l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x252495f8 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6cd231c1 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x73e1b426 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x81a5d328 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9364a553 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d39b107 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa4e9d9b8 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb36b77f7 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc2e166ce l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfa8276e3 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x10a9c78f ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x31857cb7 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x51878e4c ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6e4c5736 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7be29339 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x124f3c87 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5bef50b6 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xbdb79e8b ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd54bab62 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01c0c232 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x032ed471 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x095726f7 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1752809a nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1c7a3c7f nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e25a367 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x225fc428 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22e59078 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22f26838 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x234cd07c nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x268eeb16 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2cace72d nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ded2dba nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3020eaf1 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3118b6f3 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3853c966 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38c5faaf __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e806910 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x420fa6d2 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44accba1 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ae0c916 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c3be198 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4e930b5d nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x514a3556 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x606c477b nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x608e1c7a nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66752235 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f0da99d nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x717e3dd6 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7185e84b __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71bc05d8 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73e84cae nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75137ae0 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a3a2804 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80c314fd nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x893914b1 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89ddddee nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8af16a68 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c8946b4 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92ee1bc2 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9479ce52 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x968a741e __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3e2e3db nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad9de807 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb8d4556 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb9de83d nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcca0bdf0 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf61996a nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0d657c9 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4a6c3f1 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7afc68e __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7fdbb29 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde100452 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe17d862f __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe232dc3d nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2e0354b nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe42112a5 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe525138f nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebc3172b nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecab6d30 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xa6b5ce16 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xd6d0c05b nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1f8f198d get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3cd92b32 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4a4939f0 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5fff89ef set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x64e3321f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x78ac8134 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x79334acb nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x82a5f06d set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcd6c6908 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe4154d08 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x0b340149 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x273ecfbc nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2f05c344 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x69f8cdaf nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc10ea892 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x66ac0c6a nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xe619f9b6 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x23aecddb nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x30fce444 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3fa72ec2 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4665b5ee nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x468e9afb ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4d2f9a6b ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x58e584d2 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x66b1b262 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9c7a1e46 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9dadd7c4 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc44f8289 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd7117e4b nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdff4314b nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xeecfa831 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xbdb3aa73 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5a54833c nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8c4b410f nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8ebc3728 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd29f773f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd72003d6 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xde2b7733 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xe0bec837 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1a5bc1c3 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2251650b xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x25703a9b xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b5d7b52 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3bdb5224 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44df7db7 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x463d5280 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f03e174 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x795e115b xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c8a76b2 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x929cbc41 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb37ee691 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc728df58 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd4cb9e9f xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x02d18bcf xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd995b363 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x012e3930 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x0f548c16 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x1bfba2de rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x293002dc rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x39c6959e rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x3b771af7 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x3fab0716 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x577c605f rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x5c70e1fc rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x619a3f61 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x6325694b rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x752003fa rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x82624d74 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8f7af765 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x956f5b64 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9f89a825 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xa2358c23 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xa54dab33 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xb6f354bc rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xeee9643d rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xeff0ee18 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xfb928294 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xfec50202 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1683803b rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x8e2f7d80 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 0x0998f984 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1a386747 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x39ee31eb gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3b46f1e8 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3b8b0b4e gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x45871fbf gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x687f0241 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x77aaae66 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 0x929a193a svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa013da91 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa60014ab 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 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0067ba8d svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0188d76d svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x033dbb68 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03457aba rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03b2bbd9 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0592af34 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05bc651e xdr_process_buf +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 0x0a2a1231 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a4de31a svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d2074ae xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e4028d3 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e86b5a7 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eeab8ce rpc_init_wait_queue +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 0x10514d20 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x105ed479 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x114768d3 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x119947ec xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x128bc5ae svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e694005 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1eb05bba xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x234b366e xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23a4d448 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2469eb3e xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24a5c077 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2559d110 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0ae653 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x309467c1 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30b1920a rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30f32a06 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x311644ee svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33052a76 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35107ce3 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361e8266 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x367c8ea2 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36f2c29b xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3704acfd rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38c24300 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38e48f69 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b809ce9 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b9bf0ec rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fa75195 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41aae9c7 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43a75fa2 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x443fd996 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4798229e xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47c60d9b svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c6a8b14 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d31eb21 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5252e0e1 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54ee5c65 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55915f05 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e1f7417 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f1b56ed xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60cf16e4 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66fb5673 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x695be57b rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6acfb160 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b2dea5c xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ed148ca sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6fe33084 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7369559e sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75a749bd unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75a7e4b7 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77b9ec90 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79dfc43a xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c7a6b85 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d326b9d rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d3c20db rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e277efe xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e2873f6 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e7be953 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85d03ad5 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x863cda2a cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x876ebfe8 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b62db1e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c82988d rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8df35283 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e5ce5a8 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9396108a rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95a27fee svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96db0340 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x984deaaf xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x986593d8 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98a846e9 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a02f99e auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a33b5cb xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0166a9f xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa321acd9 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3d18c84 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa665ffa9 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6d36a87 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6ebfe8b xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa98429ad xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacb5d8e7 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad02df3b xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadfd3ced xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb128c26a rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3802db8 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3aac21c svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb10d98a put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcd7ee26 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf154aea xdr_init_decode +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 0xc7ce522d rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7d1b8eb xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc88c88e8 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca0ffa01 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcaf9a8d7 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb2a0c16 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb2ae2ab auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce27cfa2 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce3f0900 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf51faa4 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcffa08be rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0529413 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1874834 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3211db1 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd395b016 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4a16ba3 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd57abae5 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6285709 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8229187 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd86d9bcc rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8d6e87b rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb546e7a xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeb40c00 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1e971ba xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3ce78e4 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5b5dee1 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe884f601 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe99e3021 svc_set_num_threads +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 0xeeec8586 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef440c64 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xefbb90fa svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf05a37ab rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1c73721 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3f3ded9 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf809149b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb447cdd rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb5007fc xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd33a469 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe55d0ee rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff515bfa xprt_complete_rqst +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2a7ac924 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x39f93ccc wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x458e4d3d wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6229accc wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x63d957e0 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x791b4314 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x867429d1 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe34ecab4 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe3df4b19 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xec9361e7 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xed1bf7e8 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfdc07701 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xffde1312 wimax_msg_send +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0087039d cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x03803bc5 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x09b4dfab cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1f753361 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x347a795f cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x382019ea cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3ee1d34e cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4ba98358 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5373c565 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x55dd5217 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x586a881f cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ad8e3cf cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6ad67726 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7ee1d149 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x88f45348 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x890a1459 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x89f1d036 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8b6545f4 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa48f1fb0 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa78827e8 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc2e22b70 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc67a41c8 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcec8955a cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdb0c23a4 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdf2e2f0c cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe4070695 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xed478db6 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xefc6c138 cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf4ebdac7 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf7ece29f cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf801c41a cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfa73d7da cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfaf0a846 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x205d5659 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x46af4733 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x7a904cbf ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb4bc53b0 ipcomp_destroy +EXPORT_SYMBOL_GPL security/keys/encrypted 0xe3829757 key_type_encrypted +EXPORT_SYMBOL_GPL security/keys/trusted 0xab4dc371 key_type_trusted +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x17bd57b7 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7adf7568 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9b1bbaf1 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa3b5c1ab snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xfee2abad snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xfff9582a snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00b7e340 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03aeb8a5 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05d572f0 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ce1669d snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1312a037 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17dac809 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x18ff9b3f snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1eb15d11 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f61e88c snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x248f146b snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26dfeeb1 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x270beede snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a1fbfb0 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3403293e snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b8284b8 hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c687170 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d1bb238 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e757ed6 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ef2c467 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x418ebf8c snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47374fc7 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47eb1657 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4adfc58b snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d325fbb snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e988a6c snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f94e49d snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fa6b387 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50264bd4 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54ecf3ad snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56da92c0 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59870612 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a99f591 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ab8db54 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ca854b8 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6077997b snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63ab3bf8 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e56c871 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71256f47 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78202f45 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c72ce30 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x824e547c snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82b72039 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x853ca189 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86eeae38 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x899c781c snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a5c683a snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x934f26a1 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95992f57 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x99d5e569 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9df57249 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f5f24a3 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0eda639 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa123aa5c snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4562407 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4f25cb6 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa65765b7 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb35977db snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3b9ac87 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb88ff2a3 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8f70bfd snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba0ead4c snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb4dc74d snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbca1456d snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf361235 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc07f92a7 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0c209f3 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc11bdd25 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 0xc74d87fc snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcbc08425 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcde80ccf snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd110cc6b snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd83771c6 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdbd41757 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde1ab63a snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfc21465 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe15b1b3b snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe66fca42 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeaa0651f snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeddc8f11 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf14931a3 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf258279f snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3c07190 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4b9a3f6 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5888ff4 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5e41f40 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf791cb52 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfaaae392 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xb83e0312 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xc07eb5b6 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x5b8bf836 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xc6ec710b max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x556bad6b aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9f8c129d aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc2bb52ad aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xea7066b6 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xee6da34e aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x73e094b5 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x8ed7694d tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x32caedf2 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x0add9ae8 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x156dc630 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xa0626d57 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x62bfe43c wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x0d77129f wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xc9ab92d1 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x16165d1b wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x1e739537 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x794700d5 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xa93ef4b9 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00c59a8f snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0110fbe0 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c54f93d snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d0b486f snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b7ef183 snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bddbdde snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c591626 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ce5ac7b snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ef88d75 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f06c118 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2129db74 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23926b8a snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x244cdc73 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x259b5128 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2680edf9 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x28a890f5 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a2cab73 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ddd14e4 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f00eac4 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f56563b snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37c555a3 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38dcdd95 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39183672 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a9a055b snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b1fe17b snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42628dc5 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x432c6734 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x438669e6 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43ede957 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x462ecc4e snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x470bcf9a snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48dcda66 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a5e7022 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d911031 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5392f03a snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a824a9a snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6063a57e snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61c754d1 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64e9df6d snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x681474c1 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69da8af2 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ff3bd3e snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71aba21e snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73fb56b8 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x789c0105 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7af9403a snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e5a6ff1 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84909320 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88a04f5b snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c0d6d99 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ca569b9 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8dcd54aa snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ff094e8 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91c819da snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9aa85449 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ac9e5d8 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b477ff1 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d7b03ff snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2986fa1 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafba9b6e snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb21ed5ff snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbae58dde snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbde71b16 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6910536 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc73a5486 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc73f3c55 snd_soc_put_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 0xc9e43c12 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc00e37b snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcce28777 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcea9c868 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3b92e43 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd44670c8 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd484877f snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9189867 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb8cc595 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe14d1dab snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5cda9da snd_soc_dapm_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 0xf27021a9 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf36d93f1 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6757e0a snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfaa053ee snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfab95642 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc1bef0e snd_soc_get_value_enum_double +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 0x001bfcc7 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x004ebb37 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x0058d6d4 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0071110e tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys +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 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 0x01a48552 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01a6c77e wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x01b15aa8 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x01df4913 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x022cf116 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x023f07d1 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x0249423d ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x02acc081 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x02fb829c scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x030ccfe1 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x03192447 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0367855c ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0368e58d crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x0415accc pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x045d43c9 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x04bf26af ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0545e3fc remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x05476f30 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0582f0cc debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x05b28922 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x06313f3e input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x063bf2ca ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x068c3379 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x06ca0097 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x06d7265d class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x071a3501 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x074991cc pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x07597c79 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x07622ef2 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x077de8ed sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b4943f dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x08296d70 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x0892b5f3 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x0899d150 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x08ca526b map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x08d7e5f2 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0940d6e2 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x09548b78 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x09572b5c xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x095e119f ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x0983d896 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x09869d5d tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x09dae647 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x09dde265 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x0a18c169 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x0a1d8336 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x0a6f2561 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0af17f3b wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b18ba89 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b2b7950 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x0b2ce75c sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x0b4cd1d0 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x0b9bdd5b dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0bd6208b ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c7ebcdb anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c8c1045 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd10c0b dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x0cdf621c fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x0ce66286 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x0d068737 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0d1f1171 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x0d20b5b2 md_run +EXPORT_SYMBOL_GPL vmlinux 0x0d2295c0 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x0d3bb6fb sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x0d4561ef inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x0d49c718 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d8ade78 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x0dab761b virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0x0dc52950 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x0dd731ee fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0de6fe5d xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x0deca529 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x0e0ea08e ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e32661b crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x0e54aae3 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0e7808dc usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x0e8301c8 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x0ea6b2fd disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ec8e384 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x0ed5648c lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f033f34 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x0f4fdb3c pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x0f5d5028 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fb1e126 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x0fc011ac crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101d9cd1 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x1047418e sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10c6474f blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x10cf77f9 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x10eb65d2 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x10f89e43 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x11282128 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x1163a698 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11933748 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11ad409c fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x11c4f238 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x11db93e9 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x11dc8859 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x120444e6 plugger_remove_plug +EXPORT_SYMBOL_GPL vmlinux 0x120a9cc9 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12dd638b ref_module +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13a4e8e4 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13c7306b sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x140738ab PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x140c3e61 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x142a3f96 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x1456d1bc tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x14750e7d get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x1492ed1f cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x14937f5e ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x14d1bebd sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x14d44015 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x14db9f39 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x14e82436 xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x14e959ab driver_find +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x152cbc7b pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +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 0x161050ce devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x163f5ad4 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x164dfd7e rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x16765ad9 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x167eb8b4 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x16a319a7 tcp_unregister_congestion_control +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 0x16f77e3f hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17442a97 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1797ec38 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x179e9892 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x17a66cfc crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x1804a5d2 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x1865d9d2 user_match +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x189c971c crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1916ce9a tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x191de18b blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1993c415 swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b63858 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x1a222f7a crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a9bdb84 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1aa39877 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x1ab5de27 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x1abaddca usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x1aed254c usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x1b0ce0d0 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1b1ac52a i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b47ce25 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x1b59bb2e debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x1b828031 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bf0375f dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x1bf25609 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1c1f0e2c blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x1c42bb4f device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x1c615303 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cac75c8 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x1caea705 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1cb00391 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x1cbe6594 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x1cc2a468 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x1cc5d920 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x1d01eba5 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x1d1c17ec inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1d1e348f ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x1d27a945 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1d681ab8 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d7922e9 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1da46fef proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1df3b9bb hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x1dffcd9b inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x1e2048ba inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e46080f unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x1e4a018b scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x1e5e3765 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e8cc5cc xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x1e97d36a skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ef9ff6b __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x1f22fe49 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x1f2fe578 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x1f34aaae aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1f3e8e83 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x1f496714 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x1f772666 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1faab19a css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1fb8002c mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fda6e7f disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0x20111310 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic +EXPORT_SYMBOL_GPL vmlinux 0x20311147 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x203572e9 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x205ebeda isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x20840dcd cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x20fd8de2 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x210f0825 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x2126791c hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2129c6d7 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x212c63ff inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x214e74c5 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2150c937 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x2185da76 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x218dd616 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x21916fe7 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x21a17875 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x21a6ffec fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x21bbed16 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x21d13ffd device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x220f7a70 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x22234a41 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22f294b0 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x231d7af4 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x234c1b91 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x235a19f7 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23835526 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x238643b2 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23d65dc3 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x23d95ba0 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x240580a9 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x242d7ae4 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x246ffe79 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x248e7e96 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x24ad2525 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x25831d72 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x259c01ed user_read +EXPORT_SYMBOL_GPL vmlinux 0x259e0653 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x25abffc8 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x25ad15ea use_mm +EXPORT_SYMBOL_GPL vmlinux 0x25cf0661 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x25d9009b spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x25f44e11 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x262f8587 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x265bd6ec dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x267712ed blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x26784a48 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x26bce706 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26efedd9 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +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 0x27b36e98 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x27c50388 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x281f53a8 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28da7e70 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28ecb2d6 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x28fccd9c blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x28fcefed usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x29567d89 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x29771ef9 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a18dd7b bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2a2a0327 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x2a358e78 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x2a3bad98 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a8d3d67 system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2acb1450 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x2b12b5f6 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x2b3fa489 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x2b42ef6b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2ba530bb uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2bedf1b2 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c22489b led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x2c4527c5 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0410 xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2cb4c4cd pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x2cb64e78 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d36dc82 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2d506b1a __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d5e54bf transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x2d7c747e ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db69cb4 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x2dc770d3 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x2dca6d1b hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x2dcbaf5e mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x2dd4e469 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x2de5f70d fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x2e415570 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e86653d tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x2ea3bdb7 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2eeb1a74 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2f03a537 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x2f0a4eea hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x2f131e7e gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x2f139119 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2f234f71 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f5f3381 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f8039fd alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x301b3c2a fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x302fac40 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3039109e inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x307f8e25 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x308cad33 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30de1255 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31ea272a tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x3220808b pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x323b2a69 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x323f288e acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0x325dd24a crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x32898b1c sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3298ef01 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x32b6b809 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32d99c5a rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x3375a93c ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x339714e7 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33d1a35a unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x3405c415 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34527342 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x34581f9c led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x3462a1c5 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x3481d524 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x348710e1 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x34b9d1ca ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x34db26cd fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x350871cf regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x35262713 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x35438cd0 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x355ef68b ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x356cf5a4 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x357bd2e1 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x3599d80f srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e803e5 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x35eebc72 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x360a181e find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3626343f init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36391167 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x363aac15 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36878507 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x368b30fa swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x369cc3d4 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x36f9ddad bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x36fe0b79 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x371093b0 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x371477ed power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x373a254a usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x37413d1a register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x375ae878 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x3771f15b pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x3773cf94 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x378d743e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x37909fdf sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3790ce13 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x37a42993 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x37a774e9 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x37adcbac regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x37f02b5c crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x37f24b8f ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x3810a154 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x381371c3 xen_swiotlb_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x38515982 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x38520d0f adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x389d45bd sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x38a70f1a shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38b7c0e2 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38ef8eb0 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x3943d39f platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x394dc12d led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x3950148c crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x395385e4 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x3982dde3 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39f86561 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a696168 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x3ab262e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x3ab3a4e4 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x3b1c413e class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3b2d702f bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x3b5484ba platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3babd844 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x3bcec2cb tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3bf037f8 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x3c0493bb __module_address +EXPORT_SYMBOL_GPL vmlinux 0x3c298730 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x3c8b9dbc usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cb36c48 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x3cc2bcd4 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3cca2a88 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d0b0351 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3d18044a ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d58b0c1 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d9e37d5 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x3dbffe68 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3df4e81a __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x3e2f0557 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x3e31d410 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x3e3a9940 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3ec7bee2 usb_control_msg +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 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f698116 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x3f6bf9cb sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f8a6383 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x3fc07a6d adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x3fd5b15e setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x3ff57a2f generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x4004db20 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x406646ab ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x407d6773 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x408524eb spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x41239d2d tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x41635c17 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x4172047d ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x42320cd3 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x4233155f platform_bus_type +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 0x42c989ff iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43627ecd bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4362b1fd usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x436c5a77 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x43a9846f __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4433f79f wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x443e3950 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4490b556 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x449c1e38 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x44a58fc5 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x44df6905 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x44ede4bc eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x450fed82 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x4526c54c acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x45288d10 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x45710879 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4578df19 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45abd48d sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x45b0ebba usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x45b0f6fc spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x45b1935f usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d9e60f pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x4624b64c ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x4630a041 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x46453688 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x465b9bee crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x4661bc38 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46af5955 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x46d5817a power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x46de7afb con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x46e7dc0f preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46fdad02 unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x479271c5 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x47c1e565 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x47c7efd0 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x47cfda7c dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x4812b97d regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x482412c1 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x482b79ef device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48ae486f ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x48d2954e spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x48edcac3 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48f33376 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x4914a3d4 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x493858dc crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x4939c3aa scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x493bc4f0 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x49706190 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49ca4458 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x49cd35a2 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x49d26812 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x49d75546 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x4a321795 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x4a3dbe9b pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4a3fd066 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x4a3fdff5 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x4a8cf9bb skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x4af533c9 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x4b19b128 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x4b1d630b debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x4b3016bf xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x4b45b700 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x4b6199d3 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x4b727724 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4b867dcb crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4bab6173 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x4bc5dd74 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x4bdd9955 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x4c08948f platform_device_register_resndata +EXPORT_SYMBOL_GPL vmlinux 0x4c0f7ff3 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4c63284c root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4c6da5b0 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c8282c2 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x4cb46e91 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x4cf4a318 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d296e1f gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x4d3db37c ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x4d8c331b debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x4d91addf blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x4da26bbc usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x4db58bbb usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x4dee667a blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x4df4c537 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x4df90948 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x4e15bf70 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x4e2a721a regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4e48421d sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x4e62a6df spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4e920ec5 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x4ea8e1b5 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f7459b2 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4fa4edc2 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fcfdd5c sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x501b341b ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x50391c55 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x505d0077 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50bb209f crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x50c5d3c1 stmpe_reg_write +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 0x511e46bd __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x51341dd9 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x5179c0e2 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51d67745 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x51dc68eb scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x51ea6936 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x51f88365 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x5240f2f9 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x524f1f5e tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x52527222 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x52686b23 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x5269c1e3 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x5273f60e shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x52818e9a crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x529bc382 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x52b20298 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x538c41eb xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5399e06d regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x539e4024 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x53b4206d regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5400211d sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x5412b71a vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5439703b usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5471f316 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x547d4e38 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x547eaa5a kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x5481f728 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x548aee28 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54fe9eb0 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x55043121 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x552e1bf1 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x5538f277 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5544b8c9 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x5576afbc kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x557e4b0c inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x55f77c00 vfs_cancel_lock +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 0x5659d21c cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56667fc3 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56b927c0 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x56c655d8 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e8ca6d free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x573d29a0 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x57902bad rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x579b5fad swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a7413b devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x57a80527 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x57d39345 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x57dced97 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x57defa55 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x5811c131 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x58393500 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x584f1a62 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x5878d2a4 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x587c361b pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x589e0dd3 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x58b4f02f xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x58c16189 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x591c9db2 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x593c97e5 unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x5973396a ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x597f61ff disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x59b3abb0 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x59e7807e ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x59fd0d65 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x5a082ca0 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x5a0d2295 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a31c177 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x5a324ced platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x5a360b13 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x5a590ded crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x5a5b121e __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a83761c skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x5a9d108f md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x5acf707b fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5af1d76c usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x5af66f4a class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5afd29de cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5b9876de crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x5bb2c8ac pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x5bb46ea2 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x5bb689f4 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bc9d23d md_stop +EXPORT_SYMBOL_GPL vmlinux 0x5bdf5a6f ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x5be48f4c sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x5be920a2 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x5bf09e43 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c1365e7 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x5c2ffe01 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d307cc0 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d50333b kick_process +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5da43807 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5df03c9a ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x5e00f959 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5e296f63 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x5e7b4101 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x5e9d51de ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x5ebdb695 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x5efc4118 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5f0d1f40 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x5f11ea46 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x5f165ef6 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x5f1be283 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f50f938 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x5f880b34 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x5faf4d9f spi_async +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5ff7d2f5 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x603a062a pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x603c2ea8 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x608219fa register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x608b390e udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ac2555 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x60b3a89f bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x6139b3f9 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x61c423ca user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x61f36da0 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x621ea269 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x62445819 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x62772f01 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62b5adc3 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x62ce200c wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x62fdf2ac pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x630a34ac ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63786b20 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x63af5f19 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x644000bb __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x6456fea5 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x64597e79 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x647488f2 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x6487d5f6 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x649d425e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6559fb9d sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x6570d07b dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x6574b7d1 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x657b370f __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x657e237d rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x658a7b43 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x659ee051 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x65aba661 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x65b09788 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65bee2fd cgroup_add_file +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 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6690e62f mmput +EXPORT_SYMBOL_GPL vmlinux 0x66a36b2d spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x66a47ce3 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66eba17e xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x673305b6 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x674f9837 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x675539cd n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x6763f87e init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67beda4c rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67cb253a crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x67f1f0c7 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x6823c9f1 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x688283f5 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6892b719 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x6899ae61 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x693b0725 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x69712684 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x697af029 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69d0437c xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x69e72a9a blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69ef59f4 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x69f9ed58 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x6a33bd95 input_class +EXPORT_SYMBOL_GPL vmlinux 0x6a39547a __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a9f92d1 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6acd96d8 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x6b01db5a fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b10e585 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6bc9db9c ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x6bf956df __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cc00024 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x6cc32d2c blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x6d19690d usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d4f14ec crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x6d788205 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x6d85f9fb locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x6deea623 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x6e02cd1f usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x6e119a85 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x6e1d1f87 spi_new_device +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 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f752245 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0x6f8f810a task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6fec1eb3 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x6fecb404 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70468453 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x704b34d2 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x704cdf99 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x704f9599 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709e845c tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x70e38d85 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x70eff26c debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x712dbd27 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x71395d8f ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x716997c6 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x7184725a hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x724fc27d device_del +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 0x728acff0 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x7297b9fb __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x72aa254d i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x72fdc774 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x733139da usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x734f6f28 xen_swiotlb_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x73647fb5 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x73697a40 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x738331fd device_register +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73bfb433 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x73cf3f17 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x73d32dec i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x73da801c nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x741918db sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x741cb58a da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x742adc71 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743e7971 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x745d9786 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x746968d9 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74b49cdd __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7573969a ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x759055cc blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75d6c8f1 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x75e6aaeb sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75ececa1 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7625bc7b spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x763a3d34 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x76ec93ad flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x76f23b39 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7743936e usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x77711456 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x77862d6f crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77c6ddd6 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77fd36c4 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7838ccc1 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7875029d pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x7888ee94 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x788d6307 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x78a93446 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x78bd827b usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x790060f2 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7949f134 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x79acac97 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x79b7eab7 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x79c6674b device_add +EXPORT_SYMBOL_GPL vmlinux 0x79e4a192 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x7a1bdb29 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x7a340254 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7a810b7f ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7af4aeb3 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x7b0cb262 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b47d7e9 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x7b64775a i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x7b7a18b5 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x7b7c227d relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x7ba45dd2 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x7ba6cd54 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7c0768d5 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x7c230dfe mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x7c45f048 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7cad034d pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x7cbc4eb1 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x7cd00e6a ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7d0edcbc dm_put +EXPORT_SYMBOL_GPL vmlinux 0x7d10e850 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x7d2524ad __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7d32c2f9 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7da74bc8 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7db43c3a usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dd79251 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x7e09ef69 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e1d4826 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e502b18 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e8745a0 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7ea610d9 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x7ebf35a6 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ec59276 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x7efc0c7e disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x7f0fc7af pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7f937b2a crypto_alloc_aead +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 0x801bc91b nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x802e3466 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80c38a7f plugger_init +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x814e8e11 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x81740199 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x817fcc7c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x81afeef6 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x82064d82 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8250fef2 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82e10046 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x82eb32ff debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x8303bb18 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x831f52f9 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x83284f48 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8349592a input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x836bef0a ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x837f90c0 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x838cf25f led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x83953828 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x83b62d66 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x84286c6d xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x846ab437 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x84c7fe8e devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x8510a8ac fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x851c474b register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x852da5e6 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x856429fb dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d2f65b ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86a87ef0 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x86ae0851 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x86f012b5 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x8707fadf rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x875bf1dc rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x876a3b60 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87a74081 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x881deaf1 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x882b0fbc wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x8831f8b1 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0x883e80b8 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x883e8f4d stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x884f8bed kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x8850cccb cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88ade8ba ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x88c677cf ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x88d5efcb sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88effb35 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x8901f7c7 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89397ca5 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x898872a4 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x89d77dc1 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x89daaede ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x89e38b76 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x89fb052b class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7def1f cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ae664f5 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8aeacbb4 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x8afca130 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b6aba36 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c1ebcd0 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c7a9b58 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8ccb1ae3 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cffd024 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x8d1fb6ea ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8d29cc0f blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8d4e2952 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x8d79c01a usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x8d9a8111 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x8d9ad7a6 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x8da47a7e sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x8dbbc2b4 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x8dd63abe inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x8e2c6b9c scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x8e3b43ea dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0x8e776201 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x8ea0fb50 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x8ec63d76 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x8ed13910 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x8ed8c493 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x8ed9df59 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x8edf5ceb device_move +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ee4423b sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8ef0ce80 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f74fad1 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x8f81b269 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8f86e2a0 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fc13557 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x8fdb7dc6 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8fe892d7 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x8ffc5625 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x90656f2d ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x906fdd23 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x90927d46 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90c5513e crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x90caf85c virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x90d5404d pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x90e09da2 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x911c67aa xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x912f8c1e ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x9145141d xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x919f882c wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x91d49c3a sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x91ebd3a8 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x91fb9086 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x925fc32b blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x927732af __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92bf8098 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92eece8b input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x92f6b78c xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x939bb92f shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x93a2b3c5 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x93b54227 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x93b7b3ea noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x93c55870 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93f8f500 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x9439cb40 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94b1afdc devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x951d14e9 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x951e1577 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x952031ee usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x953dd3b1 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955caa2f regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9562b21b driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95b1505c __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x95bc0757 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x95c6829b tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x95da94ca perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x95f07763 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9644b60b device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x96c63a63 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96feeeac platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9724466a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x9734ed71 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x97360d64 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x97765c69 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x97858d67 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x97d08135 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x981f1191 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x983f3f63 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x9864c351 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x9869f369 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x987ba6fe ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x988d4e7b xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x98f1d492 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x98fa0a39 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x98fced8d platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99250877 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x995af8b6 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x99c1bfc8 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x99e34c09 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x99f0fc39 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x99f267b5 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a3a6c6c event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x9a755f40 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x9a889602 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x9abee10b device_create +EXPORT_SYMBOL_GPL vmlinux 0x9ac82f49 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x9ac89b7c cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x9b299fbb print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x9b30a364 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x9b4d4947 pxa_ssp_request +EXPORT_SYMBOL_GPL vmlinux 0x9b989552 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bbf1b93 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x9bcf5dde xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x9bd8ed32 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x9bec3511 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x9c1332df netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c3d1c42 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x9c8d43ce xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cc37ab7 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x9cd67462 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d16b3e5 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x9d235e29 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d50d835 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9dd4a2fa ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x9e19c177 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x9e20aca7 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x9e356858 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x9e4b7f58 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x9e5fc0d0 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x9e669b72 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x9e963c94 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x9eac0978 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9f08ea99 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x9f197315 plugger_set_plug +EXPORT_SYMBOL_GPL vmlinux 0x9f2b1792 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f41488a pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x9f417153 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9f930216 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x9fad2b0a __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9faf1b80 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x9fc96973 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9feeb7fb relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa036d51f __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa06b779e usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xa06c4bac pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa084fd5a sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xa0952ab5 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa0bcc48f pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa0dc0a9e xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0xa13229b6 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xa1562b6d device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xa158e9b2 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa1a75414 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xa1a9793b bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xa212bc6c usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa23b62d9 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xa28dbee0 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xa2b4cac2 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2e914f1 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3dbe0bb crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa479d515 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4f3e78e attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xa502391d unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xa52153bc sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xa52226fd usb_string +EXPORT_SYMBOL_GPL vmlinux 0xa575c33a ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xa5c226ce cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xa5e818c8 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xa5eb3d08 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa60c0d40 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa63aef43 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xa6d6a2be agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xa6e25fd6 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa749f9da regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa777e181 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xa78b9250 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xa823632f i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xa82ee680 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa82efadb __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xa84d515e dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8569b2c dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8eed773 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa915e2c2 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xa925d428 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa93415ae blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0xa95b6684 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9dd9eab get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xa9f16210 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa549c41 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xaa59362a tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xaac4e672 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0xaae5fdb7 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xaaf28667 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab270c23 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xab3110f6 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6cbb4d flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xaba5c948 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xabd31b91 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabf98c7e fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xac346468 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xac36670d crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xac3f0f3b sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xac6c00bd dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xac7263bb wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xac94b813 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacb89bf3 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad04d5ad xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xad090c64 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad0ad7de regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadcb4148 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xadf0d134 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xadffaac1 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae24b41f scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xae2d196b sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xae5dbfb1 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xae5eea4d swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae7f186e sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xaea0cc21 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xaed433ac pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xaeddfc95 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xaf02228d sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xaf143c68 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xaf31979e ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf3fb1b7 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xafb572bc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xafb8a644 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xafb92bff pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xb0024b8c devres_get +EXPORT_SYMBOL_GPL vmlinux 0xb025e015 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb0328f97 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xb0597b36 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xb0623ebe ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xb07304a5 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb082aa6e pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xb083cbd0 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xb0d013a0 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb0f16e57 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb115f2da acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xb129db55 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xb16378cd pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18506b9 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1c477b3 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xb1fb894f udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb27b26a2 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xb2ba7f67 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb342bb3b ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xb357c88c ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xb35e0d9b cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb414515f pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xb414e175 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xb42df29b ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xb457d92c blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb46ab94e rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xb475a4ad transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb4a848ff fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xb4d053b8 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e76ef9 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb4ea2214 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb535bfba raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb538815a inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb54e7130 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xb5551c34 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xb5858c36 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5a9a561 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60c2f04 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb62d5bba class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb65554a6 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb6a4a2c8 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xb6a8a821 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb6ec9a3b fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xb6ef224e tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb73a1950 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb79b2f34 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f08106 get_device +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb7fd476d scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb82e8ef5 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xb85c334f inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb8673f89 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xb869025e crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb872e69c wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb88b9398 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0xb89a3c67 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xb8a2d3c6 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9209f1c ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xb94f8cc2 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xb96950b6 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xb9781cf0 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xb99ade8a __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9ab74ff mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb9d69507 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb9d76581 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba10967e pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xba167100 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xba9952f5 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xbaa3f64d cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbad26f3b sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xbad600e9 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaf58611 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xbaf6c7f4 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1ce5eb xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0xbb280775 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xbb3e0d10 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbba0d34d dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xbbacbc3f spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbd3ba09 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbbfe662e usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xbc121c92 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xbc2cfbc4 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xbc3fa493 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xbc7a1d19 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0xbc949bf0 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xbc984e84 find_module +EXPORT_SYMBOL_GPL vmlinux 0xbca31dcd sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbcbb4999 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xbcd1806d file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xbd01347a put_device +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd5dcdf3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xbd9aa045 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbdc8407f fib_rules_register +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 0xbddba590 css_depth +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3da3d0 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xbe5843c8 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xbe650037 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbed17d4f acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xbed91f9d vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xbefd1b2d rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xbf053a49 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbf0d955c pxa_ssp_free +EXPORT_SYMBOL_GPL vmlinux 0xbf162785 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf32ba9a kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xbf3ada30 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xbfa1c946 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xbfb7fe52 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbfe1b319 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xbfee8ab2 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xbffa6112 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xc0337c0f xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xc03c3dcc kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc058077e kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xc085241a filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xc0bae92f led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c18583 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xc0e9f750 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xc0f028d0 sdio_writesb +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 0xc14dd2da css_id +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc16e8379 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1a17cf7 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc1a59839 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc23bab04 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xc251d602 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xc259d42e regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xc25ee868 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc26fef41 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2875391 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xc2a1aef8 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc3829708 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3aadd41 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc3d27ccc firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc3d9d872 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xc419903e crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42c9e0b da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc4522d91 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xc452b305 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xc4557fb4 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a80cac class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc4bacf6c pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xc4bd8392 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xc4c357cc ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc4c8f7a8 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xc4f53cf4 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc5375bbc inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc56225ab mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xc5638a32 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xc5950ac5 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xc59f556e led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xc5ab254d each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc5bc715d destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0xc5fcbd8d usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc62a3fea shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc62d54c6 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc6a2fd80 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xc6e86543 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc72186d3 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xc764131a blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xc7e04263 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xc7f748e6 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xc81b3593 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xc855d848 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0xc8736b03 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc899df0c seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xc8ab84c6 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xc8ad22b0 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xc8b55e6e crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8ddcae3 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xc8de10cb skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc90ccc8c unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xc90e2ce8 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9159d9f cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xc9262270 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc958dcaf dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xc95fb72d xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fccf18 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xca1515ed vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0xca22ef0b ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xca817f86 edac_class +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca89e70f raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xca983b6e regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcafe4f9f sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xcb740eac skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xcb9e81a7 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xcbe46865 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbffb671 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc25e3d8 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xcc2c417c system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xcc3c88f9 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xcc402455 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xcc562f3f stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc74a138 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xcc95f942 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xccbca469 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd1b2060 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcd212a59 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcd277446 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xcd37bbe6 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xcd3ca534 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xcdc27e05 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcdc291ca class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce4a4519 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xce5c96a2 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xcebabd34 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xcefb08c5 acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0xceffb475 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xcf04c128 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfc6774f generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcff366d5 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd024e104 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd054b33f dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xd07087ea crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xd086e8ab srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0xd0bb9a7a sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c32645 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xd0d22616 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd0f407ac rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd1116eca anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd1388656 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xd13abd8e get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1a8b683 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd1b04dd2 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c19e46 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xd1cc12ec fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xd1cff011 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xd20e09a1 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd22ad4ba regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd245bc03 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2972a3b dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xd2a51521 is_hwpoison_address +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd3188fce platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xd3208f3a fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd3224880 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xd3240cf8 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd366cc36 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xd36b6e4d kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd440b983 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xd4693ac6 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xd46c6cdd platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd47177a8 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xd4a4bd5a inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xd4b2f7f6 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xd4ee2410 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0xd546ed87 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5b43fd0 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xd5d1ab16 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xd5d2d771 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xd5ef1c15 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xd5ef1ed7 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd619b1a1 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xd63cd6f3 __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0xd6902a17 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xd69d0437 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xd6b52c66 alloc_page_buffers +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 0xd71ef7a7 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd7555a56 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd786fa35 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xd78ae416 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7d31f64 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xd7d71c22 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7dfb281 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xd81437b0 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd8229484 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xd8250a5c iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd874b1da edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0xd881b95d dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd8f887ae __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd95063eb pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xd982f091 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xd9cec7a3 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd9e0d82d pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda1e244a tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xda2a4937 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xda3b5783 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xda3e01b1 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdaffc62d ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdbc29332 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdbe41d3b page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xdbe818fc show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc63d4d9 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdca45a20 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xdcbb2748 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdcfe334b cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xdd0bf1e8 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xdd0d719c power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xdd0e0418 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xdd61bb79 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xdd643c77 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xdd75731f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xdda7a795 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xde08d5cd xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xde3e7a5d rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde58a071 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xde5aea95 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xde8ce5f9 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xdeba57f5 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xdefcdbe3 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xdf267be9 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xe0065ec3 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe0236045 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xe02836c6 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xe05388ba drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xe069c38f usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe09f2c06 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xe0c3bbb3 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0efdf87 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe1322e71 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xe1445478 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xe1568d9c erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0xe19c2301 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xe1ad61bd apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xe1eb1cef ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xe20ee5e6 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xe23f73fc ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0xe244bc1a ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xe27761d7 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xe281e6f4 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2b1d027 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xe2caa429 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0xe2e9aa56 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3d004c3 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4e364ce xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe4efa138 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xe505352f xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xe5224a0f locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xe55d0bce mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xe5a9c1a6 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xe5cb69f1 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe61c6950 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xe62d577a power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6564673 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xe65a66e5 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe67bda89 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xe68220ba __class_register +EXPORT_SYMBOL_GPL vmlinux 0xe6846104 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xe6afba53 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe71aa6dc dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe76a8a72 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xe781516f register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xe79f6c30 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7c5e766 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xe7f0ce45 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xe7fba4cd isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe81aed21 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe82be077 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe862e913 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xe8c96485 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe955da61 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9975384 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xe9a8199d debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe9c322d1 fuse_file_poll +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 0xea37f5e0 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea614194 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb6c4ce1 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xec0458f0 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xec0c823e tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xec1ac41c rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec35c68b register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xec3b7228 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xec4cb633 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xec50db1e regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xec647178 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xec67c395 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xec8d03f7 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xeca7ff84 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xecc0f7c8 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xecc2b65c fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xecc5950f zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xed11fa05 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xed1a3d50 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xed4e1335 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xed56f6f1 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xeda02c88 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xedae1e3a usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedddcfe2 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xede40ddb usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xedf158d4 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee3050ee usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xee329603 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xee606468 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xee66bd15 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0xee68a33f rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xee860b6c xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xeeb6a068 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef776ac8 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xefb24127 xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0xefc12c28 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf018bdc0 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xf04f973c class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xf067d215 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf0d57750 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xf0d98346 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xf0fadb46 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xf1220ac1 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf17be006 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf18d48ac xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0xf19395b2 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xf1af84e9 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1dd8c58 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf283be6d sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xf2d3edbe __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3b941f6 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xf3d2e2d7 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xf3de5e37 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf3e92104 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf3efd02a queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xf3ff965b ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xf40b92b1 ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xf46da86e page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a6c472 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4eea1f0 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xf4f643ac ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf5425078 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5ab6d71 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf5affac7 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xf5e1555b sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xf5fbff57 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xf62bf7a9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6b90474 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e53a41 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ee488b sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf7550ca3 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xf76b07a7 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xf7774c2b ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xf777f087 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7b30c35 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xf7c47bb6 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xf7cf1c75 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0xf8278c7d bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf872c59b hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf878e6cc dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8896882 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xf88c18ad anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xf88eb952 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf917b678 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf9380aed dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xf958c029 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xf9610905 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf978bbb6 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf994ecaf dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9cbeb9c crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa7b6130 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa81de06 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xfaa8311e xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xfabaef7d adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfae5358c wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xfaed6bb9 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xfb0ed572 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb541d9e pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb71c776 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xfb74d85b sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xfb7688b9 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xfb7e5b95 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0xfba90e20 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xfbe59752 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfbeec218 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc259fe3 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfd43b7d5 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfdde5dcd __put_net +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdfc86b2 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xfe10de23 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xfe377604 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xfe3cf3b1 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0xfe5392c7 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0xfe673c9d usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xfe6b1205 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe752ad7 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeb40fd7 user_update +EXPORT_SYMBOL_GPL vmlinux 0xfec05f6a ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefedb68 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xff0bef80 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xff515793 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5c0464 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xff71fe40 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xff7a4f2a usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffd608ad print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xfffb35e5 perf_event_release_kernel --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/i386/generic.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/i386/generic.modules @@ -0,0 +1,3310 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6pack +74x164 +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 +ab8500-ponkey +ab8500-usb +abituguru +abituguru3 +abyss +ac3200 +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acl7225b +acpi_ipmi +acpi_pad +acpiphp +acpiphp_ibm +acquirewdt +act2000 +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s120x +ad2s1210 +ad2s90 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5398 +ad5446 +ad5624r_spi +ad5930 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7745 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +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 +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16251 +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 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt75 +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +aes_generic +aes-i586 +aesni-intel +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +ali-agp +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +ambassador +amc6821 +amd76x_edac +amd76xrom +amd8111e +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +analog +ansi_cprng +anubis +aoe +apbuart +apds9802als +apds990x +apm +appledisplay +applesmc +appletalk +appletouch +applicom +ar7part +ar9170usb +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +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 +basic_mmio_gpio +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcm63xx +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blowfish +bluecard_cs +bluetooth +bmp085 +bna +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcm80211 +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +bu21013_ts +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 +carl9170 +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_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +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 +cpia2 +cpqarray +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crystalhd +cs5345 +cs53l32a +cs5535_gpio +cs5535-gpio +cs5535-mfd +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 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +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-raid +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 +ds620 +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +dummy_hcd +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-lmedm04 +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_midpci +dynapro +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +earth-pt1 +easycap +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 +ec_sys +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 +emc2103 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enclosure +encrypted +ene_ir +eni +enic +epat +epca +epia +epic100 +e_powersaver +eql +erst-dbg +es3210 +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +eth16i +ethoc +eurotechwdt +evbug +ewrk3 +exofs +exportfs +f71805f +f71808e_wdt +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 +fpu +freevxfs +friq +frpw +fsam7400 +fscache +fschmd +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +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_ncm +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-usb +gpio-addr-flash +gpio-charger +gpio-fan +gpio-i2cmux +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_vbus +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_konica +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_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +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-axff +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +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_timesource +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +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-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +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 +i7300_edac +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 +ibmlana +ibmmca +ibmpex +ibmphp +ibm_rtl +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +ii_pci20kc +ili9320 +imm +imon +imx074 +in2000 +industrialio +inexio +inftl +initio +inport +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +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_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +iris +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_boot_sysfs +iscsi_ibft +iscsi_tcp +iscsi_trgt +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +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 +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +janz-ttl +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +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 +leds-88pm860x +leds-adp5520 +leds-alix2 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lp3944 +leds-lp5521 +leds-lp5523 +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 +libceph +libcrc32c +libcxgbi +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_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 +lp3972 +lp486e +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4215 +ltc4245 +ltc4261 +ltpc +ltv350qv +lxfb +lzo +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 +max17042_battery +max2165 +max3100 +max3107 +max6650 +max6875 +max7300 +max7301 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8998 +mb862xxfb +mb862xxfb_accel +mb86a16 +mb86a20s +mbp_nvidia_bl +mc13783-adc +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc33880 +mc44s803 +mce_amd_inj +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdacon +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +metronomefb +meye +mfd +mga +michael_mic +micrel +microcode +microtek +minix +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +ml_ioh_gpio +mlx4_core +mlx4_en +mlx4_ib +mmc_block +mos7720 +mos7840 +moto_modem +moxa +mpc624 +mpoa +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mrst_max3110 +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_defrag_ipv6 +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 +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntfs +nuvoton-cir +nvidiafb +nvram +nv_tco +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +of_serial +old_belkin-sir +olpc_battery +olpc-xo1 +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 +ov2640 +ov6650 +ov7670 +ov772x +ov9640 +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_platform +pata_qdi +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pbe5 +pc110pad +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca953x +pca9541 +pca954x +pcbc +pcbit +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pcf8591 +pch_can +pch_dma +pch_gbe +pch_gpio +pch_phub +pch_uart +pci +pci200syn +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 +physmap_of +pkgtemp +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pms +pn544 +pn_pep +poc +pohmelfs +poseidon +poulsbo +powermate +power_meter +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +progear_bl +proteon +ps2mult +psmouse +pt +pvrusb2 +pwc +pxa2xx_spi +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qt1010 +qt602240_ts +quatech_daqp_cs +quatech_usb2 +quickstart +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192se_pci +r8192u_usb +r82600_edac +r852 +r8712u +r8a66597-hcd +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +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-wl1273 +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +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-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +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-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-msi-digivox-ii +rc-msi-digivox-iii +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-002t +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-terratec-slim +rc-tevii-nec +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +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 +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-ds3232 +rtc-ds3234 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +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-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl8150 +rtl8180 +rtl8187 +rtl8192ce +rtlwifi +rts_pstor +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +s921 +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 +sam-ba +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 +sbe-2t3e3 +sbni +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-of +sdhci-pci +sdhci-platform +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 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +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 +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smbfs +smc9194 +smc91c92_cs +smc-mca +sm_common +smctr +smc-ultra +smc-ultra32 +sm_ftl +smm665 +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-aloop +snd-als100 +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt1605 +snd-azt2316 +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-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +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-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-sis7019 +snd-soc-88pm860x +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-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max98088 +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-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +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-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +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 +softing +softing_cs +solos-pci +sony-laptop +sonypi +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +specialix +spectrum_cs +speedfax +speedtch +spi_bitbang +spi_butterfly +spidev +spi_gpio +spi_lm70llp +spi_topcliff_pch +squashfs +sr030pc30 +ssb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc1100-wmi +tc3589x-keypad +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 +tda18218 +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-kstrtox +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tm6000 +tm6000-alsa +tm6000-dvb +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 +tps6524x-regulator +tps6586x-regulator +trancevibrator +tranzport +tridentfb +trusted +ts5500_flash +ts_bm +tsc2007 +tscan1 +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 +twofish_common +twofish_generic +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +uas +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 +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 +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +vicam +video +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 +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt6656_stage +vt8231 +vt8623fb +vx855 +vx855_gpio +vxge +w1_bq27000 +w1_ds2423 +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 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +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 +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +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 +xo1-rfkill +xor +xpad +xprtrdma +x_tables +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +z85230 +zatm +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/armel/versatile.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/armel/versatile.modules @@ -0,0 +1,1950 @@ +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 +a3d +aacraid +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abyss +ac97_bus +acard-ahci +acecad +acenic +act_csum +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad525x_dpot +ad525x_dpot-i2c +ad5398 +ad714x +ad714x-i2c +ad7291 +ad7745 +ad799x +ade7854 +ade7854-i2c +adfs +adi +adm8211 +adp5520_bl +adp5520-gpio +adp5520-keys +adp5588-gpio +adp5588-keys +adp8860_bl +adt7316 +adt7316-i2c +adt7410 +adt75 +adutux +adxl34x +adxl34x-i2c +aes_generic +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +algif_hash +algif_skcipher +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +amd8111e +analog +ansi_cprng +anubis +aoe +apds9802als +apds990x +apm-emulation +apm_power +apm-power +appledisplay +appletouch +applicom +ar7part +ar9170usb +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +asix +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at76c50x-usb +atbm8830 +ath +ath3k +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 +basic_mmio_gpio +batman-adv +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcm63xx +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blowfish +bluetooth +bmp085 +bna +bnep +bnx2 +bnx2i +bnx2x +bonding +bpa10x +bpqether +bq20z75 +bq24022 +bq27x00_battery +brcm80211 +bridge +broadsheetfb +bsd_comp +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +btusb +budget +budget-ci +budget-core +c67x00 +cachefiles +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfspi_slave +ch +ch341 +chnl_net +cifs +cirrusfb +clearpad_tm1217 +cls_basic +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cma3000_d0x +cma3000_d0x_i2c +cnic +cobra +coda +com20020 +com20020-pci +com90io +com90xx +configfs +core +cp210x +cpqarray +cramfs +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +crystalhd +cs5535-mfd +ctr +cts +cuse +cx22700 +cx22702 +cx24113 +cx24116 +cx24123 +cx82310_eth +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +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-raid +dm-raid45 +dm-service-time +dmx3191d +dm-zero +dnet +dn_rtmsg +dpt_i2o +drbd +drm +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +dummy +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-lmedm04 +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_mmc +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 +emu10k1-gp +em_u32 +enclosure +enic +epca +epic100 +eql +esd_usb2 +esp4 +esp6 +et131x +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 +fm801-gp +forcedeth +freevxfs +fscache +ft1000 +ftdi-elan +ftdi_sio +funsoft +g450_pll +gameport +garmin_gps +garp +gcm +generic_bl +gf128mul +gf2k +gfs2 +ghash-generic +gl620a +gluebi +gpio-charger +gpio-i2cmux +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_vbus +gre +grip +grip_mp +gtco +guillemot +hamachi +hanwang +hci_uart +hci_vhci +hdlcdrv +hfs +hfsplus +hid +hid-3m-pct +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-zpff +hid-zydacron +hifn_795x +hmc5843 +hmc6352 +hostap +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpilo +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +i1480-dfu-usb +i1480-est +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-eg20t +i2c-gpio +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +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 +ieee802154 +ifb +iforce +igb +igbvf +iio-trig-gpio +iio-trig-periodic-rtc +imon +industrialio +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 +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_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +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_boot_sysfs +iscsi_tcp +iscsi_trgt +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6421 +isl6423 +isofs +isp116x-hcd +isp1704_charger +isp1760 +istallion +it8761e_gpio +itd1000 +iuu_phoenix +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwlagn +iwlcore +iwmc3200top +iwmc3200wifi +ix2505v +ixgb +ixgbe +ixj +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jsm +kafs +kaweth +kbtab +keucr +keyspan +keyspan_pda +keyspan_remote +khazad +kl5kusb105 +kobil_sct +ks8842 +ks8851_mll +ksz884x +kvaser_pci +kyrofb +l2cap +l2tp_core +l2tp_debugfs +l2tp_ppp +l64781 +lanstreamer +lapb +lcd +ldusb +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-da903x +leds-gpio +leds-lp3944 +leds-lp5521 +leds-lp5523 +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 +libceph +libcrc32c +libcxgbi +libertas +libertas_sdio +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libsas +libsrp +lightning +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lm8323 +lnbp21 +lockd +lp3971 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +lzo +lzo_compress +mac80211 +mac80211_hwsim +macmodes +macvlan +magellan +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1363 +max1586 +max17040_battery +max17042_battery +max2165 +max6875 +max7300 +max730x +max732x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8998 +mb862xxfb +mb862xxfb_accel +mc44s803 +mceusb +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +memstick +metronomefb +mfd +mga +mg_disk +michael_mic +micrel +microtek +minix +mkiss +ml_ioh_gpio +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_defrag_ipv6 +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 +nosy +nozomi +ns558 +ns83820 +ntfs +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +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_cs5536 +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_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pca953x +pca9541 +pca954x +pcbc +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf857x +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +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 +pn544 +pn_pep +pohmelfs +poulsbo +powermate +ppp_async +ppp_deflate +ppp_mppe +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +pptp +prism2_usb +prism54 +ps2mult +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qlcnic +qlge +qnx4 +qt1010 +quatech_usb2 +quota_tree +quota_v1 +quota_v2 +r128 +r8169 +r8187se +r8192e_pci +r8192u_usb +r8712u +r8a66597-hcd +radeonfb +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +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-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +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-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-msi-digivox-ii +rc-msi-digivox-iii +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-002t +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-terratec-slim +rc-tevii-nec +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +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 +rfcomm +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-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1307 +rtc-ds1374 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max8925 +rtc-max8998 +rtc-msm6242 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-rp5c01 +rtc-rs5c372 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8180 +rtl8187 +rxkad +s2io +s3fb +s5h1411 +s5h1420 +saa7146 +safe_serial +salsa20_generic +sam-ba +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 +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 +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-platform +sdio_uart +seed +sep_driver +seqiv +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha1_generic +sha256_generic +sha512_generic +si21xx +sidewinder +siemens_mpi +sierra +sierra_net +sis190 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_platform +skfp +skge +sky2 +sl811-hcd +slcan +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-aloop +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-ca0110 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401-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-88pm860x +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-ads117x +snd-soc-ak4535 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max98088 +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-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-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8776 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +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 +softing +soundcore +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +specialix +squashfs +ssb +ssfdc +sstfb +ssu100 +st +stallion +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stmmac +stmpe-keypad +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sunhme +sunrpc +svcrdma +svgalib +sx8 +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tcp_probe +tcrypt +tda10023 +tda1004x +tda10086 +tda18218 +tda18271 +tda8083 +tda826x +tda827x +tda8290 +tda9887 +tdfx +tdfxfb +tea +tea5761 +tea5767 +tehuti +test-kstrtox +test_power +tg3 +tgr192 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tmdc +tmiofb +tms380tr +tmscsim +tmspci +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6586x-regulator +trancevibrator +tranzport +tridentfb +ts_bm +ts_fsm +ts_kmp +tsl2550 +tsl2563 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tulip +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +twidjoy +twofish_common +twofish_generic +typhoon +u132-hcd +uas +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 +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usb_wwan +userspace-consumer +ushc +uvesafb +uwb +vcan +ves1820 +ves1x93 +veth +vfat +vgastate +vhci-hcd +via +via-rhine +via-sdmmc +via-velocity +virtual +visor +vivopay-serial +vmac +vme +vme_user +vme_vmivme7805 +vmxnet3 +vt8623fb +vx855 +vxge +w1_bq27000 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w35und +wacom +warrior +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +wire +wl1251 +wl1251_sdio +wl12xx +wl12xx_sdio +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 +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 +xgifb +xhci-hcd +xor +xpad +xprtrdma +x_tables +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +yam +yealink +yellowfin +yurex +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10039 +zl10353 +zlib +zlib_deflate +zram --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/armel/versatile +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/armel/versatile @@ -0,0 +1,9309 @@ +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 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0b533c0c fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x396c8fb4 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c31b5ae fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x466894e2 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5bf74a54 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5ebacbe3 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x63b5470f fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x752f5de0 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7d68f982 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x82538ff5 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x83c803e1 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x940cd722 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa8c6f62f fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa993ca15 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaa9e4d57 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaed3d0e7 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb44e0892 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb60d5d73 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc4767f94 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdf2e4ab2 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xea423d0b fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xeca31f53 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf4b5c896 fw_core_handle_response +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00d10e3f drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x011387f0 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0477bb83 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0547cbd5 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05e52488 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09347307 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a176f58 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cb15a83 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f1e65e8 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d46b7f drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13139fa9 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x166dac76 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x172d73fa drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18093c48 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x190a8708 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1acd14f7 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bb821dd drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f24f053 drm_mode_attachmode_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 0x21592bba drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28b80323 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2af2755b drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c3c44c9 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c7995b1 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ccd3271 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fdb9beb drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3514d629 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3558ac67 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35d47c70 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x372436c5 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38dc91a7 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3abdd5f5 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b52177a drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d86c590 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3db6989e drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f606061 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4267b878 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44d5bee6 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x452407e9 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x452fea01 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x454cdce1 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d6f6482 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ef32ac9 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f121871 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x529db5be drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5338298e drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55022085 drm_crtc_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 0x5d62b93c drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6161593b drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62958ec0 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64123964 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68258907 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x682d2bf7 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c12a570 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d7566b8 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fee7e59 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72544ad1 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72ec724c drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x754f64eb drm_mode_crtc_set_gamma_size +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 0x7c3720e8 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c67c813 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x872d56db drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e0dba4b drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ec35573 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ee93f84 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x914c740b drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91ff082b drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x930deae3 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x938c89e5 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9401453f drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x942b012c drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96502b98 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96fa720f drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97a29689 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9870c494 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9921043a drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x999da622 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f76ef59 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ff9a719 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa51e3e93 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5e79d48 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa74f25f1 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa793a617 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf7702e3 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1706663 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2bbc074 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5ad2a6f drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7976aac drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8b52cb5 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbaa152f drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf195a09 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3177b9f drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcabde0ad drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd7817a4 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb4647b drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd009169a drm_core_reclaim_buffers +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 0xd594e4a3 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5fc75ad drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6e90b8c drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd847d2ec drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd91fbf82 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9b95f71 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda1e7eb4 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc4b4f38 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd5e9057 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0eb27f0 drm_ati_pcigart_cleanup +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 0xe2b8eca2 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe31664ee drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3975e0f drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe551bfe7 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe643ed98 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe81f3448 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec32a87d drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecd98dea drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee9d7a77 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf072069b drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf35d7fa4 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf668f637 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaf08cdd drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc014c0c drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe5ee769 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff7ec5ef drm_global_mutex +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x1db67644 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xf362cf55 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x698cad38 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xcd365f1e i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x38131091 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xc5c60203 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x10faf4e5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x666f618f rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x823a7cc4 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc210e756 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xee034f38 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x09b377f3 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1184188e ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1e099ea8 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3b4c2177 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4008cdfe ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4a87f395 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4f751c7c ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x52d8ebd6 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6439b8de ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x70b65d76 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7ad729a8 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8309e7ff ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x907ac76e ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xaf23cd8c ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcfa42e61 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xde29aa77 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xed87e384 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00b7f40d ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04e05057 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x091af459 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b7f0125 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1128717c ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x127c4465 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a34c7e7 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a80a86b rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b129b42 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x205e1cf4 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20e89d20 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x220774b8 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x229c5ab1 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x237ad8a1 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24ad2f99 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27f8765f ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2fe2bed1 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3112b8c1 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31315cb8 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33760853 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33c6b7fc ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44a85bef ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48baf218 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52967606 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x563d152b ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x586ac94b ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bac5137 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cf7f557 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d31e728 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x614fed94 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a1579b4 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b730621 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6eaa71a0 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fb04c39 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c21acd0 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x80b5d104 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x811a8e05 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8497a563 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86c65efe ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8880d4e1 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d502189 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fcc6629 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x93706d89 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x958e8873 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9810c2ff ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9a2b4d4e ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d9fe339 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9dce9f32 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa05173b4 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3803f87 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3b98aef ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa80cdd25 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbda3c996 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc026ac97 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1be042b ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4a73ff4 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc71f2415 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcaf7fc14 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb5a33aa ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd04b9f99 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd60b8d13 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd64f9415 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd84e1f29 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdfc089d2 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4b53fce ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec182ddc ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6b4b8f2 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7396a3b ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x09af353e ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1724d403 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1ffd4e9e ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5ad4a40d ib_get_rmpp_segment +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 0x774657a8 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x799427aa ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x88c444ee ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb1cbca88 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb542fd84 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb6eac3e5 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf74d9654 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfeba344f ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x177be8cd ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1a2052e4 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3dc6c8fb ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x56616144 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 0x82b678ae ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90480d64 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa81df09a ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc10e73a4 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 0x1e81ab7b iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4983f52f iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x49df9211 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x84713dad iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x994ab6f5 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa72335f7 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa9c53c3f iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf360ba13 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00205f65 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x10a9ab31 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x21455232 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2390b240 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x476363af rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4d81c65e rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x55b3aa5e rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ae9cfe5 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x72ae0b08 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8e560804 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x90bb9f3f rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x95620ba7 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x95660835 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa202f8a6 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb1afcdae rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc5c7275c rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd321ba6e rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe26bc2f6 rdma_connect +EXPORT_SYMBOL drivers/input/gameport/gameport 0x05ce1b76 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2c36e9ba __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x476d5357 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4c28015e gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x556f63f8 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xdb3e6c76 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe6065e18 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf449665c gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf60dd430 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/input-polldev 0x13461207 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x26e0dd22 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x2ecb1db4 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x35c0f86d input_allocate_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x50baf355 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x63af7fb8 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xc03b62ef ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xde511077 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x4946e62d cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x5ff0c5b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x747dfb3f cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x838162de cma3000_init +EXPORT_SYMBOL drivers/input/sparse-keymap 0x2bf0e410 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x37bbfe2b sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x6604d2b8 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x8f98f79f sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe663797a sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe7adf18a sparse_keymap_report_entry +EXPORT_SYMBOL drivers/md/raid456 0xc8c0f2e6 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x45f84920 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x8f96b4ac mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x3a5b07f8 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x8e834000 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x16d5ead1 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x76f30185 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x7944b432 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x0f0a0fdb tda18218_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 0x6603ab8c xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xf014d55f xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ae148ea flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3d9afa4e flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x40563b87 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4cd22119 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7443e184 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x783a1886 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7d596e6a flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x829cc1b9 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9f7c8d68 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xab1ad63e flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb5722d6f flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb8dfa2d1 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcbd05915 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdde3c373 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe3ef0fa3 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf3f08dd4 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf84bfa7f flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf8dbb920 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf8dda5d6 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfc83147c flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0923ffcc dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0ebb6bf7 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x16a4ff78 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x20bc0c28 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2545ce16 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x26983c37 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x30412172 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4552fefa dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x47706345 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x61f73fa0 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x62ea0d6f dvb_dmx_swfilter_packets +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 0x7c9a6d40 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7cde67d7 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8678709d dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8cf1a8eb dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8eba0484 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x94e4ac08 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xba44614d dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbce6d9b9 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc5a5316f dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdbbef9ef dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdd781662 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe852aedc dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf106e275 dvb_dmx_swfilter_204 +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 0xf867c8dc dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0db9f89d dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x5c0daa59 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7e94ce14 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc521ffbe dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xcf5d868d dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xec96ff09 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xfc60e350 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x4c51195c af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x13e87eab dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2080c78e dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2352267c dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x30bf0116 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5d2e3baf dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6b63f41a dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x78a31836 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7b3095fc dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7e8dd86b dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcb11e71f dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe710db18 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xe30552a5 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xe3112f18 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x4425bc5b bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xb3ffad51 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x7f83dfaf cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x31b00d41 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x4a546694 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x95f472ba cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x5d2b6c74 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xdd2f5d42 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x08deb405 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x4c5b7325 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x73038dde dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9d5c4632 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xb4980289 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x01772777 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1d3bb5b6 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9d5e2da6 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc101710a dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc2193f4f dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc68900a5 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xcd8e1a6d dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe17b568c dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x43bd7392 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x1aa7668c dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x299775e6 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x576790a6 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5cb3803f dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9e2c7e29 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xfc28cbae dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x2075220e dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x71efd8c6 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x8ecd5e6b dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xc97f08d6 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x334e3112 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3a8d1400 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x47db5fbe dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xaac86d2c dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb76aac03 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd2ddb5fe dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe06835d6 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf6f9cd99 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0a65a327 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x197e9dd2 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x3f1d4c12 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x46f21675 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5c5aff6a dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6834b11c dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb00fc8b9 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb3399a5b dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb3778e25 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc6167286 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe17bc44c dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xbf0c8c3b dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xc01d5168 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xc5a1767c dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd67c813d dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xd764e1e5 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xf6e3e335 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x0c560c08 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x4e15b8e1 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xdeb2bdf7 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xaa2e6daf ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xee4e5a29 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x186e5541 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xf0fc26a6 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x5fc042e1 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x101e37b1 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x178738ab lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xfc48ac55 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x16ddfb87 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xa8df7a87 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x08e4d910 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x6d892523 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x61874b00 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xb25f0494 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xeb7bb4bd si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xd00ff0ea stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x49f4eda6 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x6aaa72df stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xf8477c3a stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xe599d567 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xf2e9fa3e stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x8a7bfa49 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x3fd585b5 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x4fa75d21 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x539a74c1 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x4ac40e0d tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x141501f2 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x1eacacec tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x5a87918d tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x799d3bce tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x8f765b11 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x54503eb1 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x02e5e879 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x3ec6709f zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x7359054e zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xf46a4ac5 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x57330c60 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x7cf40daa ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7bb3e8ba lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8b984229 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x915a6b5e lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x91a107b8 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9726ed57 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc69e41d7 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd9d5ae15 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe01ab038 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb85975f2 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xc4625732 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1842cf19 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1b7c50bd memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x208079f1 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4b3ef504 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b93a3f4 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6583f6b7 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6bad9301 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x82bbe745 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x85423422 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc8b424e1 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd4a1bf3e memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdac59715 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf2aa2946 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf2da735f memstick_add_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0896c665 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x19785679 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1b2c54dc mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x200d81b5 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x266724d0 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2f0ff823 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e1e09c6 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3eddd75c mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4174d80b mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x457963cf mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4a10a584 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x504ac347 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x63f862d9 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74e99023 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8c495dad mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x916b9161 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9324ab7d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9afe849f mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9bfb3ada mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa18391f8 mpt_raid_phys_disk_pg0 +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 0xc65d44b4 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd23fdf85 mpt_resume +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 0xdd85c670 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xebba1043 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf1af8adf mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf7cc5661 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf9d6fac6 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf9e0ce0c mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf9ea8aca mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0389f501 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x06345cb9 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x141f5290 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x15ec27fc mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2e635ea3 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3beefe9e mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5519b5d5 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5765460d mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5f468eaa mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6b091eb2 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6c136f1f mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x829ff688 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8f369504 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x906ba2ec mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x93354a2d mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9e8082bd mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaa5471f1 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb7cfef31 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcc2a965d mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd902ed43 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdd6ddeb5 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe198c7ce mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe5d14835 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe9c1e55f mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xede14988 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xffe8693f mptscsih_proc_info +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0448c932 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x089d77cc i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0caad80b i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x10e40ee8 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1cd4d97b i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x206b0b4c i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2344456f i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a7dc8e6 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4dce2faf i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x563cdaf2 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x58f2b183 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x64e95372 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x68da341f i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7fc9ef44 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9e7d23fc i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbb9adf89 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcae64581 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe8322db1 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x6ae40e67 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xc79b8dfe 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 0x008c8837 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xc34336da ad_dpot_probe +EXPORT_SYMBOL drivers/misc/c2port/core 0x0b2d870f c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xe8c17470 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x1b2ea199 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x7c052292 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0c264b54 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x10f6d326 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x22cbe86e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x4484aaa6 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x53e3d40e tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7572405f tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x7d67b784 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xd2560e58 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xdc6f101c tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xdcd888a1 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdf6047f8 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xf6676384 tifm_add_adapter +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x746b99b8 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x07f01e40 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xafcb3b8a nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/net/8390 0x45c14827 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x54d355e4 ei_close +EXPORT_SYMBOL drivers/net/8390 0x58bc07e7 ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0x5d0efd21 ei_open +EXPORT_SYMBOL drivers/net/8390 0x98556fa5 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0x99add918 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xb0bbd0bf ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xe6e7cf82 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xf4036e86 ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0xfd51fb85 ei_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x33be5a45 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3fd4a308 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4787db3c arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5cc59cfc arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x61a47b22 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7cdcb084 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd269f2c1 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd448e5a3 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdf261fa9 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfc27c1ca arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x6ef1a2e2 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7d655269 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xaed3aaf2 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/bnx2 0x310b0c05 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x/bnx2x 0x46cc552b bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0x72af665a cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0ea934d7 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1c371a17 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2f7d80c8 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x56921276 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x64a041f9 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7e995790 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x84ac89d2 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaed220d5 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbab6ce54 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbc281b42 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdb1487d6 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdb23d0ca cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe0846fa3 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xefd76913 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xefe8812f t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfeda77f6 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x12e674ef cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1aeca8b9 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x276825d2 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3f61e06f cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x456c29d1 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x478820a7 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x59a51eec cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5d49e35c cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x80eb8eca cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x80ed42cd cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x876edf79 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xab9d9fe5 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaf37989e cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xafbbe9a1 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc88fca8c cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xec3012ed cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfe7ad4ac cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4a0a1584 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x93feaffa hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa4d3889a hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb7295136 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe30e4ed7 hdlcdrv_arbitrate +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/mlx4/mlx4_core 0xca74edc5 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/pppox 0x5f7c5f13 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x8825637c register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xadc96ad1 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x04b0346a tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x234127db tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x3b526e6c tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4e6e0a3f tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6e7f7e28 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x5165d78d i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x09407531 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x2551d293 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x469ee5fc ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6f9e9397 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8787ab21 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8fa4d14c ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xcf661442 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd0cb2074 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd2b49ecd ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdbb6051e ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x407c8b86 ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x62093f86 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x971abe03 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x011866f9 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0767ff7e ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07ffd7a7 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09326f89 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ed7cbbd ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16dd9d79 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1acf964e ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b6d5929 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d8371ab ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20c8df8d ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22097a61 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x236edd7f ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x27b02483 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b9c7b76 ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c9f9202 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31cfd1cd ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32d69c18 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x347949fa ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x370b8393 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37595520 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x379fe236 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b9ac987 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c7884f6 ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e25eaf4 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e8fa4b8 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eca3016 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f0a8610 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42fc94a1 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44d9b48a ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45affdc5 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x475e98aa ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49523866 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4dd72661 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e3ef3d7 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x526e3951 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x545da860 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55860a69 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57ebe73f ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59151c43 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5da5b78a ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x600636c4 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61c28701 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x629bb088 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cd5f385 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dea4b67 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7689f396 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79eb77ba ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a66f951 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c94fceb ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d4e8c68 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cacde83 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d455c09 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f7f7a1e ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94f61653 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x951db6ba ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x972fe50f ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d9aa1ed ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0917f74 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0e4c312 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa58fcd49 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8687db5 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa62bf95 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae8f4e02 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8476363 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8eede6a ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb929da2d ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbcb94ac ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc334122 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf1aad6c ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc02eabe8 ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0555080 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc554c954 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc669a420 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9472c8a ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd34b3122 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd69c8b23 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc44c304 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf8296c5 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2419fd1 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3ae1b44 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe75c24b9 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb3d681e ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef8519f1 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0df3f8b ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa27fba7 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb221346 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/atmel 0xa1fc7900 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xa4256277 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xba4563e8 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x06617cac hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10b4ce2a hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x29554192 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x323d16ac hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x38b2b41e hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x39364aea hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x40386935 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x45d87fd2 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4815d898 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x52175658 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5b8a039d hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7ccde28f hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x837b1822 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8f5a8e95 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x983152f7 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9afc3f6a hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9ca50fca hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa02391d1 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa2e51d7c hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb1525a10 hostap_add_interface +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 0xc6702624 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcb4bfc49 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xda6534f8 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe2140c39 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe915084a prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x200dfadb libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x325d5c74 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x34890b4a libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x44d3ad38 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4dd4eb6d libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4e3483c0 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x50023f93 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5327ef60 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x75a6e9cc libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x81f11ff8 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x868a07e7 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x97ab6c70 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa314519e libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc41863fe libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd2723c02 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd3da08db libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdcf0def2 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdf81f727 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe25ce3d0 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf3ce802e libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfd2977c8 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x02fb87bd iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0383b03d iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x04219faa iwl_power_set_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x075b5a7a iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09708bb7 iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09afc43f iwl_alloc_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0a6477ac iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e0bd94e iwl_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x105d9fbb iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x144a1e59 iwl_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x148358f8 iwl_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15c8926c iwl_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x167a753b iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18ee3c8d iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1ca18de4 iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1ebf4756 iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21dfd5c2 iwl_free_traffic_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21eadc62 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23b9922a iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x24f50139 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2e618297 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31cc2958 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x342f8a27 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x366976ab iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x36c05838 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x36c99fa0 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x379649fd iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3862691e iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x389ec583 iwl_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39dca5d1 iwl_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39dcd3f2 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a3b9632 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d35ae60 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3ed249cf iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42c3b673 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48eba4e1 iwl_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b77ca21 iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4cc5144c iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ddee4e9 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50a86af4 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5581314e iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5774cb5a iwl_mac_sta_remove +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 0x6157f6ea iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x65ba2765 iwl_dbg_log_tx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x70e16faa iwl_dbg_log_rx_data_frame +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72761b7c iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7600221d iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7696ea1b iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x76ac9155 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x77c68e72 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x788e412e iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x79b28fe1 iwl_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7c4d2e0d iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7e529b7b iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x83151492 iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85e47918 iwl_reprogram_ap_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x866aff5a iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86e20de4 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x87daae60 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x87f147d3 iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x88a43113 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x895acd79 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a4923da iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x90004844 iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94544187 iwl_led_disassociate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9ca59b64 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9cde1f24 iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa0c70a26 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa26c8d14 iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5b11b54 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa62e16fa iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaa253461 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xabb9ebc7 iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xacf13571 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb0772c3f iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb1f03fac iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb2332a6f iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb239ecde iwl_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb3455652 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb5a0068b iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc57f9c45 iwl_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcea95fd5 iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd1a5e7d8 iwl_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd1b78bc3 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3cd8777 iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd50c4643 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd51aadb0 iwl_led_associate +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd79e2493 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xda888d42 iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdaf8f2f8 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd7dda90 iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdeee8127 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe6424da5 iwl_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf308013e iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf47f71de iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf63d6d17 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf6dd8270 iwl_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9f2475a iwl_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbc2e220 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfcbac603 iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff15aad1 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0141e6af orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1a2e937e orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x318d75f5 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x40de6e27 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5b9963e5 orinoco_if_add +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 0x6c2e2304 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x77f8ca6c orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7cb98dcb __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7eeb68ae alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x95fb311d free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x99a990ee orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc898a6de orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcc94fadb orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe2b4bfc9 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe71e7e05 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe8bcce19 __orinoco_ev_rx +EXPORT_SYMBOL drivers/pps/pps_core 0x06e68d27 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x1872b2a9 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x6a2dc982 pps_unregister_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x050067bc fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x12e4d6aa fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x14692f2a fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2245458d fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x360c0b57 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7211e65d fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc8ce0c16 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0206acf6 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0581fba2 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0889bdc0 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0c587217 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x102b93b7 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x12efe132 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1332b4bc fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14a7dd49 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x212683c3 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c65b667 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3daf55c0 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3e0e3197 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x449baad9 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x44dc0e6c fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x462ebea1 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48a053e5 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ada9c06 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b0d77c1 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e27742e fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5417ebaa fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6043f2d7 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x656a4252 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6632c8e2 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d3a0879 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ea904d9 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8573da5a fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x860fce2c fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x89cc479c fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9480e31d fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa053c200 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa727a020 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb140fbd3 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb44ce136 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb88f3a6d fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf532ea0 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc0205f08 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb08a4df fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb9a7162 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce4c5669 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdab109b3 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdddb6de5 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6ca7a64 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xed2412e2 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf976f449 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xffca6b6f fc_get_host_stats +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 0xf2765690 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/raid_class 0x907524ac raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xa0a5665a raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xa64ca006 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1505ccd8 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2d3a89bb fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x34865073 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x43ee33d4 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4a9ab2fb fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x592c2426 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5b6ad899 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x69ce9c35 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7f02c901 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9856d4d8 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd391170d fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd8fe7757 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xee265da9 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x107cc88b sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1c3efd00 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1f5c51de sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x39e75b40 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ea140d0 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x42bfcf57 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x44b07db4 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5a9f4ebd sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5e4bd8c0 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5ed06795 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x62593a2b sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x62758c23 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78b01e2c sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x828923a7 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8a02fd53 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9228181f sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9d97a236 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9e8fc6b0 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb1c1219e scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb286cb36 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbd2a4c1d scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc4bb6b1a sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb8f4c9f sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd032c48a sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdccc78ef sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfc175096 sas_rphy_add +EXPORT_SYMBOL drivers/ssb/ssb 0x15c568f0 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x1f4d1b8f ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x38f87a24 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x4dee63bd ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x5ab0aa84 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x5eb35481 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x6bbad843 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x73597581 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x785ae58b ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x80185447 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x8bc7a87c ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x8ebbdadf ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x9f0921d7 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xad1fd038 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xb3a96c8a ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xbcaa9070 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd2b78b5d ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdda12302 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xdde6bb15 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xf896305b __ssb_driver_register +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x56194d06 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x577c24d9 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xef9a7de2 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xf6c6c1c3 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x05d37aa1 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1402a04c iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x163bd949 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x23b84f4f iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x27bfd718 iio_triggered_ring_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2f4c8503 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3be7d454 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4050fca1 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x43039086 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4404d42f iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4eb9f9a1 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4ef008b6 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x59c1d2d9 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x59cec14e iio_triggered_ring_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5fc9a2d9 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x600598a8 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x63509298 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x65821463 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x65d5be1d iio_free_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6774ed49 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6ee72142 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6fbbf364 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7844aa1c iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8f0b95eb iio_read_ring_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8fe16004 iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x973626a4 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ed1c87b iio_alloc_pollfunc +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9f42c1b3 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa2ec602e iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa8adc664 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac7b5439 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb08f1471 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbbd179bd iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbde7c8e0 iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc05bd355 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc0c3d728 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc508fd67 iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc68cb1a9 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd11bace3 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd139ac83 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xda43819a iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf7ec7bd iio_get_new_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf4366812 iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf5fae481 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x1d050de5 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x36afddad ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x030b7086 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x094f5c14 iio_sw_poll_func_th +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0eaf0670 iio_sw_ring_preenable +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x18b61332 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x2e11feb8 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3966aa1c iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x49a96ea4 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4a5ba060 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4d544f9c iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x63ac576c iio_sw_trigger_bh_to_ring +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9121bb76 iio_get_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x94cadb38 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9bf10a94 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa1d13fa0 iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xaa32fa0d iio_set_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd872c564 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x007db9a0 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x033f5a84 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x05d33500 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0a6ac6b3 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0f25cbed Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0fefb074 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1373eb19 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x13a9abf4 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1731c5e5 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x18774e9e SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1a421eae HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20ab36ef DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x24212c1c ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2af8ee07 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2bdf8d4c ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2fae64e2 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x30f1e948 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x369d3efd ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3720ec2d ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x40968962 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4386e56b ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4eadb3b2 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51e413d8 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x555926de ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x564d41b1 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x56e6e240 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5a5d44b3 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5ed66e20 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x622a1e73 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65e3380f ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6709ac61 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6999b2dc ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c471768 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7af46be2 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x829fc383 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x82c1e194 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x88f7b010 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89a173ef ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x90d00636 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9477b192 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9b08243c ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9b86ee29 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9dae92ea notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb1272418 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb58fc380 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbda81515 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc0e8e21c ieee80211_start_scan_syncro_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 0xc8b3ce83 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfd14c9c ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4d42864 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe81d4cec ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xef56da5d ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xefa6cee1 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe3581a9 ieee80211_send_probe_requests_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 0x0cbd2dc2 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x0d041623 vme_register_driver +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 0x251b9ed8 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x2baefaa5 vme_dma_list_free +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 0x40fb94d7 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x481903ba vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x5a3cdf78 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x623d904f vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x642aab40 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x64b89093 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x66227eae vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x66d487aa 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 0x83835d4a vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x8a43aa6e vme_bus_type +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 0xa0f2f81f vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0xa1bb9a71 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xa58ea2e8 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xc29613e8 vme_irq_generate +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 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 0xefc77b9d vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xfbc6aad5 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x00b62fcb fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x00db90b0 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x011e1db2 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0370cb64 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x075f8486 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x07d30782 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e284f6b transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e557fdf core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x15c49099 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c7e7783 transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0x1e4760b3 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x22019ab7 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a38d12e iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2b62559c transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x2bbf01bb transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0x3bb3f9b7 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x41c891ba iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x53fb3ef3 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5a25fea9 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5babc056 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e9a3ecd transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x6da17c30 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7412ed2a transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x762549a1 transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/target/target_core_mod 0x7809ded6 transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e2ab837 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x81efb4ae fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8ab58ebf transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x8c7aa30b core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x8d76f413 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x8eaa38c7 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9407be34 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x98b9918a transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d917eb9 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xa48262a5 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0xa51b7600 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa6fad0b transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xafecd4fd iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb96bd65c core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xbe58c926 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xc04625b4 transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xc63e6604 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xd282c433 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xd68baf3a transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd8fbf47b sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xdb39f70c fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xdbe7d71c transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3c61668 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xe4f6ce18 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xe58e03be core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xe968a0a6 transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xede3eb1e sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xefd8ea39 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xfcc4b7c1 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xff52e179 transport_free_session +EXPORT_SYMBOL drivers/telephony/ixj 0xfca02003 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x402af633 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x8c3696f7 phone_register_device +EXPORT_SYMBOL drivers/tty/serial/8250 0x0e07910e serial8250_do_pm +EXPORT_SYMBOL drivers/tty/serial/8250 0x35e90ba7 serial8250_do_set_termios +EXPORT_SYMBOL drivers/tty/serial/8250 0x96c0da19 serial8250_register_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xf3bf1384 serial8250_set_isa_configurator +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x94a4561a 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 0x1d699cff usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x248a97a2 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x269f153c usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4c6aebe6 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7000f1b1 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x797d485d usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa58d774e usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa8b5c7e0 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa9b15406 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd1538935 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdad737b7 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdc3b5308 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe6f67fa4 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf06811d0 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xffa1919c usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x62035579 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xe87d65a1 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x6a625c10 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x9686b573 lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x02ca461b cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x447366fb cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x6d118d7b cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x7b5b001c cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0x661f3782 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x72ce52af display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x660585c2 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x171acabe g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xb6bafbff matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xf2cd4d9d matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x03b35cac matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x49fb766c matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x509e0eee DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc9db1748 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x33b3c3c8 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xdd228a1a matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x1b571510 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x2a059b28 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x66dfdecb matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd390025d matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x919a72c1 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xd5fafa9d matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x19d98896 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x9a8220de matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x9ee0cecf matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xc5640ee1 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe17660f4 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x32f86fad mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x738e11a7 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xee5b39e9 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 0x08e0f680 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x210f801c 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 0x850f47fe svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x8564061a svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x8b801e7e svga_tilefill +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 0xb5ce253a svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xb93c47d3 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0x6e2176a1 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xdf6ffaf6 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xd020c91d 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 0x187a5966 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x58266476 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x234ec6cd w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x239f478a w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x3ef8b5ff w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6df1e9b3 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/wire 0x3be17952 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x97b23ffc w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xc91fd8bc w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xfea78257 w1_remove_master_device +EXPORT_SYMBOL fs/configfs/configfs 0x066f8c2c config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x517e0a75 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x55117f8a config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x588321d2 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x63d605d8 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x6cbc7a6d config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x844a5a3a configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x89241eca configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xccb3ed5b config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xdce4bd93 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xe77e515f configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xf648cc71 config_item_init_type_name +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0d5d7c33 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x1b1f1543 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x24934004 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x42c06c24 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x4b53bed2 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x72d40049 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x72d482fc fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7503d8a0 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x781f23c0 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8e6a98ca __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x9d10119a __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xa6e9e315 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xa7113942 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xac254991 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xad059f63 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xb47a2c21 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xbec733a5 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xc2b0e178 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc6537343 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xcb7ae677 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xd2e1231b fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xdefba910 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xf1c37385 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xfec16155 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xfec3e24a fscache_mark_pages_cached +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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x09e94512 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x143094f2 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x31b8885c qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x8e7ace8f qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd39d6fb9 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/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0xa6c12af6 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xbae4a029 make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0287876c p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x03cfb03d p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x0aba6a28 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x0bbfe706 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x0c3a1f39 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x139af609 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x195ca81b p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1a20238b p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x222483b8 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x2429e24d p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2e837e83 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x343d78ce p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3e77c67e p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x4b715e69 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x55e63a9d p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x56cc66a3 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5a31032b p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x5d2d7cbc p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x5e842884 p9_client_create +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 0x7cd43ea6 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x7d0eb2bb v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x832e7bb2 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x93e4767c p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x956f50a4 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa2bce8b7 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xa5031afe p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xaabde9cf p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xae9461e9 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xaef4a71a p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xb6b5c2b6 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xbc87dfab p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xc06214e2 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc52b5105 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xc928e2af p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xca7c1370 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd0c332cb p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xda53cfd8 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf3056d17 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf7cd3937 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xfaa6bef6 p9_client_readlink +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +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 0x50d9f048 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6b18f152 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x6eed2118 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x7ab8a193 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xbcd1e2e4 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd1c6230d ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd9186ada ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xe3cfc1ba ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xfd64c3d4 ax25_find_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0a794cd4 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f30717b hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0fcd876a hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x12509d3f hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x13c6a0a7 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x175d7b55 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b6106f3 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1f03bb72 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x26b43b58 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x26b70560 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x40930521 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x46a721d9 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x53d1dabc bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x58b42d29 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d95bb5e hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x695c8355 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6c82f75b bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x783e660b bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x83bd8c44 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c5dd362 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8d43d165 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94970513 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x966e7adf hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x979d64b0 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf2da402 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc444528e hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9301bff hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd295d55 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5288b1e bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe0966dcf hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeb245092 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf2d7efdf hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf5a78f28 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff7db719 hci_register_proto +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x6cbd8e87 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x90485c9d ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9354e561 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xded0eb12 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0817e7b5 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x10f94bd6 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x1771f743 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x185acf16 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x1ee2553f cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x22d180c9 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x29bffbd6 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x2b147782 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x2bd016b7 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x2f7b3f4c cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x3af71e87 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x52b94ef4 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x56732c4e cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0x5e42b76f cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x88739ae2 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x88b142f8 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x941f5611 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x9b1ad75f cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0x9cfb3192 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x9e640315 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xb4ed1944 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xbc0db19a cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xbcd5d6f4 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0xcecdaa38 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xe038e80f cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0xe3bab9f9 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0xe443d258 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0xe4ddc5d4 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xe5e435e3 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xe74341f4 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xf919aa5d cfpkt_tonative +EXPORT_SYMBOL net/can/can 0x3385cd2e can_send +EXPORT_SYMBOL net/can/can 0x7739b998 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x7c1becac can_proto_unregister +EXPORT_SYMBOL net/can/can 0xb0fe73cf can_rx_register +EXPORT_SYMBOL net/can/can 0xfd0f2e9c can_proto_register +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x1004bf53 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x14c0bd07 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x156bb1bd ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x20603ddf __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x253863f0 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x2bc0e4f9 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x3eabb27c ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x3fb72123 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x3fdd5a87 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x46eac0ef ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x4f926fcf ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x67fa3f1c ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x69bee9ce ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6a939a8c ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6db33755 ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x71d15e2f ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x72b0e5d2 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x79db96f5 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x7e33c50e ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x822854e4 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x8753d7fb ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x8c8330e1 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x8cc6a417 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x8f055610 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x9b3d6d43 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x9d4b307c ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa53c81e1 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa785292c ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xaaee9ca8 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xbc5e2ca3 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xbcad4fd3 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xc2e49d57 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc4c9fa64 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xc9791c14 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb31486c ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xdbba4760 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xf1cb4931 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xf6433bf9 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xf9bfa759 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xfd91cc2d ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xfee79c12 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xff18ba8b ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xff89b735 ceph_monc_init +EXPORT_SYMBOL net/ieee802154/ieee802154 0x07211ac0 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2bd3a0ab wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4fdaf613 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x598e8689 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5e509a8c ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5f326667 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5f5c6473 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9748376f wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa596f660 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa82e3a36 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd54e3329 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf60b15e1 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xff62bd62 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x35d00639 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x6f29a12c arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7023b56e arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x57366bb2 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xad7bf977 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe294005e ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x15ad2675 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x81b0d363 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x99c717b3 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa29f79ad nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa7272220 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xc0e6e5ea nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xfe68eb17 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x35fa27ff xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xdf7d0ba1 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3538bebf ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe03e9f16 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe93686e9 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf6b572f3 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x146781a3 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x19bf5ac4 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x3bf8959a xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x54cd357d xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/l2tp/l2tp_core 0x8109a988 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x000fb120 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x0dd617a8 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x368da1c0 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x5690f86e lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x71e72564 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x9954a608 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xab99efa0 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xe608f4b0 lapb_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x060d432c ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x0cd1e362 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x10bdb014 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x10d7380f ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x1aed35a8 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x20513643 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x23c11606 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x26e507a9 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2b320c46 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2e06fab3 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3882ed57 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x3c1b26c2 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x3d1cbe99 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4a03f823 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x4f6515ae ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x55ece88f __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5a3b6c51 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x5c0ae44f rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x5ffe18d9 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x6e437050 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x71d3e4d0 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7a6a3ced ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x83f2e2f0 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x869b6f64 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x8aa6efcc ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x8f19ea09 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x94842a22 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x9b6710a4 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xa03fa1f7 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xad96f02e ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xadfbc1f3 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xb3903811 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xbb61b98e ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xbcf35f6f ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc0a33c25 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xcc636593 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd31f1583 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd629740a wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe6967a78 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xfdfa3c94 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xff52b228 ieee80211_free_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0488501e ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0724d4c1 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2a4f0166 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2baf0c9a ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3f760b17 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5e7d4545 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6836a6da ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6b8d1995 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x80d74244 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x91d3ccc3 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9a3f72f3 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd5267b0a register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8430b526 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x926fe60f __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xc3312215 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xd0b40c76 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x427ad6e5 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6d2e0384 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x707d32a9 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x70a7c7cc xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x78ead5dc xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x80d0d622 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x8effe264 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xa0b7c476 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xab8c298f xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xf9d4051f xt_register_target +EXPORT_SYMBOL net/phonet/phonet 0x4b92a0c3 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x6d478841 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x842c9763 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x88ebf4de phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x8c2dcbfa phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xb44daeab pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xc1689b20 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xd7cc28d1 pn_sock_hash +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0dc299d8 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x115e4780 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1417b8fb rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3529e3b7 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3a48bbf7 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x58cabef0 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x714a419e rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x837b9304 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8c6db53b rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9290d438 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x94f47511 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9c2ad004 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xac036d5c rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf0134b9b rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf4aefdcd rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/sunrpc/sunrpc 0x273bafa6 xdr_terminate_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd7a1b088 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x60825aba wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xc7dd0271 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x00bfb9c9 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x03faa3e9 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x09dee067 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x0b71472c cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x0f79074a __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x10f37fd6 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x134ff16c ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x3fd15fdb cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x4416b0bb cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x49d39970 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x4bc40448 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x4cf64b17 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x59bf80e4 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x5e0e6c19 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x65b49771 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x7113470c cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x73acdb66 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x7424a366 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7680ba54 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8364ef04 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x8db7b1f5 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x8f3d0e5a cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x8f94a0e7 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x95bf1a7b cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9bfc8a30 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xa006b314 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xa43318e9 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xad0c16c5 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xb10cc801 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb5a91c0a ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xb7ba7e2c cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb8b3d7d0 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xba87f46d cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xc0bbaf84 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xc1bb557a cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xc26f4ffc cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xc2f60fe0 cfg80211_remain_on_channel_expired +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 0xd3d28eea cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xd75996e8 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xe8540775 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xedd43828 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xf01e9414 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xf13ac0bc __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xf372cd48 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xf59406cc cfg80211_unlink_bss +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 0x33d8676f lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x53654c76 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x5f555fc7 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x6d17388a lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xbec2c942 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xc827ded2 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe27534a0 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0xf1acf1be lib80211_crypt_info_free +EXPORT_SYMBOL sound/ac97_bus 0x442898e2 ac97_bus_type +EXPORT_SYMBOL sound/core/snd 0x0369443b snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x0a59751a snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x0aaaed0f snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x156a91a0 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x17a23abb snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x1a68a597 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x1dbcf506 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x25f644cf snd_card_create +EXPORT_SYMBOL sound/core/snd 0x265faf48 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x29f08a8d snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x2a287a98 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x2a735649 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3ef9eebd snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x44ed92ac snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x48cb9604 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x51527aee snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x61b15df0 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x7393c9d8 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x7b3b0ff9 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x7e4c51f4 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x7e65cb4a snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x7f3b2810 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x8bd38d38 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x8cf1e719 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9845cf42 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x99e435c5 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x9a9b810d snd_card_free +EXPORT_SYMBOL sound/core/snd 0x9c47e887 snd_jack_report +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 0xaeff5748 snd_device_free +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xbe459e9f snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xc3b85414 snd_cards +EXPORT_SYMBOL sound/core/snd 0xc3eb824a snd_device_register +EXPORT_SYMBOL sound/core/snd 0xcc83c7e0 snd_component_add +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 0xd388757b snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xd4bfc841 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xd66e2825 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xdb8d722c snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xdfada7c4 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xe1c9d3ba snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe263e2d8 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xe45c334a snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xfa1d2d28 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xfa4b8057 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd-hwdep 0x4bc57eb6 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8053d46d snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xbf678c50 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc9652e25 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xcab6a283 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xe01d79a9 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-pcm 0x01ffb981 snd_pcm_lib_preallocate_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 0x15e062cc snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x16e83b34 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x253ad1a0 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x2f72e9e4 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x32c2ab1f 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 0x42165335 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x4ac49f67 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x4aeb5083 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x4bfd3114 snd_pcm_hw_constraint_pow2 +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 0x55e36333 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x5789be43 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x5a08a3eb snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x5d853222 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x60dc0d1a snd_pcm_suspend_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 0x6ebdf354 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x6faa2dc7 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x7124c8ec snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x730d5cec snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x7ad64a31 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x7e4b46f5 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x8e348300 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x9285bb70 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x9491bd24 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xa1d8252c snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xa261b115 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc0386a23 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xc3495ddd snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xc610f5e4 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xc89a8cf3 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xcc70ee4b snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd3f3f8cd snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xd417d57a snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xd9c34b45 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xda957770 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xdd959598 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xe264effb snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xe33280be snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe8905a05 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf6d7e5d6 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0de184d2 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x140a28fe snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x45b68d41 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x478d9b12 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x55064076 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7018c8e8 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7f1853c2 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x84f81454 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8a164a3e snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xafcbd639 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb96621a5 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbb8221eb snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc84ef471 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xca90eb1a snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd12f407d snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd9962c88 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfa253ce1 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-timer 0x302e67ac snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x4130b63c snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x4c4ec51c snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x618b386c snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x7e2829e1 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x915a03e6 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x9f51099d snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x9f681416 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xaaf2ae2a snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xb4d519b9 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xd486b4f5 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xd738233d snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xe0617868 snd_timer_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xe8830860 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1fd7bba1 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x27694b9c snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4487b916 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x54739158 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9ffb0710 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe6d326cb snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf97eeece snd_opl3_reset +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1e6c1dc2 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x59023a12 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x69e4b294 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8e85f2a5 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xae5c96b9 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb3caf27c snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdd7027fc snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe1515414 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe48284c9 snd_vx_free_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x59855822 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x64e9d7c7 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x700b355f snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa916f672 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xbfbc08f7 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf963f01c snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x71de6315 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x8ece12bc snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xdff76e6c snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf1852fdb snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x2d6e1950 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x3ba47f71 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0cfd036b snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0fdc1853 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa8e70b3e snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb25c5671 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xff4a67a4 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x110c7e8f snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x24a8417d snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x57d95984 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x74a68e53 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x8d4b524e snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x997453d8 snd_i2c_probeaddr +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1013ba95 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2c9862cc snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2e4d7fa6 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3158f2e3 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4b3d31d1 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x51265f81 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x53df9a17 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x88239b36 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8d5a40f9 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x959b8e11 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa9fe4498 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xae9fa4cc snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xce75ab9f snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe38e2acf snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfd7258f3 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xff17c76b snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfff7ab85 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x28fdeecb snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x36b0e947 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4529fe73 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7013e640 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x739fa57f snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9da27e19 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb75edbf0 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xccd00a87 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd5513bd3 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x802b4966 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x214f438d snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4b20d663 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xf88e75c4 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x07d05271 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x08f04e8c oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x118804a2 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1312f369 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x24af1161 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x35456f56 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x383641df oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3e8c93a5 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x49ef6324 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x623f085c oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x72ffd460 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x781dc468 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9b133473 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9f36feeb oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbb97a799 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc6e439e5 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xca6c74a7 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf2464e28 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf2733f3a oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf527d9c3 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xff53d285 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x39695752 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xa8e07136 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd79349c8 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdd26ec59 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xeb595395 snd_trident_start_voice +EXPORT_SYMBOL sound/soundcore 0x583a2fb9 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 0x811b5ca9 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x03fc164b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x6c108aa6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7e98f2ec dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xc2e4b6d3 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xcebfab1f dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xdecb1fe4 dm_mem_cache_grow +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00222631 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x00383eef security_d_instantiate +EXPORT_SYMBOL vmlinux 0x00458bb1 security_inode_permission +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x009e4e0e netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x00bb23e7 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x00da1ebe tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00e81173 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01001588 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x01046cdf jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x01103f8d generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01234eb1 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x012bdd9f remove_arg_zero +EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x0142ee9d sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x018b3634 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01ce3104 scsi_execute +EXPORT_SYMBOL vmlinux 0x01e3e198 clkdev_add +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02178268 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x021de655 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x023574a9 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027ef9ce generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x02928d2c unregister_md_personality +EXPORT_SYMBOL vmlinux 0x0296321f otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02e165bd __page_symlink +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 0x03256163 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x03318c5a __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x036e829a security_inode_readlink +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x039022a8 register_nls +EXPORT_SYMBOL vmlinux 0x039b8bd6 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03da36b2 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0421c6a9 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042f3e32 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x0434318e qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x043aeaff uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x043c8d36 ppp_input_error +EXPORT_SYMBOL vmlinux 0x046070e7 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x049a7f0e gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ee0823 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x0513fd21 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x052e4a6b blk_free_tags +EXPORT_SYMBOL vmlinux 0x0544bfca free_task +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05851a88 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x058ebacb dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05df315e nf_getsockopt +EXPORT_SYMBOL vmlinux 0x05e1c041 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x05ef5450 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0625a297 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x067a2c16 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0683a6d0 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x0686e312 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x068ba6a0 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x06938be2 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x06d5ad6f write_inode_now +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06d7a05e cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x06d91c2c tty_write_room +EXPORT_SYMBOL vmlinux 0x06ef3736 scsi_print_command +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x071c427a sget +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x074fe5af scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x078657e9 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x07915886 clk_round_rate +EXPORT_SYMBOL vmlinux 0x07958942 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079e9d2d commit_creds +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b1293c d_rehash +EXPORT_SYMBOL vmlinux 0x07c50e5a ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07fa760e otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x0801e77c cdrom_open +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08348a57 neigh_update +EXPORT_SYMBOL vmlinux 0x084cbdbd kmap +EXPORT_SYMBOL vmlinux 0x08744807 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x087b956a nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x08848301 sk_stream_error +EXPORT_SYMBOL vmlinux 0x088ece7b tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x08a7a820 dev_emerg +EXPORT_SYMBOL vmlinux 0x08b07f95 may_umount_tree +EXPORT_SYMBOL vmlinux 0x08caa788 iunique +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x0909acdc sk_dst_check +EXPORT_SYMBOL vmlinux 0x090b2bb2 tty_port_open +EXPORT_SYMBOL vmlinux 0x091da74d ihold +EXPORT_SYMBOL vmlinux 0x09231292 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x092e919a __free_pages +EXPORT_SYMBOL vmlinux 0x09377422 skb_pad +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x09469d6b flex_array_shrink +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x094a9b66 downgrade_write +EXPORT_SYMBOL vmlinux 0x09770444 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x09794459 make_EII_client +EXPORT_SYMBOL vmlinux 0x0982fb5e tcp_close +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x098b94df input_grab_device +EXPORT_SYMBOL vmlinux 0x09a6a501 blk_end_request +EXPORT_SYMBOL vmlinux 0x09a9208e md_write_start +EXPORT_SYMBOL vmlinux 0x09b082c3 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d954ae bd_set_size +EXPORT_SYMBOL vmlinux 0x09f388bc tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x0a0810b3 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a4753ee ___pskb_trim +EXPORT_SYMBOL vmlinux 0x0a60e054 pipe_unlock +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0aa3c950 mdiobus_register +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0aea63fb inode_lock +EXPORT_SYMBOL vmlinux 0x0af8ab90 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2a6f64 sync_blockdev +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b546a51 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b9350fb nf_log_unregister +EXPORT_SYMBOL vmlinux 0x0ba284f4 pci_request_regions +EXPORT_SYMBOL vmlinux 0x0c0cb925 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x0c0f7bc0 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0c453620 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6646e8 aio_complete +EXPORT_SYMBOL vmlinux 0x0c7e4961 led_brightness_set +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c920a05 get_phy_device +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cd2bf1d rtnl_unicast +EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table +EXPORT_SYMBOL vmlinux 0x0ce3a2ab scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x0ce561c3 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x0cf0051e elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x0cf1a28c xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x0d12e409 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x0d168d0c serio_interrupt +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d493068 lease_modify +EXPORT_SYMBOL vmlinux 0x0d4cb4e7 pci_release_region +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6316de seq_open +EXPORT_SYMBOL vmlinux 0x0d7436e4 dentry_open +EXPORT_SYMBOL vmlinux 0x0da0d72b serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x0db5887a tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x0defb13f genphy_suspend +EXPORT_SYMBOL vmlinux 0x0e166e45 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x0e3e4fa8 sock_create_kern +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e746f6b input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x0e797d1d i2c_release_client +EXPORT_SYMBOL vmlinux 0x0e939217 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x0eaa43ef netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0ef2fad6 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x0f03ccde input_unregister_device +EXPORT_SYMBOL vmlinux 0x0f20905a block_write_full_page +EXPORT_SYMBOL vmlinux 0x0f2ead51 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x0f653d90 inet_shutdown +EXPORT_SYMBOL vmlinux 0x0f6a1fb2 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x0f773e50 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x0f8c9a6e genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x0f9d856f ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb642b5 tty_kref_put +EXPORT_SYMBOL vmlinux 0x0fc3061a xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff93dfd ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x0ffbf77e llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x0ffe9a23 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x100463af inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x10134697 register_key_type +EXPORT_SYMBOL vmlinux 0x1019f22c key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x103a86c3 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x105784ed tcp_parse_options +EXPORT_SYMBOL vmlinux 0x1058d491 dcache_readdir +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +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 0x1148664e serio_reconnect +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x116eca09 blk_run_queue +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11920e5f scsi_prep_return +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11cc6a98 journal_create +EXPORT_SYMBOL vmlinux 0x11e0649f thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0x11e633bc elv_add_request +EXPORT_SYMBOL vmlinux 0x11e876f7 scsi_device_get +EXPORT_SYMBOL vmlinux 0x11f3a2ac generic_removexattr +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12059531 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x121456b8 pipe_lock +EXPORT_SYMBOL vmlinux 0x1269f541 wireless_send_event +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x1296b3b7 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x1298ac43 mod_timer +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12c4a101 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12ef9437 llc_sap_open +EXPORT_SYMBOL vmlinux 0x12f41367 do_sync_write +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x13239290 pci_get_class +EXPORT_SYMBOL vmlinux 0x13366360 ilookup5 +EXPORT_SYMBOL vmlinux 0x133e8dd2 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x1344a764 do_sync_read +EXPORT_SYMBOL vmlinux 0x13576710 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x1395f007 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x13b2c6cc jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x13b852dd __bread +EXPORT_SYMBOL vmlinux 0x13bb1dcd generic_write_checks +EXPORT_SYMBOL vmlinux 0x13c7df2e dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13ecd711 d_alloc_name +EXPORT_SYMBOL vmlinux 0x13f6a94b pskb_expand_head +EXPORT_SYMBOL vmlinux 0x1409d4ca blk_stop_queue +EXPORT_SYMBOL vmlinux 0x141a6a2a do_munmap +EXPORT_SYMBOL vmlinux 0x1429cce3 set_page_dirty +EXPORT_SYMBOL vmlinux 0x14b3a86b pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x14d39a07 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x14fa4346 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x14ff060a tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x15198f82 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x151ad31e mnt_unpin +EXPORT_SYMBOL vmlinux 0x154438e6 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x154f44a7 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15645382 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x15943de4 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x15a87625 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x15b6069a __lru_cache_add +EXPORT_SYMBOL vmlinux 0x15cd98fa xfrm_state_add +EXPORT_SYMBOL vmlinux 0x160c2121 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x160fac7d blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x16286128 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1634927a bio_copy_kern +EXPORT_SYMBOL vmlinux 0x16679967 get_gendisk +EXPORT_SYMBOL vmlinux 0x1683cf4d seq_read +EXPORT_SYMBOL vmlinux 0x1692861f lookup_bdev +EXPORT_SYMBOL vmlinux 0x169cc3ec page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x16ce5516 serio_open +EXPORT_SYMBOL vmlinux 0x16d179cd vfs_getattr +EXPORT_SYMBOL vmlinux 0x16f2aada vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x16febe8a jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf +EXPORT_SYMBOL vmlinux 0x17213e01 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x172c644b cfi_read_pri +EXPORT_SYMBOL vmlinux 0x172e50ca register_qdisc +EXPORT_SYMBOL vmlinux 0x17401086 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x1770e880 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17ac453d mmc_free_host +EXPORT_SYMBOL vmlinux 0x17aed62d blk_end_request_all +EXPORT_SYMBOL vmlinux 0x17cbaf1c blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f77f7d netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x18066c14 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x182426e9 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x18362f55 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x183fe7d7 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x1867e3b6 security_path_link +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x187f7035 path_put +EXPORT_SYMBOL vmlinux 0x188a8802 scsi_device_put +EXPORT_SYMBOL vmlinux 0x18b1ab89 __destroy_inode +EXPORT_SYMBOL vmlinux 0x18b66863 flush_old_exec +EXPORT_SYMBOL vmlinux 0x18c883d1 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x18fc190f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x19034e3e simple_transaction_release +EXPORT_SYMBOL vmlinux 0x191dedcd tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x192fd592 load_nls_default +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x197f26c2 replace_mount_options +EXPORT_SYMBOL vmlinux 0x19938f63 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a44804 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x19a77775 generic_permission +EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19ca5f9b input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x19dd3b11 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x19e92440 flex_array_put +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a046540 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x1a1a98ea mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x1a4f9de4 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x1a59b229 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a7cc25c xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x1a882364 down_killable +EXPORT_SYMBOL vmlinux 0x1a8e76b2 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x1a95907a nlmsg_notify +EXPORT_SYMBOL vmlinux 0x1a9df6cc malloc_sizes +EXPORT_SYMBOL vmlinux 0x1aa30cc0 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x1aa7f368 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x1acb354d scsi_register_driver +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1aebd300 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b30acd3 tcp_prot +EXPORT_SYMBOL vmlinux 0x1b37f75d put_tty_driver +EXPORT_SYMBOL vmlinux 0x1b5e5871 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b65ec19 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb86b05 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x1be25d19 get_mem_type +EXPORT_SYMBOL vmlinux 0x1bfc7605 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c1e622d del_gendisk +EXPORT_SYMBOL vmlinux 0x1c3457e6 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x1c42cb52 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x1c4beb0a __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x1c4f0a6b seq_open_private +EXPORT_SYMBOL vmlinux 0x1c518c39 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c68f078 cdev_del +EXPORT_SYMBOL vmlinux 0x1c7736a1 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x1c805c66 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x1c8157fa neigh_table_init +EXPORT_SYMBOL vmlinux 0x1c8ed36a __scsi_add_device +EXPORT_SYMBOL vmlinux 0x1c932f78 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x1caec4a0 neigh_destroy +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cce09e8 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1d0351a6 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x1d043bf2 register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d58b2de register_snap_client +EXPORT_SYMBOL vmlinux 0x1db420e5 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd8e66c skb_set_dev +EXPORT_SYMBOL vmlinux 0x1e078645 blk_init_tags +EXPORT_SYMBOL vmlinux 0x1e0efef1 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x1e0f712b genl_register_ops +EXPORT_SYMBOL vmlinux 0x1e536b2a dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x1e6343b7 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x1e6c46bc tcf_hash_check +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e753d90 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x1e82d991 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x1e95433a __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec18085 take_over_console +EXPORT_SYMBOL vmlinux 0x1ed302ca vfs_read +EXPORT_SYMBOL vmlinux 0x1ed7d43b new_inode +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1efe6f22 kset_unregister +EXPORT_SYMBOL vmlinux 0x1f585dfc pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x1f586310 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x1f9207b5 md_write_end +EXPORT_SYMBOL vmlinux 0x1fab3b11 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x1fb42a33 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x1fb9b00f input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x1fbcbdd5 pci_get_device +EXPORT_SYMBOL vmlinux 0x1fc4865f __getblk +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd9e850 pid_task +EXPORT_SYMBOL vmlinux 0x1fdeebdb netdev_printk +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x201430b6 km_query +EXPORT_SYMBOL vmlinux 0x202b9f72 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x20338ed6 is_container_init +EXPORT_SYMBOL vmlinux 0x203b62ad bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x20648508 mount_single +EXPORT_SYMBOL vmlinux 0x2068dba7 set_groups +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20a5263b generic_ro_fops +EXPORT_SYMBOL vmlinux 0x20b5a310 skb_pull +EXPORT_SYMBOL vmlinux 0x20bba88a __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x20fb815e noop_qdisc +EXPORT_SYMBOL vmlinux 0x21064c43 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x21117409 follow_pfn +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x2148b602 current_fs_time +EXPORT_SYMBOL vmlinux 0x2148c0b7 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x215d45d8 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216415dc tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x216e9421 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x21a16702 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x21dacafe pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x21f8756c netdev_crit +EXPORT_SYMBOL vmlinux 0x21fcbbfd pneigh_lookup +EXPORT_SYMBOL vmlinux 0x220a1ab5 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x22131cfb down_write_trylock +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x22240f4c map_destroy +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2233ee52 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x2251f6a4 skb_make_writable +EXPORT_SYMBOL vmlinux 0x225b0745 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x22656357 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x2268864f bio_map_kern +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2277cbb2 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x2279c13b pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228bcca6 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x22916edc mpage_readpages +EXPORT_SYMBOL vmlinux 0x2291921c ip6_frag_match +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22d17ddb skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x22e59e52 blk_start_request +EXPORT_SYMBOL vmlinux 0x22f5499a __blk_run_queue +EXPORT_SYMBOL vmlinux 0x22fd76c0 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x23135cfd skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x2321f371 seq_write +EXPORT_SYMBOL vmlinux 0x23392c20 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x2369c206 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x23723c02 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x23768fef iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x2389640c remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23abad82 skb_dequeue +EXPORT_SYMBOL vmlinux 0x23c10ebf dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23dbe238 d_validate +EXPORT_SYMBOL vmlinux 0x23df74d5 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x23f65fed kick_iocb +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24001284 alloc_file +EXPORT_SYMBOL vmlinux 0x24145b89 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x2417bb60 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x242dc6ba dm_register_target +EXPORT_SYMBOL vmlinux 0x245534f4 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x24562921 input_register_handler +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2459f4ca cdrom_release +EXPORT_SYMBOL vmlinux 0x246ab03e key_revoke +EXPORT_SYMBOL vmlinux 0x24affea8 gen_pool_create +EXPORT_SYMBOL vmlinux 0x24be8ba5 override_creds +EXPORT_SYMBOL vmlinux 0x24ee4776 is_bad_inode +EXPORT_SYMBOL vmlinux 0x24f00fc5 dma_mmap_coherent +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2508881d sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x2513f339 posix_test_lock +EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x253a7639 revalidate_disk +EXPORT_SYMBOL vmlinux 0x254ea68f input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x2555047e dmam_pool_create +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25969a18 kthread_stop +EXPORT_SYMBOL vmlinux 0x259f7a98 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25f6cf0c radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x260e9ca5 journal_restart +EXPORT_SYMBOL vmlinux 0x261c1766 __backtrace +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x264f5308 blk_init_queue +EXPORT_SYMBOL vmlinux 0x26667fe5 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x26741726 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x26849659 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x269103d4 genphy_resume +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26e94efd nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x26eb2be3 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x26ec6af8 __brelse +EXPORT_SYMBOL vmlinux 0x26fcb164 set_binfmt +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x271fff33 kill_fasync +EXPORT_SYMBOL vmlinux 0x272d2ff7 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x27353b4a ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x273d5907 dm_table_get +EXPORT_SYMBOL vmlinux 0x277043fd bio_alloc +EXPORT_SYMBOL vmlinux 0x27747187 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27903884 generic_show_options +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27efa53b kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x27f3d49d blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x27fb926c blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x283e6606 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x2852045d blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x285b41d4 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x28622953 tty_vhangup +EXPORT_SYMBOL vmlinux 0x2885628b blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x289f1bd3 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a61fa9 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x28abddc0 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x28afab4c scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x28c01b04 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x28f895b2 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x2903487a tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x29355d83 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x294663c2 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x296dd0c7 vc_cons +EXPORT_SYMBOL vmlinux 0x2975111f scsi_dma_map +EXPORT_SYMBOL vmlinux 0x297c476c kill_anon_super +EXPORT_SYMBOL vmlinux 0x2982cc50 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x299216cc ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x299d8de6 bdget +EXPORT_SYMBOL vmlinux 0x29a1a92b eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29d3a012 inet_put_port +EXPORT_SYMBOL vmlinux 0x29dcf5dd ll_rw_block +EXPORT_SYMBOL vmlinux 0x29f57d0c sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x29f67f93 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x29fadfdd netlink_broadcast +EXPORT_SYMBOL vmlinux 0x29fcedbe request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x2a0f7576 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a39ce80 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x2a61e504 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x2a75d71f scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x2a825bb2 dput +EXPORT_SYMBOL vmlinux 0x2a83412b free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x2a898308 cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0x2a9668fd dquot_drop +EXPORT_SYMBOL vmlinux 0x2a98b002 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa7beab release_sock +EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x2aaa4d32 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x2ab40681 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x2abc68dd vfs_readv +EXPORT_SYMBOL vmlinux 0x2ac6193b __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x2aec1586 neigh_for_each +EXPORT_SYMBOL vmlinux 0x2af3189d __breadahead +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b2cd9ff i2c_master_recv +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b31894f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 0x2b6d5c91 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x2b7c7e7f linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bae5ee1 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x2bcdfdfd dquot_acquire +EXPORT_SYMBOL vmlinux 0x2be92c9e dev_notice +EXPORT_SYMBOL vmlinux 0x2bedbbc9 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x2c1cfa05 dev_err +EXPORT_SYMBOL vmlinux 0x2c249dde skb_copy_expand +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c331571 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x2c5b9d48 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x2c86233b unlock_page +EXPORT_SYMBOL vmlinux 0x2c99df09 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x2cb3d291 journal_start +EXPORT_SYMBOL vmlinux 0x2cd7f188 __scm_destroy +EXPORT_SYMBOL vmlinux 0x2d06e576 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x2d12e07c cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d225049 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x2d279390 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x2d287ac4 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d356b06 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d7ac509 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2dac3ffb unlock_rename +EXPORT_SYMBOL vmlinux 0x2dcd28b0 proc_create_data +EXPORT_SYMBOL vmlinux 0x2dd50177 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x2dd67734 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2e7010e1 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x2e937754 dentry_unhash +EXPORT_SYMBOL vmlinux 0x2eb30a11 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ec5be24 dev_uc_add +EXPORT_SYMBOL vmlinux 0x2ecee2d9 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x2eefbb09 iget_failed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f0ae462 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x2f288385 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x2f376225 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x2f4fc2e5 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x2f68254f vga_tryget +EXPORT_SYMBOL vmlinux 0x2f74991b scsi_register +EXPORT_SYMBOL vmlinux 0x2f79c4a0 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x2f7b2f2d hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x2fa7e1fa kobject_del +EXPORT_SYMBOL vmlinux 0x2fc62885 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x2ff67c82 seq_release +EXPORT_SYMBOL vmlinux 0x2ff787f0 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x3028e855 init_timer_key +EXPORT_SYMBOL vmlinux 0x3061389d ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x306b57ee init_special_inode +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x309e0c34 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30ad25ce kernel_bind +EXPORT_SYMBOL vmlinux 0x30e56286 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30e7a5d8 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x30ebfbf5 block_sync_page +EXPORT_SYMBOL vmlinux 0x30efc26f __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x30fea207 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x31015a0d kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x310a9638 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x311768d6 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x312a0860 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x312eebdb jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x313341a3 _set_bit_le +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31609199 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x316b8447 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x31742063 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31a96069 ___dma_page_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x31adecc2 dma_mmap_writecombine +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31e5243a dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x32245a03 sk_free +EXPORT_SYMBOL vmlinux 0x32401363 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x32443ffa unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x32570aad ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x328663c1 datagram_poll +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x3292f3e2 gen_pool_add +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x32e853de journal_flush +EXPORT_SYMBOL vmlinux 0x32f5e5c2 ps2_command +EXPORT_SYMBOL vmlinux 0x331b6e38 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x332bb0a8 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x3340c649 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x338782d9 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x33a240cf scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x33c3ea1a thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x33c4a960 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x33ce8796 pci_match_id +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33eacbb4 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x340d710d unregister_nls +EXPORT_SYMBOL vmlinux 0x3417555b user_path_at +EXPORT_SYMBOL vmlinux 0x341ab3c4 dump_write +EXPORT_SYMBOL vmlinux 0x3458e767 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x346db819 security_path_mknod +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x3493acdd __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34aa9c3c genphy_read_status +EXPORT_SYMBOL vmlinux 0x34f833bb flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x34fbeef7 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x35256a14 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x352799dc scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x35733eed md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35cc7aa3 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x35d405ae kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x35e781d9 generic_fillattr +EXPORT_SYMBOL vmlinux 0x35ee9582 thaw_bdev +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36462591 kernel_read +EXPORT_SYMBOL vmlinux 0x36539249 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x36692fa5 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36d1db40 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3706ae59 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x372417e5 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x37338e48 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x37410a4c i2c_verify_client +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x3763270e d_lookup +EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x378edbc2 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c21a09 follow_down_one +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x38039e60 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x38052ecc security_path_unlink +EXPORT_SYMBOL vmlinux 0x38133c8b dqstats +EXPORT_SYMBOL vmlinux 0x3821752b inetdev_by_index +EXPORT_SYMBOL vmlinux 0x387c2baf radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0x387d950e touch_atime +EXPORT_SYMBOL vmlinux 0x388670ef __bforget +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38e8378d pgprot_kernel +EXPORT_SYMBOL vmlinux 0x392803f8 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x3934c29c vga_put +EXPORT_SYMBOL vmlinux 0x395e5e7b skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x397aaafd dquot_disable +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x399161f2 ip_fragment +EXPORT_SYMBOL vmlinux 0x399f4cef phy_driver_register +EXPORT_SYMBOL vmlinux 0x39b8f02e ipv4_specific +EXPORT_SYMBOL vmlinux 0x39ca1964 irq_stat +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a7bea0d vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a8788df __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x3a8daaaf clkdev_alloc +EXPORT_SYMBOL vmlinux 0x3a8ea887 serio_close +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3ab4450f pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x3ab69ea4 kill_block_super +EXPORT_SYMBOL vmlinux 0x3ab6e3a7 pci_dev_put +EXPORT_SYMBOL vmlinux 0x3acbb1bb __bio_clone +EXPORT_SYMBOL vmlinux 0x3ae296fe create_mnt_ns +EXPORT_SYMBOL vmlinux 0x3b0728e5 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x3b1b825b bdput +EXPORT_SYMBOL vmlinux 0x3b2cfc96 setup_new_exec +EXPORT_SYMBOL vmlinux 0x3b365e2d mntget +EXPORT_SYMBOL vmlinux 0x3b3d3c34 block_truncate_page +EXPORT_SYMBOL vmlinux 0x3b459643 unlock_buffer +EXPORT_SYMBOL vmlinux 0x3b76adde igrab +EXPORT_SYMBOL vmlinux 0x3b843544 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x3b8792e0 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x3b9e1704 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x3bc97f37 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x3bca3d0a dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd25b7d jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x3c1f051e mark_page_accessed +EXPORT_SYMBOL vmlinux 0x3c253533 __register_binfmt +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c2fa9db bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x3c34ce42 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x3c6238a0 register_framebuffer +EXPORT_SYMBOL vmlinux 0x3c7bfaf2 fb_pan_display +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c955024 dget_parent +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb08dc9 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x3cd34ab0 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d02e73e tty_unthrottle +EXPORT_SYMBOL vmlinux 0x3d10683e __blk_end_request +EXPORT_SYMBOL vmlinux 0x3d170cbf scsi_remove_host +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d5fd2ff tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x3d7cf634 write_one_page +EXPORT_SYMBOL vmlinux 0x3d903d60 tty_shutdown +EXPORT_SYMBOL vmlinux 0x3d9e486f tty_register_device +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3de0e513 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e00bda9 dev_addr_del +EXPORT_SYMBOL vmlinux 0x3e348e28 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x3e37f9b9 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e4a8504 sk_wait_data +EXPORT_SYMBOL vmlinux 0x3e81bc18 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb0cc64 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x3eb963ca key_task_permission +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edb2438 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x3ee754cb tty_unregister_device +EXPORT_SYMBOL vmlinux 0x3f00d9bd xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x3f2137e3 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x3f2866a6 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x3f30b068 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f7c385a blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x3f8fa511 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x3fb7c20d xfrm_init_state +EXPORT_SYMBOL vmlinux 0x3fcdb386 file_remove_suid +EXPORT_SYMBOL vmlinux 0x3fd3de2d gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x3fd3ff41 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff955a2 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x402361b6 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x40349c26 mnt_pin +EXPORT_SYMBOL vmlinux 0x4054ba66 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +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 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40ac2eb2 inet_listen +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d5bfae abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x40d85c90 sock_no_accept +EXPORT_SYMBOL vmlinux 0x40da27da dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410e878f __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x411fe9c5 i2c_use_client +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414973d9 submit_bh +EXPORT_SYMBOL vmlinux 0x414c312c bio_free +EXPORT_SYMBOL vmlinux 0x414f6134 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x414fdfca pci_iomap +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418b0bdd phy_detach +EXPORT_SYMBOL vmlinux 0x4190b256 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x41a8e384 bdi_init +EXPORT_SYMBOL vmlinux 0x41bb3049 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x41df0133 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x4236b1d0 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x425456c9 cpu_cache +EXPORT_SYMBOL vmlinux 0x4265559c end_page_writeback +EXPORT_SYMBOL vmlinux 0x426dd16c wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x4281d5bd llc_add_pack +EXPORT_SYMBOL vmlinux 0x42927b25 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x429382a9 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429b763b jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x42b3192b inode_permission +EXPORT_SYMBOL vmlinux 0x42be2c04 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x42be7239 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x42f40417 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430aa0c9 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x432662c7 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x432ab808 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x432dc1c3 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x436b53eb nla_append +EXPORT_SYMBOL vmlinux 0x43810d3f sk_filter +EXPORT_SYMBOL vmlinux 0x4394c88d tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x43ba6c7a i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x43c4c135 __devm_request_region +EXPORT_SYMBOL vmlinux 0x43e3080d fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x43ea5a65 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x43fce0dc clk_set_rate +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x445e858f neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x4464d676 _dev_info +EXPORT_SYMBOL vmlinux 0x4474909e __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x448212fa down_trylock +EXPORT_SYMBOL vmlinux 0x44a2df25 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x44a96906 km_state_expired +EXPORT_SYMBOL vmlinux 0x44b5ed7e nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c0446d truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x44cdc815 generic_setxattr +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eed869 i2c_transfer +EXPORT_SYMBOL vmlinux 0x450118ef led_blink_set +EXPORT_SYMBOL vmlinux 0x45020a51 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x45026e34 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x4518193c elevator_change +EXPORT_SYMBOL vmlinux 0x45373aed ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x4543bc57 skb_clone +EXPORT_SYMBOL vmlinux 0x45494d55 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x455cb6f0 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x456455a1 keyring_search +EXPORT_SYMBOL vmlinux 0x456e6dce radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45791971 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x457a3c58 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x458c3baf md_flush_request +EXPORT_SYMBOL vmlinux 0x459079be noop_llseek +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45b78182 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45c4627c phy_disconnect +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45eb9500 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x4616d8f8 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x46265ac3 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x466317d7 mddev_congested +EXPORT_SYMBOL vmlinux 0x466645d1 skb_seq_read +EXPORT_SYMBOL vmlinux 0x46716022 complete_request_key +EXPORT_SYMBOL vmlinux 0x46825e94 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46ced8be mmc_remove_host +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46e0aa14 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x471071ba dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x4749b394 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4753b1c1 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x4762a8d6 simple_lookup +EXPORT_SYMBOL vmlinux 0x477bd13d i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c05bd9 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x47c742fa jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x47faa141 journal_clear_err +EXPORT_SYMBOL vmlinux 0x4807d489 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x4807fcf8 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4864a930 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48b907b6 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x48d6c64f __find_get_block +EXPORT_SYMBOL vmlinux 0x48f0df35 inet_bind +EXPORT_SYMBOL vmlinux 0x49496693 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49711d5f tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x4988915e __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x499508c3 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49ba317b rfkill_blocked +EXPORT_SYMBOL vmlinux 0x49cf1315 key_type_keyring +EXPORT_SYMBOL vmlinux 0x49d7f4bd fd_install +EXPORT_SYMBOL vmlinux 0x49e8aba5 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x49ec8295 tcp_poll +EXPORT_SYMBOL vmlinux 0x49f9b1c4 empty_zero_page +EXPORT_SYMBOL vmlinux 0x49fa2de6 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x4a2b2a26 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x4a568b06 inet_frag_find +EXPORT_SYMBOL vmlinux 0x4a8b1b4b km_report +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b465df7 misc_deregister +EXPORT_SYMBOL vmlinux 0x4b630b73 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4b9964b1 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc0da4b mmc_release_host +EXPORT_SYMBOL vmlinux 0x4bd21d18 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x4be286ff vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c205cf1 blk_complete_request +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2c0624 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states +EXPORT_SYMBOL vmlinux 0x4cb6e6c0 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d3e3b29 dst_discard +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d46829e i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x4d650f70 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x4d760e49 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x4d80cf4c kmem_cache_create +EXPORT_SYMBOL vmlinux 0x4d94c2eb con_is_bound +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4db08c45 netdev_emerg +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dcbbfd5 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df747f9 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x4dfc5c1e bh_submit_read +EXPORT_SYMBOL vmlinux 0x4dff6f4f lookup_one_len +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e2ba95f skb_copy +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e39474b posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x4e54f7c6 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e72e3fc scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e85c082 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x4eb1a9ad unload_nls +EXPORT_SYMBOL vmlinux 0x4ebd4bc1 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x4ec63572 audit_log_end +EXPORT_SYMBOL vmlinux 0x4ec81445 find_lock_page +EXPORT_SYMBOL vmlinux 0x4ef9f6cf security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x4f095727 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2f753d dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f455c7f insert_inode_locked +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f5b25ba inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x4fa98b64 force_sig +EXPORT_SYMBOL vmlinux 0x4fafe693 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x4fb53655 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x501338cd nobh_write_end +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5032788e dquot_destroy +EXPORT_SYMBOL vmlinux 0x50350be7 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x50393606 dma_map_sg +EXPORT_SYMBOL vmlinux 0x504313ae nobh_write_begin +EXPORT_SYMBOL vmlinux 0x5061c542 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5071e0e2 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x5093fa82 _clear_bit_le +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50b70525 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x50c700ee lock_may_read +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50e9d5c4 dcb_getapp +EXPORT_SYMBOL vmlinux 0x51117346 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5159a7d4 dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +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 0x521cdcf1 journal_force_commit +EXPORT_SYMBOL vmlinux 0x52374d15 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x52399238 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x524ae28d blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x526f2501 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x527550b1 tty_register_driver +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d20661 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52efd766 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x52fb550b dm_put_device +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x5326862f __inet6_hash +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53be3523 pci_request_region +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c08c18 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x53d91490 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x53dcfadd dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x54136890 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x5424bf2c wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x542e3962 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x545138ed skb_free_datagram +EXPORT_SYMBOL vmlinux 0x5482a0b7 thaw_super +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54c2fdc4 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x54df3be3 flush_signals +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x553b146f console_stop +EXPORT_SYMBOL vmlinux 0x553e1a33 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x55770f71 prepare_creds +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a5c844 scsi_unregister +EXPORT_SYMBOL vmlinux 0x55b9a425 kstat +EXPORT_SYMBOL vmlinux 0x55db355e xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x55f2ee79 arp_find +EXPORT_SYMBOL vmlinux 0x560007b6 nonseekable_open +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5612cfc2 tty_devnum +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5623f996 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56524875 file_permission +EXPORT_SYMBOL vmlinux 0x5675075b revert_creds +EXPORT_SYMBOL vmlinux 0x5689359a hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x569ea5f3 notify_change +EXPORT_SYMBOL vmlinux 0x56a354c4 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x56af21d0 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x56b35471 have_submounts +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56ccb472 path_lookup +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x578dde6a sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x5794281e stop_tty +EXPORT_SYMBOL vmlinux 0x57973f11 flex_array_get +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b2972b tty_throttle +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57cd5eec block_write_end +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e459a0 free_netdev +EXPORT_SYMBOL vmlinux 0x57f7e196 find_inode_number +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x58890297 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x58a6f692 bmap +EXPORT_SYMBOL vmlinux 0x58ebf167 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x58f934a2 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5936080b journal_ack_err +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x596f3051 register_filesystem +EXPORT_SYMBOL vmlinux 0x5973caa8 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x59983722 arp_invalidate +EXPORT_SYMBOL vmlinux 0x599a2a2c filemap_fault +EXPORT_SYMBOL vmlinux 0x599a5d94 kunmap +EXPORT_SYMBOL vmlinux 0x599ba347 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x59ac77f0 do_SAK +EXPORT_SYMBOL vmlinux 0x59b15bac try_to_release_page +EXPORT_SYMBOL vmlinux 0x59d1d30a unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a1fa4f2 elv_rb_find +EXPORT_SYMBOL vmlinux 0x5a26ad04 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x5a6f731f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7ad9fa abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x5a7f1dea kernel_sendpage +EXPORT_SYMBOL vmlinux 0x5a882c60 pci_choose_state +EXPORT_SYMBOL vmlinux 0x5a8d79fb mpage_writepage +EXPORT_SYMBOL vmlinux 0x5a96d993 netif_rx +EXPORT_SYMBOL vmlinux 0x5ab21f8d ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x5ac338cb pcim_pin_device +EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register +EXPORT_SYMBOL vmlinux 0x5b132ba7 nf_log_register +EXPORT_SYMBOL vmlinux 0x5b15199d qdisc_destroy +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b3a7a7d udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x5b5e8251 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x5b7761ff inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x5bb61f0b invalidate_bdev +EXPORT_SYMBOL vmlinux 0x5bdb2e52 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x5bdfc550 amba_release_regions +EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last +EXPORT_SYMBOL vmlinux 0x5c1dac5d __alloc_skb +EXPORT_SYMBOL vmlinux 0x5c1f98e6 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x5c24b27c tc_classify +EXPORT_SYMBOL vmlinux 0x5c2cf538 generic_file_open +EXPORT_SYMBOL vmlinux 0x5c5bb6ff tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x5c65b695 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x5c66720f register_gifconf +EXPORT_SYMBOL vmlinux 0x5c871920 generic_listxattr +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5c94ea82 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x5cb1839b clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x5cc5c93c tty_free_termios +EXPORT_SYMBOL vmlinux 0x5ccf9709 kernel_listen +EXPORT_SYMBOL vmlinux 0x5ce9865b tcp_shutdown +EXPORT_SYMBOL vmlinux 0x5cf29b45 d_alloc +EXPORT_SYMBOL vmlinux 0x5d20e392 read_cache_page +EXPORT_SYMBOL vmlinux 0x5d289364 register_console +EXPORT_SYMBOL vmlinux 0x5d311402 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x5d3c82e6 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x5d657ebe phy_start +EXPORT_SYMBOL vmlinux 0x5d7236fd xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x5d7465a1 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x5db322d8 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e7ad4fb ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e904237 inet6_getname +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9868e0 kobject_add +EXPORT_SYMBOL vmlinux 0x5e9dbb7c try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee7f217 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x5ee9426d neigh_ifdown +EXPORT_SYMBOL vmlinux 0x5ef87c29 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f1f523c ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x5f6e42ef tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x5f6f88eb lock_super +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f76a6ef netif_napi_del +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fdcae9a eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x5fdd2a2d splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601b3c49 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap +EXPORT_SYMBOL vmlinux 0x603b8778 alloc_trdev +EXPORT_SYMBOL vmlinux 0x607334fe vfs_readlink +EXPORT_SYMBOL vmlinux 0x60924aa5 blk_make_request +EXPORT_SYMBOL vmlinux 0x609e95a0 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60aef732 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x60c6ae6a simple_rmdir +EXPORT_SYMBOL vmlinux 0x60e96b0b ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x60ffcf70 kset_register +EXPORT_SYMBOL vmlinux 0x61091aeb sock_no_bind +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612ec5f0 fsync_bdev +EXPORT_SYMBOL vmlinux 0x61368766 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x6151a895 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x615ae441 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x6164ad09 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x616d2e57 dev_add_pack +EXPORT_SYMBOL vmlinux 0x61741cba pci_dev_driver +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x618f98e0 free_buffer_head +EXPORT_SYMBOL vmlinux 0x61a79f08 __irq_regs +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61cb170a kill_pgrp +EXPORT_SYMBOL vmlinux 0x61d01ddb skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x61d67881 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x61ec3414 pci_enable_device +EXPORT_SYMBOL vmlinux 0x61f3c4b0 deactivate_super +EXPORT_SYMBOL vmlinux 0x6202821e alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x62236cec inet6_bind +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622de9ae __put_cred +EXPORT_SYMBOL vmlinux 0x624d1f3f block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x6272c26a skb_push +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62854704 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x62a63233 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x62a8a2c1 __pagevec_release +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x62e68313 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x632a2582 security_path_symlink +EXPORT_SYMBOL vmlinux 0x632a81db dev_uc_sync +EXPORT_SYMBOL vmlinux 0x635ddf2d pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x63649090 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x6365af84 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x639a713b dev_addr_init +EXPORT_SYMBOL vmlinux 0x63a6d8f4 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x63e4bdd6 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x64014628 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640a4989 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x64381707 tcp_connect +EXPORT_SYMBOL vmlinux 0x64420233 nf_register_hook +EXPORT_SYMBOL vmlinux 0x644bb38f input_flush_device +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x645b6fc1 arp_create +EXPORT_SYMBOL vmlinux 0x645fb014 open_exec +EXPORT_SYMBOL vmlinux 0x6479b00d __break_lease +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a3121b register_con_driver +EXPORT_SYMBOL vmlinux 0x64dd2367 blk_register_region +EXPORT_SYMBOL vmlinux 0x64ec1cef mmc_can_trim +EXPORT_SYMBOL vmlinux 0x64f7a7a3 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651cec01 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65458e58 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x65560881 dquot_file_open +EXPORT_SYMBOL vmlinux 0x65935660 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x65a01260 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e238a9 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x6609b110 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x660c0426 secpath_dup +EXPORT_SYMBOL vmlinux 0x66217b6c rfkill_register +EXPORT_SYMBOL vmlinux 0x6632c099 spi_dv_device +EXPORT_SYMBOL vmlinux 0x66361edc jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x6636e71f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x66499906 scsi_print_result +EXPORT_SYMBOL vmlinux 0x66635050 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x666d6645 journal_forget +EXPORT_SYMBOL vmlinux 0x66781754 rtnl_notify +EXPORT_SYMBOL vmlinux 0x6685c710 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668f3f26 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x66ad185b blk_peek_request +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66de5987 skb_queue_head +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670983f2 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x670a581e phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x67114752 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x671db6c7 napi_complete +EXPORT_SYMBOL vmlinux 0x673b4cf9 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x6754096e freeze_super +EXPORT_SYMBOL vmlinux 0x67576a15 dev_uc_init +EXPORT_SYMBOL vmlinux 0x676d2f73 simple_rename +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +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 0x67bf3396 lock_rename +EXPORT_SYMBOL vmlinux 0x67c53d41 nf_log_packet +EXPORT_SYMBOL vmlinux 0x67e59dad locks_init_lock +EXPORT_SYMBOL vmlinux 0x67e82d65 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x67ed97f8 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x67eedb28 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x684868db dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x684b1d13 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x6858c526 register_cdrom +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687fc20d unlock_new_inode +EXPORT_SYMBOL vmlinux 0x68836788 simple_write_begin +EXPORT_SYMBOL vmlinux 0x689d9979 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x68cb20b1 sock_create_lite +EXPORT_SYMBOL vmlinux 0x68e9fa82 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x68f5ff17 __dst_free +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x68fd5117 __block_write_begin +EXPORT_SYMBOL vmlinux 0x690abae5 journal_destroy +EXPORT_SYMBOL vmlinux 0x6914ba39 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x69321ebd bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x6940f06a __elv_add_request +EXPORT_SYMBOL vmlinux 0x696cee81 unregister_key_type +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69c0adfb bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x69c2edd0 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69edd1fb clk_add_alias +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a10093f ip6_xmit +EXPORT_SYMBOL vmlinux 0x6a1631ce mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x6a2371f4 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x6a308896 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x6a52e9c1 generic_readlink +EXPORT_SYMBOL vmlinux 0x6a6b3f25 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x6a6e3566 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a7b1fc0 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x6a854daa journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x6a8eade8 pskb_copy +EXPORT_SYMBOL vmlinux 0x6a9dd67b scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x6aa55d23 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x6ad809f4 contig_page_data +EXPORT_SYMBOL vmlinux 0x6aea8962 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b34b5bc bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x6b475653 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x6b47cf66 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x6b523bb5 end_writeback +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6b6a3866 md_check_recovery +EXPORT_SYMBOL vmlinux 0x6b6e8c76 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x6b878765 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x6b9fdee2 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bb9fbe5 key_put +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be58d84 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x6bedda66 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x6bf1027d tty_hangup +EXPORT_SYMBOL vmlinux 0x6bfd96e1 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x6c126c7b tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c488b24 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x6c491fc2 __napi_complete +EXPORT_SYMBOL vmlinux 0x6c531334 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6cae0a15 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6d01838e remap_pfn_range +EXPORT_SYMBOL vmlinux 0x6d03c2a9 elv_register_queue +EXPORT_SYMBOL vmlinux 0x6d121802 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2c5f76 filp_close +EXPORT_SYMBOL vmlinux 0x6d2d9c73 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d7fa01a blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x6daa6a26 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x6db0af14 dev_get_flags +EXPORT_SYMBOL vmlinux 0x6dcd4901 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x6dd4a392 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x6dd65720 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x6ddc2ed6 pci_release_regions +EXPORT_SYMBOL vmlinux 0x6de8b6af d_instantiate +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e1383c3 sync_inode +EXPORT_SYMBOL vmlinux 0x6e1fd402 skb_put +EXPORT_SYMBOL vmlinux 0x6e4d660a blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x6e536b9e ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9a8fe9 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eae7272 __quota_error +EXPORT_SYMBOL vmlinux 0x6ee0b0da sk_reset_txq +EXPORT_SYMBOL vmlinux 0x6ee7dc45 ether_setup +EXPORT_SYMBOL vmlinux 0x6f1b3bb9 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x6f4ba031 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x6f4fc0e8 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f9e558f scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x6fa65aca inode_init_once +EXPORT_SYMBOL vmlinux 0x6fa8045c try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x6fdd79d9 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d5d012 km_policy_notify +EXPORT_SYMBOL vmlinux 0x70d8091c sock_no_connect +EXPORT_SYMBOL vmlinux 0x70f50246 request_key +EXPORT_SYMBOL vmlinux 0x70fc9f23 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x712f5622 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x7131ba02 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71b307b7 write_cache_pages +EXPORT_SYMBOL vmlinux 0x71bf4b89 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71da8a47 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x71dc8c1c do_splice_from +EXPORT_SYMBOL vmlinux 0x71ef507b generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x71f36627 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x71f370b5 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x71f6cb4c gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x7200bc50 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x720a75c4 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x723c4093 get_write_access +EXPORT_SYMBOL vmlinux 0x72614e2a scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x728f6ce3 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x72a74a5f generic_file_llseek +EXPORT_SYMBOL vmlinux 0x72bddc8c do_map_probe +EXPORT_SYMBOL vmlinux 0x72c1e03a icmp_send +EXPORT_SYMBOL vmlinux 0x72e5232d mapping_tagged +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7303ec67 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x730535d4 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x730a508b xfrm_lookup +EXPORT_SYMBOL vmlinux 0x732aa3c7 icmpv6_send +EXPORT_SYMBOL vmlinux 0x73580804 unlock_super +EXPORT_SYMBOL vmlinux 0x735dcd9f save_mount_options +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x7381ffbb flex_array_clear +EXPORT_SYMBOL vmlinux 0x738baaca mpage_readpage +EXPORT_SYMBOL vmlinux 0x7398359a get_disk +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73bcf64e inode_needs_sync +EXPORT_SYMBOL vmlinux 0x73cf79ad dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x73cfd734 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x73d2a12a ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f1664d md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x743e2d4b bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x7453ddfc sk_common_release +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a74137 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x74aaf00d i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74ea8d8e dev_mc_del +EXPORT_SYMBOL vmlinux 0x74fc079e blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x74ff70fa llc_sap_find +EXPORT_SYMBOL vmlinux 0x751a4075 __nla_reserve +EXPORT_SYMBOL vmlinux 0x751f7dde mmc_host_disable +EXPORT_SYMBOL vmlinux 0x753e38a0 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x7560c55f blk_sync_queue +EXPORT_SYMBOL vmlinux 0x756f2b3f security_path_rename +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75b36bb1 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x75b4d80a neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x75bcd95c in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75ce129f vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x75d1c50c jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x75e22eea account_page_writeback +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x765bd269 request_firmware +EXPORT_SYMBOL vmlinux 0x765f75fb pgprot_user +EXPORT_SYMBOL vmlinux 0x76652f41 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x76798e9d abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x76826fd5 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x76881360 leds_event +EXPORT_SYMBOL vmlinux 0x7695300f simple_statfs +EXPORT_SYMBOL vmlinux 0x76adb3c6 __napi_schedule +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 0x76dba52a dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x76e97d3b remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x76ea934b input_inject_event +EXPORT_SYMBOL vmlinux 0x770b803c iget_locked +EXPORT_SYMBOL vmlinux 0x77268da3 key_validate +EXPORT_SYMBOL vmlinux 0x772abe29 netdev_set_master +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7740edac block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x77484f98 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x774eb0e0 bdi_unregister +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a550a7 d_splice_alias +EXPORT_SYMBOL vmlinux 0x77adad92 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77cf7e37 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7812dd07 arp_send +EXPORT_SYMBOL vmlinux 0x78226cb4 clk_enable +EXPORT_SYMBOL vmlinux 0x78348af4 kern_path +EXPORT_SYMBOL vmlinux 0x783909fb jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x783a1fb5 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x78a250cc mdiobus_read +EXPORT_SYMBOL vmlinux 0x78d8a300 brioctl_set +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e04cab pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x78fa6464 nla_put +EXPORT_SYMBOL vmlinux 0x790a02c8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x791988f6 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x79362687 generic_writepages +EXPORT_SYMBOL vmlinux 0x79414b51 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x7959ff61 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x79608874 dquot_resume +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79942e99 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79ea12a9 journal_extend +EXPORT_SYMBOL vmlinux 0x7a05a171 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x7a111670 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x7a1388f4 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a52d6d0 pipe_to_file +EXPORT_SYMBOL vmlinux 0x7a7ac490 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x7a90af3c amba_device_unregister +EXPORT_SYMBOL vmlinux 0x7a92d50d i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7ac5af3f pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x7ad885b2 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x7ade5934 prepare_binprm +EXPORT_SYMBOL vmlinux 0x7b25a541 abort_creds +EXPORT_SYMBOL vmlinux 0x7b35de1f scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x7b41d4df bio_sector_offset +EXPORT_SYMBOL vmlinux 0x7b45b6b2 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x7b674482 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b7da828 __invalidate_device +EXPORT_SYMBOL vmlinux 0x7b9c654a xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x7bb26d62 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bd8f4d6 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x7c4e5f91 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x7c52f8e7 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x7c604aa7 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c72e3bd tcp_proc_register +EXPORT_SYMBOL vmlinux 0x7c78b01b get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x7c78ba35 kfree_skb +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9bb8db simple_transaction_get +EXPORT_SYMBOL vmlinux 0x7ca7784b dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7ce3f15c pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x7cfad6fe dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x7cfaee8f scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d4aec8b bio_clone +EXPORT_SYMBOL vmlinux 0x7d4cd28a textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x7d4d9599 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x7d58fec5 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x7d73d953 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dbd9cd4 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de0a78b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7e1938d8 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x7e263544 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e4859f6 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x7e48d43b sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x7e4b231c d_genocide +EXPORT_SYMBOL vmlinux 0x7e8d1089 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x7e98347b __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eaf9a59 file_update_time +EXPORT_SYMBOL vmlinux 0x7ecb20a8 uart_resume_port +EXPORT_SYMBOL vmlinux 0x7ee9600f scsi_remove_device +EXPORT_SYMBOL vmlinux 0x7efafbaa netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2c457a vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x7f5787d3 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f7732af dquot_commit_info +EXPORT_SYMBOL vmlinux 0x7f7ffe7d xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x7f907c66 __kmap_atomic +EXPORT_SYMBOL vmlinux 0x7f96bc7a blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x801fafa1 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x8039007c find_or_create_page +EXPORT_SYMBOL vmlinux 0x806fc9c2 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x8085f9e8 bioset_create +EXPORT_SYMBOL vmlinux 0x808f48b4 simple_unlink +EXPORT_SYMBOL vmlinux 0x80951794 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x80ab0c30 add_timer +EXPORT_SYMBOL vmlinux 0x80af65ec radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x80c7299d lro_receive_frags +EXPORT_SYMBOL vmlinux 0x80ce7003 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x80d642a4 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +EXPORT_SYMBOL vmlinux 0x80f289f9 dev_mc_init +EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all +EXPORT_SYMBOL vmlinux 0x814c1a65 key_alloc +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x816aa325 cdev_init +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dca4d1 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x81f33702 input_release_device +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x82268a1b xfrm_policy_delete +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 0x82a66786 register_8022_client +EXPORT_SYMBOL vmlinux 0x82ab4a89 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82f0d765 netdev_state_change +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x835f1f64 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x83653694 seq_release_private +EXPORT_SYMBOL vmlinux 0x836548ed rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83c91751 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x83d3f1a7 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x841323e2 journal_wipe +EXPORT_SYMBOL vmlinux 0x8416314f dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x84309351 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x844da606 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x845f9e0e serio_unregister_port +EXPORT_SYMBOL vmlinux 0x8462a23d sock_init_data +EXPORT_SYMBOL vmlinux 0x84afe61a scsi_host_put +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bd69f7 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x84bf61c5 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x84d17e96 bio_add_page +EXPORT_SYMBOL vmlinux 0x84d7787e registered_fb +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x85106026 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x8515c360 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x8526bb52 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x85533125 lro_flush_all +EXPORT_SYMBOL vmlinux 0x855510dc journal_lock_updates +EXPORT_SYMBOL vmlinux 0x8555c865 get_sb_single +EXPORT_SYMBOL vmlinux 0x85646b7b fget +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8579b8f2 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x858de345 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x85a6e9ac netdev_info +EXPORT_SYMBOL vmlinux 0x85ac2155 serio_rescan +EXPORT_SYMBOL vmlinux 0x85ca7239 arp_xmit +EXPORT_SYMBOL vmlinux 0x85dc9335 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85eab0ab udp_prot +EXPORT_SYMBOL vmlinux 0x85ec6b6e dquot_commit +EXPORT_SYMBOL vmlinux 0x85fc0f1d scsi_init_io +EXPORT_SYMBOL vmlinux 0x860aa6e4 iget5_locked +EXPORT_SYMBOL vmlinux 0x8626ff03 dma_unmap_sg +EXPORT_SYMBOL vmlinux 0x8633063f dqput +EXPORT_SYMBOL vmlinux 0x86336fef clk_get +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8661a4f2 iterate_mounts +EXPORT_SYMBOL vmlinux 0x86846678 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x868ac6e5 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86bd052f d_invalidate +EXPORT_SYMBOL vmlinux 0x86ddd866 may_umount +EXPORT_SYMBOL vmlinux 0x86e4a1d6 __f_setown +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x87108fed pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x874392a2 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x87497989 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x87664a32 dev_get_stats +EXPORT_SYMBOL vmlinux 0x87744100 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x87827b66 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87b29064 block_write_begin +EXPORT_SYMBOL vmlinux 0x87be9d7c rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x87beff52 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x87d67abb radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x87f3cec7 netif_napi_add +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88146fc5 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x881f2f75 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x882ffdb6 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x883342c0 register_exec_domain +EXPORT_SYMBOL vmlinux 0x883943dc vfs_link +EXPORT_SYMBOL vmlinux 0x883b3c34 generic_make_request +EXPORT_SYMBOL vmlinux 0x883ff975 blk_insert_request +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x88c0396b simple_empty +EXPORT_SYMBOL vmlinux 0x88e674ae generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x88eb0aab vmap +EXPORT_SYMBOL vmlinux 0x8914e158 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x89549f94 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x89590028 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x896c9d96 __rta_fill +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89af8f88 scsi_host_get +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a12138a pci_dev_get +EXPORT_SYMBOL vmlinux 0x8a207811 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x8a28282c block_commit_write +EXPORT_SYMBOL vmlinux 0x8a2c2ab9 kernel_accept +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a7c5ef4 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x8a7ce386 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a84210d register_sysctl_table +EXPORT_SYMBOL vmlinux 0x8a988d17 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aacdf1d sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x8ace755d radix_tree_delete +EXPORT_SYMBOL vmlinux 0x8ad9508e freeze_bdev +EXPORT_SYMBOL vmlinux 0x8b06cdb0 blk_start_queue +EXPORT_SYMBOL vmlinux 0x8b0ddb5a ppp_register_channel +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b9d6601 dev_warn +EXPORT_SYMBOL vmlinux 0x8bc7dc44 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x8bce696c fasync_helper +EXPORT_SYMBOL vmlinux 0x8bd261dc dm_get_device +EXPORT_SYMBOL vmlinux 0x8bd2dd67 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x8bdd763a ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x8be11e2b max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x8c04a333 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x8c2dfb35 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x8c3e55a9 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x8c50d167 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x8cb11842 __nla_put +EXPORT_SYMBOL vmlinux 0x8ce54512 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x8ced190d jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x8cf51d15 up +EXPORT_SYMBOL vmlinux 0x8cf67c84 fb_blank +EXPORT_SYMBOL vmlinux 0x8d0e66cf security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x8d37d385 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d7e8df5 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x8ddd5688 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x8dfe06f9 scsi_free_command +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e1360fc pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x8e2edb75 generic_write_sync +EXPORT_SYMBOL vmlinux 0x8e44ec85 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x8e52b639 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x8e642bd8 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x8e7600e6 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x8e8f549e dst_destroy +EXPORT_SYMBOL vmlinux 0x8ebb152b inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x8ebcb0d4 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x8ec00dd9 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ee82ea4 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x8f031f1c xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x8f14084d jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f49b60a noop_fsync +EXPORT_SYMBOL vmlinux 0x8f556f62 d_find_alias +EXPORT_SYMBOL vmlinux 0x8f590851 journal_abort +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f80333d phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x8f96eea0 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x8f97c593 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x8fcdca7d vfs_llseek +EXPORT_SYMBOL vmlinux 0x8feed4f3 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9022b6c6 nla_reserve +EXPORT_SYMBOL vmlinux 0x904e1a7a init_task +EXPORT_SYMBOL vmlinux 0x9060c889 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x9063db7b dm_table_get_md +EXPORT_SYMBOL vmlinux 0x90675e60 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x9075cb8e udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x908d7ca5 sock_create +EXPORT_SYMBOL vmlinux 0x909c73f4 nobh_writepage +EXPORT_SYMBOL vmlinux 0x90ecd7f8 km_state_notify +EXPORT_SYMBOL vmlinux 0x91066260 inet_getname +EXPORT_SYMBOL vmlinux 0x91076ef1 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x912f4867 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x91338da3 phy_device_free +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9157e779 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x915a5d44 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9162b636 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x917793e2 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x917891d5 netdev_err +EXPORT_SYMBOL vmlinux 0x917c3c48 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x919bae60 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz +EXPORT_SYMBOL vmlinux 0x91fb4af4 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x92023085 blkdev_put +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x922c2c55 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923cb533 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x92533519 dst_release +EXPORT_SYMBOL vmlinux 0x9261ce3c xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x92625025 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x92681702 md_done_sync +EXPORT_SYMBOL vmlinux 0x927fad66 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x92b53486 proto_unregister +EXPORT_SYMBOL vmlinux 0x92f748bf lock_sock_fast +EXPORT_SYMBOL vmlinux 0x930f6976 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x932d43eb sg_miter_next +EXPORT_SYMBOL vmlinux 0x9387f9f5 register_md_personality +EXPORT_SYMBOL vmlinux 0x93a3feb8 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93d1dec8 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x93edd682 tty_port_close +EXPORT_SYMBOL vmlinux 0x93f930ec nf_hook_slow +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941427ef textsearch_register +EXPORT_SYMBOL vmlinux 0x94159716 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x9463d7d5 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x9472dc09 vfs_writev +EXPORT_SYMBOL vmlinux 0x9480a61f mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94b6e4dc tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x94d1d839 proto_register +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94dd8ce3 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x9513aeba simple_transaction_set +EXPORT_SYMBOL vmlinux 0x952c68c8 journal_set_features +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x9561a9f7 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x957d216f tcp_ioctl +EXPORT_SYMBOL vmlinux 0x95914d43 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x95c4fb80 install_exec_creds +EXPORT_SYMBOL vmlinux 0x95c8776a fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x95cf776f boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95f010b3 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x96284cf1 bio_copy_user +EXPORT_SYMBOL vmlinux 0x962ff664 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x965b39c4 phy_stop +EXPORT_SYMBOL vmlinux 0x965e1ef0 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x9660cfaf security_path_chown +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x969da5b8 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x969e2a05 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x969fdbd9 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x96a1c689 do_truncate +EXPORT_SYMBOL vmlinux 0x96a27570 put_page +EXPORT_SYMBOL vmlinux 0x96b82c76 phy_attach +EXPORT_SYMBOL vmlinux 0x96c15020 blk_put_request +EXPORT_SYMBOL vmlinux 0x96c62557 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96f51953 dma_pool_create +EXPORT_SYMBOL vmlinux 0x97221ad8 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x973b19c0 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9777cc7a path_get +EXPORT_SYMBOL vmlinux 0x97ab854c bio_pair_release +EXPORT_SYMBOL vmlinux 0x97bb58e4 vc_resize +EXPORT_SYMBOL vmlinux 0x97e0f6a5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x9806ea30 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x985eaae4 poll_freewait +EXPORT_SYMBOL vmlinux 0x986a008a inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x986bd344 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x989f6594 get_super +EXPORT_SYMBOL vmlinux 0x98b1602c dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x98eb300d hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x98f145a6 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x990bb88b log_wait_commit +EXPORT_SYMBOL vmlinux 0x993fd8d6 kobject_init +EXPORT_SYMBOL vmlinux 0x9942efb2 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x99873534 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a103bc softnet_data +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdb7ff set_user_nice +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d5f7a6 I_BDEV +EXPORT_SYMBOL vmlinux 0x99d9101c phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x99dd3127 tr_type_trans +EXPORT_SYMBOL vmlinux 0x99fc1c11 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2541f3 i2c_master_send +EXPORT_SYMBOL vmlinux 0x9a46d2b9 init_buffer +EXPORT_SYMBOL vmlinux 0x9a86aa7a tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x9aa1d15e pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x9aa6c117 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x9ac2c750 pci_find_bus +EXPORT_SYMBOL vmlinux 0x9b15c5ec ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x9b19225e sock_wfree +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b684682 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9baf27ac down_read_trylock +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c04b619 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x9c14e330 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x9c27c1df flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x9c293933 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x9c36c1a2 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c992794 __devm_release_region +EXPORT_SYMBOL vmlinux 0x9cb6fb11 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x9cb752fe xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce6143a grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d008230 d_drop +EXPORT_SYMBOL vmlinux 0x9d03b366 names_cachep +EXPORT_SYMBOL vmlinux 0x9d24f2b2 devm_ioremap +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d53b5c6 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d736c4a bio_integrity_free +EXPORT_SYMBOL vmlinux 0x9d77d296 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x9d8ec427 redraw_screen +EXPORT_SYMBOL vmlinux 0x9da56f06 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x9db3f86b xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x9db9e9fe jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x9dca484c ps2_drain +EXPORT_SYMBOL vmlinux 0x9df8d22c scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e0f465e pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e37b015 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x9e46742e cfi_varsize_frob +EXPORT_SYMBOL vmlinux 0x9e557f06 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x9e67d6a2 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x9e6a4e9e phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x9e761cfe devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9ee631f8 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x9ee91a02 console_start +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f05c050 key_link +EXPORT_SYMBOL vmlinux 0x9f0c102d jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f13d026 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x9f1aefbc mdiobus_free +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f3b100a page_symlink +EXPORT_SYMBOL vmlinux 0x9f3e567f posix_lock_file +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f48ae72 dquot_initialize +EXPORT_SYMBOL vmlinux 0x9f776197 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x9f80bc59 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x9f851b40 vm_map_ram +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc25212 input_get_keycode +EXPORT_SYMBOL vmlinux 0x9fd71f78 filemap_flush +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05ba72f phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa066436f xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0983c00 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xa0a1bae4 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xa0aae861 inet_sendpage +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0cd027b security_task_getsecid +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f67ba8 scsi_get_command +EXPORT_SYMBOL vmlinux 0xa0f74ce7 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa141d88f udp_proc_register +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa16624b7 dev_mc_add +EXPORT_SYMBOL vmlinux 0xa1ab6f36 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xa1b5cffd pci_pme_active +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1e0e5c8 dm_table_event +EXPORT_SYMBOL vmlinux 0xa1e24aa4 poll_initwait +EXPORT_SYMBOL vmlinux 0xa1f28a76 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2565c36 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xa2761ba4 bio_init +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2d5daf9 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa2de32d3 module_layout +EXPORT_SYMBOL vmlinux 0xa2e884d7 vfs_fsync +EXPORT_SYMBOL vmlinux 0xa2ec3a57 input_set_keycode +EXPORT_SYMBOL vmlinux 0xa3198111 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa323f2d9 cdev_alloc +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa3330ff9 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa34e9596 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37990ef netif_skb_features +EXPORT_SYMBOL vmlinux 0xa399655b mii_nway_restart +EXPORT_SYMBOL vmlinux 0xa3a05d76 lock_may_write +EXPORT_SYMBOL vmlinux 0xa3b7a9ab llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xa3b8e35e skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xa3c468d8 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xa3c8325c sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xa3d8bc88 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xa3d9bd91 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xa3df23b6 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xa3e0c8fe aio_put_req +EXPORT_SYMBOL vmlinux 0xa4164457 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xa42e42d4 bdev_read_only +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4664eca kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa48816b9 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xa4dc01d5 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xa4e01e7e netdev_warn +EXPORT_SYMBOL vmlinux 0xa513d790 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xa514f73c uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xa51a62ab neigh_connected_output +EXPORT_SYMBOL vmlinux 0xa55a1375 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xa55ee0d0 __netif_schedule +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa590af85 path_is_under +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a29d9c dm_io +EXPORT_SYMBOL vmlinux 0xa5b02bbd sk_stop_timer +EXPORT_SYMBOL vmlinux 0xa5c7ccf3 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5e29df6 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xa5fb33b5 del_mtd_partitions +EXPORT_SYMBOL vmlinux 0xa619defb __register_chrdev +EXPORT_SYMBOL vmlinux 0xa62757fd pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xa62be5ab mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xa63427bd set_bdi_congested +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa655fd9e journal_init_dev +EXPORT_SYMBOL vmlinux 0xa6661284 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xa678b184 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xa67a50f6 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xa67acc37 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68d4988 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6c0262d devm_free_irq +EXPORT_SYMBOL vmlinux 0xa6cc3e70 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0xa6ced436 inet6_release +EXPORT_SYMBOL vmlinux 0xa6d20b81 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xa6dc4704 mmc_add_host +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6f50cbe fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xa6fe34b3 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xa6ff10b6 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xa72d5090 give_up_console +EXPORT_SYMBOL vmlinux 0xa750cdde __serio_register_driver +EXPORT_SYMBOL vmlinux 0xa75b7adb otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xa763d607 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xa768b8a0 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xa77a4938 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xa7ab9637 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xa7b75e74 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xa7eb6397 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa830e463 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xa8380d34 kernel_execve +EXPORT_SYMBOL vmlinux 0xa85a822d skb_store_bits +EXPORT_SYMBOL vmlinux 0xa873ec0b sock_wake_async +EXPORT_SYMBOL vmlinux 0xa8891cf0 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xa8973d2c pci_reenable_device +EXPORT_SYMBOL vmlinux 0xa8af88d7 blk_unplug +EXPORT_SYMBOL vmlinux 0xa8b73bb5 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xa8b95faa pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8d02010 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xa8ec49bc dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xa8ee2cd4 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa9113cb0 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa9275e52 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xa9278d54 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xa92ec613 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xa93d2cee sg_miter_stop +EXPORT_SYMBOL vmlinux 0xa942829c fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xa96511a9 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xa980882a blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xa980e548 single_open +EXPORT_SYMBOL vmlinux 0xa9850fbb tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xa989582a sock_recvmsg +EXPORT_SYMBOL vmlinux 0xa9bc9175 iput +EXPORT_SYMBOL vmlinux 0xa9c126c4 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0xa9c53a9d security_inode_init_security +EXPORT_SYMBOL vmlinux 0xaa0ebba5 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xaa203327 cpu_user +EXPORT_SYMBOL vmlinux 0xaa4382cb follow_down +EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xaa66254e d_move +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa94c694 __init_rwsem +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab21734a sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xab387e2a xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xab455eb0 up_read +EXPORT_SYMBOL vmlinux 0xab46bed7 sock_i_ino +EXPORT_SYMBOL vmlinux 0xab4ec2d2 bdi_destroy +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab81bd82 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xab8573fd inet_ioctl +EXPORT_SYMBOL vmlinux 0xab8a0f59 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xabb7e061 find_vma +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd84282 cap_file_mmap +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac068a0c netif_receive_skb +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac243191 km_policy_expired +EXPORT_SYMBOL vmlinux 0xac4bf11d scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac7af158 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xac7ed02b dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xac871a03 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xacc07005 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0xacc127c5 elevator_exit +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaced9192 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad019027 load_nls +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0cb3f9 sock_i_uid +EXPORT_SYMBOL vmlinux 0xad1b88c0 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xad3cb710 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xad40aeff key_unlink +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad468bbc blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xad733d9f mem_map +EXPORT_SYMBOL vmlinux 0xad90958d cfb_imageblit +EXPORT_SYMBOL vmlinux 0xada14f19 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xada5c136 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xadb3d81e up_write +EXPORT_SYMBOL vmlinux 0xadbbc6c0 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xaddfbf62 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae567b6d rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xae62deca xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xae7d6d94 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xae86a047 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xae8d5c4c mmc_resume_host +EXPORT_SYMBOL vmlinux 0xaeae34d8 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xaeae4d60 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xaebeb603 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaedc9e94 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xaf04f051 bdevname +EXPORT_SYMBOL vmlinux 0xaf06e50d audit_log_start +EXPORT_SYMBOL vmlinux 0xaf072934 dev_driver_string +EXPORT_SYMBOL vmlinux 0xaf1285c2 dev_change_flags +EXPORT_SYMBOL vmlinux 0xaf3a219e key_payload_reserve +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b75af test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf52da8d tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf7e76a4 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafe32419 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xaff01dff splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xb01bf266 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xb0431215 inet_accept +EXPORT_SYMBOL vmlinux 0xb09243fe elevator_init +EXPORT_SYMBOL vmlinux 0xb0a52520 read_cache_pages +EXPORT_SYMBOL vmlinux 0xb0ac85f7 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb10e55e8 tcp_child_process +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb145a629 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xb172695f elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1aac848 journal_load +EXPORT_SYMBOL vmlinux 0xb1b22911 down_write +EXPORT_SYMBOL vmlinux 0xb1bbfef7 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1dd7d01 tty_check_change +EXPORT_SYMBOL vmlinux 0xb22235d5 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb23c429c tty_set_operations +EXPORT_SYMBOL vmlinux 0xb25caa4e blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb298094b scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xb2a7c87c mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xb2acc123 vm_insert_page +EXPORT_SYMBOL vmlinux 0xb2cd5b19 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xb304ac62 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb37b1154 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xb38501cd abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xb3930d48 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xb3a1e77b cad_pid +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3b2dcd3 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc +EXPORT_SYMBOL vmlinux 0xb3d902cf task_nice +EXPORT_SYMBOL vmlinux 0xb3efc72d down +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb4363478 sg_miter_start +EXPORT_SYMBOL vmlinux 0xb45eaafe lock_fb_info +EXPORT_SYMBOL vmlinux 0xb4701368 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47a71f0 truncate_setsize +EXPORT_SYMBOL vmlinux 0xb4899552 sock_no_listen +EXPORT_SYMBOL vmlinux 0xb4e213ab xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xb4f62fee pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5145078 submit_bio +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb545fba9 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb578b5c5 mtd_do_chip_probe +EXPORT_SYMBOL vmlinux 0xb591385d qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5c4cebf skb_find_text +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d4c45a kdb_current_task +EXPORT_SYMBOL vmlinux 0xb5f0e27a skb_append +EXPORT_SYMBOL vmlinux 0xb6121c6a mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xb61f5107 skb_unlink +EXPORT_SYMBOL vmlinux 0xb624158b blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb65eb0ce proc_mkdir +EXPORT_SYMBOL vmlinux 0xb671ea44 ilookup +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67ab888 framebuffer_release +EXPORT_SYMBOL vmlinux 0xb682f794 skb_checksum +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b44ee7 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c5e600 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xb6c771ca follow_up +EXPORT_SYMBOL vmlinux 0xb6f617e8 bio_endio +EXPORT_SYMBOL vmlinux 0xb6f82893 elv_rb_add +EXPORT_SYMBOL vmlinux 0xb70aeeda iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xb71f9938 pci_clear_master +EXPORT_SYMBOL vmlinux 0xb77903a3 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xb77a5757 da903x_query_status +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb79a6162 read_dev_sector +EXPORT_SYMBOL vmlinux 0xb7a4eff0 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7c93f02 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xb7d858e6 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xb7d9d367 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xb7eff263 seq_path +EXPORT_SYMBOL vmlinux 0xb7f62ac1 scsi_add_device +EXPORT_SYMBOL vmlinux 0xb8017a1a journal_update_format +EXPORT_SYMBOL vmlinux 0xb804b221 simple_setattr +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb8554158 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb861526a cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb899292e xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89b8564 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8bd423d amba_device_register +EXPORT_SYMBOL vmlinux 0xb90c6b1b __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb9333af6 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xb957dfb9 amba_request_regions +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9db3d90 invalidate_partition +EXPORT_SYMBOL vmlinux 0xb9db803c release_firmware +EXPORT_SYMBOL vmlinux 0xb9de58d8 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xb9f5c7c0 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xba04edbc simple_dir_operations +EXPORT_SYMBOL vmlinux 0xba228ca1 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba7a7da5 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xba8172dd jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xba81b4a5 dma_find_channel +EXPORT_SYMBOL vmlinux 0xba83732c simple_getattr +EXPORT_SYMBOL vmlinux 0xba8e40a3 bio_put +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbad608b4 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xbadeca7c eth_header_parse +EXPORT_SYMBOL vmlinux 0xbadfddf2 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xbae16d93 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xbb0b5b48 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb20bc27 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xbb36f513 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xbb3b222f user_revoke +EXPORT_SYMBOL vmlinux 0xbb3e7004 kobject_set_name +EXPORT_SYMBOL vmlinux 0xbb40eeb1 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xbb45173a inode_set_bytes +EXPORT_SYMBOL vmlinux 0xbb4f6c53 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xbb579ce0 blk_rq_init +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb889dd2 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbba40745 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xbbae6980 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbd44bad sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xbbe82d5e max8925_reg_write +EXPORT_SYMBOL vmlinux 0xbbee9779 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc16efae tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xbc1b770c release_pages +EXPORT_SYMBOL vmlinux 0xbc47f487 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xbc8cb370 gen_pool_free +EXPORT_SYMBOL vmlinux 0xbc8fe200 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xbc94f46c mii_check_media +EXPORT_SYMBOL vmlinux 0xbca30a0a dev_crit +EXPORT_SYMBOL vmlinux 0xbcaa8dfd poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xbcc0bd2b scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xbd2186e4 kunmap_high +EXPORT_SYMBOL vmlinux 0xbd31da4f __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xbd98dd05 do_splice_to +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc2600d eth_header_cache +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe23b9ed radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe88e809 input_set_capability +EXPORT_SYMBOL vmlinux 0xbe9215b5 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xbe968936 bdget_disk +EXPORT_SYMBOL vmlinux 0xbead6b2c f_setown +EXPORT_SYMBOL vmlinux 0xbeb2fa27 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xbec067ed clk_get_sys +EXPORT_SYMBOL vmlinux 0xbedf1998 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbeec4f9d udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbeffeab6 check_disk_change +EXPORT_SYMBOL vmlinux 0xbf05ce71 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xbf06d22b md_unregister_thread +EXPORT_SYMBOL vmlinux 0xbf1af064 dev_addr_add +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf30f28f dquot_alloc +EXPORT_SYMBOL vmlinux 0xbf3514c8 get_fs_type +EXPORT_SYMBOL vmlinux 0xbf3c42c7 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xbf47e914 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xbf5bff55 dcb_setapp +EXPORT_SYMBOL vmlinux 0xbf606665 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbf9f5315 __lock_buffer +EXPORT_SYMBOL vmlinux 0xbfb231a3 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xbfba6966 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xbfbbfe0c journal_check_available_features +EXPORT_SYMBOL vmlinux 0xbfd3a761 locks_free_lock +EXPORT_SYMBOL vmlinux 0xbfd767ec tcf_em_register +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc0127f20 input_allocate_device +EXPORT_SYMBOL vmlinux 0xc0167a93 journal_errno +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05c5672 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc099eeb3 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc0a1d14b phy_connect +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0c62d00 genl_register_family +EXPORT_SYMBOL vmlinux 0xc0e35224 dev_close +EXPORT_SYMBOL vmlinux 0xc0effbfb kmap_high +EXPORT_SYMBOL vmlinux 0xc0f1f3e5 skb_trim +EXPORT_SYMBOL vmlinux 0xc11c159c wake_up_process +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc13b41c3 default_llseek +EXPORT_SYMBOL vmlinux 0xc14a1d9c bio_split +EXPORT_SYMBOL vmlinux 0xc1529dc3 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xc15b04d6 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xc1601a4f _change_bit_le +EXPORT_SYMBOL vmlinux 0xc16573c0 generic_read_dir +EXPORT_SYMBOL vmlinux 0xc1747117 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0xc1752483 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xc179e37c ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc1a918c1 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c974f8 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xc1ed0f5d vfs_mkdir +EXPORT_SYMBOL vmlinux 0xc1fc4511 _test_and_change_bit_le +EXPORT_SYMBOL vmlinux 0xc21c8457 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xc21d5b89 inode_init_always +EXPORT_SYMBOL vmlinux 0xc23821cc dquot_release +EXPORT_SYMBOL vmlinux 0xc24c6f8f journal_stop +EXPORT_SYMBOL vmlinux 0xc24f37fb tcf_action_exec +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25abc3f do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xc27487dd __bug +EXPORT_SYMBOL vmlinux 0xc288dbb9 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xc2bc191b unregister_cdrom +EXPORT_SYMBOL vmlinux 0xc2cba634 xfrm_input +EXPORT_SYMBOL vmlinux 0xc2ccc870 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc31474e8 fput +EXPORT_SYMBOL vmlinux 0xc31be13e mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xc32da660 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc36cdc05 find_get_page +EXPORT_SYMBOL vmlinux 0xc3a11410 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xc3a6fd3d pci_iounmap +EXPORT_SYMBOL vmlinux 0xc3b9bdab tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xc3c171e3 address_space_init_once +EXPORT_SYMBOL vmlinux 0xc3ca3a1c d_set_d_op +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d7d658 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xc3db346f mdiobus_write +EXPORT_SYMBOL vmlinux 0xc41a861a scsi_put_command +EXPORT_SYMBOL vmlinux 0xc428ea67 napi_get_frags +EXPORT_SYMBOL vmlinux 0xc429e404 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49ea208 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xc4a67fcc add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xc4ab60fe xfrm_register_km +EXPORT_SYMBOL vmlinux 0xc4aedab5 amba_driver_register +EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit +EXPORT_SYMBOL vmlinux 0xc4c5217e inode_init_owner +EXPORT_SYMBOL vmlinux 0xc4c886f6 pci_select_bars +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53d5c29 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0xc58ffd4e ps2_end_command +EXPORT_SYMBOL vmlinux 0xc5a12d00 sk_run_filter +EXPORT_SYMBOL vmlinux 0xc5d28394 xrlim_allow +EXPORT_SYMBOL vmlinux 0xc5e45bbd check_disk_size_change +EXPORT_SYMBOL vmlinux 0xc5e783cc generic_write_end +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc615b01f scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc620e7eb search_binary_handler +EXPORT_SYMBOL vmlinux 0xc62c0e90 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc6389e17 sock_register +EXPORT_SYMBOL vmlinux 0xc6418342 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xc64e8b31 set_bh_page +EXPORT_SYMBOL vmlinux 0xc65f4640 mount_bdev +EXPORT_SYMBOL vmlinux 0xc6702fd3 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xc6817317 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xc6aeb2aa abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xc6b2ed81 inet_frags_init +EXPORT_SYMBOL vmlinux 0xc6c71215 clkdev_drop +EXPORT_SYMBOL vmlinux 0xc6d533e1 down_read +EXPORT_SYMBOL vmlinux 0xc6f92492 pci_find_capability +EXPORT_SYMBOL vmlinux 0xc6fe10ff unregister_8022_client +EXPORT_SYMBOL vmlinux 0xc729464b request_key_async +EXPORT_SYMBOL vmlinux 0xc7423986 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xc74f47e1 drop_super +EXPORT_SYMBOL vmlinux 0xc75699a2 clk_disable +EXPORT_SYMBOL vmlinux 0xc760addc inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xc770042c dcache_dir_close +EXPORT_SYMBOL vmlinux 0xc77dad6a md_register_thread +EXPORT_SYMBOL vmlinux 0xc782b780 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ceec1e mmc_request_done +EXPORT_SYMBOL vmlinux 0xc7d6f877 should_remove_suid +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8003c61 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc80383c8 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xc8076d89 __sock_create +EXPORT_SYMBOL vmlinux 0xc80cb7c0 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xc81cda3b pci_get_slot +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8612158 soft_cursor +EXPORT_SYMBOL vmlinux 0xc873cc58 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xc89bc0f5 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8dae9b2 ioremap_page +EXPORT_SYMBOL vmlinux 0xc8ff17fc d_path +EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible +EXPORT_SYMBOL vmlinux 0xc974bb03 nf_afinfo +EXPORT_SYMBOL vmlinux 0xc97873a3 simple_write_end +EXPORT_SYMBOL vmlinux 0xc97f0042 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xc97f8e20 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xc9aa5ef0 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xc9d5614b set_device_ro +EXPORT_SYMBOL vmlinux 0xc9dfa4d4 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xca186bc2 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xca399c97 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca78046e set_disk_ro +EXPORT_SYMBOL vmlinux 0xca929c63 security_file_mmap +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcac929d9 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb1a7b3b pci_target_state +EXPORT_SYMBOL vmlinux 0xcb3736b1 journal_revoke +EXPORT_SYMBOL vmlinux 0xcb54ff6a kernel_connect +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb8d9fc3 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xcb9e7b37 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xcbc1c14d page_address +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbe039d9 md_integrity_register +EXPORT_SYMBOL vmlinux 0xcbf8a18a dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xcbfe452b register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xcc0e3492 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xcc156113 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4206ed dev_trans_start +EXPORT_SYMBOL vmlinux 0xcc4b89d0 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc600d33 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xcc62f104 tcf_register_action +EXPORT_SYMBOL vmlinux 0xcc6f57ec alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xcc771266 register_quota_format +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccae909f consume_skb +EXPORT_SYMBOL vmlinux 0xcccca482 _test_and_clear_bit_le +EXPORT_SYMBOL vmlinux 0xcce55d6d ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xcceba30e writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xccf31083 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd4d9f36 __lock_page +EXPORT_SYMBOL vmlinux 0xcd607904 dump_seek +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcdccb73a cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xcdeb905c vfs_statfs +EXPORT_SYMBOL vmlinux 0xcdfac890 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xce182269 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce232ed2 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xce51c906 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce9c5a61 put_io_context +EXPORT_SYMBOL vmlinux 0xcead0920 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xcec9ff42 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xcecef285 flex_array_free +EXPORT_SYMBOL vmlinux 0xced47e2a netlink_ack +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcf2196d0 pci_save_state +EXPORT_SYMBOL vmlinux 0xcf3081a6 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xcf334f97 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xcf3c7109 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xcf83672f __seq_open_private +EXPORT_SYMBOL vmlinux 0xcfaeda3d cdev_add +EXPORT_SYMBOL vmlinux 0xcfb6ab09 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xcfb79499 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd62122 put_disk +EXPORT_SYMBOL vmlinux 0xcfdfd119 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xcfe81ab4 simple_link +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcfee5ad0 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd034b5ff ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xd03fddc2 bdi_register +EXPORT_SYMBOL vmlinux 0xd0404125 udp_disconnect +EXPORT_SYMBOL vmlinux 0xd052d59c dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xd0627cd8 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xd06ed8e8 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xd0a1c535 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xd0a45e6a skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0c06510 netdev_features_change +EXPORT_SYMBOL vmlinux 0xd0c20289 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0ee861f xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd10600e7 start_tty +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd1394426 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xd13c355f bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xd1412a6c mntput +EXPORT_SYMBOL vmlinux 0xd1671060 del_timer +EXPORT_SYMBOL vmlinux 0xd170cf00 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xd1722660 unregister_console +EXPORT_SYMBOL vmlinux 0xd17350ac blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xd17f6c59 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xd18fbacf security_file_permission +EXPORT_SYMBOL vmlinux 0xd1c10236 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xd1dcdf21 simple_set_mnt +EXPORT_SYMBOL vmlinux 0xd20bc8a7 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xd211187d __dquot_free_space +EXPORT_SYMBOL vmlinux 0xd216c489 add_disk +EXPORT_SYMBOL vmlinux 0xd21cf422 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xd22e04a3 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2546057 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd26c7448 d_delete +EXPORT_SYMBOL vmlinux 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2c433be vfs_unlink +EXPORT_SYMBOL vmlinux 0xd2cf9eab inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xd2f61226 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xd3017d68 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xd33e16d4 vfs_readdir +EXPORT_SYMBOL vmlinux 0xd33fee89 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd356bf2a spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0xd3760051 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xd37c8d4a fb_find_mode +EXPORT_SYMBOL vmlinux 0xd3816669 vfs_symlink +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3a1d479 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3bb4b3c fb_set_var +EXPORT_SYMBOL vmlinux 0xd3c74e3c pci_set_master +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3dcbaff blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd41f4507 dm_snap_cow +EXPORT_SYMBOL vmlinux 0xd45583ef scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xd45b645d tty_port_put +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd496c2b0 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xd49e02c8 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xd4a8529b phy_find_first +EXPORT_SYMBOL vmlinux 0xd4aec722 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xd4e6a7b1 input_register_handle +EXPORT_SYMBOL vmlinux 0xd4eaadd6 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xd5152710 sg_next +EXPORT_SYMBOL vmlinux 0xd5260ead __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xd52f74e6 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xd5793cf8 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xd57fecb6 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xd5813021 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xd585b884 sock_no_poll +EXPORT_SYMBOL vmlinux 0xd5972927 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xd5ad23a8 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5ddd9b3 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xd5f4e5ae input_close_device +EXPORT_SYMBOL vmlinux 0xd6091b1d ___dma_page_cpu_to_dev +EXPORT_SYMBOL vmlinux 0xd6175591 __serio_register_port +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd62f172e dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xd642a1fe journal_check_used_features +EXPORT_SYMBOL vmlinux 0xd647d4e9 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xd669fc72 mount_pseudo +EXPORT_SYMBOL vmlinux 0xd676b85b mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xd69f62c9 pci_restore_state +EXPORT_SYMBOL vmlinux 0xd6a167ce mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xd6d12d3a skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xd6d604ff dev_addr_flush +EXPORT_SYMBOL vmlinux 0xd6db3d84 input_free_device +EXPORT_SYMBOL vmlinux 0xd6ec9ad6 tty_name +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f451bf kobject_put +EXPORT_SYMBOL vmlinux 0xd6fecb5e mount_ns +EXPORT_SYMBOL vmlinux 0xd70523cb cont_write_begin +EXPORT_SYMBOL vmlinux 0xd70f6420 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xd7223cc7 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xd773b9d7 journal_init_inode +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7cd0875 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xd7d1d0a6 clk_put +EXPORT_SYMBOL vmlinux 0xd7db6a4a uart_register_driver +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd80328bb __kmalloc_track_caller +EXPORT_SYMBOL vmlinux 0xd8314a18 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xd85cf3cd mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xd8635a98 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xd86647f9 kobject_get +EXPORT_SYMBOL vmlinux 0xd8699152 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xd875e13d register_netdevice +EXPORT_SYMBOL vmlinux 0xd87be629 module_refcount +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b17367 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xd8c67df3 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xd8cbbdb9 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ee15d7 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xd8fc742f set_security_override +EXPORT_SYMBOL vmlinux 0xd914d9a5 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd948302d tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xd97d6e30 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd985f19a phy_print_status +EXPORT_SYMBOL vmlinux 0xd99c7f7d generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9bbaa6b __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9de32cc sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xd9ec7a10 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xd9f8eb2e kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xd9fa83ef ip_route_output_key +EXPORT_SYMBOL vmlinux 0xda0f862f pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xda103e84 module_put +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda23ce60 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xda268655 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xda5ad5a3 deny_write_access +EXPORT_SYMBOL vmlinux 0xda5ea696 _test_and_set_bit_le +EXPORT_SYMBOL vmlinux 0xda6e211a netlink_dump_start +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 0xdaae36a0 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xdab45c00 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xdab912df inode_change_ok +EXPORT_SYMBOL vmlinux 0xdad5fbbb scm_detach_fds +EXPORT_SYMBOL vmlinux 0xdafcce03 filp_open +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb193a2d scsi_register_interface +EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table +EXPORT_SYMBOL vmlinux 0xdb372bcf dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xdb4bec6b generic_block_bmap +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb737053 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xdb7423a5 d_alloc_root +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb7b50d2 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9e2c25 fb_class +EXPORT_SYMBOL vmlinux 0xdbaba64c mmc_detect_change +EXPORT_SYMBOL vmlinux 0xdbac9c08 dma_alloc_writecombine +EXPORT_SYMBOL vmlinux 0xdbb93699 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbf53a28 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc140815 dm_table_put +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1e1cfb __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xdc2a9f97 get_io_context +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4af71f tcp_check_req +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdca25dff add_mtd_partitions +EXPORT_SYMBOL vmlinux 0xdcb028c5 vfs_rename +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcf63e8f ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd4581cd read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xdd4839e8 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xdd594c2c ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd76cba3 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xdd81ecc3 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xddae5ff3 uart_match_port +EXPORT_SYMBOL vmlinux 0xddfd18d4 vfs_write +EXPORT_SYMBOL vmlinux 0xde242bf3 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde5f475b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xde65c489 dquot_transfer +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde83d526 ip6_route_output +EXPORT_SYMBOL vmlinux 0xde8c7b87 dev_alert +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdeb3fe10 nf_reinject +EXPORT_SYMBOL vmlinux 0xdeb783d1 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xdec4d7ab security_path_chmod +EXPORT_SYMBOL vmlinux 0xded9225d dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xdeed579f alloc_fddidev +EXPORT_SYMBOL vmlinux 0xdf0b7ad4 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xdf155ba4 alloc_disk +EXPORT_SYMBOL vmlinux 0xdf1ef69f wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xdf301913 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf53a7c3 dst_alloc +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf859f57 ip_options_compile +EXPORT_SYMBOL vmlinux 0xdf8b786a sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa974a7 mii_link_ok +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfc69b6b __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xdfd31df6 kthread_bind +EXPORT_SYMBOL vmlinux 0xdfe64518 eth_type_trans +EXPORT_SYMBOL vmlinux 0xe00712a6 get_user_pages +EXPORT_SYMBOL vmlinux 0xe01afc85 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xe02720d2 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xe02a6c3c bio_phys_segments +EXPORT_SYMBOL vmlinux 0xe03ea7d8 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xe04d99aa mmc_erase +EXPORT_SYMBOL vmlinux 0xe05eb630 spi_attach_transport +EXPORT_SYMBOL vmlinux 0xe06792f4 neigh_lookup +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe07ac850 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xe08ec299 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xe0a318ab elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0xe0e1aa0d lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0xe1104ece scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11a9f46 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xe1281ea2 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xe12e20a2 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe140f264 dev_open +EXPORT_SYMBOL vmlinux 0xe15a06d4 ip_defrag +EXPORT_SYMBOL vmlinux 0xe1663f96 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe174e828 input_register_device +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17cff0f pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xe17e2ad7 netlink_set_err +EXPORT_SYMBOL vmlinux 0xe18d5508 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xe1a7f0b5 bio_map_user +EXPORT_SYMBOL vmlinux 0xe1d7c513 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xe1e74b69 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0xe1f8d3df scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xe235e4a5 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xe2382d1d scsi_print_sense +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe240abd9 mb_cache_create +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe257999d llc_sap_close +EXPORT_SYMBOL vmlinux 0xe2655be3 rt6_lookup +EXPORT_SYMBOL vmlinux 0xe2763667 vfs_mknod +EXPORT_SYMBOL vmlinux 0xe2a1693c init_net +EXPORT_SYMBOL vmlinux 0xe2c15b73 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xe2ca28a8 sock_no_getname +EXPORT_SYMBOL vmlinux 0xe2d517ea skb_gso_segment +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d5a795 get_phy_id +EXPORT_SYMBOL vmlinux 0xe2d69759 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xe2e65232 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe3088076 setattr_copy +EXPORT_SYMBOL vmlinux 0xe31c518c filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xe38f9ec8 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xe3962393 page_put_link +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe39b8c0c max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xe3a6b328 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xe3aba8c0 generic_getxattr +EXPORT_SYMBOL vmlinux 0xe3de5de3 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xe400061d kthread_create +EXPORT_SYMBOL vmlinux 0xe4388f9b pagecache_write_end +EXPORT_SYMBOL vmlinux 0xe445cf1a kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xe4462d8c tcp_disconnect +EXPORT_SYMBOL vmlinux 0xe456af16 skb_split +EXPORT_SYMBOL vmlinux 0xe470c151 spi_release_transport +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe4a72f1b skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xe4b42609 seq_lseek +EXPORT_SYMBOL vmlinux 0xe4bb1687 send_sig +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4df7a63 sock_map_fd +EXPORT_SYMBOL vmlinux 0xe4e05a5e napi_gro_receive +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe518c089 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe536aae5 devm_iounmap +EXPORT_SYMBOL vmlinux 0xe556c1ba phy_device_register +EXPORT_SYMBOL vmlinux 0xe55c53d1 skb_insert +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe5639940 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58a31b6 km_new_mapping +EXPORT_SYMBOL vmlinux 0xe5a023eb cfi_fixup +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5cc32b5 journal_start_commit +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe60111a5 vga_client_register +EXPORT_SYMBOL vmlinux 0xe60d7420 no_llseek +EXPORT_SYMBOL vmlinux 0xe63b7599 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6983e65 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xe6a35e1a dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6d9cd2a blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f5d8ab netpoll_poll +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe720e1cc dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xe729bcbc netif_device_detach +EXPORT_SYMBOL vmlinux 0xe72c065e audit_log_format +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe75926a2 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xe75e2474 __scm_send +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe784bc56 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xe7903056 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xe7a22603 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d88d0d udp_sendmsg +EXPORT_SYMBOL vmlinux 0xe7e5e8db scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xe7f715df netif_carrier_on +EXPORT_SYMBOL vmlinux 0xe7f9c563 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe80fb800 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xe82a4222 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xe83e41c7 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe84e43cf ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe8840a83 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xe8a029d1 ps2_init +EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape +EXPORT_SYMBOL vmlinux 0xe8d1531b mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xe8d58d63 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xe8e165ea netpoll_setup +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe917cd57 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xe933c489 single_release +EXPORT_SYMBOL vmlinux 0xe945b27a inet_frag_kill +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9570647 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xe98949b1 neigh_create +EXPORT_SYMBOL vmlinux 0xe99144c0 dquot_enable +EXPORT_SYMBOL vmlinux 0xe9c5067f pci_read_vpd +EXPORT_SYMBOL vmlinux 0xe9d97f3c tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xe9f9c892 dev_load +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea3e24aa pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xea469d35 inet_release +EXPORT_SYMBOL vmlinux 0xea490bd6 kill_litter_super +EXPORT_SYMBOL vmlinux 0xea6cbbde filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea91b1fa generic_setlease +EXPORT_SYMBOL vmlinux 0xea9344cc dquot_operations +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xea9f7d17 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xea9fb9df rename_lock +EXPORT_SYMBOL vmlinux 0xea9fdd49 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xeab3e188 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xead6c252 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeae4297c blk_get_request +EXPORT_SYMBOL vmlinux 0xeaf02e56 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0xeb3cab6c hex2bin +EXPORT_SYMBOL vmlinux 0xeb671318 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xeb8add11 amba_find_device +EXPORT_SYMBOL vmlinux 0xeb91e760 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xeba00c92 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xebad4c5c log_start_commit +EXPORT_SYMBOL vmlinux 0xebb4ca8e bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xebcc4ceb slab_buffer_size +EXPORT_SYMBOL vmlinux 0xebcc5d96 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2ae8c2 simple_release_fs +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec2fbaf3 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xec4aeee1 blk_plug_device +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xec6e4862 make_bad_inode +EXPORT_SYMBOL vmlinux 0xec9315e7 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xecaab265 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xecd3caf1 dma_pool_free +EXPORT_SYMBOL vmlinux 0xed1118fb __kfree_skb +EXPORT_SYMBOL vmlinux 0xed147012 blkdev_get +EXPORT_SYMBOL vmlinux 0xed17bd52 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xed24d94b netlink_unicast +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed6bfacd unregister_qdisc +EXPORT_SYMBOL vmlinux 0xed785bce fb_show_logo +EXPORT_SYMBOL vmlinux 0xed8b0663 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xed8d5589 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedaaa772 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xedb4a9e6 netif_device_attach +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xedeed4de pci_set_mwi +EXPORT_SYMBOL vmlinux 0xee108f30 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3d0522 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xee9228a4 sk_alloc +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeebe21cf i2c_del_driver +EXPORT_SYMBOL vmlinux 0xeed79644 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0xeee270ee proc_symlink +EXPORT_SYMBOL vmlinux 0xef0e8b48 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xef2ed89b dm_table_get_size +EXPORT_SYMBOL vmlinux 0xef69197e __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef99615b backlight_force_update +EXPORT_SYMBOL vmlinux 0xefb83988 inet_frags_fini +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 0xefed49bc lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xeffcc466 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xefff59eb backlight_device_register +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0092b2c qdisc_reset +EXPORT_SYMBOL vmlinux 0xf00af19b icst_clk_set +EXPORT_SYMBOL vmlinux 0xf0261fe3 tty_port_init +EXPORT_SYMBOL vmlinux 0xf0600a60 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xf060ac86 mpage_writepages +EXPORT_SYMBOL vmlinux 0xf0857792 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xf0878399 update_region +EXPORT_SYMBOL vmlinux 0xf0a08bc4 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xf0a10416 input_reset_device +EXPORT_SYMBOL vmlinux 0xf0a19687 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xf0aa3e52 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xf0b7ebfa __ps2_command +EXPORT_SYMBOL vmlinux 0xf0e00b51 inet_select_addr +EXPORT_SYMBOL vmlinux 0xf0eb9ac8 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xf0ee7ecc sock_rfree +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f304a7 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf136f08e pci_bus_type +EXPORT_SYMBOL vmlinux 0xf14b613c mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1ae8b82 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xf1bab3a8 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e24150 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2164d75 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xf22df418 input_open_device +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf25f5304 elv_rb_del +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29b7466 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xf2c57f43 bioset_free +EXPORT_SYMBOL vmlinux 0xf2ca3169 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xf2d39f74 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xf2e265df mmc_suspend_host +EXPORT_SYMBOL vmlinux 0xf2e5a880 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xf3091c01 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xf310c4f7 set_blocksize +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf341fb9c blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf397077a unregister_netdev +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e8b873 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf407382d vga_get +EXPORT_SYMBOL vmlinux 0xf40c1b26 netdev_notice +EXPORT_SYMBOL vmlinux 0xf457f218 udp_poll +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4ae6b3c tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf5237220 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf56f855f create_proc_entry +EXPORT_SYMBOL vmlinux 0xf573159d iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xf59a59f3 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xf5a3c864 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cc7ddf sock_update_classid +EXPORT_SYMBOL vmlinux 0xf5e2e8d7 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xf5e48efe scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf612f764 arp_tbl +EXPORT_SYMBOL vmlinux 0xf614e7c1 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf6437ec7 send_sig_info +EXPORT_SYMBOL vmlinux 0xf683bc85 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xf6914bdb jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xf6b8b5c2 kill_pid +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6cb09de md_error +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70bdfb0 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xf71b6d24 netdev_alert +EXPORT_SYMBOL vmlinux 0xf72d6f2b generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf735a2f7 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78d1e0c pcim_iomap +EXPORT_SYMBOL vmlinux 0xf795ddc1 clk_get_rate +EXPORT_SYMBOL vmlinux 0xf7b90bb7 sock_release +EXPORT_SYMBOL vmlinux 0xf7f0cb6f d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xf7f4316d pci_get_subsys +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 0xf8568a7c mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf89ce595 keyring_clear +EXPORT_SYMBOL vmlinux 0xf8bd665f lookup_hash +EXPORT_SYMBOL vmlinux 0xf8f3ad6d dqget +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf97d5170 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xf9940c28 ppp_input +EXPORT_SYMBOL vmlinux 0xf9976071 eth_header +EXPORT_SYMBOL vmlinux 0xf99e8069 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9f60e90 genphy_update_link +EXPORT_SYMBOL vmlinux 0xf9f97840 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xf9ff43e0 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xfa042ff2 __d_drop +EXPORT_SYMBOL vmlinux 0xfa277316 block_read_full_page +EXPORT_SYMBOL vmlinux 0xfa43e263 input_event +EXPORT_SYMBOL vmlinux 0xfa6d7533 set_irq_chip +EXPORT_SYMBOL vmlinux 0xfa79c467 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xfaa596fe sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xfab96b2d thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb38ff25 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xfb3e7daf phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xfb49171d dev_uc_del +EXPORT_SYMBOL vmlinux 0xfb60ccaf __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xfb641ba0 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xfb673160 mount_nodev +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb85d7a9 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbad32b0 set_anon_super +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbebf5e4 dev_printk +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc12de42 mii_check_link +EXPORT_SYMBOL vmlinux 0xfc2740f0 set_create_files_as +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc50827b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xfc5e5780 pci_map_rom +EXPORT_SYMBOL vmlinux 0xfc95089f simple_readpage +EXPORT_SYMBOL vmlinux 0xfc9928ab misc_register +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb3e4b9 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcdc6a5e fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcef66b0 pci_disable_device +EXPORT_SYMBOL vmlinux 0xfcf28cf1 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd295139 vmtruncate +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd3861fb jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xfd475e39 udp_ioctl +EXPORT_SYMBOL vmlinux 0xfd4b9c16 icst_clk_round +EXPORT_SYMBOL vmlinux 0xfd520f96 d_add_ci +EXPORT_SYMBOL vmlinux 0xfd58ceb6 security_path_truncate +EXPORT_SYMBOL vmlinux 0xfd7cca45 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdd6a35c udplite_prot +EXPORT_SYMBOL vmlinux 0xfde5a5ca journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xfdecaff2 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe10e043 vfs_create +EXPORT_SYMBOL vmlinux 0xfe3dbf5a register_netdev +EXPORT_SYMBOL vmlinux 0xfe43c308 page_readlink +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe8f1053 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed9b511 fb_get_mode +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefcf8ef md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xff00f891 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff37dca2 tty_port_close_end +EXPORT_SYMBOL vmlinux 0xff46933c neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xff48c21f ppp_dev_name +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7661bc simple_fill_super +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb86257 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xffc9836e journal_get_write_access +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdbe326 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xffe190e8 thaw_process +EXPORT_SYMBOL vmlinux 0xffeee58d __blk_end_request_all +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 0x74a4869b crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/af_alg 0x132bff20 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x613eb53f af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x676ce950 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x80477172 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xb9bc02ef af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xcb9a77f7 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xdcbc1031 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xdf623e43 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xda36eda6 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x2b61c26e async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xda4fa419 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x8407ebe8 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc9d4c208 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2ddd66dc __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6d3cdcf9 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7586cb88 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8a20655e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x1ae41f9b async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x657a05fa async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x1561085d cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x157b6250 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x3acec9b7 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x59b16b04 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x70571f5c cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x735b6046 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x80ee8f0a cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x8deb1afe cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb83a1d7e cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xe9eb93f3 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x92e519ca twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x06d803bd ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0948c725 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x09a15cd1 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2017c6c6 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2c4caa0d ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4763e6cd ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5082a898 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x592d4cfc ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x84929359 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9813e551 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa0073217 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb92c37a3 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb9d67e1e ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc1ab4886 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc459b7a0 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf553b4f8 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x2c12eb82 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x7f7760b6 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1ca465b5 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2727df92 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3949453f btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x47be0fdc btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x60d3bd58 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x85caddc9 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xada282d3 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe4965fde btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x89f4be3d __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xb99bccb4 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x71c927f6 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc5195437 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x184848ec hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x18a6bd77 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1bed88d1 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x21147958 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bdc0db hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x278160ef hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x29dbd2d6 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2faf7bd9 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x38caf9e4 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x486093c0 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5a1d0e2c hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x62983ae8 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6e768395 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6e8f27e1 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x711ef2c4 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x71b555c0 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8787ed9f hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa277006c hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaf740d4c hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc19cd02b hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc8a8d436 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdb50435c __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe7555dfa hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf52ff917 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf76ca419 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfd50aa53 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x36127614 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x1dbc7b54 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2a845770 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x60884dc5 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb49ea3a5 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xa26b9878 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xad479dc3 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xec31e355 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf5c6b5e7 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x3e70f3fd input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xaf0d1cf0 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xd6113340 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xd7017285 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe5c2eb3e adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/md/raid456 0x195576f2 md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/md/raid456 0x7f480583 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x225fc4d6 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x300ae9d0 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x31d617a6 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4d0d995e saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x50ced651 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6773050a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x798a7196 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9107bf24 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9ea920a4 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa6bb86ce saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb17e3622 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xf7256156 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x85924392 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xcac93f7a tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x445a9918 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x83c3f5f6 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xd58cd3d7 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x2498e3a4 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x37a9a5e7 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x6b953244 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x4fdd9012 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x83380de2 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x9becf2db simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x05f0f672 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x076366e2 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0b8d251c smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0ed56584 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1866cdf9 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2781a417 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x35a80fd7 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 0x3972f764 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5ecc1037 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6cba0a07 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6e6f7d9a smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x71f413d6 smscore_get_device_mode +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 0xaa1edc89 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xab8daf7b sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc3d879bf smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc578c75e smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xde749599 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdf2cf91e smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf731b47a smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4771da65 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4fd9e5b2 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x905138d3 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xab6fe9a6 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc8a05920 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd3419f2e ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xdd308241 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05fb336e rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x089cedf0 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1a06fd54 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x284c2999 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x395a75be ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3abbefbb rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3ac96746 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x75d34de8 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x84fc67ee rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8bef983f ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbc275466 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbde71a95 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc01b0e12 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd666ef6f rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd94aa1b8 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe59cf821 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xeb7d8b1b rc_map_get +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x049a8d04 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1f3113e0 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x21a25f49 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x68ec02ee i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8a2832d9 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8d165541 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xdf649e64 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf0c8c04b i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0c43845a pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1a137bad pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1b134cc6 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2900266b pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2f98d5a3 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb20f04c7 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdd0e3777 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe0533775 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe3e8eac9 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xee90ae17 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf1e5a71c pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x6968101c pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xd7807dbb pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x37f5b1c0 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7729bc79 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8fbeefd5 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9f6b90c8 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb0c7373c pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5cf858a9 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5dd804b9 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x752b36bb sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xabf49045 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf7499651 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x003de960 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x1cae4117 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x20ac4e2a wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9ba8946c wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xc14bbacb wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x16fc9b36 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x8c6c705c cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb08a879d cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe95f5587 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x194672e3 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2519d3dd enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x35bd56d2 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x576da3a1 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x83729e94 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x89852ae2 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb982c4d4 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7208b84e st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3ab2566e sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x46a5022b sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x77222631 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb421bc7d sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcd64d519 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdc8e1d1f sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xde164c2d sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x08d69b8b ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x10985148 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x24e6e531 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2e1dc5c2 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3aa4a27d ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x62990643 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x808e33f2 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa0b3c644 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb5b12e1d ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc1b60af8 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcb4e5fc5 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd462ddc4 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd47f91ee ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x41e3b9a6 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4603c186 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6dcf616a open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7ad8413f alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9ea11488 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa3dee07f register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa71f1004 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbfc8180a can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdb6f33ea unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe3991707 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xed5ff5b0 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfd8f7a22 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x20f28de3 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7d8fc5fb alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa6e351b1 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xb439cb17 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x043ec5d2 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4b00dccf macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xddd6b7a9 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe63b4ed1 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe9844e35 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x09084c0f mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b76f13d mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0c09541f mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0d6f35c2 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2878c483 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2a1be4d7 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2bb6ef36 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x30e2d1db mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x35ea8ec8 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x389001e0 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x42e2a384 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x48bd1b8f mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x48ce2154 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4b5c43c1 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4f912003 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x500d564b mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x50955b03 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5c540655 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5cc054e3 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6959d3aa mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x73f89bb8 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x77bb8a83 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7c772b3b mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f4c0d00 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x84c12bdd mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x86c24c04 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8f1a46b3 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x965931a1 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9ba39514 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa718dac7 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaaf869df mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb128f45d mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb27d916f mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb76cd848 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbdd476c5 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbfcd2549 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc46f8d00 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4e13516 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6f947af mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc8953238 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xced96145 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd05b3fb4 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd08ebdd4 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd719be53 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe0bcb6c3 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe60e680a mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeb79f094 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xed437526 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeec9dd8a mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xef2a6a0f mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf055977d mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf0e7ae68 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf1bb55b2 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf3ed085d mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfded116b mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5c0bc24c usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xc81973c7 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x36f16a44 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x38e03153 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x66dcc8a9 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xde0f3f14 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf7695913 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfd795ec1 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x080dd30c usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2dade9d2 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3b42f802 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x40164ce7 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x49252e91 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x53745f54 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5c188621 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6087dabf usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x66be54ef usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x76c1496c usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7893ef17 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8275599d usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x830b94ed usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8a45d144 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8fe49db5 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9535f18f usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb6dd29b4 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbc278afe usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbde2497c usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcf7a2466 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd855943f usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd989db71 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdb573535 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xffed54d9 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0b1dc818 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x13ea944a i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x19216791 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x19cc35b6 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3e193a88 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x63b2e8aa i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x75b6a2f0 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x77e0449c i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x962f195f i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x981292e3 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9ab1b5e0 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xafe6bd96 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd62736e4 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd7ee88db i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdcfa7742 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe10f4313 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x26ba5e1a libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x10e27504 iwl_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5d069d9c iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5e007635 bt_coex_active +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x73e52f7e iwl_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x860cf1c0 iwl_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x349e7967 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x34ecaf92 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4a3f54cb lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5971599d __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6ee41a1d lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x73ae3cef lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x748b1cbe lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7c00caa3 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb5650c02 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbe198d6f lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc83151b9 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xde2b3b30 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe0004063 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf45cb1d5 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xff6bc630 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x07a9cc44 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4cc4238e lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8a1ec251 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x93bdc378 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb1205bab lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbeec394e lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc5fa6f62 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd305be3f lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xabb5f518 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xd6cd2303 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1a726895 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x777c5fae p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8f831e73 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xaa07c8f0 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xad96ff18 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc22daf97 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc3174aeb p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe0fa7db9 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xefd18420 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x00635f42 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2284b6f5 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x26142d46 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x29d13032 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x360a10e5 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3642bb2d rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x374ec8fd rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x37b68f05 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4686d2e5 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48a3498e rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48cea873 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4936fd27 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4f2eef17 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50302f61 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6a5c109e rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6e32c9d2 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7148afb3 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7c965061 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x88b6587c rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x891ef712 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x89736c81 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8aa5359a rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8dfa7092 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8f4a435b rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x996460e8 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x99d43305 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9edaaa4b rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa3093831 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa92c1204 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaeabc9c9 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb325ea22 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbfb6aa78 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xce48cfa5 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf6cb6798 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x01267a5b rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x022af31d rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05d24d76 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08b65375 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x139a9b1d rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1d1584b0 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ef8609b rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3536ebaa rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3a4228f7 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3bf9eeac rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d4b433c rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3e92419d rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x41bf1eb4 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x67adf31f rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x73226689 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7338ec5e rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x75dbc38c rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b927312 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7ba86118 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7e9f6589 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x80404d26 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x827dde43 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x943455f2 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98081117 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9ee590a0 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9fcff42f rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa4f454fa rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa6303d10 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa6659ea9 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb0e7a4f7 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc809663a rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcb0210af rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd0e6017 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd4acba5 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xce1519a5 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd45d599d rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdc1574c1 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe5af91e9 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe5dfcd06 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf77f1606 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x15f2a142 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1c4a0979 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x54e0457f rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x63f5d9e0 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x76ec4075 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8c48bf75 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa1885851 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb9db2c19 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x03c83bba rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0cb9c0c6 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0fab9e51 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1c34db3b rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x30164fff rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3ccf03d2 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x40203d88 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4abcfc52 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x65f86c65 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6a0e201b rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9c9d8054 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa57ecb95 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb24bef16 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd3b7942f rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeb1759b1 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x2131d63c wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x24e28e2f wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x62f914d2 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x15f40f33 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x3a7155ea wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x86ccd42a wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x8c62d87d wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x99f32ac7 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc0268f52 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc844c4ec wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x3b0d26c2 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x59a5f6e1 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x9fb544e4 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2ba68730 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x76bc4acb wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb191b4b3 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xbf916029 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xde303710 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe4a82ded wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x71c3595c wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x06997c5b cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x098693ac cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0c956371 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x10c0a968 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x10ec2670 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1a398f3e cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b300904 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1c33acfa cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1ec0cc25 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2315b38b cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x262bd6bd cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x33b01ce5 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4f16e0b4 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x515c1cc0 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6736bff4 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x699f7ed8 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x726495c0 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x73c26b7b cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x78225a17 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9a5bb807 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9bf94aa5 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9db4bd55 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb4dc791a cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb8e892eb cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbc980949 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc408392b cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9924f88 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9dfcabb cxgbi_get_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcd262540 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd1a9c558 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd2ee616d cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd4be498b cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd8d9b34b cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe2bd398a cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe542ee35 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe937d23c cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeab83838 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeb432166 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xec447905 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf2210339 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf3ff15f6 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf4f5cc05 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf4fe0c59 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfcb76b70 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4efa439b fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x77a66958 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x81088d26 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa6237e33 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xcdca301c iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xce1da87e iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe205f2cc iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00e2a08e iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09d951f4 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0d746d30 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f1aef0e iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0fd9b4ac iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e519d8e iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23a87f10 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x25080488 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x31861de8 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a31d350 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3dd0adb1 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45bbc0be iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d76470d iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4eb87ce9 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x513f8842 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59d1d915 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c1324f7 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5fe7709e iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6609fd1d iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x68e90537 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c992d43 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x74d602fe iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x78c8ea48 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7afd54ec iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7c387a7c iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d7d17e3 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8420a169 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84dac84d __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d76f04d iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9caff90d iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa163ab29 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5074b32 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb5914b92 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc0825b7f iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc5bab62e iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc5d0bf05 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd172b616 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd547a262 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe27ee55e iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3b68ab0 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6d5ff99 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb382081 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfff345bd iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00e4785e iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x11b4a2bb iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x156b8fab iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2ea25450 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x39f331d6 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4d697533 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4fd06929 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6d3df772 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7727115e iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7cbe1588 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8f289717 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9e72d6a6 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa8e3ceae iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xba3b6837 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf5ec4354 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfabed5ed iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00e69374 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x028f4dd4 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2438545d sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x25648695 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x42aae183 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x42adbff0 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x545d3141 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x604e8d2c sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x63fa6eb8 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x89b1805f sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x93838d8c sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa28ea332 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa58fbffc sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xafbbe573 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb60ee8b1 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb921d5e8 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbd837bec sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbf150303 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd9b0e693 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf26c35b2 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf9d448c9 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfa560ca9 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfdcd049a sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2daf83b0 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x429097ea srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6fdb51e6 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8bbedddf srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x92695be9 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xaffcd55a srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x015b616a scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0332c161 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x11824910 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2c432664 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x72a3f287 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa6686482 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc042b836 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd572ac55 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfdbcc52a scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x02845758 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x09fb9b33 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17c69c5a iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x21ee3ddb iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2ec2a498 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x427fae21 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x505cc4f1 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5aa155e7 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x610452d9 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x67d4bfc0 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x859e61d8 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8647347b iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9492010a iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaaa54134 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb59feba9 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb740eb38 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbe0d4157 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc4378507 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc8fd74da iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd3875c7d iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdab9a4a9 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf5c70f81 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf7e0609a iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x01458f0f sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x45fa90b7 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x60b1cefe sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf868c4af sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x01c0d5fe srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0e1c4c77 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6d596d51 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x925c3dd2 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xca5568f3 srp_remove_host +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/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1fbed387 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x27d9a687 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x3fc3f9ed spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x587a8fee serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x62f7cea3 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x85602cd7 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x87146ad2 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8905e8b3 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8fc32714 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd68b6bf6 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe4d63b24 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf6ff73a9 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x074ca9f6 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0b1d4007 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0cb0d5f8 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x1818c8e8 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x451275dd usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x636f0aa9 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6a08d326 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6a6d7ba8 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 0x80da43ac usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x894fcd2d usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xaaf6b618 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb21f4ddd usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02a09cf usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd4270ec5 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe761fac5 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe8071699 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x080c8267 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x2065fcbc pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x853897e3 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x9825c4ed pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/uio/uio 0x5be7266c __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7cc89ad9 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xf12fef22 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0dd98fbb usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2b09261c usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x376d0c27 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4d3b1d46 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x61885ff7 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x74267438 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb4dc22b7 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf267ef2e usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf34bf152 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x11fee1bc usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x13e3dde1 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x202c0429 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2c4ff9f3 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2e4c15dd usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x34da252f usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x35742a6f usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x42d002da usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x57550a28 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x57aa5b08 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9792efd6 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9c29aa53 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa2ee0054 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xad8a93eb usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb30f96c4 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb41f0259 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd73ae58 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xca03a943 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd0d5c780 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf6b47c52 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf9887df9 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x01b1f524 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0305f425 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x091822e0 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0a85891c usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0fcc02ad usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1f0001eb usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2cf75d7d usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x497ffdc6 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4b7fb8e7 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5ef2ccc4 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5fa08a57 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x691ae12f usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8a49acdb fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9b50dad8 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9dd66660 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9e32756d usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa181a5f6 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa219dc5f usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb5c0b110 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd1409d8e usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe41d90e4 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe970908f usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf51ccc88 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x3d5fd2ec wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x48a53d66 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xda9b19ba wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xeaa6ea9d __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xff7c74c7 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1de7c295 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x278119aa wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x58259e54 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5baf3856 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6103c1d4 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x71a12141 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7635c4ab wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7798d73c wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7e2cf736 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x89d9dca5 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8be27c57 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x90a6a985 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa6ea5fc8 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xab8739a8 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xbe497c9e wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xdb515e96 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 0x40040640 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x4826cdec i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xc15a905f i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5d48a6ca __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x81fc0891 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x87ef3324 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb2195d7e umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbe027541 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc15e42d6 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xca32045f umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe1a24128 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0a1b8c90 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d04fe4c uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x101b0c32 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x18e6fe5e uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1b149797 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1fa83809 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x251f85f8 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x28e676f4 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2b7f4a0c uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2c627f9b uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x362be9be uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4985b553 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4e5e76fc uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5ae6da43 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x61b88596 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x61dadb77 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x684ea2cd uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6cdf3955 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f084a5d uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x75675c1b uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x851af3a3 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8b701a10 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c9cf535 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9012ebed uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9337a83e uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f061833 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb096cf5a uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb27c62fd uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb48d52db uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb4f8e72f uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb9a60889 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc3ef9830 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc73d1a53 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc7505290 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdd36d16a uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xec022f90 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf3a3584a uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x0c503778 whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x586b0c55 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xa8869e67 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xfe29910d fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xdd0129d2 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xf6864cf0 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x986417d0 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc2dec94d w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xccadc71c w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd837f5ea w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd8d6a196 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xeb7634ad w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf79e8da2 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf91207d9 w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x3e2eb040 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x78eef122 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x8e41713d dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x2cb41bf8 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x8ef9c905 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x064a3137 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x0da21a20 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x14cb58ba fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x1791772b fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x1e2f32af fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x38f90c90 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x4836c2ee fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x4b9e53f3 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x569de048 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x67aa0cab fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x680fbcd7 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x6f567a52 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x8a6b9de5 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xb65deeaf fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xbf984fe7 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xc563a442 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xf48a8a62 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xf5215a0d fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +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 0x345bbcaf nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4678e889 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x51f0ed51 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 0xbbdefec7 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfd7baddf nlmsvc_ops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x365d9ad5 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x5b3fc3d4 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x8cca983f 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 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3da8f81b o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4c345de2 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x56bc6b12 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x69d7c898 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb6cfbcef o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd00d8e74 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 0xf0c41cf9 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0a94a920 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x15830bbd dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x16a0ce1e dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1d6194ec dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2743a6f5 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x35c98591 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 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 0x49e659af ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4f31e2c0 ocfs2_plock +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 0x9ad15cc4 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/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL net/802/garp 0x51cb2b63 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x5a95dfea garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x6472691f garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x6c3ef561 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xd4d7bd3d garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xe84586f5 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/stp 0x50148a22 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xd8ec0bc1 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0xb6ca3f1d p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xb7527c1b p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/ax25/ax25 0x69d1aca1 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 0x6ad2bb79 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x02dd6dcc dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a044837 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0fb619c2 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x10900222 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x122f1016 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x18f72144 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x395a46ac dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4505f439 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x480285be dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x57ce29f4 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x595051dd dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x61c0de92 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x63557db1 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x77b1b208 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x82bd0b0d dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86d3cfa7 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x87af06b1 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9593fb84 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9c8092d0 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fd00f29 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa395f632 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb478abb4 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc620463 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf57db80 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9fd120b dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcd203c1f dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2649bdb dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2b64122 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe52f88bf dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe5611d4a dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe8e74c14 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf6510432 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x02bd1f2c dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2feb86e8 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7822c0b5 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x83137584 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe4617902 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xfbc2ace1 dccp_v4_connect +EXPORT_SYMBOL_GPL net/ipv4/gre 0xb3dec7ba gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xf62dfdc4 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x49d4b951 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xbe3354b4 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x5f85a482 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 0x0076a61d 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 0x306185e6 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 0x974c4907 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9fe0bd5b nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf47b0588 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfd7fc03f nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x49f18c55 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x25c1c7f8 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6862a1c9 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x930ee30a l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x936fd9a5 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa3f40925 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb58441af l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb6b4e155 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcf4830a6 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xefc9a345 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf2597af3 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf75f7275 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfc956fce l2tp_session_delete +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x39da5588 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3c551d69 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9424ccae ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x98ef7726 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd1fce5bf ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5f9db593 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x7a7352cc unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd9d8edee register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xf6b73829 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x063546e2 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e3bdf94 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1b747429 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d10caf5 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27a9779a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27ada431 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e9aad8c nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32726bf7 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3633c1cf __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e62ce41 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f55c922 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4cec15b0 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5974bdee nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a2cb12e nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a4d33d4 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5daf5b4d nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5df6fee8 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x615d0305 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67edee42 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x681f0ba8 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x69217958 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b42df6c nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7417a946 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77276f02 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78b651fd 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 0x7ad850ca nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c043f2d nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d8ce861 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80c7cf89 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x862ab514 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8756aa3b nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e26a6bf nf_conntrack_helper_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 0x968e509d nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a0ba771 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c58f899 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa34fab5a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3967015 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa407afdf __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa70db769 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa2a8cfd nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab2e6875 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xacf61c6d nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2f1ad0b nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2a8c138 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2c82de8 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc37fdffc nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc658790f nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc798c92f nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd234c536 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6d1c749 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe184de2c nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1a3948d nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1e23a85 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe756d90d nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe82db86e nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed0c2feb nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee2c8250 nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef3d30a0 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xefd6aee3 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf8f07753 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xfaa6e614 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x13255732 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x28a3bf32 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x505545d7 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6326fd94 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x641c5473 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x767630a7 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa0b2a48a nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb2ed103d get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbe1d9da0 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe5a38d22 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeddeaf3f nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x0e4f8d4e nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x36b3b384 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x370ce6a1 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3795d53a nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc10e2492 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x48b585b3 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xbb0b4c82 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0d8dc346 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x277ae55d nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x306ba21d ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x30f6bf64 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4026376f ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4462428c nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7760468e nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8db2e6e9 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x958ea014 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xce3d1878 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd0bfa1f4 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd251b1b8 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xef01fdd0 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xc4c6ac6b nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xefc8d43d nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1054d3e1 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 0x96c18b41 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x9d9e7066 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa6a45984 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xaf1b7570 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcf6f88a0 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xacf50666 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0570925a xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x17f2b7f2 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x30210bff xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3297f19e xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3c6be56a xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x52556564 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x573ac193 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x797312df xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8fe57d79 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9dffb5f0 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa3430b2f xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc50fe42c xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd1db820e xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe22171fa xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x563d999b xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf6afa81c xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x13841b73 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x13dc1b9f rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x28a1f995 rds_send_get_message +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 0x3c73f9d2 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x3f98a657 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x449a6d27 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x4599d93d rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x4afa8de4 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x5365a4bb rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x59d308dd rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5be71f7b rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x6caae193 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x6d8e3b97 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x8103b903 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x96bc4c74 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9f41da9c rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xa5651dae rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xad767df2 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb07d3218 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xbbf99267 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xcb4863ff rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xcbc69224 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xdddcf24e rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xf73920e0 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xfe575a1d rds_inc_init +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x4ee8ee15 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x82e92267 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 0x29175f50 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x360b910c svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x675d583a gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x714bfaf2 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7549f7bd gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8258f6e2 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x94a4ddc4 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 0xc5c6479e gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd01be798 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd982c6f2 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 0xff9bd27d svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04754c47 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x048a00cc xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05435d6a xdr_buf_read_netobj +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 0x06db5d7c svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07ec20fa xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08d6b8d9 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x094c345b rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a402884 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a7a38cd rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b16bf39 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b8df6f4 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d0e9774 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e3dbc9d svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e40e442 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fc15d70 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10830248 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1304f2e1 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1408922e xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1589d57d rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18740802 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1991c97a rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d13be5a auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f20d5a6 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f6fca15 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x200288b6 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21b3e47f rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2248acc4 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x260d009a rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2861efef xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a196da3 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c0cbc3f svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c2b5703 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c66138a rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c9d61b0 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2dba3b72 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2fd2c299 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30e3a1f2 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3310a94a xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x370416de rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a677cef rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b2ffa2b rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c9b5189 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d51c9bd xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d9462e9 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e4f6fc5 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f2c00d9 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f3796d3 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4021d812 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x418d8e93 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x434d9cb6 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x441de3c5 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44866e78 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4710d45e xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4827df17 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4951ea03 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4975617d svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fd7efc4 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51ee0351 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57e8a4f2 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5854e12f rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58c867ee rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ac121c9 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b962e54 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cdf7d35 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62134c09 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x626a9cbc xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63ab4a78 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63e2b287 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x666cd53a read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690ac893 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bfc5273 xdr_inline_decode +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 0x723f5804 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7389ac64 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7469b6b3 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74b45395 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74b8a0dc rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x783b29c8 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78a0d435 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ad2ddfb rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8000693f xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82d2bd4e sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x865836ae rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x871c9b97 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87f9e351 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a60ced8 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8baaae26 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d82f47d svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fa6871b svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91b97c30 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x920bb08f xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98282a4e cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a617bd1 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b133973 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e14a6c9 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f0d6578 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f5601b5 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa157a84d rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3167472 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8c95511 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9e00eee svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad7d1f4b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad811742 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf27a192 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0e082b6 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4bd0c49 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb525adbd put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7cf6da1 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb88e4620 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaa0d8ac sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb4df196 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbcf730c svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf9470d xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc78fdb2 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd7ca3ab rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe7d5233 xprt_lookup_rqst +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 0xc32dd160 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc35faa99 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc713da71 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca239ba1 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccae5bfd rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcdb1f4ff rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcddd7994 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf405d8a xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b33884 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd110c786 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd228304a svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5bb4b18 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6059d2a svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9949d72 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda408891 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xddf71e95 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe00d3be7 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe12fbe06 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3842d55 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3ec9b32 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe41e2a78 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef35cd8c svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0fe9331 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4be4787 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7ee177b rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9fccf2f xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa1adb6a rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa55458e svc_seq_show +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0d6b4576 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1a7e524a wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1e3c2a95 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x29275c0f wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x30c89563 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x361975cc wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x433c07d0 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6c2704fd wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6db23566 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6f7fe762 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x796a244a wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xccd0b388 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe6abfefe wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0649fa59 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x098b9934 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x217a6ca5 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2577a612 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2774cee2 cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2784ff42 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2c80c751 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2e8fb1be cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2f31402e cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34617f36 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x54dcd3f8 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x55a1dcec cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6a842b19 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x71a45c64 cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x71df9427 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7f7c7835 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x89a92d11 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8f20c81f cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x94e3d435 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x963c32f1 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa610fe64 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaae0a380 cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcd2a6c74 cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd2f082cb cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd3b64139 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdbc4ccdb cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xddfd6db2 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xde3fdda0 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe09d0ff9 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe98f37cb cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf0c08a76 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf5b67a84 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfb8c0ebf cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x11b8096f ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1f88e305 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4cd7d383 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x826862cf ipcomp_destroy +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x162a4768 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x1c32434d snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x3f703a20 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x70388b67 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x816fd7ed snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x832559da snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0dcbff8a snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11b34c0a snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x139c1c37 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13ba4a1c snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x140f309e snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1624eab4 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17a6d49d snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1aaf9277 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x207fabdb snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x239dfdb1 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a621f54 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a697245 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d7979b1 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dbf24d1 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3418cb6d snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34d71f46 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3564ad6b snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3bd2241a snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3be3f742 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d1d82a9 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43892431 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x451e258e snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48c2ea61 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a7adeea snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4bbcdad1 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x571b53ac snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5785d035 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5df6ce39 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fd45d8f snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x605f9440 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63d6daf1 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6505f797 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6655b979 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b5d4e1c snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x725fefe1 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x752f02db snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76e89e3e snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78b06904 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x790b0627 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a20ae1f query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b164c9c snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7eeae2a9 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fc077e8 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x810eaab7 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x852dcae2 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8644b243 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x896b42aa hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b417265 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8cf8830b snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8dc2525f snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9578f47b snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9986fcf0 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e85bd21 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 0xa787229e snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9be1b06 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9e9591b snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac3987cd snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0e179d2 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb10b37ba snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3300726 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb451546d snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4d65647 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb91fa3bb snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbaf54c0 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbceafc91 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe1d9277 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc039eb7b snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0b7d395 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc31b7d3c snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3350a01 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7a6ae3e snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6096323 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd74af3ce snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd75ca7dd snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd88bf66f snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9c53fa7 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdcbc5855 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe631a35a snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea755829 hda_get_input_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee3979ed snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee54fb8b snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefed376f snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf62e7408 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf727a7e5 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7be022c snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf94a5b26 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc22a192 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff1c0d4b snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x204b2e6c pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x741feaae pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0xd0bd542c v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x5778ad18 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x150cdd89 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x5154bd9b aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9bba5929 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb302ddb3 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc7ed6bbb aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xb4d00255 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xb8acfa62 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x21f75ae7 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xcb089e3f wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xe49f27f2 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x373a0aaa wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x4aeb19f0 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x57d3e2f6 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x91363372 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x3497d742 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x23f8559d wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc728c4d2 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05cf2cfe snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c2c5793 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0cf04c4a snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x102a204f snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x114281a2 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12255f38 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16246aec snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1aa50075 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dd4026c snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2cd4ef61 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ff430f0 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33b17032 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35b48378 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x36d6956c snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3826663d snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a170d11 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f19e9fc snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x402e57bb snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41e9f4ca snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x434f57ff snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48b500d5 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48dc9f33 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49a898bb snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bc9719e snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d194cfa snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d41e9d7 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x520aa1b5 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x537e29fa snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x541419b8 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56748758 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b4d8af8 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bfc35ba snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x634b54e0 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65263f35 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x66bc5b9f snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a26bb0d snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7770f25c snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e49020d snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fc32f01 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84b9780d snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8559a519 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8849eda4 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b47f900 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c16e328 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94c65639 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94ff9c01 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x963b0754 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9975862f snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a8d4755 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab9060fb snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac565f09 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae0450c9 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb144c5c2 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb17aaa67 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb313c7f6 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4d3dc6e snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb731f440 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb88a5c9e snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb941a56d snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb99ed6f5 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb73c501 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe4a4295 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc064b00a snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd13bc0ff snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd26ee1f1 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd369c62f snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5a911d4 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd69db4e6 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9abc019 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdbe3f17f snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde3f4b55 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0d130a2 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2fe3a49 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe3ca909a snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4ab7bf5 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe753319b snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7a71ae2 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeedb6fba snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf80fc1c7 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9c70780 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9dde02d snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfbe6313b snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd218ebf snd_soc_write +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 0x000a59ed dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x0043c41c sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00aa1ec6 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01079e72 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x01361b13 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x0184af4f scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x018ec490 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01bb1c02 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x01be9cda dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x01c27701 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x01d00cae devres_find +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01ed137d eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x02479961 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x026b2bcc user_match +EXPORT_SYMBOL_GPL vmlinux 0x02d9b2ee wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x030a2c99 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0352442f ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x037481c8 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x039ed41e usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x03b44995 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04992570 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x04e3e689 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x04e6d39e usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x04ec245b zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x0513dcd6 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0576dae4 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x05a7fe02 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x05c279e8 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x05c80ed4 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x05e254a5 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x05eb513e pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x067c20c6 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x068a820a mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x068b4c51 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x06d978d1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x06eb94f5 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x06ee5bc4 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x07162934 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x0739492c ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x0763d5dd dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x0792b0c9 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x07a68d2f blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x07a90d12 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d56e5f simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x07d91b49 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x07dcdf64 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x07efaf0a led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x07ff79ba dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x08037905 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x08393c9f fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x084c3020 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x0850009a invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x08583e3b cfi_qry_mode_off +EXPORT_SYMBOL_GPL vmlinux 0x085a82de scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x08731785 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x08a38635 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x08b9ed4c usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x08d8cd70 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x08ec2e3a wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x090fbd35 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0959dba2 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x09cd5ac1 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x09cd9858 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x0a54621b sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x0a649eed ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x0a8aa79a inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x0ab85263 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x0ad8d5dc platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x0af8b15d ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b6b22d8 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x0ba67440 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x0c03aff6 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c41946f platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x0c756647 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x0c76e752 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x0c7cf86e crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x0ca5dc61 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cfec1ed bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x0d1488af input_class +EXPORT_SYMBOL_GPL vmlinux 0x0d3957bf device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x0d8c35ed ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x0de15e02 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0e018e25 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0e27e3ac regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0e300b76 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x0e688225 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x0ea64173 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x0ea7d03e blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0ef9c052 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x0f0a0f87 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0f2f6b88 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x0f6dfec2 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x0fa341b5 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101a3ced usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x107c8eeb usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x10b083b3 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x10cf9b28 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init +EXPORT_SYMBOL_GPL vmlinux 0x112528a5 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x114aff17 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x115c4ad3 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x1182b34a sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x1185a046 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x119e8c68 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x11ee3e2c driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x120444e6 plugger_remove_plug +EXPORT_SYMBOL_GPL vmlinux 0x123332e5 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x124b6ac8 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12a30954 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x12b4587c blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x1314532b device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x132dee0c bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x135dc59c platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x13805aac regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x139d482f flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e30eab find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x142e55ba sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x1442e047 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x146be828 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x14e7b5aa scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x15038dab usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x1545f4de register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x1553a446 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b41fbe aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x15c1314a kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x15ce7ff6 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x1607633d fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x16097a90 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x16260d50 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x163ed8b1 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x1688e999 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x16b388e6 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x16f01ee6 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1711a102 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x17430337 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x177317fc inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x178c6fc5 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x17b8c376 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x1837f1b1 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x1845e265 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x1875a062 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x1889e7d5 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x18dd6e51 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x190d8892 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x191ac0a6 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x19951334 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x19976ac2 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19e63752 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x19fc6a81 otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x19fca8b4 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x19fce125 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a3ee1f6 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x1a648dfc device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x1a6d9492 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x1a6e3b5f pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x1a8757e8 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x1ae947d7 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1b09d95f crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x1b949c93 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c46880f posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x1c55fa05 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1ccdf0b1 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x1cdfe2df rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1d181c29 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x1d3d73b3 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x1d623f76 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1d7889f3 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x1d7dc852 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x1d8f2270 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x1daa017e ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1df087a1 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x1df5269f ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1e12a4da led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x1e12bdcf anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1e22d7f4 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x1e2ac526 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e75c38a wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e924a82 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1edc116d ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x1f04fc77 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x1f3d9ea9 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1f758550 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8df2b9 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x2019c91a cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x2066f434 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x209076e1 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x20aa8edf skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x20b99f4b crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c5289b ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x20ca0484 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x211489ab fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x21203a59 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x21291694 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x220a207b regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x227e9079 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22b3d8ff regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x22bb6a95 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x23425ad7 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2375a079 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23a0926a crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x23a9571f scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x23fde36e crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2411a51e sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x2419e150 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x243d6e59 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x2448b40d locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x251a3d66 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x257b5d33 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x259f046a scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x25ada1d3 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x262f26b0 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x2655bd4b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26ea4cf5 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x26f4defe blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x270c649a put_driver +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x278e967a md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x27964d3c ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27b0425e ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x27e5d9a9 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x27e8c2ea ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x281f6528 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x28437f73 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x2886e55a devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28b806e5 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28e59ac1 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x2910c2b2 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x29259a75 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x29ac2719 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x29c728e0 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2a18f731 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x2a5d88da register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2ada0cd8 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x2b220afa sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x2b36652f ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2b54fb08 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x2b6ed47c user_update +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7382 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b95ac74 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x2bab7ad6 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x2bcefb3f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2bd4baac dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c500d0a tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x2c7f2355 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x2ce2d4fb usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d4c4cb6 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x2d64bb21 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x2d718871 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x2de0f536 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x2e28f081 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e494ef5 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2f054776 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x2f0817b3 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x2f14b683 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2f521f93 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x2f625356 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f9f2a6e __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0x2fca40fa __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fd66c7b __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x2fd6d0dc key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x2fece137 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x2ff8ea88 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x302af6a2 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x302c1162 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x3058e889 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x305b258f usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x305b2d08 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x306b6ac2 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x30702520 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x3083bdef __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30e0747d disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x30f13703 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x30fd6eca nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31594089 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x3164823c dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0x3191eb72 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x31c0e9c8 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x31c27428 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x31fcc59e ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31ff2952 css_id +EXPORT_SYMBOL_GPL vmlinux 0x321d7260 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x323f51cb ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x324096ca inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x32a249f2 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x32b7fb3e platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x32bf0208 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3336b997 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x336e065e blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x337c3ae4 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x33d2566b blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x340e4669 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x3422e7f9 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3423e9ab ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x345f5bf6 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x347c9d41 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x349fe94f led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x34b88ecd page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x3506b358 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x35122fe7 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x351e3ece sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x3552aa52 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x356df89d i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x3589f12a ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35f1a958 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x35fa1240 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362a6d4e xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36515f13 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x36595127 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x369f3610 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x36aa917b ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x36cb8a16 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x36cd7756 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x36f883ba usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x372886a1 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x373a5d80 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x37c2e4f9 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x37d31519 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x37e47df4 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x37f31536 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x380d4bb4 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x386c6aed led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x3920b63b blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x3934e542 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x39a4047b __module_address +EXPORT_SYMBOL_GPL vmlinux 0x39c922f3 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a4a2b3e mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x3a9f28a9 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x3aef7616 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x3b084d20 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x3b20a59b securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3b3b9240 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x3b66b3e9 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x3bba5d9c queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c07810d __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x3c091dde sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x3c12fcb6 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x3c2e7490 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x3c4626da show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cc59d85 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd1105f devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x3ce78ddf sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d12f4e5 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d7fe392 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x3d842dfa platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3db57cf1 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x3db650b2 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x3dc7dcf0 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x3dd38f82 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3e1daa8b pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x3e604f89 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3e7bd901 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x3e984373 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3f16904b __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x3f1ea18a sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x3f210e75 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f253d40 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x3fe64e44 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4027d34b ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x403a4288 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40695fb7 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x40801850 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x4131d0c2 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x41460b8b crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x41552dba input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x41ed1598 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4203f185 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x420e420e pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x426711a0 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x428b1bf0 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43476aa0 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x43883551 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x439b2002 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x43efdab3 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4492014d sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x44a903dd power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x4521483f relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x45286cfb aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x4533ec9a cfi_cmdset_0003 +EXPORT_SYMBOL_GPL vmlinux 0x45605174 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x45655b1b class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4576e359 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c08218 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x45c28cb5 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x4652fb35 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4695ef81 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x46cfc490 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x4702cf48 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4755f1ea wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4791e3d8 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x47ea9aef rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x47f43b54 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x485d2552 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x486e96ff map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x489d37aa crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48d21d82 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x495598a5 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x4984fdfe regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49e6fb30 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x4aac75a2 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4abbc9ae crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x4ac612ff get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x4add7dda tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x4b1e8d44 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x4b398841 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x4b3a2605 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x4b7c2859 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x4bae9b61 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x4bdc5011 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4bef2b67 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x4bf38ca9 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x4c490470 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x4c67f2ed register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4c973457 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x4ca1814b tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x4cb1dc33 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x4ced6056 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x4d12cabf scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d62c473 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x4d74469d ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x4d8220cd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x4d9be7e7 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4dbc63c7 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4dea9fad __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x4dfb6939 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x4e67d9a5 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x4e6839a4 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f32aace crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x4f3d96cf stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x4f53f8f5 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4f56d22a dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0x4fbc1797 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x4fd996e6 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe39bc1 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x4ffce765 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x501bb1c6 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +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 0x5112617e debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x51a67487 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x51d16487 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x51d16e1c platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x51ee01e0 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x523ac1f0 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x525e9f8b device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x528e432d user_describe +EXPORT_SYMBOL_GPL vmlinux 0x52dc4da6 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x52f49e8b rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x52fc0279 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x53089cf5 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x53324ef2 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x53338396 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x538c2de0 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x538f5bf6 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53e80202 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x53ed4ee6 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x540c9d66 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x542c3cfc sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54909c3b rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x549a7869 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x54bedbcd adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x550b278c wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x553f2446 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x55612253 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x557cd8ae relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x55bb00fc scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x55cabd07 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x55f841ae dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x563064cf crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56728164 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x567560f9 reserve_pmu +EXPORT_SYMBOL_GPL vmlinux 0x56a15a6e ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x56e20efe ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56f7bf4e pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5760b756 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x576d542d platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x577f4f1a __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x578e843e fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x57974313 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57beec39 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x57d911bf ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x5854cfff dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x586b278b ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x5878585d ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x588bc253 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5890790a pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x58b54fd7 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x58d355a7 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x58e8fd20 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x58f74b6d ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x59064642 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x591225c7 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x59346e20 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5984f781 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x599d0cb6 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x59ac5cdf ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x59bcde22 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x59ca4a40 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x59d541d0 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x59f01442 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x59fbd556 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x5a60b71a rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x5a68cbb7 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a941768 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x5ae9e78d ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x5b481479 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x5b4dec96 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x5b5d2751 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x5b5fb689 add_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x5b620975 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x5bb0dda8 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x5be344f7 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c39f7e0 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5c41fe19 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x5c46d4ac modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x5c8d5ecd sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d4a4572 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e00f510 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x5e9930d1 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x5ec98493 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x5efac20c wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x5f3de20c device_create +EXPORT_SYMBOL_GPL vmlinux 0x5f4fb4bc usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x5f5e2390 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x5f88824e hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5f903e48 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5fa28ecf tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x5fae7104 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fd5327a regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x602d0020 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x603ed507 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x604c8fba bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60b0c913 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x60b182e9 __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0x60c338f8 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x60e5c919 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x6152f888 default_mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0x615e7acc tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x616a5618 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x61f681cb sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x6221854d sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x62276497 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x626af860 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x627a21ca blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x628e16a9 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62a1d3c9 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x62b1a831 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x62bc0d84 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x63170a20 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6373a842 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x639e102f unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x63c07919 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x643a0029 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x64610084 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x648f3786 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x6496718b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x64a1e8bb proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x652b419c dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0x657d23c3 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x659e89c9 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x65b0ee81 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d1f5b5 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66237252 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66acb4cc blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x66ae56d7 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6738e0e5 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x674467ae scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a52cb2 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x67cc5e5d transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x67e276b9 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x6823ab03 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x68636825 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68d3f208 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x691572f8 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x6950d3b6 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x69554893 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x696ca9d3 device_register +EXPORT_SYMBOL_GPL vmlinux 0x698fe007 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x69bda2cc uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x69e186a6 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a3624f2 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x6a8414e3 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x6b1365c8 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x6b171641 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b5b3e04 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x6b77c6a5 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6bc64ef7 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x6bd7b97f scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x6be342bf shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x6bfd86f2 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x6c0179cf fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6c0f58d7 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6c29f999 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x6c332cfa ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x6c44ac04 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6c456afe debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c6cc865 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cd7c9dc deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x6d098e15 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d4a7915 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x6d774b25 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x6d98792e cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x6da5bfdd tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x6db14f3e kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x6ddf854a __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e913501 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6eb990b1 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x6ebc6acc tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x6ec2885d crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x6f0ebbde unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f298f0c usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x6fd3e0cd sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x6ff0e2ff unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x6ff5c513 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x704ec5e9 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709b9329 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x70ad6711 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x70b349f9 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x70b84483 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x70f10083 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x71484434 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x714cf389 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x718fa7e3 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x71d8f0f6 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x72783d17 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72a934ac sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x72e8d96f devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x73110bf6 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x731c224e blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x73267311 unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7379388e __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73d9c3bb pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x73e2cf26 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x74320abf scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74550c0a ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x7479f68b system_wq +EXPORT_SYMBOL_GPL vmlinux 0x7480d339 system_long_wq +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 0x74df7966 __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x751b5d38 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x754a9515 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x754b475a screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x761ec9a1 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x76585dc6 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x766623ee stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7669e19e da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7670b413 cfi_qry_mode_on +EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x76b25726 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x76d8f603 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x77002771 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x7711dfd6 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x775b15ab ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x777130b8 user_read +EXPORT_SYMBOL_GPL vmlinux 0x77952895 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x77c4dd6e __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x78294ab8 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x784f5223 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x7871a6d9 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x7889ba8f wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x788bbf12 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x78c5a0f7 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7926a979 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x792e8f93 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796cab92 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x79a41cc5 armpmu_get_pmu_id +EXPORT_SYMBOL_GPL vmlinux 0x79a4ad9d blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x79aed137 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x79e25a56 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x79f03e81 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x79f06c6e inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x79fbeff7 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x79fc9a17 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x7a25f08d sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x7a673661 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x7aa32720 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x7b00c90d pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x7b9309c7 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x7bb6fe29 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7c0dae47 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x7c6784ef ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x7cfc246c scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x7cff5c24 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d5d95b6 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dcb2833 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x7df00142 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e78fc18 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7e9002bb pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x7eba97aa ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x7ecabdff da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x7f13f5cc tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7f324292 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x7fbed0ab rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x7fd38778 armpmu_get_max_events +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff9ee28 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80936e82 mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0x80c38a7f plugger_init +EXPORT_SYMBOL_GPL vmlinux 0x80f7bd1d sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x8111f364 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x8126de3b ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8247fe01 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x826366a9 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x826c64a7 get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0x82946dc1 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x8312de01 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x836e2695 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x83a31b33 platform_device_register_resndata +EXPORT_SYMBOL_GPL vmlinux 0x83a74735 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x83a8c3ad crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x83b3a1d0 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x83d1e2d2 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x83fc82c7 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x840671c9 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x840916df inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x840c0992 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x84422f18 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x846beeb3 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x84713e3e blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x847951ba tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x847e7d66 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x84dcaf43 register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x852aa6c1 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x852d3b48 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x854c95b7 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85c400f9 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x85e232be rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x86484728 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x866d5cdd destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x866da23b debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x867e1841 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x8680128d da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86cb3a0a setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x86d5280f fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x8713b3e9 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x877bc2b4 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x87892668 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x87e45195 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8820e435 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x88622458 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x889314cf queue_work +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88c1e667 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x88ca78f0 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x891b6ddf crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x89279664 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x8944b207 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x89636641 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x898093d8 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x8986dfed simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x8987dfa3 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x89953442 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x89a5cc6c platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8a90bd9d usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x8aaf5a8b tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8b519eee con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x8b61a3ed usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b836120 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x8bc71460 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x8bcfb2e4 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x8bd8d1d7 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x8c5b14cb pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x8c7c4b7e page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x8cc2e983 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8ce0a2fb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x8ce79ca8 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x8d2c58cd device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x8d5a53a4 device_add +EXPORT_SYMBOL_GPL vmlinux 0x8d719e07 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x8d906750 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x8e715556 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x8eba7db4 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x8edad89d cfi_cmdset_0001 +EXPORT_SYMBOL_GPL vmlinux 0x8ee32bce __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x8f05db97 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x8f359e78 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x8f69a242 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f9c46cb blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x9017aca3 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90cdf66f inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x91014ba5 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x91431f63 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x916582b8 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x91743edf crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x91c61cb7 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x91dda801 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x91e442ea platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x920c3fd3 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x92128b75 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x923d21b2 register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x92787766 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x929877cd init_pmu +EXPORT_SYMBOL_GPL vmlinux 0x92a12aef seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92fd7669 find_module +EXPORT_SYMBOL_GPL vmlinux 0x93130242 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x93323c02 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x935144bb pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9361f54c ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x94224fee ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x9465bb10 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x94a219c4 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x950c54b1 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x952ad250 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x955a2d68 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956144ad rt_mutex_lock +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 0x96081c25 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96296063 get_device +EXPORT_SYMBOL_GPL vmlinux 0x962e0775 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x966b25e2 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x966be8a3 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x9687f8df sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x97197946 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x973598de ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x975e00b5 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x97632d51 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x976b1979 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x977520ed firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x97881bde ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x97a31b8f led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x97b917bb del_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x97daeb6d dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x97f3b1b8 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98472844 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x98e4308a debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9951f74b bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x995b38b2 mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x997343db relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x99e81b23 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x9a047128 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a30804f usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x9a394b8c fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9a49170d devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x9ac1acbb bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x9af78ef0 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x9b559dd5 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x9b73dcd5 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x9b9da982 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ba27015 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x9bb50996 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x9bd98b18 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cd2644e devres_get +EXPORT_SYMBOL_GPL vmlinux 0x9d3621c3 deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x9dac5b4d mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x9dca4bdb raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x9dd07cbc vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x9df8785d sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9e183a00 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x9e1ff1ca sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x9e602fce __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x9e8a6695 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x9eb76035 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x9ebf30c2 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x9ed3d1c8 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x9ee6e556 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x9f197315 plugger_set_plug +EXPORT_SYMBOL_GPL vmlinux 0x9f24f67c blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f5e0c02 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x9f7167d3 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x9f978f86 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x9fbb1be6 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa003cba3 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xa01b1703 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xa07f6fcd ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa08939e3 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0e06ae2 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xa13e3bb6 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xa15b0663 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xa16453e1 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xa174541b dm_put +EXPORT_SYMBOL_GPL vmlinux 0xa18158c4 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa24b6256 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xa256c171 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xa2f273dd hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xa306f64f bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa30d0153 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xa3172222 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0xa32194d2 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xa36ac354 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xa397c5c0 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xa3a5f933 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xa3ae99f1 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xa3c1ef9e blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa41fc854 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xa42445d4 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xa43014eb sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa43da02a tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xa44ad9e8 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0xa45dbfb8 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xa46fe726 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xa47bcaa6 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa540f013 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xa57afc74 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa59d4189 md_run +EXPORT_SYMBOL_GPL vmlinux 0xa5c8dc63 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xa5dd6fae arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa60d4a90 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa64bb34e crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa663437d ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xa6d5e5b8 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xa7184179 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xa7614a0f crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa7d06597 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xa81c0a11 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xa8200a4d usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xa8318e95 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xa842daf8 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8796e06 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xa87a3573 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa899fb9e regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa89a5b78 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xa8a2fc89 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xa8eff7e2 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xa8f457e7 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa904ee6c dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xa907435e usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa92c5cce usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xa9652da3 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa97c324c device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa0ef45c regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa30965f release_pmu +EXPORT_SYMBOL_GPL vmlinux 0xaa76d8f4 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xaaac3bf6 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xaabe7ae6 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xaaf7d2e7 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xab2e9d1f inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xab49c0df get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab7d70ba debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xac06aec6 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xac1c1c4b ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xac1e7994 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xac1e866d mmput +EXPORT_SYMBOL_GPL vmlinux 0xac279fcb pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xac3a8ef4 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xac60b52b ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xac8b88b8 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf3d8eb device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad0e2e57 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xad56fa06 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xad57f4f3 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad829da5 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade72632 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xadfa1bb9 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae0d07ea fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xae25044f crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xae453ca0 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xae76b163 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xae954835 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xaecc2c50 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xaed10ab1 put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xaedbb597 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xaee506b5 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xaf379268 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf842f60 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xafc6e99f crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xaffc899f ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xb00b9df5 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xb01260dc unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xb02755b7 unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xb06ef645 parse_mtd_partitions +EXPORT_SYMBOL_GPL vmlinux 0xb09277a7 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xb0f3cd58 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb13f8004 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xb1807291 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1cb6e0e pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xb1f34b28 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xb2fb146e da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xb34c1171 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb3b89f0c rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xb3ce829b usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb41b792c pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xb46c6b0b fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xb490087c tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xb49e24f2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xb4a1db15 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xb4c36cfb sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb5369197 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb557747e hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xb5802b52 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xb586231c crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xb589ee86 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xb5c5ff88 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb5cd0dc6 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6144f8d proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xb659ebe7 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xb66b03d2 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xb6862bdd regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xb6a0c3bc crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6aeea98 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xb6c900f1 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb6d700b5 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xb6f19c4f usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xb7058e58 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xb732a020 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7a0b2c7 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xb7d3a557 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xb7dc4180 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb80260e5 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xb81e331c sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb886360f sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xb8891b91 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xb8e89d7c crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address +EXPORT_SYMBOL_GPL vmlinux 0xb92b2120 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xb9982101 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xb9d246c4 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e06e23 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xb9e50636 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba098a0b rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xba0c9066 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xba5d93d5 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xba65d094 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xba72479d sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xba91a99e register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xba931c2d usb_root_hub_lost_power +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 0xbb1bdcff ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xbb7fc0ac blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0xbb9a2c75 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xbbd7571d fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbc036373 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xbc1f2e2f free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xbc4eaac7 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbc700506 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xbc8b3ce9 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xbc9261cb i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xbcb7128f mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xbcfb7fa0 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xbd15b0b7 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xbd26c607 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xbd35d2d3 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbd3fe123 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xbd4ba2df inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xbd516088 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xbd6dd7e2 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xbd8a5c8c ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xbd8f5e36 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xbda3fc32 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xbdc06f3d tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xbdc2e866 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xbdc419d6 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdea77f9 ring_buffer_swap_cpu +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 0xbe9f5a4b regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xbed992bc led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xbedc62da schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xbf1fbb14 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xbf449ba2 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xbf5feea5 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xbf8fc6df __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xbf99ee13 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xbfbf84b3 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xbfbfa993 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xc01a22d0 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xc024ba40 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc02bc8c5 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc056455c i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xc080be76 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xc0888ec9 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0f5373a ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc110a5ee sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xc11a99ba usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1419aca tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xc154230c device_del +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17ef75b power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xc1921a13 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xc19a3f3b usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xc1a1d456 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xc1bb0d96 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc1c42ad7 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xc20e3811 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc226ae9c usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc23d7054 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc286239d noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xc2a1884d dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xc2a5d025 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xc2a64315 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc2b2f466 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3527505 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc37071f5 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xc373fdd6 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xc37f0238 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc385cb58 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc39aeeab unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xc4160880 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42ec6eb task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc490d934 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc4cf2ac2 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xc4e73833 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xc4fc4b44 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xc51b5bfa generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xc5a008b6 mtd_is_partition +EXPORT_SYMBOL_GPL vmlinux 0xc5b1d204 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xc5bc3d10 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xc5c0942f dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xc5cc76d1 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xc5e448cc inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc5fae7f3 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc642488c regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xc66932e4 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc69c1336 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xc6f73d66 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xc74ab721 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xc753989f dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0xc7b8f642 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xc7e97a55 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xc7f03644 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xc8012627 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xc8242c48 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0xc826f423 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xc89e7b01 mnt_clone_write +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 0xc93351e3 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xc94a51d9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9633493 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xc9680d97 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xc98615ec crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca755f08 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca8f6d09 get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcacf06ca fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xcb77be01 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xcc060dd7 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc464956 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd2fb77 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd45b7ca sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xcd5325aa ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xcd9538f3 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce1a119c sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xce1ae2ee inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xce4c3c34 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xcea478f3 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xcf05280e usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xcf14b043 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcf52dc70 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xcf72ca50 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfa8241d regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd0062166 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xd02017db platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd04f8d6d class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0xd0ae3df6 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c87ff2 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xd0ef7496 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xd117041c pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xd13f6068 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd199b73d mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c71f5f pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xd1e167a8 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xd201a843 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd20516df crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd24e15a3 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xd26e918f pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2b1553b tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xd2de3c89 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd2f10988 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xd322c4bb wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd384365f platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd3b94c79 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xd3cf518a get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd421720b ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xd442cc25 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd4574d74 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xd4603af6 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xd4a92451 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0xd4b52d8e wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd4c08e73 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xd4c7d423 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0xd4d7d017 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd4e6d996 put_device +EXPORT_SYMBOL_GPL vmlinux 0xd51e6a31 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xd54dbbf6 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xd590a33c rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5f58108 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xd649768f shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xd664a10e fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xd667cb4a perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xd67ba34d debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd680e133 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd689f2eb apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xd68ca996 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd6b86825 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xd736bff8 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd7385ba3 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd7405123 sysfs_create_files +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 0xd7e3b20b crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xd82978f5 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xd879f987 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xd87eb53d usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xd8fcbd63 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xd90cbc8e crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xd9297f48 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xd9bf8fb0 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xda177c34 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda1f6ba1 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xda201536 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xda2aae59 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xda3bd8de ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xdaa1dd75 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdaaae119 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdacf949a ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb081ae4 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdba16e98 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xdba1f43d enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdba3c106 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xdbc90c69 ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0xdbf96aac ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xdc11e2ef css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdc24c166 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xdcb0502a crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xdd212d86 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd276f59 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xdd5bfdd0 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xdd6cb677 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xdd8bf815 disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0xdd8e7b38 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xdd933afa crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xde1a9463 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde471214 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xde585465 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xde62faae device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xdeaef963 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xdeb2aef2 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xded61ff4 device_move +EXPORT_SYMBOL_GPL vmlinux 0xdf2dbd15 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xdf5e8600 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdf63064e usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xdf66503e inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xdf77a97e ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xdf850c11 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xdfde14cd ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xdfe29404 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xdff80ea7 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe08001df shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe1134f24 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xe116b490 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xe141c1ae dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xe1494dce sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xe14f98ac device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xe179f9ad usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xe18350c7 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xe196c424 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe1b79ff3 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xe1bf4e87 kmem_cache_name +EXPORT_SYMBOL_GPL vmlinux 0xe1bffac4 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xe1fc8f4e sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe2595327 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe26eff3b crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xe2a89edf ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xe3558f2e ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xe372f3db device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe38f9671 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xe399e31e ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3c78539 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xe3d69ccb tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xe3e0794e ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xe3e75a53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xe3f2732e fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe44d6c76 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xe457ceff handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xe46353ff da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xe477fcc3 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xe4ab34ed dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe4ba60a0 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xe4e08047 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xe4f9cbdb stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe542f5dd ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xe5488110 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xe5544d25 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xe574f4cc ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xe5770add inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xe58df6d8 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe5fa7261 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xe60e819f inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe664bbe8 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xe66a7fb3 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xe6785de2 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xe688542e sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xe6c7d2ef pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xe6d98a8d dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe70bfe0e ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7627686 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xe78ec9a2 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7f959f2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8611953 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe917e733 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0xe92c30d6 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xe9392b6c lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9775dad workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xe98d232a dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xe9cfd065 ata_sas_port_stop +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 0xea4de6cb cfi_qry_present +EXPORT_SYMBOL_GPL vmlinux 0xea90a14e dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeafdebfa inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xeb07cc78 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xeb52c471 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xeb7dd365 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xebe15eca dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xebe6b62a fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec502b5e nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xec6ad9aa register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xecda6a78 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xecfc6d7a ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xed137f15 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xed6eb50c perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xed805e2c inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xeda1c807 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xedb87b3a usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xee22364c gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xee2eed14 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xee3d1283 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xee4cd13a blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xeef65242 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xeefa7995 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xef1279bd sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xef403f8c ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefa21261 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xefa8d1ad crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xefb6dc85 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xefc34db8 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf06c0f8d debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xf06e5efa kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xf0a6b906 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xf0cd11f4 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xf0d8d6b4 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xf0e7c8ab dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xf0f09691 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xf0f18a8c sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xf1012361 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xf103b5dd ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf17c4026 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf18e0a81 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xf1afaf68 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xf1ce8c9b sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xf1eb5bb1 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xf1f5b7a6 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0xf2121d62 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xf266ab69 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xf2b0e63d usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf311fbb7 mount_mtd +EXPORT_SYMBOL_GPL vmlinux 0xf33b416a pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf37984bd unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3cf816f sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xf3db1caf rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xf42cae64 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xf468aaa9 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xf46c8d5d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf4892903 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4cd4522 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xf4f6469b rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf5196b93 __sock_recv_timestamp +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 0xf57d9356 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf59d3f5a wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf5a269b9 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf61ac981 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0xf639e77f hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xf6802011 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0xf682c622 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xf69384f2 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xf6d987ec sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6e900e5 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xf6f40852 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xf716c88a stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xf7247b21 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xf778b2c9 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xf781b8d8 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf7bd5c3a shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xf7f1d63d cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf801ffc0 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xf802e2a2 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf84bda3e eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xf8719da6 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8e6bf18 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9005519 md_stop +EXPORT_SYMBOL_GPL vmlinux 0xf92d0d20 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xf947576f sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9b29802 __class_create +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xf9f756a1 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa378597 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xfa48bc8c __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xfa969969 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xfac89426 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xfad45917 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xfb1dd0a4 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb61d4f3 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb9b1d27 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xfb9dd710 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xfbb373fd raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xfbb6282e ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xfbf4a4b4 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc24db95 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xfc380a01 use_mm +EXPORT_SYMBOL_GPL vmlinux 0xfc38727e crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xfc5364bd sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfc54380f pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xfc75b165 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xfcc9f468 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xfcd875ba sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xfcfbffc6 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xfd6a4a65 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xfdb63a12 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfdcae513 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xfdd578c0 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe49e7ce platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfe576906 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xfe7500a2 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfe953e30 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea5e395 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xfeb598cb sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff06e370 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xff1ddba2 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xff23b18b pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xff44b531 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xff47226e usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff7e4006 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffe54ace regulator_get_mode --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/armel/omap.modules +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/armel/omap.modules @@ -0,0 +1,1995 @@ +6pack +74x164 +8021q +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +a3d +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +ac97_bus +acecad +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s120x +ad2s1210 +ad2s90 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5398 +ad5446 +ad5624r_spi +ad5930 +ad714x +ad714x-i2c +ad714x-spi +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7745 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16251 +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 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt75 +adummy +adutux +adv7180 +adxl34x +adxl34x-i2c +adxl34x-spi +aes_generic +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +ahci_platform +aiptek +aircable +ak881x +algif_hash +algif_skcipher +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +amba-clcd +amba-pl011 +amc6821 +analog +ansi_cprng +anubis +aoe +apds9802als +apds990x +appledisplay +appletalk +appletouch +ar9170usb +arc4 +ark3116 +arptable_filter +arp_tables +arpt_mangle +as5011 +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 +b2c2-flexcop +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +basic_mmio_gpio +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcm63xx +bcm_wimax +befs +belkin_sa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blowfish +bluetooth +bmp085 +bnep +bonding +bpa10x +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +bridge +broadsheetfb +bsd_comp +bt_drv +btmrvl +btmrvl_sdio +btrfs +btsdio +btusb +bu21013_ts +bw-qcam +c67x00 +cachefiles +caif +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-raw +capi +capidrv +capifs +carl9170 +cast5 +cast6 +catc +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +chnl_net +cifs +clearpad_tm1217 +clip +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cm109 +cma3000_d0x +cma3000_d0x_i2c +cmtp +cobra +coda +configfs +core +cp210x +cpia2 +c-qcam +cramfs +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 +cx82310_eth +cxacru +cy8ctmg110_ts +cyberjack +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +dabusb +davinci_cpdma +davinci_mdio +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 +dm644x_ccdc +dm9601 +dm-crypt +dme1737 +dm-queue-length +dm-raid +dm-service-time +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +drbd +drm +drx397xD +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2782_battery +ds3000 +ds620 +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-lmedm04 +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_mmc +dw_spi +dynapro +easycap +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 +emc2103 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_usb +em_text +em_u32 +enclosure +eql +esd_usb2 +esi-sir +esp4 +esp6 +ethoc +evbug +exportfs +f71805f +f71882fg +f75375s +fat +faulty +fb_sys_fops +fcrypt +ff-memless +freevxfs +fscache +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g760a +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +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_ncm +g_nokia +gpio-charger +gpio-fan +gpio-i2cmux +gpio_keys +gpio_keys_polled +gpio_mouse +g_printer +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_konica +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_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_tv8532 +gspca_vc032x +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hampshire +hanwang +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-axff +hid-belkin +hid-cando +hid-cherry +hid-chicony +hid-cypress +hid-drff +hid-egalax +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-kensington +hid-kye +hid-logitech +hid-magicmouse +hid-microsoft +hid-monterey +hid-mosart +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-prodikeys +hid-quanta +hid-roccat +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-stantum +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-zpff +hid-zydacron +hisax +hisax_st5481 +hmac +hmc5843 +hmc6352 +hostap +hp4x +hpfs +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +i1480-dfu-usb +i1480-est +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-designware +i2c-dev +i2c-gpio +i2c-mux +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-simtec +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-xiic +ics932s401 +idmouse +ieee802154 +ifb +iforce +iio-trig-gpio +iio-trig-periodic-rtc +ili9320 +imon +imx074 +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_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipx +ircomm +ircomm-tty +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_boot_sysfs +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isdnloop +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1301_omap +isp1704_charger +isp1760 +it87 +it8761e_gpio +itd1000 +iuu_phoenix +iwmc3200top +iwmc3200wifi +ix2505v +jc42 +jedec_probe +jffs2 +jfs +joydev +joydump +kafs +kaweth +kbtab +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +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-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-pca9532 +leds-pca955x +leds-pwm +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gl5 +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcrc32c +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libiscsi +libiscsi_tcp +libsas +lightning +linear +lirc_dev +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 +lp3972 +lpddr_cmds +lru_cache +lrw +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lzo +lzo_compress +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +macvlan +magellan +mailbox +mailbox_mach +map_absent +map_ram +map_rom +matrix_keypad +max1111 +max1363 +max1586 +max1619 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max63xx_wdt +max6650 +max6875 +max7300 +max7301 +max730x +max7359_keypad +max8649 +max8660 +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8998 +mb862xxfb +mb862xxfb_accel +mb86a16 +mb86a20s +mc13783-adc +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc33880 +mc44s803 +mceusb +mcp2120-sir +mcp23s08 +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +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_defrag_ipv6 +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-aes +omap_hdq +omap-sham +omap-vout +omap_wdt +omfs +omninet +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +osst +oti6858 +ov2640 +ov6650 +ov7670 +ov772x +ov9640 +oxu210hp-hcd +p54common +p54spi +p54usb +p8022 +p8023 +panel +panel-acx565akm +panel-nec-nl8048hl11-01b +parkbd +parport +parport_ax88796 +pata_platform +pc87360 +pc87427 +pca9541 +pca954x +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 +pn544 +pn_pep +pohmelfs +poseidon +powermate +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pvrusb2 +pwc +pwm-beeper +pwm_bl +qcaux +qcserial +qinfo_probe +qnx4 +qt1010 +qt602240_ts +quota_tree +quota_v1 +quota_v2 +r8712u +r8a66597-hcd +radio-i2c-si470x +radio-mr800 +radio-si4713 +radio-tea5764 +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +ramzswap +raw +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +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-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +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-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-msi-digivox-ii +rc-msi-digivox-iii +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-002t +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-terratec-slim +rc-tevii-nec +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rds +rds_tcp +redboot +reed_solomon +reiserfs +rfcomm +rfd_ftl +ring_sw +rio500 +riscom8 +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +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-ds3232 +rtc-ds3234 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +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 +s5h1432 +s6e63m0 +s921 +saa7115 +saa7127 +saa717x +saa7706h +safe_serial +salsa20_generic +sam-ba +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-platform +sdio_uart +se401 +seed +seqiv +ser_gigaset +serio_raw +sermouse +serpent +serport +ses +sha1_generic +sha256_generic +sha512_generic +sh_mobile_ceu_camera +sh_mobile_csi2 +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sisusbvga +sit +sja1000 +sja1000_platform +sl811-hcd +slcan +slram +sm501 +sm501fb +sm7xx +smbfs +smc911x +smc91x +sm_ftl +smm665 +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc95xx +smsdvb +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-aloop +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-88pm860x +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-alc5623 +snd-soc-cs4270 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-l3 +snd-soc-max98088 +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-wl1273 +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-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +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 +softing +sp805_wdt +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +specialix +speedtch +spi_bitbang +spi_butterfly +spi_gpio +spi_lm70llp +squashfs +sr030pc30 +ssb +ssfdc +ssu100 +st +st1232 +stb0899 +stb6000 +stb6100 +st_drv +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sunkbd +sunrpc +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +syscopyarea +sysfillrect +sysimgblt +sysv +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +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 +tda18218 +tda18271 +tda665x +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9887 +tdo24m +tea +tea5761 +tea5767 +tef6862 +tekram-sir +test-kstrtox +test_power +tgr192 +thermal_sys +thmc50 +ti_dac7512 +timb_dma +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tle62x0 +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +toim3232-sir +touchit213 +touchright +touchwin +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +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_charger +twl4030_keypad +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-pwm +twl6030-usb +twofish_common +twofish_generic +u132-hcd +uas +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +udlfb +ueagle-atm +ufs +uio +uio_pdrv +uio_pdrv_genirq +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 +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvideo +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uwb +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 +vpfe_capture +vpss +vsxxxaa +vt1211 +w1_bq27000 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1-gpio +w1_smem +w1_therm +w35und +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_w8001 +walkera0701 +wanrouter +warrior +whiteheat +wimax +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +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_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +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 +xz_dec_test +yam +yealink +yurex +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr364xx +zram --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/armel/omap +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/armel/omap @@ -0,0 +1,8889 @@ +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0x432b3124 omap_mbox_get +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0xa853bc00 omap_mbox_put +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0xdbc75fe3 omap_mbox_unregister +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0xee9ab656 omap_mbox_register +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0xf95b2672 omap_mbox_msg_send +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/gpu/drm/drm 0x053ce095 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ac7ae7d drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bc0f699 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c19c906 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cb15a83 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d13120b drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0de644bc drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11f8f5ec drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13139fa9 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x140d15c0 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x175fd5ff drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1acd14f7 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eb66b12 drm_crtc_cleanup +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 0x2084a767 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2368cf71 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24740a6c drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25aa3228 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x263df837 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2907a76e drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d61c79b drm_core_reclaim_buffers +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 0x3342973a drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34e151c2 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35f7a352 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x373a1d71 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x382bd4c5 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a61cfb4 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c620869 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e129f36 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3efb4ac1 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x403b7ae2 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x424e5185 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43e50a2c drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x452407e9 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48135988 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a5c80fd drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4af219df drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d6f6482 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d9831dd drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50982d12 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x539f1d64 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56e9f127 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5857174b drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a936b86 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d26200c drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d44747f drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6161593b drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x685f01b7 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69811f7a drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f5d71cf drm_ati_pcigart_cleanup +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 0x79d13e87 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a25cc0a drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a40dd98 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bd3cbfe drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c17910a drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c67c813 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7dc89fca drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84a3d72e drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86860cfc drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8784d34f drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8874986a drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x901f26a6 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94181c3a drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94da2640 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98897ab6 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99c3778c drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a6000b1 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9cf2670e drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa11233c1 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa267937e drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3dd1130 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7c3a45d drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7dbcae4 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0d17b78 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2a73ed2 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2bbc074 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6ddec70 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba796bb6 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbaa152f drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbd2568b drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe42f77a drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbeb741f1 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf195a09 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc046dd4b drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc05d5503 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc79e1ec7 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb333854 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb4647b drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xced012bc drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf4c298b drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0602958 drm_connector_property_set_value +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 0xd36d9e3c drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd47daea8 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7515d8c drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9b95f71 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda264dd2 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda658a25 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc4b4f38 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdda02ef9 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde08a054 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe103d49d drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe12d7b1c drm_mode_find_dmt +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 0xe3975e0f drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3cb2dfc drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4985957 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe551bfe7 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe55ee86d drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe577c0bb drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5c9c2f2 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe735a1ea drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7e984df drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe91f8553 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeac875f0 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebc67ff4 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee61155d drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeea6b959 drm_open +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 0xf4797862 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf57a0098 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfea15396 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff7ec5ef drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffe7b780 drm_calc_timestamping_constants +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 0x1e1b7df5 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x39736534 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x8999601c i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xd2c8b906 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x54661b9e i2c_pcf_add_bus +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0f065ed2 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x20795b88 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2e4ecc82 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x36e781be __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7b1dcc20 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9aa533d8 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb1e39415 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc4d681fd gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe727c187 gameport_stop_polling +EXPORT_SYMBOL drivers/input/input-polldev 0x13461207 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x26e0dd22 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x2ecb1db4 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x35c0f86d input_allocate_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x50baf355 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x63af7fb8 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xc03b62ef ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xde511077 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x4946e62d cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x5ff0c5b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x747dfb3f cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x838162de cma3000_init +EXPORT_SYMBOL drivers/input/sparse-keymap 0x2bf0e410 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x37bbfe2b sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x6604d2b8 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x8f98f79f sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe663797a sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe7adf18a sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x0c7973bc ad7879_resume +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x772e5228 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xcf028ec4 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf750cf88 ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x1686c481 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x608b3dc9 capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x09db2b90 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x264086a9 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x382666c5 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3e8c96a5 capi_ctr_ready +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 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9e3d7cb1 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f4ea935 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa2155d5f capi_ctr_resume_output +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 0xdcca2b9c capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe3fa9766 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfda93574 capi20_release +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x031417d4 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e 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 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x353e61f8 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x5a062bc9 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa9644cda isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0194a22d mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0406d14d mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b3e32ff bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2c27a4bc mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3c716278 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3d64a40a get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x480ffddf dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4eb1346c mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50a9ba96 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x57fa7939 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7a364295 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x84007a9b recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8e88d3d6 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9b70192b confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9f864f74 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb6b263d2 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbc863576 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xce4c38be get_next_dframe +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 0xde705df0 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdf2244e7 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe286f977 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xede36685 recv_Echannel +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/raid456 0xd0011195 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x4a04d9d9 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xbae772e0 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x1e2c861b mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xeeab1b94 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xa45d7d8b mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x813a4577 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x4f064693 tda18218_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 0x88e8185f xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x2f1c9eb1 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x003f3b6c flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1d8870ac flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2d7594d6 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x44fcbd93 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x48797848 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4fa6fb1c flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x70c9e16b flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9f0c8601 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9fdc6c22 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xab14c6f6 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb60429c3 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xddd96368 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe91bd289 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x01ceb5e1 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de42c68 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x215b006c dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x24cf7622 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x281c1a91 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x310cef8e dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x47706345 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x62ea0d6f dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x730af454 dvb_ca_en50221_release +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 0x7c9a6d40 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7cde67d7 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x856e8241 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88642e32 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8dc1fe08 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x94e4ac08 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb00e1f4c dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xba44614d dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc4ab8214 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc5a5316f dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdbbef9ef dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdd781662 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe852aedc dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf106e275 dvb_dmx_swfilter_204 +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 0xf867c8dc dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfd562e95 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x63b9cd69 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6a3ca1ca dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x74f032cd dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7fc2a7fe usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8ddc3d76 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb52c1be6 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xba35cbf6 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x9477e6a2 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x290aa09f dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7891128a dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9255a8fc dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa45eef2a dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa58aa74a dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa58af5ca dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xaf8ff4c5 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc107c375 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc5c584c8 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcb035e47 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf542ce16 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xa6553407 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x7503056f atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x983ecf0f au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xaa69399a bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x0db4f813 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xb3c81cbb cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xae51ed4c cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x5bede554 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xf29248b2 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xbefbb964 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x32fb31d1 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xdf221f54 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7af4b323 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9213e76b dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xb8427a18 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xe9283f91 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf41487d8 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x398c0922 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x464f1c3c dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x505a437f dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x712fc9e6 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xcb3d628b dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xd83e5a42 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe85743ab dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xeead8e06 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x3beb087d dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4a635313 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x7a0bbd87 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8a2b7080 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa4636bdc dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf85b1570 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xfb910dcc dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x0efc17c7 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xc18c3a98 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xe80e240b dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xfc511e58 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0b7c4e86 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x129bec82 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x248a365a dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3735551d dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x459edb01 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x82e085ac dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9eabc068 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa51d8be4 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x27ac5ad0 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x31f724f8 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x35e64863 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x495f50e9 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x53efe13f dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x597f9191 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x663d48e3 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x66912a91 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcab53469 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xeb38545a dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf8773080 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x9cdca3f6 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb0d555fe dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd1a57418 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xfe621001 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/drx397xD 0x9de4120f drx397xD_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x4d3df50f ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x234e7451 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0x18c49a4a ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x3d675ea1 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xf5675ed4 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x999c1e5f isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x99063c43 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xb99d9a91 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x74174ec3 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xeb4a8650 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x60956651 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gl5 0x297b7532 lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x2b613b7f lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x8a59a873 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x9f0a8b37 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xd4f865b9 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x2e991e47 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x8317d028 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x24db8617 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x9f7f06b2 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x449a9ca2 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x29f83237 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x4c88ce73 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x32ccf507 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xc764ccce s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x58535a97 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xb0524682 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1432 0x8341456a s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x7cb83b86 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x273077a9 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xd50da2b2 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x0f61eb85 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x49abbd67 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x979f6444 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x12eae65e stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xe6e72025 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x9dde108c stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x1e943927 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x7b118218 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x21a672ef stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x0fab1469 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x7a1fa031 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xb002b0e7 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xc7d2a3a4 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xe2a62542 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xc19f896d tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xcb262473 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x493466b3 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xa0dc33bf tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xc7d66e8c tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xc1955d0b tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x033c5b43 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x27a7be40 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x16bc48b8 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xc68b5e51 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x032a1d12 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xeed15772 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x3f03d177 zl10353_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2c59b4a5 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2fb06f3e lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x3ee1d79d lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5ef7a8c7 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x65fc7205 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x780e5bb8 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xbfe8d3ef lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe76650f2 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/rc-core 0x0a5bc5f7 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x51f293c5 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x9b25791d cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xfdea3b14 cx231xx_register_extension +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 0x5cd76265 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x884dedc6 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf20e6fc cx2341x_handler_init +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 0xd19c2a75 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/davinci/vpfe_capture 0x1804e88c vpfe_unregister_ccdc_device +EXPORT_SYMBOL drivers/media/video/davinci/vpfe_capture 0x7acb262b vpfe_register_ccdc_device +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x088ccec9 vpss_select_ccdc_source +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x319709a6 vpss_clear_wbl_overflow +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x54146824 dm365_vpss_set_sync_pol +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x6e5b5413 vpss_enable_clock +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x749bf2c9 dm365_vpss_set_pg_frame_size +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x50805213 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xdd261762 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x050e868f gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x675de9a9 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7991962c gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7cf261ce gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x889464a7 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xb81ebf63 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xbe1540fc gspca_resume +EXPORT_SYMBOL drivers/media/video/soc_camera 0x7bac8a4d soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xdb88375a soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xf15c27e6 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xfe0fb452 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 0x6ae476b2 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/tveeprom 0x36f577dd tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf9c7c622 tveeprom_hauppauge_analog +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 0x1abb5fd2 v4l2_ctrl_check +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 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 0xa4bf0ba4 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa7e2104e 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 0xd1a30289 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x0fc62fb3 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x282be8d9 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x581d4158 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x80b443fa v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1265a541 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1c5677a9 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x529dc967 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x85264979 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xd06752f2 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe02d850b videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videodev 0x0280abe9 v4l2_ctrl_handler_setup +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 0x1d5c285e v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x20ae1f6e v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x2c805fc8 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x363ad0e6 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bad4ce4 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3e3ba5d1 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x43a44e7c v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x47c7f449 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x5066e00e v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6ad887a1 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x702062ff v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7ae3a30d video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x867c265f v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x8960540a v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x923f3999 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x94089335 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x95170a47 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x970ea959 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xa24b3791 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xa2e5a961 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0xa68b378a v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xa9d24e70 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xab465583 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xad15c79d v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xae27a88b v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xbb914e7c v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xbd02f636 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xbd8cc930 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0xc84ee453 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xd4d2db6b v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xd789fceb v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xd9516bca v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3c82bc0 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0xe6dafb1d video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xe9398a26 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xeecf17c7 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf61f29a3 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0xfee57be0 video_device_alloc +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x6ae40e67 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xc79b8dfe pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x002b5973 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x15d9fe92 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x17674e6c mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1d485bad mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x33f2032d mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x369bd964 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3bde9a0a mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3d1a9429 mc13783_to_mc13xxx +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x428c5764 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x69e42de4 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb917cba9 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xcd5c64bb mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd7fac3c9 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf1bb606f mc13xxx_irq_status +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/mfd/twl6030-pwm 0x0c23f5b9 pwm_config +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x24ba6d1e pwm_free +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x9d09808d pwm_enable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xb0493b18 pwm_disable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xc1f4ec93 pwm_request +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x008c8837 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xc34336da ad_dpot_probe +EXPORT_SYMBOL drivers/misc/c2port/core 0x64a12e3f c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xa500dc16 c2port_device_unregister +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x2c281cd6 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x778aa7a2 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x97bfb969 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x007c324f mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x26e38e56 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x52599149 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xcf199859 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xcf1433f6 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd658499d onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xdb74c051 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xdd712395 onenand_addr +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1a02e3ef hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x768935fa hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9c2304a2 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc7f9104e hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xdb07d8e9 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00bee528 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x17cdddd8 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1cbdb81e sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2ba3b42e sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2fd0d8cf sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd5d68a92 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd97d47b6 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdcb27159 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe9ee2b89 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xea33d5ce sirdev_raw_read +EXPORT_SYMBOL drivers/net/pppox 0x141de7ed pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x1ad6ac81 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe2d01d9d pppox_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0dd96d1b alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x35cca829 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3e7b5137 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4d9aaba9 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x62d16b40 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9c339426 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbe9c03c4 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd307625a hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdb9ddcc0 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe375f32f hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf90f288a unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0ac51c31 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1b4c47df ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x28b33b23 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x2a4b7107 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x30363a6d ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x57fc6d73 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x73a288b4 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9d7c56ef ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xad93a9c3 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd4a2edc9 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6138255c ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xca4f5d08 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd09e5c54 ath9k_cmn_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd5981afe 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 0x01f6fe3b ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x055411a5 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0702885e ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0cbbe3f4 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e45d685 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x157c647f ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x158ed797 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16d13173 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17a97fc2 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17d97860 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d28dd6b ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ec59699 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f4af51f ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b5045c0 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cb711a0 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cf1a39c ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37676499 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x376d6186 ath9k_hw_antdiv_comb_conf_set +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3af1aadd ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c009275 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c7eaae5 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dbc5705 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e14c319 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fc6957d ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40ed6fbf ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x439fdaee ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4578f803 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45e056a6 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x499ad87b ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b4c60fd ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4eb529cd ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fe33a6a ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52160f86 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x535c61eb ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5db99fab ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61f088b7 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x635a023c ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x690538ce ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69a424bb ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cc16e01 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e79101c ath9k_hw_antdiv_comb_conf_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74a7ab38 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76194e41 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x778b8c2b ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7aa9bd23 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e82da2c ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x900f83af ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94c7a2ac ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x957487e0 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d930bf2 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9de1534b ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0073e11 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa114bc9e ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa253e99f ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa28145f4 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa69f2bfe ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8074083 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8165516 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8592851 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad81164c ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8ca6787 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb23b30f ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb7cfe01 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbfed94d0 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc00a4eb9 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc18cdebd ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1d51ec8 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc45946b9 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc8c48241 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1149c33 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd16f0a53 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd20d6714 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2934a55 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd34dc5fe ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4a2e867 ar9003_hw_set_paprd_txdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4ef69c2 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7153358 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda64fca8 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe11090c7 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe396380c ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe78f8f01 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8ba3167 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeac7c0c6 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb041e47 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf22ae9f6 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd3c10e2 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03930845 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0693c6fd hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2b92b730 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3fdcd383 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x407369b3 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4c3fbe46 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5e924b5f hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5f67eb92 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6ecee9d4 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x76181f4f hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x780815f5 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x808f9895 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x95fc39a7 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x965e834d hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9d4c267f prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9e58528a hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa313d43a 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 0xba496955 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbc29cf23 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd0b50a09 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe19dd158 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeb760b29 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf03d3eff hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf115bdd8 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfbc74614 hostap_free_data +EXPORT_SYMBOL drivers/parport/parport 0x0750d65b parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x0b286f28 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x12146d94 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x22f45c7b parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x28100d2e parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x2878bc42 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x35a2951d parport_read +EXPORT_SYMBOL drivers/parport/parport 0x38e31bab parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x3e699de2 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x46bc297e parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x52e1d1b4 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x5aab46a6 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x75892ff9 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x7eb373f7 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x8d135527 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x92801067 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x97b56c00 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x9bb73632 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa621b218 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xb739ff46 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xbcf8604b parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xbdeaacfa parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xdadf5852 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xdee49b15 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xe2c93fb3 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xe77df3ab parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xfae76717 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xfbb582d6 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xfe470695 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xff7adf36 parport_write +EXPORT_SYMBOL drivers/pps/pps_core 0x60a2a418 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xe71b6bc2 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xf65c0161 pps_register_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x131e28cd fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2e0e44c3 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9291869f fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbf593c44 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc0735b13 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc90c040f fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcdd2fd9e fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0f8116d8 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x12efe132 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1332b4bc fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14a7dd49 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1839150a fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a81b33e fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1bdbca4a fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c8baeb8 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f98bfb4 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x249aaf55 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x259fc006 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3340fd6a fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x351c7810 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x449baad9 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x459bd425 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ada9c06 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4d873687 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f9d0c8c fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74db41a9 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7521df30 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d3a0879 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x860fce2c fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x87c448c5 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x93bbfc27 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a476d9b fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9e6452e1 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa0573699 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa960fd59 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaf59a864 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1417660 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb25ad71a fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbfb6da0b fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc376ff09 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb9a7162 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcbb4e321 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd01c1606 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd1b9d2de fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd22d95bc fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd87b94a4 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe58686a4 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea7bcd62 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf34a5b2d fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf4b5e3a9 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5ab0014 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfeb88dbe fc_exch_init +EXPORT_SYMBOL drivers/scsi/raid_class 0x8576fb67 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xa73a7d66 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xe0adbc43 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0d014317 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x301cf781 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x42046b7e fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x484a3bc8 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6bdcfb3c fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8dbfba72 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9919c6f6 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbd763696 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc2ee36ce fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xce6146a0 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd27733d0 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd732ddf3 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfd2d32c2 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0ad36ad8 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1031ba89 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1146889b sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1160646e sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x12523661 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x18235455 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1b6bde52 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x280ee8db sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4672b5c5 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c0db9ef sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x56d8b227 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x66652b2d scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x66b509f6 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x74f1a64c sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83429430 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaf607fbb sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb53de7a3 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb66aa0d7 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb786b378 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb82f4230 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc6c5e815 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc92b96bb scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdc446fcc sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf32066b sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe98df581 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf331ed8d sas_phy_free +EXPORT_SYMBOL drivers/ssb/ssb 0x0e210312 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x1dc4ce3c ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x201292f7 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x399794ce ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x3b78db2e ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x426b89e4 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x5dd7b130 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x60fa67a3 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x6454737d ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x6e50c0e2 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x95fe5bfd ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xa89de3c8 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xb4e7056f ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc7dbc108 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xd082a450 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xea51f33b ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xeab5ec99 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/staging/brcm80211/brcmfmac/brcmfmac 0x890488ca bcmsdh_remove +EXPORT_SYMBOL drivers/staging/brcm80211/brcmfmac/brcmfmac 0x9f43cbff bcmsdh_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x22445af3 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xde5d774e adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xea61b446 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xf0da73ab adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1402a04c iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1b78383b iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x23b84f4f iio_trigger_find_by_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x27bfd718 iio_triggered_ring_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2f4c8503 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3be7d454 iio_trigger_dettach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x43039086 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4404d42f iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4eb9f9a1 __iio_change_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x59c1d2d9 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x59cec14e iio_triggered_ring_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5fc9a2d9 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5ff6d4d3 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x600598a8 iio_read_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x62a5e811 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x63509298 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x65821463 iio_write_ring_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x65d5be1d iio_free_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x68330c44 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6fbbf364 iio_push_or_escallate_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7844aa1c iio_scan_el_store +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x88a13769 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8d24d52e iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8dbdacd9 iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8f0b95eb iio_read_ring_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8fe16004 iio_scan_el_ts_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x973626a4 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x986b03e5 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ed1c87b iio_alloc_pollfunc +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9f42c1b3 iio_ring_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa2cf5a55 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa2ec602e iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa89b48b3 iio_remove_event_from_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa8adc664 iio_device_register_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac7b5439 iio_ring_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb08f1471 iio_trigger_attach_poll_func +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbfe4067c iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc0c3d728 iio_store_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc508fd67 iio_device_unregister_trigger_consumer +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd11bace3 iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd139ac83 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd28cce54 iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf7ec7bd iio_get_new_ida_val +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf4366812 iio_scan_el_ts_store +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x1d050de5 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x36afddad ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x030b7086 iio_mark_update_needed_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x094f5c14 iio_sw_poll_func_th +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0eaf0670 iio_sw_ring_preenable +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x18b61332 iio_read_last_from_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x2e11feb8 iio_mark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3966aa1c iio_request_update_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x49a96ea4 iio_unmark_sw_rb_in_use +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4a5ba060 iio_get_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4d544f9c iio_rip_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x63ac576c iio_sw_trigger_bh_to_ring +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9121bb76 iio_get_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x94cadb38 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9bf10a94 iio_store_to_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa1d13fa0 iio_set_length_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xaa32fa0d iio_set_bytes_per_datum_sw_rb +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd872c564 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x0b63ead8 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x1d965596 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x24cb55f7 tm6000_register_extension +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x02bdc9c0 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x25469a85 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x26361020 usbvideo_register +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x3b6f0b7b usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x57052388 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x60f505e1 usbvideo_Deregister +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0x79172f82 RingQueue_Enqueue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xadcd846e RingQueue_Flush +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xd26d1f7c RingQueue_Dequeue +EXPORT_SYMBOL drivers/staging/usbvideo/usbvideo 0xeab3c96b usbvideo_TestPattern +EXPORT_SYMBOL drivers/target/target_core_mod 0x011963ce transport_generic_handle_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x03ced9e6 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x1012ac64 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x10e05b8c transport_release_cmd_to_pool +EXPORT_SYMBOL drivers/target/target_core_mod 0x15bef01a transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x1958e975 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x23e17afc transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x262a4ddd fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a4e9ad7 transport_asciihex_to_binaryhex +EXPORT_SYMBOL drivers/target/target_core_mod 0x2c7b50d0 transport_generic_free_cmd_intr +EXPORT_SYMBOL drivers/target/target_core_mod 0x304c6ef0 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x32c74628 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x37029af6 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x40899933 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x49761f45 transport_get_lun_for_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x4e6cb041 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x537def49 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x53c41c49 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x59699708 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x5eb0fb3c transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x61b41362 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x6472bf87 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x673a1801 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x68f1a05c transport_get_lun_for_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x6c60e783 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6dee4f1b transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0x6e542307 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7989b755 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7b8c8ec2 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7cad9881 transport_device_setup_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x822e3b0a transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x868f26d9 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x8ee770fd transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x8fa1878f transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x90a4cba7 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x9174677a core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x94be58d4 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x98b9918a transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x99077a0e sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x9f1ee3ac transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa416990d sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xa5b1feab transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0xa69288ff transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0xb96e2764 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xce25c442 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0xcfad9a0c transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xcfd4087c core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xd1022cd6 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xd5b19c7b transport_free_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe006f6f9 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3b2f620 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xe48325ee core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xfaaab471 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xfcd22a33 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xfe456a08 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xff383576 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/telephony/phonedev 0x402af633 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x8c3696f7 phone_register_device +EXPORT_SYMBOL drivers/thermal/thermal_sys 0x5dfe2f5a thermal_zone_device_update +EXPORT_SYMBOL drivers/thermal/thermal_sys 0xc04fa735 thermal_cooling_device_register +EXPORT_SYMBOL drivers/thermal/thermal_sys 0xd66542f9 thermal_zone_device_unregister +EXPORT_SYMBOL drivers/thermal/thermal_sys 0xd7cac334 thermal_zone_device_register +EXPORT_SYMBOL drivers/thermal/thermal_sys 0xe1e1bb6a thermal_cooling_device_unregister +EXPORT_SYMBOL drivers/thermal/thermal_sys 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL drivers/thermal/thermal_sys 0xecc6147e thermal_zone_unbind_cooling_device +EXPORT_SYMBOL drivers/thermal/thermal_sys 0xf6492100 thermal_zone_bind_cooling_device +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x8d9391be sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x109896f3 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x23b6f5ea usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x36be505c usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x60463c1a usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x79778296 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x89f3584e usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8c853f5f usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x965b9ddf usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa4ebbd9d usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa9bd1fd2 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xade2d0f3 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcd14eba5 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcf3609f1 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd7e22a8c usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdeb33184 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x880ae7e1 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd1c65b22 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x10e05c66 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x9543cb78 lcd_device_unregister +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x7f746ee8 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/syscopyarea 0x0ae608b4 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x6bb5a840 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x5be395d6 sys_imageblit +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x187a5966 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x58266476 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x234ec6cd w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x239f478a w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x3ef8b5ff w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6df1e9b3 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/wire 0x2cb66f07 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x56ce1ce3 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x7d23778a w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xdcfa90e0 w1_register_family +EXPORT_SYMBOL fs/configfs/configfs 0x066f8c2c config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x517e0a75 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x55117f8a config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x588321d2 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x63d605d8 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x6cbc7a6d config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x844a5a3a configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x89241eca configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xccb3ed5b config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xdce4bd93 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xe77e515f configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xf648cc71 config_item_init_type_name +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0f6f008a __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x1833b51d fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x228e4641 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x268d3b72 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x290b3b2d __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2b7e8083 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x40d6d148 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x49104dd5 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x57c0ab9c __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x61574929 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x63c4281f fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x70a6f66a fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x72b21a11 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7d39ffe9 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x8070834e __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8c40960d __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x8d036488 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x986d1ab2 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xa2dc85e9 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xa33becd2 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xa60540b7 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xb8abac39 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xe22bf72f fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xe603bd45 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xe843de68 __fscache_update_cookie +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/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x09e94512 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x143094f2 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x31b8885c qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x8e7ace8f qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd39d6fb9 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 0x036eebea lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x0ccd777b lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x1667a0ea lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x1a6d5582 lc_put +EXPORT_SYMBOL lib/lru_cache 0x20266313 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x3efcd2ae lc_set +EXPORT_SYMBOL lib/lru_cache 0x4a292611 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x5e61e5f6 lc_get +EXPORT_SYMBOL lib/lru_cache 0x65b393b3 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xb038f3fc lc_changed +EXPORT_SYMBOL lib/lru_cache 0xb07a1786 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xba0010c4 lc_create +EXPORT_SYMBOL lib/lru_cache 0xc70f4b97 lc_del +EXPORT_SYMBOL lib/lru_cache 0xd8b872f4 lc_find +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +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 0x02639652 register_8022_client +EXPORT_SYMBOL net/802/p8022 0xbc6804fe unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0xc35e7d20 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xe7698c41 destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x1ce8236c unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0xadc5c4c0 register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x01b7ea1b p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x09c6be24 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x0d1ac435 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x14dd6c28 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x16acc9bf p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x1a20238b p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x1e21c53e p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x21c89f74 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x25aca6dd p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x2e169192 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x343d78ce p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3903c118 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4cd21ce0 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x581df08a p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x660b1ab9 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x7370abeb p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x740597bc p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x743407de p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7d0eb2bb v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x7d55d386 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x7ef054d9 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x8d92a914 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x8f868e9c p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x956f50a4 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x959eac2e p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x9ab544e3 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x9afb8e25 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa2bce8b7 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xa38e2f17 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xab7f077c p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xabbff5a5 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xbb1f555e p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xc52b5105 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xca9082ff p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xd0c332cb p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0xd8762343 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe6355b60 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xe9952552 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xf1643bb4 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xf3056d17 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf37806c8 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xfa681bec p9_client_getattr_dotl +EXPORT_SYMBOL net/appletalk/appletalk 0x4b937e96 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x96b25c88 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xa96e3468 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xc4a6e43b atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x0bb4909f atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x11d7d2df vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x534d46a4 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x6683f61e atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x89721bea register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x91900746 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 0xaf33ceab atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xca630ce5 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xd3d24b6f deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xd6950ee9 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xe3b96589 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xe855dafc atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xf13284e5 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0bb576fa ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x42608d03 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x7353f598 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x75bc6031 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x896348c0 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8e9bcee8 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9518fc12 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe0c61a67 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xfebd6b77 ax25_header_ops +EXPORT_SYMBOL net/bluetooth/bluetooth 0x09b24cd3 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0b993ea4 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x159d084b bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1dec1373 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x24913fee hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2bc1aa98 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x352b01a3 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x35e6184f hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x41c10b16 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x513557d1 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51c4e73b hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x638bd3b7 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x68445f33 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6e1ae7a5 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74fd08cc hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x78e1840c hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a01a190 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a21b289 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x80c1b3da hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9308e833 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa63347ea bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xacaf348a bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf165d5b bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbefeb30f bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc1c8f40f hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc6c273db hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8df5646 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcfd8d264 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd49c8bdc hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdbe5d52b bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xddced8c7 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xebeb4158 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf6ae9b0b bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff279e93 hci_register_proto +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x1e7708e0 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1fe706e2 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2f9209a7 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe83fd9c9 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client +EXPORT_SYMBOL net/caif/caif 0x0817e7b5 cfpkt_pad_trail +EXPORT_SYMBOL net/caif/caif 0x10f94bd6 cfpkt_add_trail +EXPORT_SYMBOL net/caif/caif 0x14e6398a cfcnfg_create +EXPORT_SYMBOL net/caif/caif 0x1771f743 cfpkt_create +EXPORT_SYMBOL net/caif/caif 0x185acf16 cfpkt_more +EXPORT_SYMBOL net/caif/caif 0x1ee2553f cfpkt_extr_trail +EXPORT_SYMBOL net/caif/caif 0x22d180c9 cfpktq_create +EXPORT_SYMBOL net/caif/caif 0x29bffbd6 cfpkt_setlen +EXPORT_SYMBOL net/caif/caif 0x2b147782 cfpkt_append +EXPORT_SYMBOL net/caif/caif 0x2bd016b7 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x2f7b3f4c cfpkt_peek_head +EXPORT_SYMBOL net/caif/caif 0x3af71e87 cfpkt_create_uplink +EXPORT_SYMBOL net/caif/caif 0x47d8b9eb caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x52b94ef4 cfpkt_getlen +EXPORT_SYMBOL net/caif/caif 0x56732c4e cfpkt_raw_append +EXPORT_SYMBOL net/caif/caif 0x5e42b76f cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x88b142f8 cfpkt_raw_extract +EXPORT_SYMBOL net/caif/caif 0x8df26244 cfcnfg_disconn_adapt_layer +EXPORT_SYMBOL net/caif/caif 0x941f5611 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x98311fde cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x9b1ad75f cfpkt_erroneous +EXPORT_SYMBOL net/caif/caif 0x9cfb3192 cfpkt_log_pkt +EXPORT_SYMBOL net/caif/caif 0x9e640315 cfpkt_dequeue +EXPORT_SYMBOL net/caif/caif 0xb4ed1944 cfpkt_split +EXPORT_SYMBOL net/caif/caif 0xbc0db19a cfpkt_destroy +EXPORT_SYMBOL net/caif/caif 0xbcd5d6f4 cfpkt_iterate +EXPORT_SYMBOL net/caif/caif 0xcecdaa38 cfpkt_queue +EXPORT_SYMBOL net/caif/caif 0xd0edbf1f cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xddd9fc79 cfcnfg_add_adaptation_layer +EXPORT_SYMBOL net/caif/caif 0xe038e80f cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0xe3bab9f9 cfpkt_addbdy +EXPORT_SYMBOL net/caif/caif 0xe443d258 cfpkt_qcount +EXPORT_SYMBOL net/caif/caif 0xe4ddc5d4 cfpkt_qpeek +EXPORT_SYMBOL net/caif/caif 0xe5e435e3 cfpkt_add_body +EXPORT_SYMBOL net/caif/caif 0xe74341f4 cfpkt_clone_release +EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf +EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer +EXPORT_SYMBOL net/caif/caif 0xf919aa5d cfpkt_tonative +EXPORT_SYMBOL net/can/can 0x848262e3 can_send +EXPORT_SYMBOL net/can/can 0x9a293856 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xab56b174 can_proto_register +EXPORT_SYMBOL net/can/can 0xcf87eceb can_proto_unregister +EXPORT_SYMBOL net/can/can 0xfc5d3efd can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x00671747 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x087cb619 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0fd330dd ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x20b5fc6d ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x20f601bf ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x24531796 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x2777adfe ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x28c68bd9 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x2cabd08d ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33c755e1 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x349890be ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x3cf75e66 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x40af7b84 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x46c318b4 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x4db65539 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5248fbd4 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x54c539b1 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x55e72501 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5f265179 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x67486fa5 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x68fe7222 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x6aa98b5f ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x6edd5438 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x808288e2 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x814ea8ee ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x815a3e6b ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x8c9eec88 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x961f87b1 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x96940cb6 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x97eea27a ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x9a7b39bf ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x9c4b1f36 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x9d8cee51 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa01e4380 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xa3eb59de ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa81cf0c4 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xab0aed02 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb39dd97e ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb5f8e0a0 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xc1246820 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc88d633a ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcf4acc3a __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xd0228796 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0xd2ac995d ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3bdc97f ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xd5f9d9f8 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xe5801c76 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xec4815a5 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf089bae7 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf7b746e6 ceph_release_page_vector +EXPORT_SYMBOL net/ieee802154/ieee802154 0x365d6a00 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3a71699e ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3a956c8f wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3d15d33e wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3f01c979 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4d1a40b8 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x57618e6f ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x66bdd168 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb67e8503 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbe4b1025 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe81ace7c ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf4f55df6 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf7d02353 wpan_phy_for_each +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x3b1e1851 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd42545af arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xdd78de96 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x0263b563 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x60f808e5 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb83a905a ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x198fc1cb nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1deafea8 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1e5d3e0c nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x376f5787 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x47fd4f15 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xba8389e6 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf27796e0 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x77df2a8e xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xeb510460 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4c0a0136 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x68df7acf ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xbc5fd622 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc5e49025 ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x27ff4a4b xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x8aa830ba xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x18061cea xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe478fd16 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x31d91bbf ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3a97be48 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3f923249 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7a9d8cb5 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9032dad3 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9fd03921 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc2a396a6 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xedb86dcf ircomm_data_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 0x0a646720 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x108d34ab 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 0x2d3765bc hashbin_find +EXPORT_SYMBOL net/irda/irda 0x317ed90d alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x433f562f irttp_data_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 0x4ec6ce4d irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x538d5d22 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x5599891b irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x572583cf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x59fcc433 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x5f55c3a2 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x62747adf irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x6359f7ba irlmp_connect_response +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 0x740317ce irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x74c6eb16 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7aa1ddbc irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x7de04a81 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x80da7829 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x8a15852e irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9842ad22 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9aed27e5 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x9c3b1ded async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xa4f503ab irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xa6cb5b68 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xa8246bdc irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xaa8a11e0 irlap_open +EXPORT_SYMBOL net/irda/irda 0xaafad306 proc_irda +EXPORT_SYMBOL net/irda/irda 0xac0c92ac irlap_close +EXPORT_SYMBOL net/irda/irda 0xb14b36f7 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xb40bc04c iriap_close +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 0xbb065c3b irttp_flow_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 0xbf285a4c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc3a512dd hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xc689985c irttp_dup +EXPORT_SYMBOL net/irda/irda 0xd3386c41 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xd7275376 iriap_open +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +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 0xa6151d90 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x03bdee73 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x1f809024 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x28f18dc9 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x49dcf875 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x5e093d70 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x9c17ad14 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xcd12eb20 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xdca36dae lapb_connect_request +EXPORT_SYMBOL net/llc/llc 0x19bd7903 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x5c456c21 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x8026902a llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xb380201e llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xb7123542 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0xd62931e0 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xf80b5d3c llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/mac80211/mac80211 0x01700b5d ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x055ab442 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x072f1541 ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0x0a78745c ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x17387d30 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1974279a __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x23406131 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x26366414 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x26dc8af0 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x2932d0a9 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3434f943 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3d8f0e3f ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x45ed9315 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x4a5d998c ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4d56f095 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x511bed5e rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x54a49621 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x550eb176 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x560a3bff ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x5710849a ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x5a4a601c ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x5ccaf2f7 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x602274ef ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x620bc037 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x6220de05 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x675c0e79 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x69ed8f0a wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x757defaa ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x75bf0a03 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x79fe1de1 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x81dc63bc ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8317ee8d ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85df438e ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x92117796 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x9a12bde1 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x9b3a921c ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x9c6773c8 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xa0cd3886 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa6e523bb ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb367f1eb __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xb71f5be3 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc5138a57 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd2de34e6 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xe1c906e8 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xe5b3135f ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xe69bd096 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0xe8f26598 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xecf13b53 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf1c16c55 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf39e7e07 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf98ced90 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xfb0dd823 ieee80211_scan_completed +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x075d32ff ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0da37e75 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x152f3301 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1c2c59be ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x22436316 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x24956036 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x285f12f1 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2ec0579f ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x71261103 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7a4c9290 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc74c3336 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xec3551c5 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x288658fc __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x5f06a9b7 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xbb8f855d __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x00dd7862 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x15254ac8 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x190c5c6b xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x2c1c9654 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5c28e439 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x7c0fe97c xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x9416b941 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x961bd154 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xa6499b90 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd6778b77 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xd7d053c0 xt_register_target +EXPORT_SYMBOL net/phonet/phonet 0x1119e612 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x28cb8a9b pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x4a742eb7 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x5b5acede phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x8b54c02d phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x8ebf573b phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xb14dcf8e pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xd66257ee pn_sock_unhash +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0dc299d8 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1e47cd81 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3de41109 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x405431e6 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x55904db6 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x67088b04 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6c16e3e4 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6f45fe91 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x73e5936d rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x88a22e4d rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9290d438 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x98e3bcbc rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x993535a2 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbd94cbb4 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf02a9f59 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3228f806 svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb518363b xdr_terminate_string +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xa910dc2c register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x12844e27 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xabe69964 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x00976b91 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x05164718 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x08f9af90 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x12fa5abc cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x1778d77e cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x1887ea69 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x1a360a5b cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x1de6855d cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x1f4fec26 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x3b5080da cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x3b81d2ff cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x3c6c7dfe cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x47b37b39 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x567ff838 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x57e3268d cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x5823a282 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x5a869ab3 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x5c807391 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x67f77aa8 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x6831ddb8 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x699cf921 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d942cac wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x6e1bbb75 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x6f563133 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x70ed0d5c wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x72468cba cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x76a31335 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8039e9ed wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x844188e2 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x86b111f1 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x94e75baa cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x970df9b9 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9b4b244b cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xabb4fb45 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb30284c4 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xb732d1be ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xb9e52d72 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xc00b95f6 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xc3e0aba0 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xc61b1c10 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc653709a wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xd2a8c03a cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xd88462c8 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xe2d6acb5 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf19a0b52 cfg80211_michael_mic_failure +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 0x33d8676f lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x53654c76 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x5f555fc7 lib80211_crypt_deinit_entries +EXPORT_SYMBOL net/wireless/lib80211 0x6d17388a lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xbec2c942 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xc827ded2 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe27534a0 lib80211_crypt_quiescing +EXPORT_SYMBOL net/wireless/lib80211 0xf1acf1be lib80211_crypt_info_free +EXPORT_SYMBOL sound/ac97_bus 0x442898e2 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x2faa634f snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/snd-hwdep 0xa08c2fc8 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x05b9c3ba snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1d2d01dc snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x397171d8 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x45e1c568 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4ad0763e snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4f97ac82 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5128e261 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6042dd1f snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6343c2a3 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x64d6b162 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x707b9367 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x78e1dc71 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x99ba9f71 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9f5690ca snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa9907792 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb7477302 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xddfa01e4 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x8e25e54e snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0ac7b911 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0d54dc61 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2182b98a snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2303c263 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x262a9986 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2a6e8ca2 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x32fb4728 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x725530d4 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa20e2e8f snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa8768122 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaa7f0379 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc6935c6f snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd6ca57c8 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd6d682bf snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe030d439 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe2483ad6 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe404be6b snd_ac97_pcm_double_rate_rules +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 0xdd971799 snd_usbmidi_create +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x004a6328 inet_shutdown +EXPORT_SYMBOL vmlinux 0x00712e20 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0081030e omap_vram_reserve +EXPORT_SYMBOL vmlinux 0x0087bd94 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x00892ed0 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x008db7bc md_write_end +EXPORT_SYMBOL vmlinux 0x009b0f83 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00e80ae0 snd_timer_close +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x00f997a2 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0108b997 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01189386 log_wait_commit +EXPORT_SYMBOL vmlinux 0x0133c1bc tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x015059e4 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0x015ba4f4 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x016005ed dev_addr_add +EXPORT_SYMBOL vmlinux 0x0162e01c dev_mc_sync +EXPORT_SYMBOL vmlinux 0x0181dedb sock_register +EXPORT_SYMBOL vmlinux 0x0182f862 sock_no_recvmsg +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 0x01a8a7fe omap_dss_start_device +EXPORT_SYMBOL vmlinux 0x01d183e6 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x0206d8b6 param_ops_string +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0212d75c napi_gro_receive +EXPORT_SYMBOL vmlinux 0x02192581 block_truncate_page +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x022be005 con_is_bound +EXPORT_SYMBOL vmlinux 0x02369096 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x024bf88f omap_modify_dma_chain_params +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02521d6c cad_pid +EXPORT_SYMBOL vmlinux 0x02573b36 omap_disable_dma_irq +EXPORT_SYMBOL vmlinux 0x0257dea9 simple_getattr +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x0293a1d1 blk_complete_request +EXPORT_SYMBOL vmlinux 0x0296321f otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x029ccdc8 block_write_full_page +EXPORT_SYMBOL vmlinux 0x02a0d156 gpmc_prefetch_reset +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02b29bd4 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x02b42398 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x02b46571 module_layout +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy +EXPORT_SYMBOL vmlinux 0x03073b97 omap_writel +EXPORT_SYMBOL vmlinux 0x030b37b4 kernel_read +EXPORT_SYMBOL vmlinux 0x03140bac snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x03333bf8 flush_old_exec +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034e864a nf_setsockopt +EXPORT_SYMBOL vmlinux 0x03561d25 uart_resume_port +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037ad1d6 snd_ctl_notify +EXPORT_SYMBOL vmlinux 0x037c6b65 register_netdev +EXPORT_SYMBOL vmlinux 0x039022a8 register_nls +EXPORT_SYMBOL vmlinux 0x03bea920 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03ec8684 pid_task +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04034839 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x04185a27 km_state_expired +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0435eb3a __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x045aaf3c security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x0463318e journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04947e72 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x04b05d59 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x04cb1ace blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x04cb9b99 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x04ccce06 __serio_register_port +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04dc385e bioset_free +EXPORT_SYMBOL vmlinux 0x04e38daa blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04f116b8 save_mount_options +EXPORT_SYMBOL vmlinux 0x050772fb dev_disable_lro +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x052bb866 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x0532cfaf genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05c295d6 generic_make_request +EXPORT_SYMBOL vmlinux 0x05d33006 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0625a297 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x0632191e blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x065a4f83 journal_flush +EXPORT_SYMBOL vmlinux 0x067769b1 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06a0275f find_inode_number +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x073b164d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x0778d086 rfkill_register +EXPORT_SYMBOL vmlinux 0x077a52ea sock_wmalloc +EXPORT_SYMBOL vmlinux 0x077aa16d scsi_register_driver +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079e9d2d commit_creds +EXPORT_SYMBOL vmlinux 0x07a5f503 omap_readw +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 0x07fa760e otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x0806112e jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x0839e468 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x083a3073 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x08453439 d_genocide +EXPORT_SYMBOL vmlinux 0x08699f57 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x087c42f2 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x0894fb19 tc_classify +EXPORT_SYMBOL vmlinux 0x08a4c534 omap_mcbsp_get_rx_delay +EXPORT_SYMBOL vmlinux 0x08a4c7b9 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x08a7a820 dev_emerg +EXPORT_SYMBOL vmlinux 0x08d22c95 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x08fe9bdb pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x09080e2b dm_io +EXPORT_SYMBOL vmlinux 0x090de9ce simple_fill_super +EXPORT_SYMBOL vmlinux 0x091412fb posix_acl_permission +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x09469d6b flex_array_shrink +EXPORT_SYMBOL vmlinux 0x09481b3d omap_dss_find_device +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x094a9b66 downgrade_write +EXPORT_SYMBOL vmlinux 0x0976d569 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a80c30 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09fd276e mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a324df1 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x0a3de309 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x0a877cee journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0ac0f14e rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad049ea netdev_crit +EXPORT_SYMBOL vmlinux 0x0aea63fb inode_lock +EXPORT_SYMBOL vmlinux 0x0afbe65b xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x0b0b3a0b omap_dss_stop_device +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b17a043 register_console +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b3ed967 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b4929dc tty_port_close +EXPORT_SYMBOL vmlinux 0x0b4dfd85 rt6_lookup +EXPORT_SYMBOL vmlinux 0x0b71d9ec snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7d4288 flush_signals +EXPORT_SYMBOL vmlinux 0x0b88128c wake_up_process +EXPORT_SYMBOL vmlinux 0x0bb5bdb9 clk_get_rate +EXPORT_SYMBOL vmlinux 0x0bca20de d_alloc_root +EXPORT_SYMBOL vmlinux 0x0bca6fef __elv_add_request +EXPORT_SYMBOL vmlinux 0x0bce91c7 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x0be83170 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x0bf6239f create_proc_entry +EXPORT_SYMBOL vmlinux 0x0c1933e0 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0c51d7e2 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x0c564f0f scsi_print_result +EXPORT_SYMBOL vmlinux 0x0c58f7a4 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7e4961 led_brightness_set +EXPORT_SYMBOL vmlinux 0x0c81ffe0 posix_test_lock +EXPORT_SYMBOL vmlinux 0x0c85f7b4 journal_start_commit +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9d60c0 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cd289b2 scsi_get_command +EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table +EXPORT_SYMBOL vmlinux 0x0cdf27eb sock_init_data +EXPORT_SYMBOL vmlinux 0x0cf48a0d sock_recvmsg +EXPORT_SYMBOL vmlinux 0x0cfd573a inet_frags_init +EXPORT_SYMBOL vmlinux 0x0d212c8c jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x0d2afc57 snd_dma_alloc_pages +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d4868e6 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6316de seq_open +EXPORT_SYMBOL vmlinux 0x0d6b084c ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x0dccd294 vmtruncate +EXPORT_SYMBOL vmlinux 0x0de1ff7a jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x0dfc764c snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0x0e05bae5 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x0e1d5c8c tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e746f6b input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x0e79fc7b force_sig +EXPORT_SYMBOL vmlinux 0x0e862be7 user_path_at +EXPORT_SYMBOL vmlinux 0x0eb20620 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x0ebaccad scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x0ec61108 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0ee08c01 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x0f31b21f dquot_acquire +EXPORT_SYMBOL vmlinux 0x0f52b288 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x0f5a28a2 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x0f639cb4 sock_create +EXPORT_SYMBOL vmlinux 0x0f800f45 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x0f8eabb6 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x0f9a9d37 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x0fa0e9a9 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x10134697 register_key_type +EXPORT_SYMBOL vmlinux 0x1019f22c key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x10257007 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x106a9553 dqput +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x10752dab mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x10b2014c nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x10cc85f0 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x10d02ece blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11183cd1 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x111c927a scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112748bd omap_vrfb_adjust_size +EXPORT_SYMBOL vmlinux 0x11458beb tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x1157779e dma_pool_create +EXPORT_SYMBOL vmlinux 0x115d4380 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11a0831b simple_link +EXPORT_SYMBOL vmlinux 0x11a9e811 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x11c3fcaa ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x11d7391c __ip_dev_find +EXPORT_SYMBOL vmlinux 0x11dfb6ce dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11ff84a8 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x12247c0a kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x122eaf70 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x125ef95d napi_get_frags +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x12800d06 omapdss_default_get_recommended_bpp +EXPORT_SYMBOL vmlinux 0x12970b02 bdi_destroy +EXPORT_SYMBOL vmlinux 0x1298ac43 mod_timer +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12ae1151 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x12b7107a xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x12d3fb63 snd_pcm_new +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e489f8 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x12e60a59 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x12f0e20c udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13095525 param_ops_uint +EXPORT_SYMBOL vmlinux 0x131c6685 block_commit_write +EXPORT_SYMBOL vmlinux 0x1329969a rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x132cefdc jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x1334264d ___dma_page_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x1358e8fa page_readlink +EXPORT_SYMBOL vmlinux 0x13a98c22 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x13af3832 icmpv6_send +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13dd01d3 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x13ebc04c dm_table_get_md +EXPORT_SYMBOL vmlinux 0x1417fa39 snd_info_free_entry +EXPORT_SYMBOL vmlinux 0x1470247a mdiobus_scan +EXPORT_SYMBOL vmlinux 0x14c3eb97 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x150c870e genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x1513aefa pneigh_lookup +EXPORT_SYMBOL vmlinux 0x1530083b bio_add_page +EXPORT_SYMBOL vmlinux 0x15328862 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x15331242 omap_iounmap +EXPORT_SYMBOL vmlinux 0x1536702a ip_defrag +EXPORT_SYMBOL vmlinux 0x15391b81 iget_locked +EXPORT_SYMBOL vmlinux 0x153a4b39 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x1545d66f fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1564af73 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x15783253 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x159a013a lock_sock_fast +EXPORT_SYMBOL vmlinux 0x15afcb04 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x15b70947 tcp_poll +EXPORT_SYMBOL vmlinux 0x15c12c81 generic_removexattr +EXPORT_SYMBOL vmlinux 0x15d55280 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x15e05fee unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x15e1b319 dentry_unhash +EXPORT_SYMBOL vmlinux 0x15f64db8 inet6_release +EXPORT_SYMBOL vmlinux 0x1605ead7 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x161afa27 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1639016c set_binfmt +EXPORT_SYMBOL vmlinux 0x1669bf25 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x1683cf4d seq_read +EXPORT_SYMBOL vmlinux 0x16c745c2 sock_wfree +EXPORT_SYMBOL vmlinux 0x16d35aca snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf +EXPORT_SYMBOL vmlinux 0x1728892f uart_match_port +EXPORT_SYMBOL vmlinux 0x175236f4 omap_mcbsp_start +EXPORT_SYMBOL vmlinux 0x175a9080 contig_page_data +EXPORT_SYMBOL vmlinux 0x178ea270 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17c7b399 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17fd03fe inode_init_owner +EXPORT_SYMBOL vmlinux 0x18137ee9 __register_chrdev +EXPORT_SYMBOL vmlinux 0x181f5990 __block_write_begin +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x1841fc05 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x18469a98 security_path_symlink +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x18613672 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x18793dd3 param_set_byte +EXPORT_SYMBOL vmlinux 0x18d52256 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x191109e6 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x192fd592 load_nls_default +EXPORT_SYMBOL vmlinux 0x193625b5 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x194128c3 omap_mcbsp_get_fifo_size +EXPORT_SYMBOL vmlinux 0x194efaff skb_push +EXPORT_SYMBOL vmlinux 0x1950b898 mpage_readpage +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x197dc3b3 omap_set_dma_src_burst_mode +EXPORT_SYMBOL vmlinux 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x19b38aab nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19ca5f9b input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x19d4c2a4 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x19e61d0e follow_down_one +EXPORT_SYMBOL vmlinux 0x19e92440 flex_array_put +EXPORT_SYMBOL vmlinux 0x19ea56ca default_file_splice_read +EXPORT_SYMBOL vmlinux 0x19eab6bb mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19fb824f ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x1a11ac29 path_is_under +EXPORT_SYMBOL vmlinux 0x1a2c4235 elevator_change +EXPORT_SYMBOL vmlinux 0x1a5f6deb clk_set_parent +EXPORT_SYMBOL vmlinux 0x1a621cae bdi_unregister +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a73593f locks_copy_lock +EXPORT_SYMBOL vmlinux 0x1a73b349 __lock_page +EXPORT_SYMBOL vmlinux 0x1a882364 down_killable +EXPORT_SYMBOL vmlinux 0x1a9a4997 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x1aafdaf2 security_path_truncate +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1adcb661 ip6_xmit +EXPORT_SYMBOL vmlinux 0x1addc9d5 snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x1aee6232 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0615da serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x1b3bbcc8 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x1b442193 get_write_access +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b931880 ipv4_specific +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1babe60e omap_st_set_chgain +EXPORT_SYMBOL vmlinux 0x1bb5eef2 scsi_put_command +EXPORT_SYMBOL vmlinux 0x1bbcc317 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x1bdfc19c scsi_print_command +EXPORT_SYMBOL vmlinux 0x1be25d19 get_mem_type +EXPORT_SYMBOL vmlinux 0x1bf7cafb vfs_rename +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c23fbb3 nf_log_register +EXPORT_SYMBOL vmlinux 0x1c4f0a6b seq_open_private +EXPORT_SYMBOL vmlinux 0x1c56036e netdev_notice +EXPORT_SYMBOL vmlinux 0x1c6506d0 get_gendisk +EXPORT_SYMBOL vmlinux 0x1c6e4177 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x1c8ba0c8 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x1c95a3d5 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x1c98c506 snd_register_oss_device +EXPORT_SYMBOL vmlinux 0x1c9ed7cc truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ccc2d3f cdrom_release +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1cf0e589 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x1d23f7cd flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d6ff362 check_disk_change +EXPORT_SYMBOL vmlinux 0x1d7b310f d_splice_alias +EXPORT_SYMBOL vmlinux 0x1d9ad290 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x1da94b44 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x1dafd3ae register_cdrom +EXPORT_SYMBOL vmlinux 0x1db8f4ba mmc_add_host +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dda5b20 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x1dff5a0e inet_accept +EXPORT_SYMBOL vmlinux 0x1e1ad083 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x1e1bfd82 send_sig_info +EXPORT_SYMBOL vmlinux 0x1e24a8c5 kill_block_super +EXPORT_SYMBOL vmlinux 0x1e2509f1 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x1e30d5a5 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x1e4dca27 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x1e5641ec drop_super +EXPORT_SYMBOL vmlinux 0x1e60eb6c inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ecc8c88 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x1ed58cd1 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x1eedb1d6 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1efe6f22 kset_unregister +EXPORT_SYMBOL vmlinux 0x1effc917 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x1f28511b elv_add_request +EXPORT_SYMBOL vmlinux 0x1f3848db journal_forget +EXPORT_SYMBOL vmlinux 0x1f39a849 register_sound_midi +EXPORT_SYMBOL vmlinux 0x1f81339b tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x1f8a1050 inet_select_addr +EXPORT_SYMBOL vmlinux 0x1f9588a7 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x1f9be64a skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x1fa5be21 tcf_register_action +EXPORT_SYMBOL vmlinux 0x1fb406f9 tcp_prot +EXPORT_SYMBOL vmlinux 0x1fb9b00f input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x1fc96f4d elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x201babf5 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x205ec8de omap_dispc_register_isr +EXPORT_SYMBOL vmlinux 0x2068dba7 set_groups +EXPORT_SYMBOL vmlinux 0x206e1284 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x207ab50b block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x207c7c08 nla_append +EXPORT_SYMBOL vmlinux 0x209549e4 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x20a03b84 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x20b4ae8d scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x20f0ab5a sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x210ccf46 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x215144d8 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21669778 bio_map_kern +EXPORT_SYMBOL vmlinux 0x218a6d6e dma_mmap_coherent +EXPORT_SYMBOL vmlinux 0x21a73da3 I_BDEV +EXPORT_SYMBOL vmlinux 0x21fd96c8 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x22131cfb down_write_trylock +EXPORT_SYMBOL vmlinux 0x22178ab9 journal_set_features +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x22240f4c map_destroy +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223cc898 omap_vrfb_max_height +EXPORT_SYMBOL vmlinux 0x224e2e50 get_sb_single +EXPORT_SYMBOL vmlinux 0x225c9e46 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x225d5610 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x22616f4a block_invalidatepage +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2272794d blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a55c34 mount_single +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c4cc85 dquot_destroy +EXPORT_SYMBOL vmlinux 0x22d26cb7 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x22fdfe58 snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0x23100d88 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x2321f371 seq_write +EXPORT_SYMBOL vmlinux 0x23222e7f loop_register_transfer +EXPORT_SYMBOL vmlinux 0x2324f8e6 skb_store_bits +EXPORT_SYMBOL vmlinux 0x23297120 sg_miter_start +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x236bd24f filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x2371d8be blk_make_request +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23ac4098 end_page_writeback +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f56bef dquot_quota_off +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2400952f netif_device_detach +EXPORT_SYMBOL vmlinux 0x2444c7c8 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x2446b772 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246ab03e key_revoke +EXPORT_SYMBOL vmlinux 0x246f1131 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x248b34a9 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x24a4f4e4 install_exec_creds +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24b982b5 elv_rb_del +EXPORT_SYMBOL vmlinux 0x24be8ba5 override_creds +EXPORT_SYMBOL vmlinux 0x24c3e58c free_netdev +EXPORT_SYMBOL vmlinux 0x24c4273b max8998_write_reg +EXPORT_SYMBOL vmlinux 0x24dc8126 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x24e1b827 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x24ee4776 is_bad_inode +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x251515d6 setattr_copy +EXPORT_SYMBOL vmlinux 0x2526864d d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x254ea68f input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x2553a9ad poll_freewait +EXPORT_SYMBOL vmlinux 0x256b598c elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x2572330a find_get_page +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25877900 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x25d7ea7c snd_card_register +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25f29487 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x25f6cf0c radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x260230aa input_set_capability +EXPORT_SYMBOL vmlinux 0x260bab88 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x261c1766 __backtrace +EXPORT_SYMBOL vmlinux 0x2631cf8b i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x26347749 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0x263806d1 param_get_uint +EXPORT_SYMBOL vmlinux 0x263d5a6a omap_mcbsp_spi_master_xmit_word_poll +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2653415d jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x2657facd snd_pcm_suspend +EXPORT_SYMBOL vmlinux 0x26849659 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2695e7ce lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x26a5a2d0 serio_rescan +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26d109f4 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f8b0b9 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x270ba41b cfb_copyarea +EXPORT_SYMBOL vmlinux 0x27133b55 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x27250d43 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x27328c58 snd_pcm_lib_write +EXPORT_SYMBOL vmlinux 0x2755f38d write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279b366b param_get_ushort +EXPORT_SYMBOL vmlinux 0x27a3c859 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x27aaa9d0 param_set_charp +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27e3f782 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x283bd431 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x286398d0 journal_restart +EXPORT_SYMBOL vmlinux 0x287d9e76 init_special_inode +EXPORT_SYMBOL vmlinux 0x288545dd copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x28914841 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x2896c8bf dquot_transfer +EXPORT_SYMBOL vmlinux 0x2897fc48 omap_cfg_reg +EXPORT_SYMBOL vmlinux 0x28a0485d phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a6a736 __d_drop +EXPORT_SYMBOL vmlinux 0x28b89660 journal_extend +EXPORT_SYMBOL vmlinux 0x28be4799 snd_mixer_oss_notify_callback +EXPORT_SYMBOL vmlinux 0x28bfc8cf __scm_destroy +EXPORT_SYMBOL vmlinux 0x28ce38f6 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x28decfd7 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x28e84d4e tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x2901c1ed sg_miter_next +EXPORT_SYMBOL vmlinux 0x2928d226 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x29494acb bdput +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295eb824 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x29675946 wireless_send_event +EXPORT_SYMBOL vmlinux 0x2975e46c sk_common_release +EXPORT_SYMBOL vmlinux 0x298ec6c6 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x299aa3f0 da903x_query_status +EXPORT_SYMBOL vmlinux 0x29a51b70 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x29bc2c6a inet_csk_accept +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29cdd7b8 mdiobus_write +EXPORT_SYMBOL vmlinux 0x29dc8525 snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0x29e0f648 vfs_mknod +EXPORT_SYMBOL vmlinux 0x29fcedbe request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x2a0f7576 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x2a3144cb __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x2a3eb719 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x2a451706 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x2a76b8d5 ip6_route_output +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a898308 cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x2ab4ad2e d_validate +EXPORT_SYMBOL vmlinux 0x2ac6193b __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x2acc8bbf register_sound_special_device +EXPORT_SYMBOL vmlinux 0x2adaa52a simple_transaction_release +EXPORT_SYMBOL vmlinux 0x2ae5eb56 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x2af321e2 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0c3b68 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b311a50 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x2b31894f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x2b53e420 skb_split +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 0x2b7caa28 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x2b90cac8 is_container_init +EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba45b7d param_ops_short +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bbeeec1 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x2be4feee netif_napi_del +EXPORT_SYMBOL vmlinux 0x2be92c9e dev_notice +EXPORT_SYMBOL vmlinux 0x2bee3c79 bio_init +EXPORT_SYMBOL vmlinux 0x2bf95947 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x2c1cfa05 dev_err +EXPORT_SYMBOL vmlinux 0x2c1fbe83 revalidate_disk +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2d3cf2 ilookup5 +EXPORT_SYMBOL vmlinux 0x2c3b237a scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x2c68ad21 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x2c95067e mmc_free_host +EXPORT_SYMBOL vmlinux 0x2cc4cb03 snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0x2cc6fbdd neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x2d12e07c cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2cf50c jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d68299a jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x2d84004e journal_load +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d9e0e4b ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x2e1318d6 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e322cdf inet_sendpage +EXPORT_SYMBOL vmlinux 0x2e3e6300 snd_timer_global_register +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e69e486 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2eb30a11 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2edbcca9 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x2eefbb09 iget_failed +EXPORT_SYMBOL vmlinux 0x2ef77089 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f04182e kill_pgrp +EXPORT_SYMBOL vmlinux 0x2f10437a nf_log_packet +EXPORT_SYMBOL vmlinux 0x2f2a0975 journal_create +EXPORT_SYMBOL vmlinux 0x2f4b6261 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x2f648ef2 dput +EXPORT_SYMBOL vmlinux 0x2f90d40d input_set_keycode +EXPORT_SYMBOL vmlinux 0x2fa7e1fa kobject_del +EXPORT_SYMBOL vmlinux 0x2fb9d3ee snd_ctl_remove +EXPORT_SYMBOL vmlinux 0x2fbaa802 set_bh_page +EXPORT_SYMBOL vmlinux 0x2fdd8fe0 lock_may_write +EXPORT_SYMBOL vmlinux 0x2fe2fcd0 sock_no_bind +EXPORT_SYMBOL vmlinux 0x2ff67c82 seq_release +EXPORT_SYMBOL vmlinux 0x300267b9 bdget_disk +EXPORT_SYMBOL vmlinux 0x300c774c netlink_ack +EXPORT_SYMBOL vmlinux 0x301dbb2b netif_receive_skb +EXPORT_SYMBOL vmlinux 0x3028e855 init_timer_key +EXPORT_SYMBOL vmlinux 0x30306dc0 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x303cd8ee deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x306e788d mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308318e7 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x308aad56 omap_vrfb_min_phys_size +EXPORT_SYMBOL vmlinux 0x308fc6ae skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x3092d85e omap2_mcbsp1_mux_fsr_src +EXPORT_SYMBOL vmlinux 0x3094a7d1 d_add_ci +EXPORT_SYMBOL vmlinux 0x30a40cc1 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b53efa iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x30d1ef53 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30e864ee thaw_super +EXPORT_SYMBOL vmlinux 0x31034e81 stop_tty +EXPORT_SYMBOL vmlinux 0x31042fd4 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31307433 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x313341a3 _set_bit_le +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3148824d locks_init_lock +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x318c2e45 snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x3190b6e3 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31e2bc27 snd_pcm_mmap_data +EXPORT_SYMBOL vmlinux 0x31f27465 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x3210a0a9 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x321fb37a ilookup +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x327a44c2 simple_release_fs +EXPORT_SYMBOL vmlinux 0x328274e8 __ps2_command +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x3298b898 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x32a20e67 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x32d5d165 param_get_charp +EXPORT_SYMBOL vmlinux 0x32e2d606 skb_insert +EXPORT_SYMBOL vmlinux 0x3326dcdf linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x33b1fcfc sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x33b2e0c4 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0x33c5fbe7 cdev_del +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33eb8d52 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x340d710d unregister_nls +EXPORT_SYMBOL vmlinux 0x341b3489 __blk_end_request +EXPORT_SYMBOL vmlinux 0x34259fe7 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x342eca03 sock_no_listen +EXPORT_SYMBOL vmlinux 0x343143d6 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x345632d7 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x345d65ac alloc_file +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x348d07a3 kick_iocb +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x34918050 udp_disconnect +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b95f04 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x34f833bb flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x35020407 snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0x351ff127 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x3525a41d __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x35260ae2 ps2_end_command +EXPORT_SYMBOL vmlinux 0x3531b406 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x3535e674 brioctl_set +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x354538c5 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x35474990 phy_driver_register +EXPORT_SYMBOL vmlinux 0x3547c337 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x354cb3a8 get_user_pages +EXPORT_SYMBOL vmlinux 0x354efe42 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x35b6aff6 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x35b8c3bb __break_lease +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35da67f4 omap_writew +EXPORT_SYMBOL vmlinux 0x35fa431e bio_copy_user +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x361a86f6 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x363c84ac submit_bh +EXPORT_SYMBOL vmlinux 0x36537074 do_sync_read +EXPORT_SYMBOL vmlinux 0x36a6f662 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f22a5e vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x37031e7c cdrom_open +EXPORT_SYMBOL vmlinux 0x37200006 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x3731c959 bh_submit_read +EXPORT_SYMBOL vmlinux 0x37338e48 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x373f828c tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x377a1885 omap_mcbsp_get_tx_delay +EXPORT_SYMBOL vmlinux 0x377f84a5 security_path_chown +EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x3787ce0b sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x37a389c2 set_blocksize +EXPORT_SYMBOL vmlinux 0x37ba41de remove_proc_entry +EXPORT_SYMBOL vmlinux 0x37bc0de5 omapdss_dpi_display_disable +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c64f11 kill_fasync +EXPORT_SYMBOL vmlinux 0x37d81655 no_llseek +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x38133c8b dqstats +EXPORT_SYMBOL vmlinux 0x3818a97f tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x381cdbfa scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x38513362 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x387c2baf radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a28a1e wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x38b29bc4 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x38b3f22a insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x38c5fa9b do_truncate +EXPORT_SYMBOL vmlinux 0x38e8378d pgprot_kernel +EXPORT_SYMBOL vmlinux 0x38f377ef scsi_device_get +EXPORT_SYMBOL vmlinux 0x38f52dd4 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x390c5bd0 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x3946e82e mii_check_media +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x397974af journal_release_buffer +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3981af54 fput +EXPORT_SYMBOL vmlinux 0x3998d32c dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x399957b0 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x39a6e960 snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39c9b992 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x39d0c1ff dcb_setapp +EXPORT_SYMBOL vmlinux 0x39e37cde get_phy_id +EXPORT_SYMBOL vmlinux 0x3a0ab159 security_path_mknod +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a4ffc6f tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x3a651030 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x3a6961a9 register_sound_special +EXPORT_SYMBOL vmlinux 0x3a7dbe98 param_ops_long +EXPORT_SYMBOL vmlinux 0x3a8788df __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3ac5b1fc cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x3aed429b blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x3af246fb neigh_parms_release +EXPORT_SYMBOL vmlinux 0x3b22818a snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x3b263ed1 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b4c598f mntget +EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages +EXPORT_SYMBOL vmlinux 0x3b9f5879 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x3ba3ceab jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x3baa4cee jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x3bba45cd journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x3bc209d1 sock_i_ino +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c027887 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3fe78e omap_dss_get_device +EXPORT_SYMBOL vmlinux 0x3c552e2a snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0x3c57f03c redraw_screen +EXPORT_SYMBOL vmlinux 0x3c60ab35 dquot_file_open +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cd2bc8f register_sysctl_table +EXPORT_SYMBOL vmlinux 0x3cd892f2 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cfc6ed6 inet_listen +EXPORT_SYMBOL vmlinux 0x3d20f31c snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0x3d2348ab follow_down +EXPORT_SYMBOL vmlinux 0x3d3be31a filemap_fault +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d671aa1 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x3d70f3c5 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da9bff1 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x3de8d325 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x3dec103e kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e02560d end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x3e054527 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x3e2b16e1 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e470eb7 register_quota_format +EXPORT_SYMBOL vmlinux 0x3e6eb348 inet6_bind +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb391e8 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x3eb963ca key_task_permission +EXPORT_SYMBOL vmlinux 0x3ec6271a blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x3ec7fd13 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x3ed3c93a tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eddcfaa phy_device_free +EXPORT_SYMBOL vmlinux 0x3f01a734 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x3f0215e5 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4f8c63 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x3f6674f1 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x3f8e07fb snd_unregister_oss_device +EXPORT_SYMBOL vmlinux 0x3fd467cb scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x3fdbafa4 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x3ff131e9 bd_set_size +EXPORT_SYMBOL vmlinux 0x3ff33217 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405a16d2 filemap_flush +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4068eb51 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x406fc3e5 generic_write_sync +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x407a3275 omap_start_dma +EXPORT_SYMBOL vmlinux 0x409237ee inet_bind +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +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 0x40a71b87 replace_mount_options +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40b1fac2 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x40b7399c mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40dc1bcf init_buffer +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x411cb7a4 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x4139fdef elv_rb_find +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4149df27 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x41583b85 inode_init_once +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x416b2522 omap_get_var_config +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4201b59a __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x4222aa24 tty_port_put +EXPORT_SYMBOL vmlinux 0x42389b47 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x425456c9 cpu_cache +EXPORT_SYMBOL vmlinux 0x426dd16c wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42aa4e14 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x42c87c22 kernel_listen +EXPORT_SYMBOL vmlinux 0x42f580a1 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4310ab88 phy_find_first +EXPORT_SYMBOL vmlinux 0x43161601 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x432385b8 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x43293824 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x433f083f input_allocate_device +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x43613c1d may_umount +EXPORT_SYMBOL vmlinux 0x43712229 generic_writepages +EXPORT_SYMBOL vmlinux 0x439947cf __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x43b57f50 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x43c32cca truncate_setsize +EXPORT_SYMBOL vmlinux 0x43c3eb56 fb_class +EXPORT_SYMBOL vmlinux 0x43d6d566 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x43f4e6a6 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x440f604e tty_check_change +EXPORT_SYMBOL vmlinux 0x4414f75c netpoll_setup +EXPORT_SYMBOL vmlinux 0x441ed159 omap_get_dma_src_pos +EXPORT_SYMBOL vmlinux 0x441f3ed7 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x4426e883 filp_close +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x4458c8e3 journal_update_format +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x4464d676 _dev_info +EXPORT_SYMBOL vmlinux 0x447753ff dm_get_device +EXPORT_SYMBOL vmlinux 0x448212fa down_trylock +EXPORT_SYMBOL vmlinux 0x44a4c1d9 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x44b8bb33 d_path +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c4aafe skb_set_dev +EXPORT_SYMBOL vmlinux 0x44d308e7 current_fs_time +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e6ec4c bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x450118ef led_blink_set +EXPORT_SYMBOL vmlinux 0x456455a1 keyring_search +EXPORT_SYMBOL vmlinux 0x456e6dce radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4576da79 snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x459d3c6d tcp_proc_register +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45bfa951 md_write_start +EXPORT_SYMBOL vmlinux 0x45cbacf2 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x45ce9006 __nla_put +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x460b35a6 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x460ce4cd snd_unregister_device +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x4628dc33 omap_vram_alloc +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x4644669f d_rehash +EXPORT_SYMBOL vmlinux 0x465804ef cfb_fillrect +EXPORT_SYMBOL vmlinux 0x46716022 complete_request_key +EXPORT_SYMBOL vmlinux 0x46a8243c sk_dst_check +EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x46be5f08 mddev_congested +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x4706e9f3 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x470afafd ip_setsockopt +EXPORT_SYMBOL vmlinux 0x470d269e start_tty +EXPORT_SYMBOL vmlinux 0x4726e0b2 snd_device_free +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x477ab253 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x47868f78 input_event +EXPORT_SYMBOL vmlinux 0x47869762 kfree_skb +EXPORT_SYMBOL vmlinux 0x4791bcb1 generic_show_options +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47bd6420 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x47c6ecd6 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x47c6eff2 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x47f2d48c dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x4802dd48 sync_blockdev +EXPORT_SYMBOL vmlinux 0x482f4ec7 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x48344694 simple_rmdir +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485a46d2 generic_read_dir +EXPORT_SYMBOL vmlinux 0x488fb5a1 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x48917543 param_set_int +EXPORT_SYMBOL vmlinux 0x48935491 __bforget +EXPORT_SYMBOL vmlinux 0x48989907 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48c974fb ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x48e3b00a xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x48eb6994 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x494d65bd pskb_expand_head +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49697f5b send_sig +EXPORT_SYMBOL vmlinux 0x49a4369e blk_unplug +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49c3595b d_move +EXPORT_SYMBOL vmlinux 0x49c79701 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x49cf1315 key_type_keyring +EXPORT_SYMBOL vmlinux 0x49d7f902 skb_append +EXPORT_SYMBOL vmlinux 0x49e3815a tty_port_close_end +EXPORT_SYMBOL vmlinux 0x49fa2249 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x4a04990b ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x4a38ab85 mii_check_link +EXPORT_SYMBOL vmlinux 0x4a39e5a1 omap_set_dma_src_params +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a519241 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x4a5fd5fb dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x4a8918c3 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x4a9bfb0d md_flush_request +EXPORT_SYMBOL vmlinux 0x4aaa10a2 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4aadd974 md_register_thread +EXPORT_SYMBOL vmlinux 0x4ac1b964 dev_trans_start +EXPORT_SYMBOL vmlinux 0x4acc81a2 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x4ad7ea79 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x4aebbe3b dev_close +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b40cc33 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x4b465df7 misc_deregister +EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4b77bab0 usb_gadget_probe_driver +EXPORT_SYMBOL vmlinux 0x4b9cab4a xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bdae6a9 mb_cache_create +EXPORT_SYMBOL vmlinux 0x4bfd77c4 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c11a2e3 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x4c1dddda clk_enable +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c426328 dev_mc_init +EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states +EXPORT_SYMBOL vmlinux 0x4c74b649 secpath_dup +EXPORT_SYMBOL vmlinux 0x4c770106 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x4c8dd176 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x4caeb9b4 tty_register_device +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc972e9 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x4ce8806d xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d08924e block_read_full_page +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d5dbbd9 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dce037b jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x4de59c5a block_write_end +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df747f9 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e0c8b2b writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e506013 omap_dma_link_lch +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e85c082 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x4eb1a9ad unload_nls +EXPORT_SYMBOL vmlinux 0x4edd7e3c path_put +EXPORT_SYMBOL vmlinux 0x4f0a8aab tty_write_room +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2cec15 d_lookup +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f4d5bd1 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x4f6b8caf ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x4f78a400 read_cache_page +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4fc739ca jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x4fe9b202 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x5002339a tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x50073501 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x503e4ad7 cdev_add +EXPORT_SYMBOL vmlinux 0x504434e6 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x50534c49 put_tty_driver +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506d97f5 omap_readl +EXPORT_SYMBOL vmlinux 0x5071e0e2 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x5093fa82 _clear_bit_le +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50c7a14f dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x50ccff03 omap_dma_set_prio_lch +EXPORT_SYMBOL vmlinux 0x50d3074e inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x50e1c463 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x50fd57ae kmem_cache_create +EXPORT_SYMBOL vmlinux 0x510eb2cd tcf_hash_create +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512ab951 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x512fdaea blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x514acebb scsi_remove_device +EXPORT_SYMBOL vmlinux 0x5169161d omap_free_dma_chain +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x51bc24bc netif_notify_peers +EXPORT_SYMBOL vmlinux 0x51c53b1e __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +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 0x521f1eae pskb_copy +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d34fbb bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52e98698 elv_rb_add +EXPORT_SYMBOL vmlinux 0x52eb21f2 udp_ioctl +EXPORT_SYMBOL vmlinux 0x52efcbca d_prune_aliases +EXPORT_SYMBOL vmlinux 0x52efd766 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x52f0b847 inet_frag_find +EXPORT_SYMBOL vmlinux 0x530219b7 bdevname +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530e0d89 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x531db875 netdev_printk +EXPORT_SYMBOL vmlinux 0x532d1cc3 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533e78b6 journal_destroy +EXPORT_SYMBOL vmlinux 0x535bc5cd bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x537a9439 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0x5381bf03 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53ae0f38 omap_st_enable +EXPORT_SYMBOL vmlinux 0x53b3c86e lock_rename +EXPORT_SYMBOL vmlinux 0x53bbe726 arp_create +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c08c18 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x53da7154 fb_show_logo +EXPORT_SYMBOL vmlinux 0x53e78a4e mmc_erase +EXPORT_SYMBOL vmlinux 0x53f35166 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x5401136b arp_xmit +EXPORT_SYMBOL vmlinux 0x540300f9 dm_table_event +EXPORT_SYMBOL vmlinux 0x540a97e4 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x540c790e phy_device_register +EXPORT_SYMBOL vmlinux 0x54331b3b serio_close +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x546f3e7a blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x548feb15 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b4d714 tcp_close +EXPORT_SYMBOL vmlinux 0x54b6abcd netdev_alert +EXPORT_SYMBOL vmlinux 0x54c3be75 pipe_to_file +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x550518bb rtnl_create_link +EXPORT_SYMBOL vmlinux 0x5531e421 sk_wait_data +EXPORT_SYMBOL vmlinux 0x5548133c scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x55770f71 prepare_creds +EXPORT_SYMBOL vmlinux 0x5582342a inet6_getname +EXPORT_SYMBOL vmlinux 0x5582e09c account_page_writeback +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55b702e2 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x55b9a425 kstat +EXPORT_SYMBOL vmlinux 0x55c2664e netpoll_poll +EXPORT_SYMBOL vmlinux 0x55d2d9d0 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x55f2e879 kthread_bind +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565c3b6b scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x56679d2e generic_write_checks +EXPORT_SYMBOL vmlinux 0x5675075b revert_creds +EXPORT_SYMBOL vmlinux 0x56789ac5 omap_set_dma_color_mode +EXPORT_SYMBOL vmlinux 0x567d0679 unlock_rename +EXPORT_SYMBOL vmlinux 0x56c5a049 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56e5a8f4 __getblk +EXPORT_SYMBOL vmlinux 0x571904a7 search_binary_handler +EXPORT_SYMBOL vmlinux 0x571d7a70 snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0x5725a197 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x572d07a3 mount_nodev +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5730fa73 snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0x5754e032 phy_print_status +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x576664f2 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57973f11 flex_array_get +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57a6dddb mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x57abf086 tty_name +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c0c34a rfkill_destroy +EXPORT_SYMBOL vmlinux 0x57cbdb84 log_start_commit +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583a733b nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x58516557 omap_set_dma_src_data_pack +EXPORT_SYMBOL vmlinux 0x5864465f inode_init_always +EXPORT_SYMBOL vmlinux 0x5875d271 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x587a9cfe dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x58999fa2 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x589b94b8 dev_addr_init +EXPORT_SYMBOL vmlinux 0x58cb0503 nand_unlock +EXPORT_SYMBOL vmlinux 0x58cea974 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x58dde937 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x58fd37bd bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x590005c3 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x592e4440 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594cd4b5 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x594fd546 omap_prcm_get_reset_sources +EXPORT_SYMBOL vmlinux 0x5960b6d4 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x596cc25d proc_mkdir +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a09fca3 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x5a4a8b7f __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a9e5af5 unregister_netdev +EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register +EXPORT_SYMBOL vmlinux 0x5b087ac3 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x5b12f8fc phy_detach +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b3b3036 dquot_disable +EXPORT_SYMBOL vmlinux 0x5b57b614 follow_pfn +EXPORT_SYMBOL vmlinux 0x5b79abb2 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x5bd1b43b __bread +EXPORT_SYMBOL vmlinux 0x5bdfc550 amba_release_regions +EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last +EXPORT_SYMBOL vmlinux 0x5c132c1d netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x5c42974a dev_uc_flush +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5c9bf9f1 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x5ce8bb16 tcf_em_register +EXPORT_SYMBOL vmlinux 0x5cea252d skb_put +EXPORT_SYMBOL vmlinux 0x5cf2d1cd phy_connect +EXPORT_SYMBOL vmlinux 0x5cf4dd00 iunique +EXPORT_SYMBOL vmlinux 0x5d1db98d simple_empty +EXPORT_SYMBOL vmlinux 0x5d42304f dev_uc_init +EXPORT_SYMBOL vmlinux 0x5d4231eb mmc_release_host +EXPORT_SYMBOL vmlinux 0x5d679c70 dquot_release +EXPORT_SYMBOL vmlinux 0x5d7ad37e omap_mcbsp_set_rx_threshold +EXPORT_SYMBOL vmlinux 0x5dbf5842 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x5dd25a38 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x5dda85b3 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x5de4267f tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x5e09925e jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x5e2351bf inet_register_protosw +EXPORT_SYMBOL vmlinux 0x5e60eb27 omap_dma_unlink_lch +EXPORT_SYMBOL vmlinux 0x5e6928b4 dpi_check_timings +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e7f16a4 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e7fd173 param_get_int +EXPORT_SYMBOL vmlinux 0x5e881a54 simple_setattr +EXPORT_SYMBOL vmlinux 0x5e8c02fd nand_scan +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9868e0 kobject_add +EXPORT_SYMBOL vmlinux 0x5ea0eee7 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x5eb34980 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x5ebfad24 __kfree_skb +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f25b714 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x5f3a9970 mmc_request_done +EXPORT_SYMBOL vmlinux 0x5f484bbf audit_log_format +EXPORT_SYMBOL vmlinux 0x5f6e42ef tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f7f7b35 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fe3ee34 ps2_drain +EXPORT_SYMBOL vmlinux 0x5feb6c19 d_find_alias +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap +EXPORT_SYMBOL vmlinux 0x604143e4 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x604d71a7 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x60570a0c bdi_init +EXPORT_SYMBOL vmlinux 0x606db8c1 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x60715141 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x608a4600 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x608feb7a do_splice_to +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ab67ed sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x60c73daa snd_ctl_add +EXPORT_SYMBOL vmlinux 0x60f0de1a skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x60fee05e snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0x60ffcf70 kset_register +EXPORT_SYMBOL vmlinux 0x610c68a5 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6139d016 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x6158eb68 xfrm_input +EXPORT_SYMBOL vmlinux 0x615fd59f alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x619cec97 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x61a0c887 register_md_personality +EXPORT_SYMBOL vmlinux 0x61a79f08 __irq_regs +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61e0bfef mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x61f02b33 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x620c9a5c inode_permission +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622de9ae __put_cred +EXPORT_SYMBOL vmlinux 0x625b9adf security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x6295d1d3 sock_update_classid +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62c84dfe blk_put_request +EXPORT_SYMBOL vmlinux 0x62ca96ce sock_no_connect +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x630d98d3 fasync_helper +EXPORT_SYMBOL vmlinux 0x63392402 udp_poll +EXPORT_SYMBOL vmlinux 0x633ebf4e set_anon_super +EXPORT_SYMBOL vmlinux 0x636b3461 omap_dss_get_num_overlays +EXPORT_SYMBOL vmlinux 0x6383e852 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x639e9bf3 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x63ab2604 irq_stat +EXPORT_SYMBOL vmlinux 0x63ab7117 iterate_mounts +EXPORT_SYMBOL vmlinux 0x63df099a __lock_buffer +EXPORT_SYMBOL vmlinux 0x63dfde18 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x64014628 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x641a0bcb napi_complete +EXPORT_SYMBOL vmlinux 0x64202ab3 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x6421637e nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x64333287 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x644d8a88 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x648c3efe i2c_master_send +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x6511cf8c __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x6514a23d set_device_ro +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652cad6b tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x653876bb tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65660eb0 scsi_execute +EXPORT_SYMBOL vmlinux 0x656a3a52 neigh_lookup +EXPORT_SYMBOL vmlinux 0x6594515f neigh_connected_output +EXPORT_SYMBOL vmlinux 0x65d52db4 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65ef1c59 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x65f63d84 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x6609b110 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x661f3782 display_device_unregister +EXPORT_SYMBOL vmlinux 0x662dce23 omap_mcbsp_set_spi_mode +EXPORT_SYMBOL vmlinux 0x665b68fb journal_start +EXPORT_SYMBOL vmlinux 0x665d3298 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66ab553d generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x66b2d483 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x66ba3a15 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67457cd5 skb_seq_read +EXPORT_SYMBOL vmlinux 0x6745cc06 snd_timer_stop +EXPORT_SYMBOL vmlinux 0x677bb305 param_ops_bool +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 0x67c491e0 dma_map_sg +EXPORT_SYMBOL vmlinux 0x67eda289 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x681c978e inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x681d34be dcache_readdir +EXPORT_SYMBOL vmlinux 0x6823e8c7 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x68501de5 sock_no_accept +EXPORT_SYMBOL vmlinux 0x6874fa4e netdev_info +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68ca9e27 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x68ff9bb1 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x690a14df fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x691845b9 proto_unregister +EXPORT_SYMBOL vmlinux 0x696cee81 unregister_key_type +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6973606c omap_st_get_chgain +EXPORT_SYMBOL vmlinux 0x6973a38e dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x698a4c51 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x6999a053 scsi_free_command +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b6f8d9 omap_set_dma_transfer_params +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69edd1fb clk_add_alias +EXPORT_SYMBOL vmlinux 0x69f5d9bc scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x6a01b1cd scsi_unregister +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1982ad kill_anon_super +EXPORT_SYMBOL vmlinux 0x6a526cea dst_release +EXPORT_SYMBOL vmlinux 0x6a559116 rtc_lock +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ada2f20 skb_dequeue +EXPORT_SYMBOL vmlinux 0x6b10232d ip_getsockopt +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b21f30e ll_rw_block +EXPORT_SYMBOL vmlinux 0x6b237a78 fb_set_var +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b36d3e4 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x6b454b85 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x6b533943 journal_revoke +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6b824961 md_done_sync +EXPORT_SYMBOL vmlinux 0x6b951739 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x6b9b4157 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bb9fbe5 key_put +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bebf742 snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0x6c0dd74e serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x6c1b41f8 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c315352 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x6c322ae4 vfs_getattr +EXPORT_SYMBOL vmlinux 0x6c428a62 omap_dss_register_driver +EXPORT_SYMBOL vmlinux 0x6c5630e2 dquot_commit +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c84e117 neigh_create +EXPORT_SYMBOL vmlinux 0x6c915bbf blk_peek_request +EXPORT_SYMBOL vmlinux 0x6c9b63b4 nobh_writepage +EXPORT_SYMBOL vmlinux 0x6c9fb9c2 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x6cb95a04 clk_set_rate +EXPORT_SYMBOL vmlinux 0x6cbc8576 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x6cd64e91 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x6cda07d6 security_path_rename +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ce5ac25 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x6ce87e60 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x6cf4e248 bio_map_user +EXPORT_SYMBOL vmlinux 0x6cf8ffda wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x6d1e6c22 scsi_init_io +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2d9c73 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d58c352 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d79cd04 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x6d9ac9d1 dcb_getapp +EXPORT_SYMBOL vmlinux 0x6de47224 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df02e06 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e79f2d3 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x6e81b0f6 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ed6d850 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6f078eee lro_flush_all +EXPORT_SYMBOL vmlinux 0x6f0dc71f lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x6f1ce950 make_EII_client +EXPORT_SYMBOL vmlinux 0x6f33bcd3 omap_mcbsp_pollwrite +EXPORT_SYMBOL vmlinux 0x6f3702d4 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x6f4fda0c scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x6f753cb1 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f936a31 put_disk +EXPORT_SYMBOL vmlinux 0x6fa8045c try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x6fc21bc6 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x6fc553aa mmc_detect_change +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x700976c8 vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x7009bc2a igrab +EXPORT_SYMBOL vmlinux 0x700f9114 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x704afb45 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts +EXPORT_SYMBOL vmlinux 0x70a418bb napi_frags_skb +EXPORT_SYMBOL vmlinux 0x70bbfc03 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70be1e1b dquot_quota_on +EXPORT_SYMBOL vmlinux 0x70dd1a12 gpmc_cs_configure +EXPORT_SYMBOL vmlinux 0x70debdd9 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x70ee6cb6 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x70efe1cd xfrm_register_km +EXPORT_SYMBOL vmlinux 0x70f27bc3 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x70f50246 request_key +EXPORT_SYMBOL vmlinux 0x71036573 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x7118c116 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x7122e602 rtnl_notify +EXPORT_SYMBOL vmlinux 0x71236dd5 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x71273960 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x71583103 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x716ad540 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71cabfa9 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x71f52ee6 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x72049a1a noop_fsync +EXPORT_SYMBOL vmlinux 0x7222a585 simple_write_begin +EXPORT_SYMBOL vmlinux 0x7234985d tcp_sendpage +EXPORT_SYMBOL vmlinux 0x7250c2bb __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x725715db inet_release +EXPORT_SYMBOL vmlinux 0x725ceedb netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x7261c42c tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x7277a87d __napi_complete +EXPORT_SYMBOL vmlinux 0x72826b0a __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x728ec375 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x729649f4 skb_trim +EXPORT_SYMBOL vmlinux 0x729f7162 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x72a367ea phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x72aa5e28 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x72b2daa0 __pagevec_release +EXPORT_SYMBOL vmlinux 0x72ce52af display_device_register +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ff4f9d skb_pad +EXPORT_SYMBOL vmlinux 0x730b97fc thaw_process +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731ab187 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x73279824 arp_find +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x736d1fab dquot_drop +EXPORT_SYMBOL vmlinux 0x7381ffbb flex_array_clear +EXPORT_SYMBOL vmlinux 0x738975db sk_stream_error +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73e0d7c1 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f2d7b3 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x73f4e3d5 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x73f5e7e8 snd_timer_continue +EXPORT_SYMBOL vmlinux 0x742b1658 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x74484809 param_set_ulong +EXPORT_SYMBOL vmlinux 0x745aefda jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x7482e995 blk_plug_device +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a6698f unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x74a95e00 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74e6824e register_sound_dsp +EXPORT_SYMBOL vmlinux 0x751bd0f8 kdb_current_task +EXPORT_SYMBOL vmlinux 0x7523319a nand_default_bbt +EXPORT_SYMBOL vmlinux 0x75293975 __netif_schedule +EXPORT_SYMBOL vmlinux 0x756782d5 audit_log_start +EXPORT_SYMBOL vmlinux 0x75782bf8 proc_symlink +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x7594ed64 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x7596e4e5 pipe_lock +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75cc5549 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x75da5e7b htc_egpio_get_wakeup_irq +EXPORT_SYMBOL vmlinux 0x75df8e4d kernel_getpeername +EXPORT_SYMBOL vmlinux 0x75edc9f0 find_or_create_page +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x762318f7 freeze_super +EXPORT_SYMBOL vmlinux 0x76305207 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764b9017 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x765f75fb pgprot_user +EXPORT_SYMBOL vmlinux 0x76652f41 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x76694591 omap_mcbsp_get_max_tx_threshold +EXPORT_SYMBOL vmlinux 0x76881360 leds_event +EXPORT_SYMBOL vmlinux 0x76a9ec7a generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x76ae6dd2 d_alloc +EXPORT_SYMBOL vmlinux 0x76ae8049 ethtool_op_get_tso +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 0x77268da3 key_validate +EXPORT_SYMBOL vmlinux 0x7739ce22 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77833471 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x779ec7bf ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77f4e1fd register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x781a2c8b lro_receive_skb +EXPORT_SYMBOL vmlinux 0x78218e17 names_cachep +EXPORT_SYMBOL vmlinux 0x783cd033 snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0x78484db0 blk_register_region +EXPORT_SYMBOL vmlinux 0x78671e2a read_cache_page_async +EXPORT_SYMBOL vmlinux 0x788d63b1 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x789b37f0 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x78b28902 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x78db00ba serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x78fdb3e8 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x79070de5 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x796ca2d2 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79d54956 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x79daa9ea locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x79e808bc n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x7a1db083 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a48c632 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x7a4f5c9d phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a57212c __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x7a70000d snd_jack_report +EXPORT_SYMBOL vmlinux 0x7a90af3c amba_device_unregister +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7aa1d16a md_integrity_register +EXPORT_SYMBOL vmlinux 0x7abb5a94 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0x7acfd08b mdio_bus_type +EXPORT_SYMBOL vmlinux 0x7ae25826 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL vmlinux 0x7b25a541 abort_creds +EXPORT_SYMBOL vmlinux 0x7b4ed70a ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b9f22fa sock_map_fd +EXPORT_SYMBOL vmlinux 0x7bbb9bf2 omapdss_sdi_display_disable +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bda596b __page_symlink +EXPORT_SYMBOL vmlinux 0x7c2a66fb inet_frags_fini +EXPORT_SYMBOL vmlinux 0x7c45e1ee prepare_binprm +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c72cb7b release_pages +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7c9c3e77 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x7ca7784b dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x7cae0526 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7d118bfe skb_copy +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d14034c create_empty_buffers +EXPORT_SYMBOL vmlinux 0x7d4cd28a textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dbcb4c3 sget +EXPORT_SYMBOL vmlinux 0x7dc210f9 ip_fragment +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd20f11 skb_clone +EXPORT_SYMBOL vmlinux 0x7de0a78b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7de47fd7 get_fs_type +EXPORT_SYMBOL vmlinux 0x7deeb8ee unlock_buffer +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e39d225 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x7e996d51 mnt_unpin +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ecb9952 snd_component_add +EXPORT_SYMBOL vmlinux 0x7ecbedb6 input_register_handler +EXPORT_SYMBOL vmlinux 0x7ed4c61d snd_card_proc_new +EXPORT_SYMBOL vmlinux 0x7ed6130c snd_ctl_enum_info +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f33a63b omap_get_dma_chain_dst_pos +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f7e4bb8 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x7fa95d44 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x7fbde8bc mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x7fcfbf33 tty_set_operations +EXPORT_SYMBOL vmlinux 0x7fe7b798 fd_install +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x801e6911 do_splice_from +EXPORT_SYMBOL vmlinux 0x802338a4 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x8034558a gpmc_nand_write +EXPORT_SYMBOL vmlinux 0x803bb52c jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x8040f28f inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x804e6822 dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x804fc9ca omap_mcbsp_free +EXPORT_SYMBOL vmlinux 0x80ab0c30 add_timer +EXPORT_SYMBOL vmlinux 0x80af65ec radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x80d81308 omap_vrfb_release_ctx +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80d992c0 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +EXPORT_SYMBOL vmlinux 0x80e7b02c blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x811c77ab tty_port_open +EXPORT_SYMBOL vmlinux 0x813543d3 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all +EXPORT_SYMBOL vmlinux 0x814c1a65 key_alloc +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8164adb3 omap2_mcbsp_set_clks_src +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81b6fe2d tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d29618 invalidate_partition +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dca4d1 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x81f6243f __bio_clone +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82163931 dump_write +EXPORT_SYMBOL vmlinux 0x8217b07c mpage_writepage +EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x823cd443 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x824a4367 tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x824aba34 omap_dss_get_next_device +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 0x82a93da7 mnt_pin +EXPORT_SYMBOL vmlinux 0x82ace084 neigh_update +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82ad4e6a netdev_state_change +EXPORT_SYMBOL vmlinux 0x82b7ecc9 neigh_for_each +EXPORT_SYMBOL vmlinux 0x82b94261 tty_kref_put +EXPORT_SYMBOL vmlinux 0x82c4d72c mpage_readpages +EXPORT_SYMBOL vmlinux 0x82d17343 snd_timer_resolution +EXPORT_SYMBOL vmlinux 0x82e55edb xfrm_state_update +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x83178c1a generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x834427c0 generic_listxattr +EXPORT_SYMBOL vmlinux 0x834a1714 km_new_mapping +EXPORT_SYMBOL vmlinux 0x835c2bc4 consume_skb +EXPORT_SYMBOL vmlinux 0x83653694 seq_release_private +EXPORT_SYMBOL vmlinux 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x838a0be5 proto_register +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x83f02e47 nf_reinject +EXPORT_SYMBOL vmlinux 0x83fc1e24 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x842d9fc5 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x843096bc __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x8434dad3 fsync_bdev +EXPORT_SYMBOL vmlinux 0x84460f32 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x844da606 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x847fbe4c dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84b5e411 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x8508598f clk_get_parent +EXPORT_SYMBOL vmlinux 0x850a9b3d snd_register_device_for_dev +EXPORT_SYMBOL vmlinux 0x850ede95 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x851be7e6 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x852cea85 blk_start_request +EXPORT_SYMBOL vmlinux 0x8552a307 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x855974bb generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85765fee omap_enable_dma_irq +EXPORT_SYMBOL vmlinux 0x8581cc1e mpage_writepages +EXPORT_SYMBOL vmlinux 0x858c9378 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x85ce0510 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e1a7a5 security_file_mmap +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85f34366 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x86090375 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x8626e879 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x862f1e5f xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x86311f4a nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x8633a4c5 mdiobus_register +EXPORT_SYMBOL vmlinux 0x863a150b jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86642750 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86667c32 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a06f7c abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86cd5c9b qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x86f4a521 write_one_page +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870b3e3b mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x870c6736 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8770c6d7 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x87744100 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x87773b19 dquot_initialize +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87936b91 filp_open +EXPORT_SYMBOL vmlinux 0x879a85a4 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x87cd6347 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x87d67abb radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x87faeeb5 input_register_device +EXPORT_SYMBOL vmlinux 0x88091e7f vfs_llseek +EXPORT_SYMBOL vmlinux 0x880f2ed0 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8834aed0 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x8834b581 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x883cc4a5 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x8842f979 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x8866b203 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x88873dfa scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x888ed260 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x88c796f4 netdev_features_change +EXPORT_SYMBOL vmlinux 0x88de7caa vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x88ecd37c bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x891fb793 md_check_recovery +EXPORT_SYMBOL vmlinux 0x893a2bec bio_clone +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x89510ce6 usb_gadget_unregister_driver +EXPORT_SYMBOL vmlinux 0x8951a1bd icmp_send +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897d5ce2 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x897e2e91 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x898116cd xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x8984bc5a dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x89a3c4f4 omap_get_dma_chain_index +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a159268 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x8a207811 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x8a3741d7 update_region +EXPORT_SYMBOL vmlinux 0x8a498740 __napi_schedule +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a5b903d ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa125b2 sock_wake_async +EXPORT_SYMBOL vmlinux 0x8ab0b0ba bio_phys_segments +EXPORT_SYMBOL vmlinux 0x8ace755d radix_tree_delete +EXPORT_SYMBOL vmlinux 0x8ad5af66 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x8adef3f2 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x8aee55b8 ether_setup +EXPORT_SYMBOL vmlinux 0x8b06398f dquot_alloc +EXPORT_SYMBOL vmlinux 0x8b068ff7 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x8b0713bd block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x8b167e55 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x8b33d249 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x8b344d12 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x8b443f43 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x8b5ddba5 skb_unlink +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b6723df dqget +EXPORT_SYMBOL vmlinux 0x8b9d6601 dev_warn +EXPORT_SYMBOL vmlinux 0x8bacaec2 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x8bba7374 ___dma_page_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x8bca2fe6 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x8bcbb400 dentry_open +EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x8c4d6523 omap_dma_chain_a_transfer +EXPORT_SYMBOL vmlinux 0x8c7d26c6 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x8c7ea3b0 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x8c911fbe fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x8cadfeef arp_invalidate +EXPORT_SYMBOL vmlinux 0x8cc3c7ee scsi_device_resume +EXPORT_SYMBOL vmlinux 0x8cd2d6a1 deactivate_super +EXPORT_SYMBOL vmlinux 0x8cd8c339 omap_free_dma +EXPORT_SYMBOL vmlinux 0x8ce60bb6 sk_free +EXPORT_SYMBOL vmlinux 0x8cf51d15 up +EXPORT_SYMBOL vmlinux 0x8d171697 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x8d259222 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0x8d26b782 dev_open +EXPORT_SYMBOL vmlinux 0x8d2fa1f7 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x8d4162d0 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d7875f2 scsi_device_put +EXPORT_SYMBOL vmlinux 0x8dd68322 nf_register_hook +EXPORT_SYMBOL vmlinux 0x8de10eb3 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x8de75b82 snd_card_file_remove +EXPORT_SYMBOL vmlinux 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e366002 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x8e40df55 input_inject_event +EXPORT_SYMBOL vmlinux 0x8e42fe07 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x8e497f6b tcf_hash_check +EXPORT_SYMBOL vmlinux 0x8e8e4ac2 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f0c4b7b jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x8f1472f0 clk_unregister +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f595b11 snd_major +EXPORT_SYMBOL vmlinux 0x8f62b34a vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f76d3e9 register_con_driver +EXPORT_SYMBOL vmlinux 0x8f8563e2 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x8f90508f inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x8f96eea0 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x8fa4130a omap_set_dma_callback +EXPORT_SYMBOL vmlinux 0x8fb70c55 new_inode +EXPORT_SYMBOL vmlinux 0x8fbdf750 simple_write_end +EXPORT_SYMBOL vmlinux 0x8fc23f85 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x8fee6c5b netif_rx +EXPORT_SYMBOL vmlinux 0x8feeb412 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x8ff663c9 dma_pool_free +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x901797bb mmc_host_enable +EXPORT_SYMBOL vmlinux 0x901e8fb0 snd_card_free +EXPORT_SYMBOL vmlinux 0x9041cd44 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x90447b4a blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x905ec0cc scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x906ae49e blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x907fd7df omapfb_update_window +EXPORT_SYMBOL vmlinux 0x9087d78a snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0x908cb5b8 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x90960346 notify_change +EXPORT_SYMBOL vmlinux 0x90b03d5f unregister_quota_format +EXPORT_SYMBOL vmlinux 0x90bd0d0e blkdev_get +EXPORT_SYMBOL vmlinux 0x90bfe207 nand_scan_bbt +EXPORT_SYMBOL vmlinux 0x90d9986c blkdev_put +EXPORT_SYMBOL vmlinux 0x90f27348 vfs_fsync +EXPORT_SYMBOL vmlinux 0x90fed3a2 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x9104c238 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9149d606 do_munmap +EXPORT_SYMBOL vmlinux 0x914eea61 nand_scan_ident +EXPORT_SYMBOL vmlinux 0x9160b981 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9162f989 bdget +EXPORT_SYMBOL vmlinux 0x9187701c tty_port_hangup +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x91916a34 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x91d937c1 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x91e2f9a0 tcp_child_process +EXPORT_SYMBOL vmlinux 0x91ed5821 skb_checksum +EXPORT_SYMBOL vmlinux 0x9201fbd0 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923f2156 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x925ff271 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x927fad66 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x9286cb18 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x928a0ec0 fb_get_mode +EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x92a0ff97 netlink_unicast +EXPORT_SYMBOL vmlinux 0x92b16bdf gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x92c5e1e7 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x931748b9 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x931af515 have_submounts +EXPORT_SYMBOL vmlinux 0x931afbed blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9332b466 get_super +EXPORT_SYMBOL vmlinux 0x933fb3fc tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x9340cc92 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x93718dbe bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x938e0ef6 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x93a1806a snd_card_create +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b27cd5 snd_card_disconnect +EXPORT_SYMBOL vmlinux 0x93cee754 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x93e690fd omap_mcbsp_recv_word +EXPORT_SYMBOL vmlinux 0x93eee79e get_disk +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x93fe7a85 pipe_unlock +EXPORT_SYMBOL vmlinux 0x9403c098 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x9406fd7a qdisc_reset +EXPORT_SYMBOL vmlinux 0x941427ef textsearch_register +EXPORT_SYMBOL vmlinux 0x941faaea unregister_qdisc +EXPORT_SYMBOL vmlinux 0x9437b534 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x94606407 snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0x94692118 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x9472b9f7 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x948626e4 generic_fillattr +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94d229fc shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94d47eda dm_register_target +EXPORT_SYMBOL vmlinux 0x95079ccc empty_zero_page +EXPORT_SYMBOL vmlinux 0x950848e1 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x95084e8e qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x9521c8ff fb_set_suspend +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x9559b181 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x95a82ec9 inet_put_port +EXPORT_SYMBOL vmlinux 0x95acd083 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x95b6a08a vfs_readv +EXPORT_SYMBOL vmlinux 0x95ba3c21 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x95cf776f boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x95d0ff0b vfs_read +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x96167c87 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x9621e1d5 framebuffer_release +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x96637796 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x9663c1ca param_set_long +EXPORT_SYMBOL vmlinux 0x9670aff1 soft_cursor +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x969968f3 snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x96a4ede5 poll_initwait +EXPORT_SYMBOL vmlinux 0x96b07b23 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x96b39b6e omap_start_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0x96c0f385 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x96c217aa freeze_bdev +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96e35901 dev_get_flags +EXPORT_SYMBOL vmlinux 0x96ef83f9 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x971c29e1 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x972b046e skb_queue_purge +EXPORT_SYMBOL vmlinux 0x9734cc92 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x974f1d19 omapdss_dpi_display_enable +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976bb958 input_reset_device +EXPORT_SYMBOL vmlinux 0x97a3656b netdev_err +EXPORT_SYMBOL vmlinux 0x97a75ce4 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x97b09288 inet_ioctl +EXPORT_SYMBOL vmlinux 0x97bc3525 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x97e0f6a5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x97f74978 proc_create_data +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x9828befe scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x98438461 bmap +EXPORT_SYMBOL vmlinux 0x9858152d snd_card_file_add +EXPORT_SYMBOL vmlinux 0x985cdfa7 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98967ac1 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x989d4954 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x98d09b87 security_path_chmod +EXPORT_SYMBOL vmlinux 0x99025698 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x99173287 do_SAK +EXPORT_SYMBOL vmlinux 0x99193289 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x992edfb6 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x993fd8d6 kobject_init +EXPORT_SYMBOL vmlinux 0x99437f27 fget +EXPORT_SYMBOL vmlinux 0x994bc17b dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x998ee7f6 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9996a61e i2c_transfer +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 0x9a06ed91 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x9a19abdd dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a264710 eth_header_cache +EXPORT_SYMBOL vmlinux 0x9a39d98d address_space_init_once +EXPORT_SYMBOL vmlinux 0x9a3e291a security_path_unlink +EXPORT_SYMBOL vmlinux 0x9a412070 blk_init_tags +EXPORT_SYMBOL vmlinux 0x9a41725c netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x9a641830 __nla_reserve +EXPORT_SYMBOL vmlinux 0x9a6dafea mntput +EXPORT_SYMBOL vmlinux 0x9a77ef74 snd_device_new +EXPORT_SYMBOL vmlinux 0x9a93539a scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x9ab434b0 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x9b00e083 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x9b0b68c7 ip_options_compile +EXPORT_SYMBOL vmlinux 0x9b1a03a5 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b694b60 netif_napi_add +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b85559b dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9baf27ac down_read_trylock +EXPORT_SYMBOL vmlinux 0x9bbd5486 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bd79c12 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x9bfcd7e4 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0828b9 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x9c1934ed tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x9c296de6 page_put_link +EXPORT_SYMBOL vmlinux 0x9c2b14eb input_unregister_device +EXPORT_SYMBOL vmlinux 0x9c3cd929 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x9c50e85a rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c5ef2cf snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c902115 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x9c95b38e phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd2e7d0 gpmc_nand_read +EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce26d0d dma_sync_wait +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cf1a6ab scsi_host_get +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d24f2b2 devm_ioremap +EXPORT_SYMBOL vmlinux 0x9d2bfb79 dma_unmap_sg +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d42f015 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x9d448b3d tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x9d4b1f97 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x9d59ebc0 dquot_resume +EXPORT_SYMBOL vmlinux 0x9d5b26f8 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d82643a uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x9db0b4e3 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x9dc75398 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x9dcaad36 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x9dcfd2b4 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x9de87b07 lookup_hash +EXPORT_SYMBOL vmlinux 0x9deb0f41 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x9df61d63 free_task +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e190b00 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL vmlinux 0x9e761cfe devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea01885 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x9ebb88d7 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x9ebd34e4 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9edd9b29 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x9edf3502 vfs_writev +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f05c050 key_link +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f13d026 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f476b98 lookup_bdev +EXPORT_SYMBOL vmlinux 0x9f8c58e3 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9f8d60f2 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x9f94914b generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9f9512e9 d_set_d_op +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9f9c6a17 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x9fb1eeac skb_gso_segment +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fbe13d9 unlock_super +EXPORT_SYMBOL vmlinux 0x9fd15894 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff209de param_set_invbool +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07101f3 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa088a779 tcp_connect +EXPORT_SYMBOL vmlinux 0xa099f89e init_net +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f74ce7 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa1035870 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa113b2e7 give_up_console +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa141238c mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa15daf86 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xa160c38d vmap +EXPORT_SYMBOL vmlinux 0xa16a47b3 cpu_user +EXPORT_SYMBOL vmlinux 0xa187376d snd_timer_global_new +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1f1cb74 mapping_tagged +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20e0c79 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xa210c1bc tty_free_termios +EXPORT_SYMBOL vmlinux 0xa213664a genphy_read_status +EXPORT_SYMBOL vmlinux 0xa215abd1 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xa215efe3 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xa243e140 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0xa25c06e3 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xa26b0998 mii_nway_restart +EXPORT_SYMBOL vmlinux 0xa26d678e rfkill_alloc +EXPORT_SYMBOL vmlinux 0xa2810ade blk_free_tags +EXPORT_SYMBOL vmlinux 0xa28aea3f __destroy_inode +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2ca5800 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xa31dd730 param_get_short +EXPORT_SYMBOL vmlinux 0xa320abb7 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL vmlinux 0xa33f5cc6 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa372f954 sync_inode +EXPORT_SYMBOL vmlinux 0xa3b3849e vfs_statfs +EXPORT_SYMBOL vmlinux 0xa3ca3d61 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xa3f25980 register_filesystem +EXPORT_SYMBOL vmlinux 0xa3f6a416 serial8250_register_port +EXPORT_SYMBOL vmlinux 0xa3f828f6 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xa3f83833 tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0xa4073d02 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xa42f09ae dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4408d71 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xa4446302 noop_llseek +EXPORT_SYMBOL vmlinux 0xa4610bc6 omap_rev +EXPORT_SYMBOL vmlinux 0xa47bcb31 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xa48f5b09 omap_dma_set_global_params +EXPORT_SYMBOL vmlinux 0xa495c6af snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0xa49b0d94 km_policy_notify +EXPORT_SYMBOL vmlinux 0xa4b42c55 omap_set_dma_priority +EXPORT_SYMBOL vmlinux 0xa4b76997 snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0xa4c29461 omap_st_is_enabled +EXPORT_SYMBOL vmlinux 0xa4d507df snd_cards +EXPORT_SYMBOL vmlinux 0xa4d7e0ca inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xa4fb0f33 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xa514596a f_setown +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa592ff4b tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5ac2e90 omapdss_default_get_resolution +EXPORT_SYMBOL vmlinux 0xa5bd690a __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xa5c655e5 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xa5ce17b8 input_get_keycode +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5fb33b5 del_mtd_partitions +EXPORT_SYMBOL vmlinux 0xa603de31 dst_alloc +EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0xa61e4362 omap_request_dma +EXPORT_SYMBOL vmlinux 0xa62502fb sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa6416842 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xa646f6e7 vm_map_ram +EXPORT_SYMBOL vmlinux 0xa64891c8 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0xa6672498 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xa67339dc tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68dc08f __quota_error +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6aa3134 ppp_input +EXPORT_SYMBOL vmlinux 0xa6bc2be8 datagram_poll +EXPORT_SYMBOL vmlinux 0xa6c0262d devm_free_irq +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa7111109 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xa73f356f omap_dss_unregister_driver +EXPORT_SYMBOL vmlinux 0xa74664e1 elevator_exit +EXPORT_SYMBOL vmlinux 0xa74b1c0f journal_stop +EXPORT_SYMBOL vmlinux 0xa75a78b2 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xa75b7adb otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xa7711334 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xa793bd8c __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xa7a2e75f vfs_readdir +EXPORT_SYMBOL vmlinux 0xa7d5d628 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xa7e5dc6b inet_frag_kill +EXPORT_SYMBOL vmlinux 0xa7e80cdf km_query +EXPORT_SYMBOL vmlinux 0xa80cdedf gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xa816df45 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8380d34 kernel_execve +EXPORT_SYMBOL vmlinux 0xa851e160 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xa853d36a __scm_send +EXPORT_SYMBOL vmlinux 0xa860edac rfkill_set_states +EXPORT_SYMBOL vmlinux 0xa8bec66f tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xa8ca4df0 input_register_handle +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa8fffc9f dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xa90c928a param_ops_int +EXPORT_SYMBOL vmlinux 0xa9113cb0 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa9162464 sound_class +EXPORT_SYMBOL vmlinux 0xa9409713 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request +EXPORT_SYMBOL vmlinux 0xa980e548 single_open +EXPORT_SYMBOL vmlinux 0xa986fe2d kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xa9873bed dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xa9bd5c4c __breadahead +EXPORT_SYMBOL vmlinux 0xa9fde666 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xaa1ecc1e nobh_write_end +EXPORT_SYMBOL vmlinux 0xaa267616 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xaa608419 blk_run_queue +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa79792a simple_transaction_read +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa94c694 __init_rwsem +EXPORT_SYMBOL vmlinux 0xaaa28691 add_disk +EXPORT_SYMBOL vmlinux 0xaac9b9e6 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xaaddca21 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xaaf1a906 i2c_use_client +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab455eb0 up_read +EXPORT_SYMBOL vmlinux 0xab5e83dc blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab974d6a tty_unregister_device +EXPORT_SYMBOL vmlinux 0xabc72f8a kern_path +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabed8a11 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac36158f register_netdevice +EXPORT_SYMBOL vmlinux 0xac3fbdd1 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xac509293 serio_reconnect +EXPORT_SYMBOL vmlinux 0xac54063f snd_pcm_limit_hw_rates +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac7c046b mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xac9013e8 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xaca69c78 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xacaf4bce d_instantiate +EXPORT_SYMBOL vmlinux 0xacc1ebd1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xacc9bdd4 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad019027 load_nls +EXPORT_SYMBOL vmlinux 0xad02fb81 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad12a079 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xad312056 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xad337c91 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xad40aeff key_unlink +EXPORT_SYMBOL vmlinux 0xad41771c scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad5483b4 blk_rq_init +EXPORT_SYMBOL vmlinux 0xad6a6c3b xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xad8626d4 sock_create_lite +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb3d81e up_write +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xaddfbf62 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL vmlinux 0xadf015d4 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae0882f2 omap_mcbsp_request +EXPORT_SYMBOL vmlinux 0xae0f764c splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xae12c9cb generic_getxattr +EXPORT_SYMBOL vmlinux 0xae19beda netdev_set_master +EXPORT_SYMBOL vmlinux 0xae567b6d rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xae635a61 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xae6e6bb7 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xae71bd42 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xae9e7efb tc_classify_compat +EXPORT_SYMBOL vmlinux 0xaeb7a15c scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xaec0dddf ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaecfe29d fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xaed6abb0 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xaeeb515d tty_throttle +EXPORT_SYMBOL vmlinux 0xaeeb7211 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xaf072934 dev_driver_string +EXPORT_SYMBOL vmlinux 0xaf330d32 dst_destroy +EXPORT_SYMBOL vmlinux 0xaf3a219e key_payload_reserve +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf52da8d tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xaf5eab76 tty_register_driver +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf6cbd1c snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf982931 blk_init_queue +EXPORT_SYMBOL vmlinux 0xafa6f9d4 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xafad583e bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xafc9f02f alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xafcf8e1e mount_ns +EXPORT_SYMBOL vmlinux 0xafd947b1 file_remove_suid +EXPORT_SYMBOL vmlinux 0xafdd7b98 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xafe174cb neigh_event_ns +EXPORT_SYMBOL vmlinux 0xb0021851 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xb036b0f9 i2c_release_client +EXPORT_SYMBOL vmlinux 0xb0483ec2 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xb05b481a snd_jack_new +EXPORT_SYMBOL vmlinux 0xb0625306 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xb06e6646 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xb08a5bf9 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xb0b57114 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f5dcfa __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xb11a68fd ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12ed12a jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb1378683 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xb18e6948 omap_dss_pal_timings +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1978642 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xb1b22911 down_write +EXPORT_SYMBOL vmlinux 0xb1b9083d generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c3eb54 snd_timer_start +EXPORT_SYMBOL vmlinux 0xb1e0aff1 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xb203da98 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xb229eb49 scsi_register +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb24608ee __devm_request_region +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26d836e sk_release_kernel +EXPORT_SYMBOL vmlinux 0xb2755b86 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0xb28f1c92 omap_mcbsp_stop +EXPORT_SYMBOL vmlinux 0xb2c21879 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb2dde272 elv_register_queue +EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0xb2ed4e1c mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb3205b67 scsi_host_put +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb3519dbe tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3acf203 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc +EXPORT_SYMBOL vmlinux 0xb3cfb4d1 omap4_get_dsp_device +EXPORT_SYMBOL vmlinux 0xb3d3d2b3 snd_device_register +EXPORT_SYMBOL vmlinux 0xb3efc72d down +EXPORT_SYMBOL vmlinux 0xb3fa13e8 input_free_device +EXPORT_SYMBOL vmlinux 0xb409070a audit_log_end +EXPORT_SYMBOL vmlinux 0xb41bc6cd alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb430762a ppp_channel_index +EXPORT_SYMBOL vmlinux 0xb43430ea max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xb46c4409 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4795a31 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xb4820155 nla_reserve +EXPORT_SYMBOL vmlinux 0xb4a29f9c snd_info_register +EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL vmlinux 0xb4bb7d04 kill_litter_super +EXPORT_SYMBOL vmlinux 0xb4c8f38a omap_dma_chain_status +EXPORT_SYMBOL vmlinux 0xb4d8116b gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xb4f20c90 __dst_free +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb505fdfd xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xb50eeacd lease_modify +EXPORT_SYMBOL vmlinux 0xb524b58f __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54d0075 set_user_nice +EXPORT_SYMBOL vmlinux 0xb5553433 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb56d13e0 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xb578fc58 vfs_readlink +EXPORT_SYMBOL vmlinux 0xb58307ee blk_execute_rq +EXPORT_SYMBOL vmlinux 0xb597afba blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xb59aec96 snd_timer_notify +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5cec8c4 lock_may_read +EXPORT_SYMBOL vmlinux 0xb5e12271 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xb606a751 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xb61254d5 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xb612f18c mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +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 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb727b7b5 serio_interrupt +EXPORT_SYMBOL vmlinux 0xb748acf3 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0xb74be1ed generic_write_end +EXPORT_SYMBOL vmlinux 0xb76c5efa genl_register_family +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7c9ea7c blk_end_request_all +EXPORT_SYMBOL vmlinux 0xb7d858e6 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xb7eff263 seq_path +EXPORT_SYMBOL vmlinux 0xb7f58549 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xb8112a98 locks_free_lock +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb84ccbd3 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xb856c6e1 console_start +EXPORT_SYMBOL vmlinux 0xb8586470 fb_blank +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85f51fa uart_register_driver +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8ac5d5d clk_disable +EXPORT_SYMBOL vmlinux 0xb8bd423d amba_device_register +EXPORT_SYMBOL vmlinux 0xb8c1660f wait_iff_congested +EXPORT_SYMBOL vmlinux 0xb8e7ad46 genphy_update_link +EXPORT_SYMBOL vmlinux 0xb90e6999 param_set_ushort +EXPORT_SYMBOL vmlinux 0xb91357d5 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xb92228c1 cont_write_begin +EXPORT_SYMBOL vmlinux 0xb94816a9 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xb957dfb9 amba_request_regions +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb96093ff __find_get_block +EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0xb9668b58 dev_uc_del +EXPORT_SYMBOL vmlinux 0xb9721517 arp_tbl +EXPORT_SYMBOL vmlinux 0xb97dc965 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99267bc eth_change_mtu +EXPORT_SYMBOL vmlinux 0xb99ef433 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xb9a8f03b omap_stop_dma +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9dba003 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xb9e38683 omap_mcbsp_xmit_word +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xb9f069be inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xba228ca1 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba86067a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xba9dbe91 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xbaa61019 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xbaaa8ec3 bio_put +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaafd615 remove_inode_hash +EXPORT_SYMBOL vmlinux 0xbab2f5de snd_timer_pause +EXPORT_SYMBOL vmlinux 0xbab976e0 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xbad68d61 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xbadf588b dma_find_channel +EXPORT_SYMBOL vmlinux 0xbb03802b sock_no_poll +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3b222f user_revoke +EXPORT_SYMBOL vmlinux 0xbb3e7004 kobject_set_name +EXPORT_SYMBOL vmlinux 0xbb4489ea mmc_host_disable +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb757c62 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xbb81d11a param_set_short +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbb6972f generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc19792c bio_pair_release +EXPORT_SYMBOL vmlinux 0xbc1e358a sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xbc1f37c4 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0xbc28ca64 scsi_add_device +EXPORT_SYMBOL vmlinux 0xbc2c9580 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xbc63a07e max8998_read_reg +EXPORT_SYMBOL vmlinux 0xbc860222 gpmc_read_status +EXPORT_SYMBOL vmlinux 0xbc924f79 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xbca30a0a dev_crit +EXPORT_SYMBOL vmlinux 0xbca8ba49 register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0xbcb77e48 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xbcc248f6 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xbd0a3f94 kernel_bind +EXPORT_SYMBOL vmlinux 0xbd0c3c55 vfs_write +EXPORT_SYMBOL vmlinux 0xbd3bb001 snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0xbd4f563d snd_seq_root +EXPORT_SYMBOL vmlinux 0xbd51b393 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xbd5db2cc clk_round_rate +EXPORT_SYMBOL vmlinux 0xbd750eb2 dquot_operations +EXPORT_SYMBOL vmlinux 0xbd9f51e6 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc778a4 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xbde016e2 nf_afinfo +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 0xbe23b9ed radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xbe258162 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xbe32512c fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xbe39a502 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xbe5a132e inetdev_by_index +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe682595 skb_find_text +EXPORT_SYMBOL vmlinux 0xbe6e5cd8 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xbebd5bd0 rfkill_unregister +EXPORT_SYMBOL vmlinux 0xbec39008 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbeef3ccc task_nice +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf555907 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xbf5bbff9 dev_mc_add +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf87d62e file_update_time +EXPORT_SYMBOL vmlinux 0xbf889e43 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf8c21d2 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb013ac km_policy_expired +EXPORT_SYMBOL vmlinux 0xbfba7ffa module_put +EXPORT_SYMBOL vmlinux 0xbfc0ff6a generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc007181d dmam_pool_create +EXPORT_SYMBOL vmlinux 0xc019dc82 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc03ada8c dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xc047bc3f omap_mcbsp_spi_master_recv_word_poll +EXPORT_SYMBOL vmlinux 0xc0481539 generic_setlease +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05b9812 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06b0e28 inode_change_ok +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0861eaa netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xc08fef33 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xc099e713 dquot_enable +EXPORT_SYMBOL vmlinux 0xc0a6a8c5 omap_set_dma_dest_burst_mode +EXPORT_SYMBOL vmlinux 0xc0af1127 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0cf95f9 omap_vrfb_request_ctx +EXPORT_SYMBOL vmlinux 0xc0f09167 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xc0f5c177 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xc1116746 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc13c5e35 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xc1520aca __invalidate_device +EXPORT_SYMBOL vmlinux 0xc1601a4f _change_bit_le +EXPORT_SYMBOL vmlinux 0xc172e92a neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xc179404b iput +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc1989d03 genphy_resume +EXPORT_SYMBOL vmlinux 0xc1996f5d i2c_register_driver +EXPORT_SYMBOL vmlinux 0xc19c5f5c __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xc19e8067 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xc1b1dcaa thaw_bdev +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1e23d79 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xc1fc4511 _test_and_change_bit_le +EXPORT_SYMBOL vmlinux 0xc225a05b scsi_remove_target +EXPORT_SYMBOL vmlinux 0xc23b3094 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc24d7450 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xc256964d snd_timer_open +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2604c67 registered_fb +EXPORT_SYMBOL vmlinux 0xc26d271a bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xc27487dd __bug +EXPORT_SYMBOL vmlinux 0xc29bb0f2 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xc2d5a516 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc30d25aa write_inode_now +EXPORT_SYMBOL vmlinux 0xc3435ea4 path_get +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc378fe2a dma_mmap_writecombine +EXPORT_SYMBOL vmlinux 0xc37c36e1 omap_writeb +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d62ea0 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xc3e01199 __devm_release_region +EXPORT_SYMBOL vmlinux 0xc3faf731 journal_ack_err +EXPORT_SYMBOL vmlinux 0xc411e981 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xc41d3a9c tcf_exts_change +EXPORT_SYMBOL vmlinux 0xc4240af1 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc4998a74 bitmap_unplug +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4aedab5 amba_driver_register +EXPORT_SYMBOL vmlinux 0xc4be479b bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit +EXPORT_SYMBOL vmlinux 0xc4e7d0f9 omap_mcbsp_get_dma_op_mode +EXPORT_SYMBOL vmlinux 0xc5140e82 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xc52da066 omap_set_dma_dest_params +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc531fe92 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xc533461b fb_find_mode +EXPORT_SYMBOL vmlinux 0xc5a4cf3d nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xc5c5acdf cdev_alloc +EXPORT_SYMBOL vmlinux 0xc5cf5827 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xc5d20f47 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xc5f03cf0 release_firmware +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc5fb4ca0 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63c00b9 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xc6466653 set_page_dirty +EXPORT_SYMBOL vmlinux 0xc65ecd4f inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xc6691a0b sock_create_kern +EXPORT_SYMBOL vmlinux 0xc6800e10 neigh_destroy +EXPORT_SYMBOL vmlinux 0xc6c7ecb7 dm_put_device +EXPORT_SYMBOL vmlinux 0xc6d533e1 down_read +EXPORT_SYMBOL vmlinux 0xc6f678b8 __alloc_skb +EXPORT_SYMBOL vmlinux 0xc715f06f vm_insert_page +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc729464b request_key_async +EXPORT_SYMBOL vmlinux 0xc73e5019 __free_pages +EXPORT_SYMBOL vmlinux 0xc75a56a6 submit_bio +EXPORT_SYMBOL vmlinux 0xc775fb01 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xc77bec3f scsi_ioctl +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc79ef79e framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xc7a037eb fb_set_cmap +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a7e030 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xc7b9e3cb d_drop +EXPORT_SYMBOL vmlinux 0xc7bef3ef sock_release +EXPORT_SYMBOL vmlinux 0xc7d1e69b free_buffer_head +EXPORT_SYMBOL vmlinux 0xc7d76ec9 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xc7db3fd4 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xc7e7ed7f inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7fdc292 genl_register_ops +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc816137f cap_file_mmap +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85a9c13 security_inode_permission +EXPORT_SYMBOL vmlinux 0xc86aebb4 sk_filter +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc87b049a snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0xc87d77d7 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xc89e6f4f mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xc8a8f002 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8d4fb66 dm_table_put +EXPORT_SYMBOL vmlinux 0xc8dae9b2 ioremap_page +EXPORT_SYMBOL vmlinux 0xc8ec43ee security_file_permission +EXPORT_SYMBOL vmlinux 0xc9142293 omap_dss_ntsc_timings +EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible +EXPORT_SYMBOL vmlinux 0xc91b8e64 vfs_unlink +EXPORT_SYMBOL vmlinux 0xc928b3eb input_release_device +EXPORT_SYMBOL vmlinux 0xc9363a5b simple_statfs +EXPORT_SYMBOL vmlinux 0xc94595f0 omap_chip_is +EXPORT_SYMBOL vmlinux 0xc9603936 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xc96d55da security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xc972922e bio_free +EXPORT_SYMBOL vmlinux 0xc996e213 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xc99c9ae1 netif_skb_features +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a83d04 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xc9d50942 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xc9ff6572 tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0xca0aa906 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xca1a1d18 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xca4148d7 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xca430050 omap_dss_get_overlay +EXPORT_SYMBOL vmlinux 0xca59a373 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca83de3b dev_addr_del +EXPORT_SYMBOL vmlinux 0xca8baa18 snd_dma_reserve_buf +EXPORT_SYMBOL vmlinux 0xcaa44ce3 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcabfb66e dev_add_pack +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb33a238 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xcb554d49 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb92dea1 unlock_page +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbce8d90 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xcbd076ec km_report +EXPORT_SYMBOL vmlinux 0xcc036a71 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53ff21 param_get_string +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccb8ddef md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xccb9cb05 nand_correct_data +EXPORT_SYMBOL vmlinux 0xcccca482 _test_and_clear_bit_le +EXPORT_SYMBOL vmlinux 0xcccfe5be skb_copy_expand +EXPORT_SYMBOL vmlinux 0xccd9e558 posix_lock_file +EXPORT_SYMBOL vmlinux 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0xcd38860e tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xcd3e0421 block_write_begin +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcd67cdf2 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xcd7ee1cd jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xcdaa208c bio_split +EXPORT_SYMBOL vmlinux 0xcdbf4d05 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xcdcbc7c9 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xcdd14095 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xcde14ae3 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xcdea220f inet_stream_ops +EXPORT_SYMBOL vmlinux 0xcdefe43a scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xcdf2c97c d_alloc_name +EXPORT_SYMBOL vmlinux 0xce0faae4 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce25ef1f blk_start_queue +EXPORT_SYMBOL vmlinux 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL vmlinux 0xce3f12bb sk_alloc +EXPORT_SYMBOL vmlinux 0xce56c8c5 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5ea4c5 unregister_console +EXPORT_SYMBOL vmlinux 0xce67b1ee dm_table_get +EXPORT_SYMBOL vmlinux 0xce6f61d2 may_umount_tree +EXPORT_SYMBOL vmlinux 0xce76760c skb_copy_bits +EXPORT_SYMBOL vmlinux 0xce772304 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xce84d4ce noop_qdisc +EXPORT_SYMBOL vmlinux 0xce9c5a61 put_io_context +EXPORT_SYMBOL vmlinux 0xcecef285 flex_array_free +EXPORT_SYMBOL vmlinux 0xced22f69 netdev_emerg +EXPORT_SYMBOL vmlinux 0xced35d58 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefc9201 snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf07029b blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xcf0c06b6 vfs_symlink +EXPORT_SYMBOL vmlinux 0xcf0e2815 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xcf2055e4 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0xcf626ab8 lock_fb_info +EXPORT_SYMBOL vmlinux 0xcf6396ae page_follow_link_light +EXPORT_SYMBOL vmlinux 0xcf683d1d tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xcf83672f __seq_open_private +EXPORT_SYMBOL vmlinux 0xcf843bcd nand_scan_tail +EXPORT_SYMBOL vmlinux 0xcf8c3b9c open_exec +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfdb2e02 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcfebd08e dev_set_mtu +EXPORT_SYMBOL vmlinux 0xcff44281 journal_check_available_features +EXPORT_SYMBOL vmlinux 0xd002f9c6 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01ef46c abx500_register_ops +EXPORT_SYMBOL vmlinux 0xd0313bfd skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xd040a4f6 nonseekable_open +EXPORT_SYMBOL vmlinux 0xd04f53c3 fifo_set_limit +EXPORT_SYMBOL vmlinux 0xd0a27ce8 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b27dd4 input_grab_device +EXPORT_SYMBOL vmlinux 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL vmlinux 0xd0c05384 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xd0da6ef2 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0xd0ed6e9c dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f972e7 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xd0fa2de2 register_framebuffer +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1157735 release_and_free_resource +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1329880 param_array_ops +EXPORT_SYMBOL vmlinux 0xd15f0601 phy_attach +EXPORT_SYMBOL vmlinux 0xd160081f journal_errno +EXPORT_SYMBOL vmlinux 0xd1671060 del_timer +EXPORT_SYMBOL vmlinux 0xd16fa524 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xd170cf00 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xd1874d3d d_invalidate +EXPORT_SYMBOL vmlinux 0xd1929b52 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xd1c1f92a do_map_probe +EXPORT_SYMBOL vmlinux 0xd1d5c923 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xd1e8f262 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xd1f6b494 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xd213e5e3 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xd21f84e9 dump_seek +EXPORT_SYMBOL vmlinux 0xd22c9530 kthread_stop +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 0xd26afde1 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xd26f3095 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xd27ec11e param_set_bool +EXPORT_SYMBOL vmlinux 0xd28544d9 bioset_create +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2bf3e12 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xd2bf8903 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd362be74 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xd36fddfe vfs_create +EXPORT_SYMBOL vmlinux 0xd3760051 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xd381a81c tcp_parse_options +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3875fb6 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xd3a3c0e2 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xd3b15cce ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xd3b4f8a9 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0xd3b84c9e param_ops_byte +EXPORT_SYMBOL vmlinux 0xd3cff5b6 omap2_mcbsp1_mux_clkr_src +EXPORT_SYMBOL vmlinux 0xd3db7406 backlight_force_update +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3f29a4b file_permission +EXPORT_SYMBOL vmlinux 0xd3fa1bb9 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd42f0719 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xd45c90df remap_pfn_range +EXPORT_SYMBOL vmlinux 0xd45e7d34 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xd4649624 sock_rfree +EXPORT_SYMBOL vmlinux 0xd48dff95 param_get_long +EXPORT_SYMBOL vmlinux 0xd4ace048 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xd4b7808f read_dev_sector +EXPORT_SYMBOL vmlinux 0xd4b8c3d7 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xd4e3e80b sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xd50543a1 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xd5152710 sg_next +EXPORT_SYMBOL vmlinux 0xd52164a8 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xd55f774a genphy_suspend +EXPORT_SYMBOL vmlinux 0xd56e9485 omap_set_dma_dest_index +EXPORT_SYMBOL vmlinux 0xd577db91 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xd57cb474 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xd58dc8ed neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xd59c075b set_bdi_congested +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b43ab8 netdev_warn +EXPORT_SYMBOL vmlinux 0xd5be2b62 cdev_init +EXPORT_SYMBOL vmlinux 0xd5fce9a1 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xd6265a19 input_flush_device +EXPORT_SYMBOL vmlinux 0xd6273eab console_stop +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd632ecf4 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xd63677dc snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0xd63d6e7a generic_block_bmap +EXPORT_SYMBOL vmlinux 0xd648fdb4 d_delete +EXPORT_SYMBOL vmlinux 0xd64c52e6 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xd6814701 omap_dss_get_overlay_manager +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f451bf kobject_put +EXPORT_SYMBOL vmlinux 0xd70f6420 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xd732b9ac mmc_card_awake +EXPORT_SYMBOL vmlinux 0xd737f689 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xd73aea87 eth_header +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd784afcc kernel_connect +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79d7733 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xd79d79e7 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xd7cc303d omap_mcbsp_set_io_type +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ff62cd inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xd811abdd tty_port_close_start +EXPORT_SYMBOL vmlinux 0xd83ab6aa phy_start +EXPORT_SYMBOL vmlinux 0xd85bfdd0 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xd85cf3cd mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xd86647f9 kobject_get +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b72787 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xd8c953f5 set_create_files_as +EXPORT_SYMBOL vmlinux 0xd8dc7b8d tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f68883 omap_mcbsp_pollread +EXPORT_SYMBOL vmlinux 0xd8fc742f set_security_override +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9352b41 ps2_init +EXPORT_SYMBOL vmlinux 0xd955d2b7 omap_set_dma_dest_data_pack +EXPORT_SYMBOL vmlinux 0xd95d581b sock_no_getname +EXPORT_SYMBOL vmlinux 0xd9809779 deny_write_access +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9dbb086 kmem_cache_name +EXPORT_SYMBOL vmlinux 0xd9fa5db5 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xd9fcff84 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xda10ad15 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2131e1 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xda57fb12 release_sock +EXPORT_SYMBOL vmlinux 0xda5a72a8 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xda5ea696 _test_and_set_bit_le +EXPORT_SYMBOL vmlinux 0xda6bfb37 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xda7b2870 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa336f5 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xdaaa1236 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xdadfdfd5 snd_add_device_sysfs_file +EXPORT_SYMBOL vmlinux 0xdb012835 param_get_byte +EXPORT_SYMBOL vmlinux 0xdb0d55ed __inet6_hash +EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table +EXPORT_SYMBOL vmlinux 0xdb24ed73 snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0xdb2ecbe7 journal_force_commit +EXPORT_SYMBOL vmlinux 0xdb34fb21 km_state_notify +EXPORT_SYMBOL vmlinux 0xdb4292e4 omap_set_dma_params +EXPORT_SYMBOL vmlinux 0xdb4319bf dst_discard +EXPORT_SYMBOL vmlinux 0xdb62a28a param_set_uint +EXPORT_SYMBOL vmlinux 0xdb6e87cd blk_sync_queue +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb909700 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xdb9f1d1d elevator_init +EXPORT_SYMBOL vmlinux 0xdbbe9a2d register_qdisc +EXPORT_SYMBOL vmlinux 0xdbbf206c __omap_get_config +EXPORT_SYMBOL vmlinux 0xdbc8d4fa ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc1638ac tty_shutdown +EXPORT_SYMBOL vmlinux 0xdc2339d4 write_cache_pages +EXPORT_SYMBOL vmlinux 0xdc26651a napi_frags_finish +EXPORT_SYMBOL vmlinux 0xdc2a9f97 get_io_context +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3f384a tty_unthrottle +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc784f4d input_set_abs_params +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdc89ef30 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xdca160f8 ip_route_input_common +EXPORT_SYMBOL vmlinux 0xdca25dff add_mtd_partitions +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcd3824c free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xdcdd2405 simple_map_init +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd0a7243 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd3d5f16 page_symlink +EXPORT_SYMBOL vmlinux 0xdd44c32c softnet_data +EXPORT_SYMBOL vmlinux 0xdd6bbf18 mem_map +EXPORT_SYMBOL vmlinux 0xdd7673ae param_get_bool +EXPORT_SYMBOL vmlinux 0xdd9d745d __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xddac3ff5 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xddb82e42 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xdde178c6 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xde10f325 skb_make_writable +EXPORT_SYMBOL vmlinux 0xde15c042 omap_set_dma_src_index +EXPORT_SYMBOL vmlinux 0xde1c0ab7 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xde1cd71c simple_dir_operations +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde42bd13 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xde5e7edd input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xde692d94 omap_get_dma_chain_src_pos +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde804d94 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0xde8b9c13 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xde8c7b87 dev_alert +EXPORT_SYMBOL vmlinux 0xde8cfc6f __sock_create +EXPORT_SYMBOL vmlinux 0xde91173b find_lock_page +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdebb14ea posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xdebc82bd xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xdec838ab __scsi_put_command +EXPORT_SYMBOL vmlinux 0xdedaa3a6 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xdeee23a5 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xdf156a07 security_path_link +EXPORT_SYMBOL vmlinux 0xdf1ef69f wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xdf44385d udplite_prot +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf542e71 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6dbdd5 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa9e17c tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfb8fb79 dpi_set_timings +EXPORT_SYMBOL vmlinux 0xdfbbc923 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfcc796e scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xdfd09d36 kernel_accept +EXPORT_SYMBOL vmlinux 0xdfd91ce9 omap_type +EXPORT_SYMBOL vmlinux 0xdfeb5086 simple_rename +EXPORT_SYMBOL vmlinux 0xdff7d8a1 phy_stop +EXPORT_SYMBOL vmlinux 0xe034660f journal_clear_err +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0d7d1ff set_disk_ro +EXPORT_SYMBOL vmlinux 0xe0e3ec60 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xe0eb10ee phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xe106154f omap_vram_get_info +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11eeff1 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xe125a01f request_firmware +EXPORT_SYMBOL vmlinux 0xe133eb88 snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe1524633 do_sync_write +EXPORT_SYMBOL vmlinux 0xe15da050 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xe168d29f jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe175b588 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17ab837 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xe20c9214 snd_iprintf +EXPORT_SYMBOL vmlinux 0xe2140353 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xe2220594 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xe22c37e7 register_sound_mixer +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26bf468 journal_init_dev +EXPORT_SYMBOL vmlinux 0xe26e6783 lookup_one_len +EXPORT_SYMBOL vmlinux 0xe28cf08d rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0xe2948de4 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xe2969518 dm_snap_cow +EXPORT_SYMBOL vmlinux 0xe2a3fcd3 mdiobus_read +EXPORT_SYMBOL vmlinux 0xe2a41800 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xe2aaf8b3 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xe2b232af unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xe2cf4520 vc_resize +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2eebb0b snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0xe2ef0a72 vc_cons +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe326e24a dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xe33b5194 ps2_command +EXPORT_SYMBOL vmlinux 0xe35528df snd_pcm_lib_writev +EXPORT_SYMBOL vmlinux 0xe35b404a i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xe37d10ae omap_dispc_unregister_isr +EXPORT_SYMBOL vmlinux 0xe39b7494 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xe3a426d1 block_sync_page +EXPORT_SYMBOL vmlinux 0xe3a8c9cf filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xe3de4918 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xe3f8b668 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xe41dbf15 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe42b2ca4 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xe432546f tty_devnum +EXPORT_SYMBOL vmlinux 0xe4411527 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xe48f4cd3 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe4b42609 seq_lseek +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4c97e44 snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0xe4ca76cc vfs_follow_link +EXPORT_SYMBOL vmlinux 0xe4e4fb31 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xe5050664 ihold +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe522726c in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe526964f xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xe530ebbf blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xe536aae5 devm_iounmap +EXPORT_SYMBOL vmlinux 0xe5445af6 omap_get_dma_dst_pos +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe5650df7 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0xe570dd8a sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5dacf2b del_gendisk +EXPORT_SYMBOL vmlinux 0xe5e658f8 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe61132df generic_setxattr +EXPORT_SYMBOL vmlinux 0xe62a428b dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xe62ebc16 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xe647c686 gpmc_prefetch_enable +EXPORT_SYMBOL vmlinux 0xe64cfbc3 input_close_device +EXPORT_SYMBOL vmlinux 0xe67086c0 dma_alloc_writecombine +EXPORT_SYMBOL vmlinux 0xe6744a89 omap_clear_dma +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6bd04d4 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe70472d0 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe70ef322 neigh_table_init +EXPORT_SYMBOL vmlinux 0xe712a08b xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xe71b9453 journal_init_inode +EXPORT_SYMBOL vmlinux 0xe72a20ed eth_mac_addr +EXPORT_SYMBOL vmlinux 0xe73bde73 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe772cbb3 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xe77dd75c mdiobus_free +EXPORT_SYMBOL vmlinux 0xe7963b54 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xe79b6ee9 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xe7b05010 generic_readlink +EXPORT_SYMBOL vmlinux 0xe7b1329a omap_dss_put_device +EXPORT_SYMBOL vmlinux 0xe7cd6ebc netlink_dump_start +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e40c60 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe810de75 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xe82cce08 bdev_read_only +EXPORT_SYMBOL vmlinux 0xe82dca45 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xe84483d1 param_set_copystring +EXPORT_SYMBOL vmlinux 0xe847e366 clk_register +EXPORT_SYMBOL vmlinux 0xe856fd11 mount_pseudo +EXPORT_SYMBOL vmlinux 0xe85c7177 blk_insert_request +EXPORT_SYMBOL vmlinux 0xe868e6f5 __f_setown +EXPORT_SYMBOL vmlinux 0xe876d1b1 find_vma +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe88c7140 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xe88c986f follow_up +EXPORT_SYMBOL vmlinux 0xe88cf108 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape +EXPORT_SYMBOL vmlinux 0xe8e6146e md_error +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9277225 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xe933c489 single_release +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe96bc881 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xe9b3b3af dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xe9ce8b95 omap_ioremap +EXPORT_SYMBOL vmlinux 0xe9cf30a5 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea19784f dev_load +EXPORT_SYMBOL vmlinux 0xea359e11 xrlim_allow +EXPORT_SYMBOL vmlinux 0xea62b7aa kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xea9d4fee alloc_disk +EXPORT_SYMBOL vmlinux 0xea9fb9df rename_lock +EXPORT_SYMBOL vmlinux 0xeab91ca5 bdi_register +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeae9f87c arp_send +EXPORT_SYMBOL vmlinux 0xeb055dab netif_carrier_off +EXPORT_SYMBOL vmlinux 0xeb194c4d sk_run_filter +EXPORT_SYMBOL vmlinux 0xeb1b120e omap_set_dma_write_mode +EXPORT_SYMBOL vmlinux 0xeb3cab6c hex2bin +EXPORT_SYMBOL vmlinux 0xeb4502bf ppp_input_error +EXPORT_SYMBOL vmlinux 0xeb51918d snd_timer_new +EXPORT_SYMBOL vmlinux 0xeb6fad05 take_over_console +EXPORT_SYMBOL vmlinux 0xeb8add11 amba_find_device +EXPORT_SYMBOL vmlinux 0xeb9d348f ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xeba0bfb2 netif_device_attach +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec203b42 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xec2b535f dget_parent +EXPORT_SYMBOL vmlinux 0xec2d7a86 param_get_ulong +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec5f64df touch_atime +EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xec6e4862 make_bad_inode +EXPORT_SYMBOL vmlinux 0xec6e801c get_phy_device +EXPORT_SYMBOL vmlinux 0xec9bfff8 init_task +EXPORT_SYMBOL vmlinux 0xed024461 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xed198afe dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xed1bfbea bio_alloc +EXPORT_SYMBOL vmlinux 0xed1fb366 generic_permission +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed36fdf7 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xed80f659 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xed854dac omap_stop_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0xed8d3387 nla_put +EXPORT_SYMBOL vmlinux 0xed9d214c phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda59426 __register_binfmt +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xee108f30 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4c57e6 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xee6ed10a skb_queue_head +EXPORT_SYMBOL vmlinux 0xee7ce9e8 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb33d89 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xeec40c9b nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xeed654e9 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xeef2b857 snd_pcm_notify +EXPORT_SYMBOL vmlinux 0xef48fff3 ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xef634a54 aio_complete +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef9372fb journal_wipe +EXPORT_SYMBOL vmlinux 0xefa5a7ea inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xefb66a95 omap_request_dma_chain +EXPORT_SYMBOL vmlinux 0xefb8b8fd generic_unplug_device +EXPORT_SYMBOL vmlinux 0xefccb47d inet_addr_type +EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0xefdc8f2e simple_unlink +EXPORT_SYMBOL vmlinux 0xefdd2345 sg_init_one +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefec312f omap_get_dma_active_status +EXPORT_SYMBOL vmlinux 0xeffdf348 phy_disconnect +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0033700 simple_lookup +EXPORT_SYMBOL vmlinux 0xf0056d31 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xf0203660 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xf03d0191 dev_mc_del +EXPORT_SYMBOL vmlinux 0xf03e44c1 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xf0537732 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xf0676351 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xf0857792 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xf0a8b634 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xf0aa3e52 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xf0ac081b nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xf0bf785d setup_new_exec +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf12a3f4b snd_dma_get_reserved_buf +EXPORT_SYMBOL vmlinux 0xf15f6785 end_writeback +EXPORT_SYMBOL vmlinux 0xf179ce86 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xf18be497 snd_power_wait +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19b9589 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xf1a0deab tcp_check_req +EXPORT_SYMBOL vmlinux 0xf1a3c919 omap_mcbsp_set_tx_threshold +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1d374a6 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf205ee46 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf228d374 __rta_fill +EXPORT_SYMBOL vmlinux 0xf23aef57 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf262c526 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xf26df746 omap_vram_free +EXPORT_SYMBOL vmlinux 0xf28a9174 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xf28e1e3e omap_st_disable +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29a3a22 iget5_locked +EXPORT_SYMBOL vmlinux 0xf2c8e893 fb_pan_display +EXPORT_SYMBOL vmlinux 0xf2e5a880 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf33bbae0 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf35e87a5 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf39eb02c lock_super +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ca7aa4 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xf3d12790 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xf3ee95f4 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xf3fa9e81 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xf3ff4c5b kernel_sendpage +EXPORT_SYMBOL vmlinux 0xf3ffd930 posix_acl_init +EXPORT_SYMBOL vmlinux 0xf40332f5 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xf4090171 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xf42196a0 snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0xf421fdf0 try_to_release_page +EXPORT_SYMBOL vmlinux 0xf42864d9 serio_open +EXPORT_SYMBOL vmlinux 0xf446dd64 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xf4648dca snd_pcm_lib_read +EXPORT_SYMBOL vmlinux 0xf469ca4b zero_fill_bio +EXPORT_SYMBOL vmlinux 0xf48e3bd8 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4b04f7f bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xf4cdf5f0 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xf4d70750 default_llseek +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf500ee8c simple_readpage +EXPORT_SYMBOL vmlinux 0xf52a8186 read_cache_pages +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54ba601 omap_mcbsp_config +EXPORT_SYMBOL vmlinux 0xf55e5a99 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf569584a skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xf5696c28 nand_lock +EXPORT_SYMBOL vmlinux 0xf58a386e ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c484b8 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf6003530 dev_uc_add +EXPORT_SYMBOL vmlinux 0xf601e867 input_open_device +EXPORT_SYMBOL vmlinux 0xf61ed547 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf62e0911 register_gifconf +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf64a4058 module_refcount +EXPORT_SYMBOL vmlinux 0xf6662609 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xf66a3a8f scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xf66b90b1 blk_get_request +EXPORT_SYMBOL vmlinux 0xf6832009 sock_i_uid +EXPORT_SYMBOL vmlinux 0xf6908149 generic_file_open +EXPORT_SYMBOL vmlinux 0xf69b36dc snd_pcm_lib_readv +EXPORT_SYMBOL vmlinux 0xf6b5e071 vfs_link +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c63cda dev_change_flags +EXPORT_SYMBOL vmlinux 0xf6c96308 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xf6d7e5d6 snd_pcm_link_rwlock +EXPORT_SYMBOL vmlinux 0xf6de3998 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ed5beb snd_timer_global_free +EXPORT_SYMBOL vmlinux 0xf6f3cef6 omap_vrfb_setup +EXPORT_SYMBOL vmlinux 0xf7151306 clk_get +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf789fcc1 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf79f4a20 dev_get_stats +EXPORT_SYMBOL vmlinux 0xf7a3003e netlink_set_err +EXPORT_SYMBOL vmlinux 0xf7c61815 get_omap3_evm_rev +EXPORT_SYMBOL vmlinux 0xf7e74572 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf81cec6e jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xf820d6fa cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xf8350fa9 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xf853bbca omap_vrfb_map_angle +EXPORT_SYMBOL vmlinux 0xf854f576 path_lookup +EXPORT_SYMBOL vmlinux 0xf85a5f30 put_page +EXPORT_SYMBOL vmlinux 0xf85ba675 udp_proc_register +EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8919f56 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xf894c73b __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xf89ce595 keyring_clear +EXPORT_SYMBOL vmlinux 0xf89f0132 eth_header_parse +EXPORT_SYMBOL vmlinux 0xf8b858b9 __brelse +EXPORT_SYMBOL vmlinux 0xf8c66f8c journal_abort +EXPORT_SYMBOL vmlinux 0xf8e6faaa netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xf8f260b4 tty_port_init +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf9033cd1 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xf90ca927 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0xf9342459 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf95f4a7a tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xf96bf301 tty_vhangup +EXPORT_SYMBOL vmlinux 0xf97be966 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xf97d5170 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xf982c3e9 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c95438 omapdss_sdi_display_enable +EXPORT_SYMBOL vmlinux 0xf9cb32eb eth_type_trans +EXPORT_SYMBOL vmlinux 0xf9d178fe filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xf9da2d74 backlight_device_register +EXPORT_SYMBOL vmlinux 0xfa12cbb9 register_exec_domain +EXPORT_SYMBOL vmlinux 0xfa2a8985 _snd_ctl_add_slave +EXPORT_SYMBOL vmlinux 0xfa6d7533 set_irq_chip +EXPORT_SYMBOL vmlinux 0xfa7caf1b tcp_disconnect +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfaccf7ab get_sb_nodev +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfafff2f2 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xfb4b48d1 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb6bb2e4 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb9801a7 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xfb990238 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd72ab2 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbe53354 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xfbebf5e4 dev_printk +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0f25c8 udp_prot +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc50827b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xfc5616ba nf_register_hooks +EXPORT_SYMBOL vmlinux 0xfc66cbfc pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xfc9928ab misc_register +EXPORT_SYMBOL vmlinux 0xfca35b67 skb_pull +EXPORT_SYMBOL vmlinux 0xfca3bcc3 should_remove_suid +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb2156a dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xfcbd0b9c jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc4df6a mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xfcc9f38b aio_put_req +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd195c62 omap_mcbsp_xmit_buffer +EXPORT_SYMBOL vmlinux 0xfd1d618c nf_log_unregister +EXPORT_SYMBOL vmlinux 0xfd2960d8 snd_card_set_id +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd4190dd xfrm_register_type +EXPORT_SYMBOL vmlinux 0xfd537d83 dev_gro_receive +EXPORT_SYMBOL vmlinux 0xfd672331 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xfd8a9543 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xfd9a60e8 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda44c12 mii_link_ok +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL vmlinux 0xfdbe2d1c scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xfdc33aa2 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfdfcedf7 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xfe04abfe blk_end_request +EXPORT_SYMBOL vmlinux 0xfe18df4e netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xfe225273 omap_mcbsp_recv_buffer +EXPORT_SYMBOL vmlinux 0xfe5b3e64 mount_bdev +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe609fd9 bio_endio +EXPORT_SYMBOL vmlinux 0xfe633c30 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfea117af kill_pid +EXPORT_SYMBOL vmlinux 0xfeb00720 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefbd4c2 kthread_create +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2b0fa1 omap_mcbsp_get_max_rx_threshold +EXPORT_SYMBOL vmlinux 0xff30a669 inet_getname +EXPORT_SYMBOL vmlinux 0xff37467a dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xff3fc819 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xff42bce6 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff69f31d mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb96498 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xffc1ca8a filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xffd2cf99 omap_dss_get_num_overlay_managers +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff5803c blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xfffd755f tty_hangup +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 0x7e9d1df1 crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/af_alg 0x3727d85d af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x4772b464 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x68dd5806 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x8a44935a af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x9eaec65b af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xb547c005 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xdf623e43 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xf8fa0806 af_alg_accept +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xda36eda6 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x141fcfb2 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xef61035c async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xae05d9cb async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xd73b2238 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2ddd66dc __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6d3cdcf9 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7586cb88 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8a20655e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x1ae41f9b async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x657a05fa async_xor +EXPORT_SYMBOL_GPL crypto/cryptd 0x13f50f17 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x1d3cc42c cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x3a16f577 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x4400f5aa cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x4635faae cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x739fdc3c cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7a4dc96e cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x9f1793b1 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xcbb53a93 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xfabf3e08 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x98dc82a0 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0585cec1 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x165e38cf ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1e8d6844 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2479bc68 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x257c67e0 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x56645d12 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8a6b2c2d ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8be14550 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x92704eea ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa0714007 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xadde198a ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcc706275 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xccd5ffdc ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd4058c9c ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe6ad25a1 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea6a1fa1 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x73deff89 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xdee7467d __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x09b90617 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x134c05e9 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x796a6153 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbb39f6c0 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc8a47495 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xccc1390a btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe07b17e0 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfe1bf449 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x89f4be3d __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xb99bccb4 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x0dcc15ec drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x4e148676 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x091d3dcf hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0c85f0b4 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0e5776e2 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x14288b02 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x151677bf hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x17c3ab5d hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x184848ec hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1a5efcf5 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1c87f5ff hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x21147958 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bdc0db hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x38caf9e4 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3a23f09a hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3e2049d7 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4ecdb65d hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x60ffdc0b hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x62983ae8 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6c6e86cc hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7855c37b hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e650cf0 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8f748ac1 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8fae77b0 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8ffbdf0f hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9c4e6400 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaa59fe4f hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf397c66 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x1b5c79ed 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 0x2a4cfba8 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x51e2f7d5 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6b9529f1 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb2b8011b usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x128bc5e3 lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x348b1ee7 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x7738c592 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x97f9f3e9 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x9aa0ea79 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x5c2dc419 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xb16c98c0 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x84b7ade2 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xc23e9464 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x3e70f3fd input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xaf0d1cf0 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xd6113340 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xd7017285 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe5c2eb3e adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1178271c wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2b2c79bd wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2c002898 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x31df6f7c wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4038e2af wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4183f740 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x53cf7fd0 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x59f0ab71 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x97f8e019 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa1c13d9b wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc06c3ad8 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xddd22782 wm9712_codec +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x02b3b678 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x07122a4e gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x156721d2 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x178b23ea gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x30ed3f17 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4e8459aa gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x65574169 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x77acc88b gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7d186452 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8c18929a gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3a573ca gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa7c83215 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb42d523f gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb5ca10bd gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe2d5c66d gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe87f17d4 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xff32446f gigaset_stop +EXPORT_SYMBOL_GPL drivers/md/raid456 0x0b5fa9bc md_raid5_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x5158c8f3 md_raid5_unplug_device +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xb9ff898b microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xb30170cc mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x68e6128a tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x9358e53a tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xb46389c3 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xd9d9cd26 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x10c93945 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x33d971b8 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xe7be820a tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x532f2a0f tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xfe0b9580 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x32b67b7b simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0b75b12b smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x13ad047c smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3027921c smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4047a770 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x46bb4ca9 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x48a3adbf sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4a582a21 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4cf5293a sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x53c92d90 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5b8b152a smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6dc51168 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x705355df smscore_putbuffer +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 0x9ca79e02 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9cc8078b smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9db570f7 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa4796a28 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbea8efad smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc67ff7c5 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd0c4de36 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd72d0ac6 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x045d9ab2 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05fb336e rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x07b6d8c1 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2c5cbcb0 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3690a3bc rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x41acd8eb rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4a818a9d rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x70afbdcd ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x84fc67ee rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8d717b13 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x90ba1f71 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb88fc46f rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xba4c7f96 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbd35ca54 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc0f539ce rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc353843f rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xeb7d8b1b rc_map_get +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x118c2e24 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x15391d8b cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1903aea7 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1f4e1d18 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2985af26 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2a731464 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x41b5d2c5 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x56920963 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x606d86bb cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6135479b cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x63499bd6 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x65818613 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x667fe323 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x725fcf37 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7c5c1392 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb54d0fc0 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe0f32307 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf665d20e cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf918e81b cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4fe23e53 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x74ab25f8 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7d72b7f7 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 0x9dc86048 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa9176a72 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xe1585e8c em28xx_audio_analog_set +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/soc_camera 0xe687a318 soc_camera_bus_type +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x0910dcda v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x6ae70d25 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x7159b631 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x99b08d3d v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x9d6c457c v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xceeb7019 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-int-device 0x0be7aa47 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x57d5bd0d v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x9360b1ae v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x9d9dc6f4 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 0x01c14ad7 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0d10d3c6 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x16a37f44 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1d4869b7 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x26d9db55 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2b946b13 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x45044a52 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7913668a v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x79d9d165 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x82716621 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x870b9cbb v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa9993d87 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc38204cf v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc8003f5c v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0660e448 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0cf20fb3 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0deaa182 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x12c1796d videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x19638d23 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1d0f0306 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3250aa96 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x367bd18e videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x39977492 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3adf713a videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x40823963 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x64a6375d videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6e7a1cf7 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x74c2a840 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7bf2afd5 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9332522f videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x951b0f31 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x97b74a78 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaef4e38e videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xafe0c6e9 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbd8a8166 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd011fc36 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd2ff6507 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe34a4345 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xa19ae0f2 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xb9b7764e videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xc6b37fa6 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x47d219bf videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xebfa2d8a videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xeea6a46b videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1c387112 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1e896590 v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x31a78326 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4536ef59 v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5126c744 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x54891ad6 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x63189890 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x64149c9e v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x763a868b v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x79794ca3 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x82cb7f25 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa6038104 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc7903021 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcc638a30 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd9a90755 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdc425e54 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe2d7cf5b v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xea64bc1d v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x975771f4 mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0ea1289f pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1e4dc327 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x32d4c0ee pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x47c48399 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x497d21ce pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5f9e4335 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x689033bd pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6917da7b pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7baa3b6a pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa742e4ff pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc0c30aea pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x786fa6ff pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xa58dd80c pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x1f40b631 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x3b95375c pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x510208ca pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb04bd942 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xf7da8f68 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1abad46e sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x20441c60 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x24705ad0 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x913e4951 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe9d59794 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x6d21f635 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x057cf3b5 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x3f344cb8 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb0fe7380 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xc028f9b9 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 0x194672e3 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2519d3dd enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x35bd56d2 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x576da3a1 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x83729e94 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x89852ae2 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb982c4d4 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x0b64beb3 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xd6cb46a1 st_register +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x198e7f7c cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x4ffe6c29 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x66e4978a cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x32e3aa56 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x9fd1697b cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xcde49e3d cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xf93d7a71 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x6901f893 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x9c357d8e cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xd9ea3279 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xe26cfb00 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xd42c37a3 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x8d82fa4b DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x350aa59a onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xfe8cd4cc onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x172cb4e7 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x308c8b96 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x459e505d ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x47b228f1 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4e7677c2 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5456a98a ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x69807efb ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7a601f56 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb2780da1 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbbbfd531 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc3a75cf3 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd4d2a495 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe8955cb8 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0235b2f4 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x15431bb0 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6d69abd5 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x729074e5 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x886b0016 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x93360b61 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc06e35ad alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc57d7019 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd120d0c2 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd36929a9 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf39acbba can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf88aa8df alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3518c728 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4f6eda40 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc7556a97 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdbb2e220 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x065edd22 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x19e5d0ce macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x22b623b3 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x2e67a3d4 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc3b5be1e macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/tun 0x6cd2c2b8 tun_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x215e6142 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xcca2dee6 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x25217220 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x49b2ef1a rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xab99d94d generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd79e2a1e rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd9e967c8 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xef1a98e2 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0c3daa61 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x14277870 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x15600ebb usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x29dc37c1 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x387946ec usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4a75f971 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x51644b76 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x557d2ab1 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5b681fd7 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5caa2330 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x64e598b2 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6e0f5534 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x70be8d8b usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x936f7603 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x95826857 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb5c75659 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc46654f5 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc743919a usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcab1b5de usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe8a374eb usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf11afcf5 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf178925d usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf976ed36 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfcc250c7 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x11fba11c lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x31127511 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x725667b0 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x73b36cc1 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7b687d40 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x91cca8ff lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa0344e76 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa876a7fe lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd07544f2 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd082a963 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd9043f93 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdaf07e13 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe44c000e __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xed6efd7a lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf171c0c3 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x53877f34 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5a2eb4f5 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x71728e9f lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x79de72e5 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa1f90c5d lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xcd6a9b45 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xeabc3e79 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf43acd43 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x00e4b821 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x17ae4751 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x140f7dd0 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2cb88bb8 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4561fdcb p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6727bf55 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x764c99b9 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x837df3ef p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb7a75661 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc99076ae p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd9d4a24b p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x03694c58 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x04223de0 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x06553f9f rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x140d4176 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1df1d983 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e7bad74 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25aec313 rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25ef0db5 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x286d5a48 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a54fb48 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2c0bee5f rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x31a6a392 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x409a23ee rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x470d7c8b rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5a41ef20 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5db66c58 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x633060c5 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7a0674b0 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7cf24a49 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x83589dd0 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8549a613 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x91889c14 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9b97625d rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9d7ca63d rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9f2c2cf8 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa833f166 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb7a9e5e6 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd9efe7a9 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdfda413c rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe18b959a rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed7397cc rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf3605291 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfa18cad3 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfcf74649 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfdea5eb7 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0369453b rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0a93f55a rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1a8c89f8 rt2x00debug_dump_frame +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ce35285 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x203d0ab8 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2dd86d01 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3292c0f0 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32f49a8c rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x446340b8 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x453d918b rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x48452241 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4d283164 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4ffa38ed rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x596bd06e rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6393d732 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69296e7a rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a3f4f04 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d15ba91 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7d036e16 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x808f53d4 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x80b604b9 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8a933552 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x96693f9a rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d22a2a8 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d77cbc4 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa0f77be5 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb0978df7 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb166bc58 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb31108d0 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb4372321 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb561ab77 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6b69013 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc1dc0512 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc57fb22a rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc9736d8e rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf02ed85 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf31fe16 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd1ede741 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd936de93 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdb7ea533 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe8fe5252 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x058f6942 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0f12cb12 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3cdf303a rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x51b1cdf8 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5eb4e7e7 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x643dcd7c rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x702ae307 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x77598ca4 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x86ea186e rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xad040303 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb3dc14c0 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb7776b8e rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf0401076 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf41f651f rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfb32128e rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x0cfa09a6 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x663657dd wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xe3c7cf77 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x02e23624 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x07361ebf wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x86ce4503 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x900dc89e wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x9732e1fe wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa60e808e wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe83e08db wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x85f7428c pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf637b67b pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf6b66fb5 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x56818e67 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6bbc1cb8 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9b02f56b mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xa2d24e38 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xab8b88a9 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe52bc9cd mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xf5bcf9cf mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x16383edd wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2a0f84c6 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2d6be29f wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x804007c1 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x86554b91 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8c587f53 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xd51eb1f6 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x06c54b31 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x77a66958 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x81088d26 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa6237e33 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xcdca301c iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xce1da87e iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe205f2cc iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06d9d3e6 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09a9d0ab iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c1edec5 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0dac2a56 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x18468f95 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1a41040d iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1cbf170b iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ff5f39a iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x247eb27a iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x324bc4aa iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3286bf7a iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36514105 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e290131 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f164ddb iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f536a8f iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f53926f iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x42eac6e4 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x58269f5c __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e864ba5 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e902d85 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5f4cfcfd iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x60acc4b7 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x670fdcc8 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x695b6baa iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6daeaef9 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70d6e0a2 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8bccb738 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x94f86059 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b1f8a36 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa36ba460 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa3c09d0b iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab60498f iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xafa54886 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc53b4ccb iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7d203bd iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9897d02 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe87261d3 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xebc76038 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee4a8604 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf2dbdeed iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf3c4ab97 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf5b9a48d iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfa12132b iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1c183a91 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1d66eaf4 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x203d1b05 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x43d4caeb iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5a5add8c iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x65188594 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x74d5be25 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8a7a8037 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa05c81b5 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa8643706 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xabd7b09b iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xabf9a878 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc534a732 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcea85945 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd19784e1 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf9f73ca1 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x032c2b1f sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1fb0ec72 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2b208677 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3285399a sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x34803e49 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3d9bc19c sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x41369ab9 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x424fe5a8 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x46eee6cc sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x47da447c sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x559112b5 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5779640f sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5b2e7920 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6e68fd11 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa5b6206e sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa64f2332 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa9049faf sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa9671576 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa97b8b72 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb0cd5271 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdfb00b10 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf462b6d7 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf9b034f3 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2e2bda96 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2f4fcaef scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x67791438 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6e609dc4 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9b538041 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb0168fa5 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb7517e01 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbea995c8 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf23c0b72 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x04a599fc iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ee67a53 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x21f91c96 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x220acbe1 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43bf5e64 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4913b4a2 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x510a2365 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5755b9be iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6821df1e iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x718718c1 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fed50de iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8203c26e iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84bc25b5 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8cfe842a iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa03f1852 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa2123aaf iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa79038e8 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb32f7c3a iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbbb47881 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd77f8996 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdf34b4d8 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed35f2e9 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf1a1e03e iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x79146c13 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x9063b9b0 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xad9789d4 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc3185b70 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1bf7339e srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5fae6f8a srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8e11b10d srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa8d888e2 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb7a53322 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/spi/dw_spi 0x0d5037d7 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/dw_spi 0x2f83e8ea dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/dw_spi 0x392388f9 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/dw_spi 0x52530230 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/dw_spi 0x9c0d9d72 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x15fe9f8c spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x23f69718 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x309e4c6e spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x57cecbc5 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8dc8377a spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xab62c20c spi_bitbang_stop +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/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1fbed387 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x27d9a687 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x3fc3f9ed spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x587a8fee serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x62f7cea3 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x85602cd7 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x87146ad2 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8905e8b3 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8fc32714 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd68b6bf6 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe4d63b24 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf6ff73a9 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2cfd1d4d tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x95e0851c tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xb8fa9181 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0ec96a9f sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x17662f28 usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2b5e8493 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x34dd5cb2 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x42208b73 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4678daa2 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x60a973ba 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 0x9b9ed542 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbf376478 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd38f397f usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd462214c usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xdfcced41 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1a459d2 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe85bc432 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe906df98 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf882e34e usbip_xmit +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x02b2085b max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x36b5c1f3 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x4819c5f9 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x727ed9c9 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x78a00e88 max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x90981446 max3107_probe +EXPORT_SYMBOL_GPL drivers/uio/uio 0x0c227ae6 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x3e7c7e9f uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xb6756a9d __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8eb5bece usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdd107c8c usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x214a8209 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2e3acad5 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x347aec99 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4362943c usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x55830a73 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7d93e0e3 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe5044927 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xeeaf773d usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfa3a984c usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12221155 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12c449dc usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1366836a usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1b133d25 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1f1ac5cc usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x421dcf6c ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x51750a9f usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5debc39f usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x629419e0 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6a19d392 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6fc83842 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x885ab81e usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8d777a51 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x97432cc4 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xabcb0a38 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb45dce9f usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xca6c7742 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xda00c815 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe1d49b0b usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf8df3426 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfc0dba2b usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x097d04d6 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1265dd4e usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x29df4180 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2a2ddc7d usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x33aef69a usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4a809cd0 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5ee56d8c usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x79363977 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x83b8583e usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x87c1231f usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9415cf5c usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9451bf42 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x965fcd49 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa142ad51 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa5fb5058 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb322b0b3 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xba7de92f usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbdafa416 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc6e4ccd0 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc88d9aef usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcece871f fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe941160d usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xed62dd3f usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x17d6f66e wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x4ba501c1 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x537b97d5 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x876b3fe3 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf5e74583 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x082c5c60 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0e6e59a3 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x27af69ac wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4557b5e4 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6425d728 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7a7bdee1 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x888ee090 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa656034d __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 0xca27015d wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcfb0a1ca wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe1c7169a wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xee82920f wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf0db4e52 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf30934b6 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf52b405d wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf87c046e wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x40040640 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x4826cdec i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xc15a905f i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00f18c2d __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d04fe4c uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1b149797 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1fa83809 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x28e676f4 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2b7f4a0c uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2c627f9b uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x362be9be uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x369444ca uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x387f3ba6 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x492f8f17 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4985b553 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4e5e76fc uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5ae6da43 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5bbf7017 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x61b88596 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x61dadb77 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x75675c1b uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7d9d44f3 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8259ed24 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x851af3a3 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8b701a10 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c9cf535 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9012ebed uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x996bd4b9 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f061833 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb096cf5a uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb48d52db uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb4f8e72f uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb9a60889 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc3ef9830 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc73d1a53 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc7505290 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcdbbc632 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdd36d16a uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb52939e uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf3a3584a uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x02a7ad45 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x07ad4b40 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2129d6b0 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6827b238 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc3c0099d ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd3766ba8 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe39e2057 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x64f61cf4 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xc7c2dd13 fb_sys_write +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x986417d0 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc2dec94d w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xccadc71c w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd837f5ea w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd8d6a196 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xeb7634ad w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf79e8da2 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf91207d9 w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x515a1bd2 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x6b89ae75 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x8bfb9148 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x44ef149c exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x8a3fa162 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x0da21a20 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x129aaa96 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x3092034d fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x309fd2ba fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x5c5d71b3 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x6593a470 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x67b3c0bc fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x6b4f7633 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x728000b5 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x802aadee fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xa136918e fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xa8e4bba7 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xadd52b7e fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xb65deeaf fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xbca0b508 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xe3c42dc9 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xe9e711e1 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xebc40ca7 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +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 0x233dc8c8 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x429029d6 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5d8caae6 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6aaea676 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x917e6d2d nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ea31513 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x89553c6e nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x941eb638 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 0x1dd8f008 o2nm_node_put +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 0x650b5605 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 0x865e57c7 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x86bd9bcb o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdbad21cb o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfe1edfcd o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfec5cd03 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x08be15d9 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x84c1924d dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8bdacd96 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc30b75b9 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc9197eea dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc94967b1 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 0x49e659af ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4f31e2c0 ocfs2_plock +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 0x9ad15cc4 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/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +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 0x0923055a garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x48074972 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x64dfe789 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x7af08220 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xc37d6ce2 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xda43a799 garp_request_join +EXPORT_SYMBOL_GPL net/802/stp 0x7e9c31bb stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xd5b301c1 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x2c22d16e p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xf0eeea2e p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xcf686f36 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x3a70850f bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x06f38712 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d727db0 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1b7148b2 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1e97dc9e dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23d367d7 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x27ec9dd2 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e54a8c7 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x336f310a dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x39f109c3 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4885513a dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a356eef dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x50ab6366 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5b77ae86 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6395cce0 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x65302616 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6811d69b dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d5a7adf dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x773cf1d7 inet_dccp_listen +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 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95a3cdec dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xac89579c dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb8db40cd dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb8f24e20 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbacb1d55 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcdc1e720 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcef53a95 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd31ebb5c dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd65da542 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd671a983 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc6cb789 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf37061c dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4d70990 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfff55ad9 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0915139d dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x479bb342 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6dc9706d dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa4643390 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc61888fc dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe32bf447 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ipv4/gre 0x25661ed7 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xc00c00a7 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x1a734a4c arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x9c2d2f03 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 0xba20a46f 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 0x2df3f1c8 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7de3dcce nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8fd45139 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 0xa5b8c6ab nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa695d038 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd318460c nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x44f9c0d0 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6e1da867 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa5299044 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb48393f5 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xeefad084 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x45743794 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x05abd777 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0dd54147 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5f436039 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x69d8d1d9 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6f43a1a4 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7f6d7717 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9bfd7754 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc1325cc4 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc2b629aa l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc49f0fe2 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xca51285c l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfcbf8ac2 l2tp_session_free +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x690d8513 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x69448f20 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x76aad3da ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd97c2a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa3d57d11 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xae3cca12 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x816b4a63 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc3a0107e ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc60c0b5e register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xfd1d18bb ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0214d12d __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 0x0e996603 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0fba20a4 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1211f49c nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x134ba12e nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1fecbbdc nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x208ca4fa nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2450fc38 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28c2ac97 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ddad95e nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ece6576 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2fdca29e nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3323da6b __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35745ca4 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x378a0a62 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3afe7fad nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3db5d686 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x404dd721 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4942adce nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a059ab9 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bd24a6b nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c092ea9 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54d70567 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61a7e362 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 0x632fffa0 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b905a5d nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72248b83 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73451982 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 0x79e428e9 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x811684c2 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x839dde09 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8869a351 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c799a8f nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f7c3922 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9064abfb nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92754e3e __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93d5c54a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9ca770c4 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f45bff2 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa072b8ac nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa1aa124e nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa30e1de8 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf0b070f nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb8f634e0 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf0d9b87 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc184bf08 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6a94de3 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc95a7554 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca6f0efb print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcc510e64 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf8987e7 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd030b45e nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd96f616a nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2650c89 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe54b8b2f __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7c85679 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef46f875 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf15cad7d __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6bcacc3 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa59cf41 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe1ffc3b nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x1d3ef34d nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x1384728e nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1841c5b6 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1df8cf88 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3a67358b nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x51a0946e set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x72ff7b3d nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9a0fdb93 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb422c30b nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd76ea389 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xecc80e66 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeee612c9 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xeb68e4e5 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x35ba1c26 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4c092733 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x63418633 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd92a2778 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x0b53bacf nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x2b230a28 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5056ac5c nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x511de4a5 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x51518cc1 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x600a7ef7 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x672cf544 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6e7a4d9c ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x72300a2d nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x78fb25dd nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa1f2caff nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa33eb788 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc47b1168 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf62cc34d ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfdc82165 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x6c0bc5c8 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x697f68b4 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2819f078 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5720576d nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa4621db3 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa4f90a0a nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcf78ecc4 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd9bf0c9f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x00f8c982 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1c0f52bb xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x35d7b31b xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x385c4bde xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4506533e xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x61170809 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x640eea00 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6c70d842 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x797312df xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x98a657d0 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa00b90e2 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaf446107 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd6d436c9 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xda7e721c xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf3731e8a xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x563d999b xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf6afa81c xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x02a877af rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x064ca54c rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x13841b73 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x16ac7e70 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x29511ae2 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2a76b469 rds_conn_drop +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 0x38e33f7e rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x3e5f5e34 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x514a9f08 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x532e79e5 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x59d308dd rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x655c02f1 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x684f29e7 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x6a333e49 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x8776054d rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x8ede0288 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x8ff1d691 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x90e0481e rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x99dc1c7a rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xa6b581d7 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xc39d8959 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xdb8f2920 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xf0c7ba8a rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xf2546fc0 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xfdf36535 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x341e673b rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x91e6f122 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 0x02745163 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x16ec6c56 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4c8cb605 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5535b0a5 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x56e063df gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x65358de0 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6b8970a9 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x92e59687 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa2d4dd3d gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbc8c98e6 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcfce859c gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02b9d310 svc_create_xprt +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 0x08192a7c rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bac3538 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c238e8d svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d1df3d8 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ea0572a svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f50baad svc_xprt_received +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 0x10e5a80a svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1101cc3b svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11bbf9f9 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x145fe2fb auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x152b2501 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1589d57d rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x167fa0c2 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16e75439 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18e283ea svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bc3b76c rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c9f20be xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21431a80 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21b3e47f rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22c09444 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2736d89e svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a5588ae xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3059ac8d write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3138df5c xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ba41c1c svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d68e135 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3db90016 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43b56232 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x440078f2 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45332c12 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x462d31c3 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47adbb8f rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47c25c65 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47cf8dfb svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b79f704 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dc2ef73 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e3b3ea4 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ead1fa2 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f994076 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50e0896a svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +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 0x5d66fff8 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5dd452c7 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f61dc31 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fa40237 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fbfc651 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6584b404 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65e9c7a7 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x679e007a rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690ac893 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5700f5 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c8699e7 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e7cfb02 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6fe90177 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7197a591 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72edb70e rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7389ac64 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x740db218 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74666225 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x799e4d52 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d016a5f xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7db97c9b rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dc7bb3c xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84a3c806 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85556adf svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x858d3af5 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8866e8a2 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88aeb542 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x899cba44 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a00daa9 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b9cd504 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c24f73d svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cf63071 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d649cd0 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d989129 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x955b08e8 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95a1d77d xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95ca1b25 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98bc4be1 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99792770 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a0aa8af rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9aae4229 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bd6ff50 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cad8dd1 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc03a78 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d312740 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d508bb5 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9dff6084 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0a45754 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa157a84d rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2ef2526 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6fefce3 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7be23a8 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa98bc970 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9c4eebf sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9d74c62 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab3bcc8a svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad7d1f4b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadb7a6be rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae7fc2c0 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf27a192 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0e04992 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb43defaf xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4c32569 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5939fe1 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba83e5ed sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb07908e xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb476124 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbddbb0e7 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf8a7409 xprt_complete_rqst +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 0xc21e585e xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3d6e772 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6b8ea06 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6d3c5d6 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcae11eec svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd0e4e4d rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd0f62bb rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcea4efa2 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcecfef10 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xced9149a rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee5ea87 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4da58fd __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5bcc03e auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb30ec21 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0762eb9 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3acee5c xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe536403d rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6381967 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6fc7b23 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8d3a89c unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec1d8be3 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed33c83c rpc_mkpipe +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 0xf243ff30 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4ba740f csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf55b6600 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf634ddbf read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6d3eed4 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf931cdcd xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf94658b0 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb69a375 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc3aa76f xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfee5b6b9 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff001be3 svc_proc_register +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3a83e44a wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x53bd7b6e wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5568a3e0 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6567f93b wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6aab7b28 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6fa4daeb wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9c03e9e6 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa374cf30 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa490d016 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb4f91ac1 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcc96983f wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xdbd50cb6 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe3641890 wimax_msg_data +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x18fbfe2f cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x261c9826 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2b24b14d cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2b88a1f9 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3102fcb5 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x35e55c99 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x40eec017 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4d92d637 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5e3590e8 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x60e43c9c cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6d5d4c7a cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x759775a6 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7b2561b5 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x80684322 cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x898c11a1 cfg80211_wext_siwpmksa +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8a6e3d82 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8ff12a21 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9154fe96 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x995182e7 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9ca5a677 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9f0a3b2b cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xba889f90 cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc60945d1 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc7769b1a cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd6eeedb7 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdcb7c633 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdfbc88f7 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe2666a47 cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe520e099 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xeb4d8cc6 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf370f060 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf9f817b1 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfd1fb79d cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x315d1238 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc89c7a09 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xec04d1ad ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xeea5d271 ipcomp_init_state +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x5797551d pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x7b9542de pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x74a8fbf2 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xc120b9d7 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x4fb0b06f aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x5391b53c aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x5394699e aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x5c2f5e7c aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x84772fcd aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x981d211c tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x98306b72 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xb9318e46 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x3b39d4a7 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1ce432fe 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 0xba16e1ce wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc4b54226 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xa76080cf wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x4d7bf937 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x9ca142f3 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x75398581 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xbd415953 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x7046fc6e wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc623dd9c wm8958_mic_detect +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 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x007f55d7 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x00aa1ec6 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x00b429e2 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x00b778fc crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00cbdcd9 __big_tty_mutex_owner +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01231876 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x0181e946 mmput +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01ca1721 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x01cb7a25 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x01d00cae devres_find +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0232751a fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x023895ae ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x026b2bcc user_match +EXPORT_SYMBOL_GPL vmlinux 0x02dd4b97 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x030d11a8 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x0310b786 add_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x0327a678 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0346954b input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x0350c572 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x0374c49f register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x03ae4910 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x03dc90de blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04240c38 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x042adfed inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x0439bf77 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x043d03b2 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x0466a691 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x047d6def snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x048b1e15 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x04992570 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x049fc0ff invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x04e1a66c queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0538686f scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0550cc0d crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x0562ef5d skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x05e254a5 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x05e51798 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x0624246a ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x0626ec65 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x062c818f omap_dm_timer_set_match +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x067c20c6 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x0688863a regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x068a820a mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x06d978d1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x06eb94f5 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x074e62a4 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x0766762c __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x07887bac pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x07946239 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07efaf0a led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x07f64d6f generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x08037905 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x0842e73c register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x084c3020 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x08ec2e3a wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x08f61f64 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x098a95a6 omap_dm_timer_set_prescaler +EXPORT_SYMBOL_GPL vmlinux 0x09a191af __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x09a733d0 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x09dc87b6 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x09e71883 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x0a4f496f scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x0acf4580 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x0aefcec5 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x0af8b15d ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b2ac2c4 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0x0b79a741 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0b94e9f0 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x0c03aff6 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x0c1ddfd6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c4d84ee sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x0c7cf86e crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x0c86ba6e ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd9838d ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x0ce0b0a6 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x0cfec1ed bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x0d6f6002 ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x0d8c35ed ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x0de15e02 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0de8a10d tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x0df5cb95 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0e0bfe69 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x0e46fc8b sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x0ea7d03e blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x0ebef216 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x0ef007d3 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1029c574 register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x102f2102 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x109021df crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x10bc6f6d perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x10c283ef dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x10d13969 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x10d2535a irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init +EXPORT_SYMBOL_GPL vmlinux 0x112528a5 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x11700146 snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x11839e92 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x11ee3e2c driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x120444e6 plugger_remove_plug +EXPORT_SYMBOL_GPL vmlinux 0x120b34cf ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x123bc000 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12a30954 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x12e943bb dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x12eab33d dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x1314532b device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x132dee0c bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13830963 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x138b5fa2 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x139d482f flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x13a291cb scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13f0bb35 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x1453fcde crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x146be828 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x146e9d04 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x1498d04b sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x14fb8d11 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x1525dc0e regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x15358980 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x1545f4de register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x15850f03 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15963455 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15c1314a kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x16097a90 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x1629c99a fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x16408784 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x167d34a4 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x1688e999 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x16b388e6 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1711ca1b __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x178c6fc5 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x179226d7 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x17c49b0a unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x17e9a203 get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x18063f29 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x1810d7a1 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x18595f39 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x18c31122 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x18ee18f8 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x19242ab1 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b31d29 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x19f48c07 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a96632b crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x1aa58ca9 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x1ad3bd4b trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x1ae947d7 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bafe148 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x1bcfca94 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x1bd108dd ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1bf4684d cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x1c640f86 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x1c6841c6 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cc58a29 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x1cc5a0a5 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x1ccdf0b1 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x1ce8cc60 find_module +EXPORT_SYMBOL_GPL vmlinux 0x1d4e9c40 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x1d66f9cf regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x1d868b5f snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e12a4da led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x1e12bdcf anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e7372aa da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebcdf75 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x1f04fc77 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x1f1b3f9f pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1f2b2c40 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x1f30b4a9 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x1f359088 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x1f3d9ea9 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1f54d9af crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8df2b9 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x20117eda omap_dm_timer_get_fclk +EXPORT_SYMBOL_GPL vmlinux 0x209076e1 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x209affae device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x20e45cc2 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2119d138 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x21f0e883 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x21f83a43 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x224ba21b ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x224e83c8 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x225e9a9a tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x226d7898 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22fa68d1 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x22fafeca usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x22fb2510 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x23026d8b system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x231af18c snd_soc_write +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23950ee2 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x239b2238 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x23cc18aa vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x23e72805 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x240b6c5f unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x2418e6d3 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x242b2a44 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x242ff1fc inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x24395357 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x244de05c dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x246ff7ea platform_device_register_resndata +EXPORT_SYMBOL_GPL vmlinux 0x24708d00 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24a33daf securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x24b4b676 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x24d6be45 snd_soc_register_codec +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fb1c87 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x25039dcc snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x25a43cfe wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x25ca6a5a sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x25ec4a9c tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2655bd4b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x268e4260 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x26be283f system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d7b9ff fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x26e6b97a system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x26f4defe blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x270c649a put_driver +EXPORT_SYMBOL_GPL vmlinux 0x27145867 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x27305906 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x273fb3c8 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x27519b24 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x278694b6 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27d6d540 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x27e7bffb fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x27e8c2ea ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x288205fb cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x2886e55a devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28b045c6 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x28b5f002 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x28b806e5 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x28ca09a4 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x28cf3e72 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x29021e17 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x2910c2b2 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x29259a75 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x292c3ff0 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x293469e8 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x29bca3cb invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x29c728e0 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x29cd6684 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2a18f731 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x2a318392 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a7f25b0 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2b38397f put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x2b64bea0 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x2b6ed47c user_update +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2bcefb3f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2bd733c2 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x2bdf57e4 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x2bf3cb8d spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2cbbed crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x2c4de7ad inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x2c89409a usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2c8d868f vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x2ca905a3 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d0d4167 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x2d3fb161 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x2d64bb21 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x2d8ae6a0 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x2dc63f8a ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0x2e13fa40 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e7f35e5 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x2ed15d6f ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2ee7e45f sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x2f0817b3 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x2f097437 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x2f14b683 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2f37b41d dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x2f3ba8ef snd_soc_cache_write +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f625356 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f6ed56a sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x2f80e89e remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x2fc3100c ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fd501ff blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x2fd66c7b __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x2fd6d0dc key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x2ff5cdbf sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x304a5d92 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x306cd4a4 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31225334 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x315aefde sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x316be7bd crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3191eb72 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x31ad0aa7 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0x31d05799 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x31da8964 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x31e4c9e4 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x31e4dec1 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x31e8fb53 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x31f0c782 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x31fcc59e ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32e1f7b8 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x3364c292 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x336e065e blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x338673c5 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x33ba61e9 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x33baf836 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x33eafc20 nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x341643ba omap_dm_timer_modify_idlect_mask +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x349fe94f led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x35122fe7 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x351e3ece sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x3552aa52 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x357f07fc ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e3435c each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x35e74a8e input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x35ff7ff2 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x361aa922 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x36215970 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3658bf9f blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x36595127 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x3659cdd3 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x3682e07a usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x368ce838 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x36b28569 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x36cb8a16 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x36cd7756 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x36e23124 disk_check_events +EXPORT_SYMBOL_GPL vmlinux 0x36f5d433 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x37001fcc rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x372886a1 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x3781b0f5 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0x37ede920 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x384125a6 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x384a7aad sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x386c6aed led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x3883e00d md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x389cb4b5 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x38a72bc1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x393b5ae8 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x39a84c7b omap_dm_timer_set_pwm +EXPORT_SYMBOL_GPL vmlinux 0x39ae9d42 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x39bd495a ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x39d31bb4 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a3f5fd0 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x3a94bc82 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x3a9a5a81 omap_dm_timer_write_counter +EXPORT_SYMBOL_GPL vmlinux 0x3ad71908 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x3aef3dab snd_soc_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x3aef7616 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x3af72f61 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x3af8651a __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x3b3a4bb5 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x3b72c43a destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x3b7b2473 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x3b8887ca usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x3bd79fa3 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c15b936 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x3c236f33 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x3c4626da show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x3c84fc1c wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca16d23 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd1105f devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x3cd551c3 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d0ce8f0 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x3d20cb1e sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d9c0481 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x3db650b2 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x3dbe7149 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x3dc2d3eb register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de97956 omap_dm_timer_read_status +EXPORT_SYMBOL_GPL vmlinux 0x3e604f89 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3ebc6a78 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x3ee2fb34 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x3f049bcc crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x3f210e75 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f685423 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x3f697bfe snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x3f710e06 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x3fc36d61 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x3fd73ab0 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x401951a2 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x4024b3fb platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x40265cb6 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x408aa5c8 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c0370a tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x40cabccb dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x40e860d4 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x4101d4e5 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x41121466 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x4131d0c2 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4139b167 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x4169a7d3 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x41aa19a4 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x41b13310 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x41b6efaf scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x41b92203 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x41ca3b19 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x42053855 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x426e247d rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x427231d3 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x42885bf8 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x428b1bf0 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x434eb5f3 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x436a81f5 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x43e14a1d snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f6e9a6 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x4404a5aa regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455ce99 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x445fedfb snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44a903dd power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x450e24f6 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x45605174 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x45655b1b class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4576e359 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d3ecf2 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x4619088e kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x4634e8fb inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x46455b15 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x4652fb35 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x465922a1 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46b0e14d snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL vmlinux 0x46cfc490 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x46efe6d1 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x47077da5 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47470735 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x4752c364 input_class +EXPORT_SYMBOL_GPL vmlinux 0x4755f1ea wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x47c39534 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x47dc16b9 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x47fc1ba1 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x481e094b da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x486b6ad2 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x489e3106 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48f9f410 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x4904f550 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x49793c99 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a40e02 omap_dm_timer_stop +EXPORT_SYMBOL_GPL vmlinux 0x49d53c89 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x49e6fb30 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x49fe53a1 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x4a3b94cb simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x4a840872 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x4a846a5a ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x4aac75a2 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ab53f7e regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x4b652db5 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x4b7cf8bb ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x4bae9b61 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x4bb22dfb __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x4bce18a9 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x4beb9814 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x4bf674f7 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x4bfeadce snd_soc_read +EXPORT_SYMBOL_GPL vmlinux 0x4c379cf5 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x4c4e9013 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x4c5ff4ad i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4c967bd3 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4cabbb53 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x4cb1dc33 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x4cbbb100 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x4cd2ff57 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d27d278 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x4d3acbcd dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x4d587721 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x4d8220cd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x4d82baaa ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x4d846a85 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x4d9be7e7 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4de68c39 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0x4e0be8a3 snd_soc_cache_read +EXPORT_SYMBOL_GPL vmlinux 0x4e0e807b ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x4e25c4bb snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x4e29346a __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x4e33eb75 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x4e6c1c15 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4eb05f4f fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4ed79875 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f35ea3c rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x4f9fbc8a inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x4fbc1797 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe39bc1 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x4ffce765 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x502d2495 snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL vmlinux 0x507bc951 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +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 0x510e1c76 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x5112617e debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x5116aea6 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x5125c288 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x51316153 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x51abf828 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x51fe6e67 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x525e9f8b device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x52839231 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x528e432d user_describe +EXPORT_SYMBOL_GPL vmlinux 0x52980b87 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL vmlinux 0x52acfa77 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x52cb865d blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x52dc4da6 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x52f3a23e crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x52f66fe4 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x53089cf5 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x53270b74 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x53293d42 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53652b01 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x538c2de0 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x541ddfba __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x542bf83c omap_dm_timer_trigger +EXPORT_SYMBOL_GPL vmlinux 0x542c3cfc sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x545800fd sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546e4f4c sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x54885608 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54983bf3 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x549de54a blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x54e6cf4a __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5516a4ec blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x55612253 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5598a44b inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x55a482c9 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x55e77df1 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56728164 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x567560f9 reserve_pmu +EXPORT_SYMBOL_GPL vmlinux 0x567ff605 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0x569d8fd3 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x56a15a6e ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x56b14c12 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56f7bf4e pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x56fda372 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x57342554 omap_dm_timer_set_load +EXPORT_SYMBOL_GPL vmlinux 0x575f1a1a pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x5760b756 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x5787ca0d scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x578f0806 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x57974313 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57f8cb36 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x58157d01 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x5854fef7 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x5865341d nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x5876100a inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x588bc253 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x589b1e78 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x58a194a3 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0x58ad45e1 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x58d355a7 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x58e8fd20 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x59203727 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x592499d1 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x597cdb61 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x598b5af4 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x5996f4bc find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x599d0cb6 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x59b7f8d1 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x59ca4a40 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x59d541d0 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x59f01442 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x5a472f66 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x5a689d4c file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x5a7b9754 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5ad174fb usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x5aeb7f47 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x5b0417c4 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x5b0c9f35 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x5b369f39 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x5b4c1d09 css_id +EXPORT_SYMBOL_GPL vmlinux 0x5bb0dda8 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x5bb945e2 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x5bf2470a wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c12c90c usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5c500d2b vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x5c555734 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x5c6277a4 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x5c9e2676 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x5d02db29 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d1bf1b0 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x5d1cdf82 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x5d4a4572 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x5d714d19 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5daec650 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x5dc350ff unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dfd54e3 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x5e4d76a8 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0x5ea09950 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x5ec98493 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x5ee4f1db __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x5f07a124 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x5f3de20c device_create +EXPORT_SYMBOL_GPL vmlinux 0x5f5c0703 omap_dm_timer_set_int_enable +EXPORT_SYMBOL_GPL vmlinux 0x5f790a5c eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x5f7cdf78 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x5f8375ac ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5f903e48 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fd01c73 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x603a6c36 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x604bf183 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x604c8fba bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60a35d7c ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x60b0c913 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x60c338f8 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x60d88859 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x610fb0aa blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x6126399c fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x612f9a8e inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x614ff067 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x61579aad task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x61594817 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61647fa8 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x616e36ec trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x617b42b5 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x621c09f2 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x6227040c snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x63170a20 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x638ee9a7 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0x63e3f235 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x6400a7d3 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x64139f67 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x642729bb fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x6429aad5 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x643a0029 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x64496c4a debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x6496718b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x64df57d8 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x64e044d4 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x65167474 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x653bfe62 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x65531a48 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x659e89c9 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x65aff8e2 snd_soc_cache_sync +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 0x664d9827 snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x6674d693 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66bfd2bd driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e1fc92 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x66ff459d bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x6714c33e regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679f5785 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x67a52cb2 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x67b1c77e aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x67cc5e5d transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x67d07897 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x67e513a6 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x68115bdb spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x683052ab tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x685c43c6 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68ca5640 register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x68d3f208 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x69286751 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x692c7152 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x6932a7ba snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x695545dd seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x696ca9d3 device_register +EXPORT_SYMBOL_GPL vmlinux 0x69a40b90 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x69a4446c relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x69e186a6 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a1ef062 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6a467521 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x6a5e9f94 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6a8414e3 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x6aa1b297 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6aecc77c __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x6b282ea6 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b5b3e04 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b98b80b wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6b9ed048 pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x6bd8f36d crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x6c010b94 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x6c0179cf fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6c0f58d7 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6c332cfa ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c7d5385 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d66ae05 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x6d6acc14 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6db14f3e kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x6dd08835 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x6ddf3f61 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x6de41d5a usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x6dea3063 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e79391f usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x6e9be26d blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x6ed7a786 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6eee6a8f platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x6f0ebbde unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f6c03e7 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x6f952dd3 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x6fa426b1 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x6fb032c4 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x6fbf10d0 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x6fdf2c1d crypto_unregister_pcomp +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 0x702195fa mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7050d427 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70bdd259 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x70f10083 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x714e1273 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x716fc9a5 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x7182bee8 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x71938a02 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x71b7383b sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x71b8d625 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x7226ca7c stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7250619b fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x725fd64b i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x726baf17 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x728c0e69 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x72a934ac sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x72c5c449 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x72caf687 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x72e8d96f devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x72ec4652 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x72f52c1a snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x73110bf6 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x731251bc rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x733ffaa0 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x734ca093 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x7354dccb tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x738d3b93 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c3fe66 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x73e2cf26 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x740a142f skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x74280aea omap_dm_timer_request +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x7444a530 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x7456e0d1 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x74584353 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x7483ecd9 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a2d434 platform_create_bundle +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 0x74e54184 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x7507ec41 omap_dm_timer_set_source +EXPORT_SYMBOL_GPL vmlinux 0x751acf54 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7522c1d1 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x75372c96 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x75714403 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x75812371 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x75993754 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x767d7f41 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x76e04555 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x76fdfe4c scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x775b15ab ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x777130b8 user_read +EXPORT_SYMBOL_GPL vmlinux 0x77bf125b sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77e7c145 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x77f1a608 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x77f4745b crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x7803d1db adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x7804a5c0 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x781d4963 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL vmlinux 0x786c7a03 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x788bbf12 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x78c5a0f7 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x78cd3bc5 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x78df566d __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x7913e1a8 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79518f58 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x79545514 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x799d6377 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x79a41cc5 armpmu_get_pmu_id +EXPORT_SYMBOL_GPL vmlinux 0x79a57726 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x79b4fd4f sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x79d930fe usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x79e25a56 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x79f03e81 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7a039def sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x7a0c0f2d blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x7a409d93 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x7a4c315f inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x7a5aa7af usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x7a6233b3 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x7aa32720 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ae67c57 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x7b00c90d pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x7bb1639c noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x7bbdaf8e snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0x7bc1a8fa rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x7bfcd4e9 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x7c497aa9 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x7c6784ef ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x7d2e7fde ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7d453ef7 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7d55850e fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dad5926 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dcb2833 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x7ddac963 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7df00142 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x7df31201 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x7df4d374 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x7e0581dc dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e2643e3 usb_set_interface +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 0x7e78fc18 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7e857078 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x7efc20a5 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x7f083257 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x7f0e482f rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7f496966 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x7f68c82c __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x7f97a442 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x7fa79502 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x7fadd135 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fd38778 armpmu_get_max_events +EXPORT_SYMBOL_GPL vmlinux 0x7fd8c9cf securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fdb5bed sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x7fe8e95b snd_soc_dapm_new_control +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 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80936e82 mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0x80c38a7f plugger_init +EXPORT_SYMBOL_GPL vmlinux 0x80c79e77 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x80dcb5bf crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x80df7f1b ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8111f364 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x81236ee8 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x821e6115 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8258f5e1 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x829813e0 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x82a74ff3 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82b9e4fb __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x82bd525a relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x830610da sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x8312de01 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x83203472 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x8392db8c cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x83b3a1d0 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x83c6fb0a skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x83f592b7 snd_soc_register_dais +EXPORT_SYMBOL_GPL vmlinux 0x843b51ce inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x845fa1de usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x84797848 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x84abd8d6 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x84dcaf43 register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x84e59447 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x8523b685 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x853762fc crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x854a3391 __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x854b53cd adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x854c95b7 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x8569d326 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x85a7ebc1 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x85c400f9 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x85ee8b10 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8647a7d0 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x86508822 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x86557226 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x867e1841 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x867e330b crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86930d20 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x86acfa35 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x86ba0d6b ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x86cb3a0a setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x8719c75e usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x87302294 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x88140f0d scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x881a2e2e spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x8826e32d snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x8833bb2c register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x885b2519 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x888b4cd2 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x892c77e1 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x89ec32c1 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x8a1b7772 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0x8a4c9029 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x8a564dad rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a4a snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8b5c8a70 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8ba238c1 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x8ba8d3b7 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x8c13911b dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x8c91fbc6 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x8cc2e983 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8cdecd6c platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ce0e063 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8d2c58cd device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x8d5a53a4 device_add +EXPORT_SYMBOL_GPL vmlinux 0x8d771dc7 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x8da2a4d7 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x8de25bb6 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x8e54a97d tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x8efa5c1a fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x8f61fc43 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x8f69a242 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f743cc5 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x8f81326d hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f89aec2 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x8f9c46cb blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x8fa587e4 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fd2012e omap_dm_timer_enable +EXPORT_SYMBOL_GPL vmlinux 0x8fd2fcc3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x90868cce cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x90a0ce62 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90aa3d1c ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x90dab3db ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x90f08f90 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x91014ba5 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x915bda29 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x91906ca1 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x91a5917b usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x91baac80 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x91bcbd82 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x91bfd9a3 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x91dda801 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x92128b75 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x92302812 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x929877cd init_pmu +EXPORT_SYMBOL_GPL vmlinux 0x929bd9dd mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92e33312 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93130242 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x9352dc35 snd_soc_register_platform +EXPORT_SYMBOL_GPL vmlinux 0x9361e956 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93d451c3 nand_release +EXPORT_SYMBOL_GPL vmlinux 0x94a219c4 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x95603edc ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x956f21ea register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x9577ac6c xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96296063 get_device +EXPORT_SYMBOL_GPL vmlinux 0x9649d0eb snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x9686698f omap_dm_timer_set_load_start +EXPORT_SYMBOL_GPL vmlinux 0x96af6139 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x97030c01 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x970abbc1 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x973598de ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x9753fd78 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x977520ed firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x97a31b8f led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x97c29ca7 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x97db2ace ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x981ec0e2 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x983224d0 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98472844 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x985b68e7 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x9868276b __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x986c2809 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x989278e5 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x989a8a1a adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x98a4e08f fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x98df4404 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x98e4308a debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x98e9ddb5 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99370a3e regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x995b38b2 mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x998659f2 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x99baf7a7 sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x99cf153e tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a49170d devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x9a8e4225 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x9aba383b hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x9ac1acbb bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x9acb3293 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x9ae471b6 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x9af3648d blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ba4cd3f ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x9bd98b18 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x9be841c1 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9bf897c4 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x9c28b4fb sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x9c2e4658 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x9ca99eeb debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cd2644e devres_get +EXPORT_SYMBOL_GPL vmlinux 0x9cd87e40 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL vmlinux 0x9ced71a4 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x9cfd5c2f sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x9d18bb53 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x9d3621c3 deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x9d393c59 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x9d60d2fc dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x9d6af3ca snd_soc_unregister_codec +EXPORT_SYMBOL_GPL vmlinux 0x9d7180ff snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x9dba9959 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x9df8785d sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9e14d8db dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0x9ea2180b proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x9eb76035 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x9f0752ef ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x9f197315 plugger_set_plug +EXPORT_SYMBOL_GPL vmlinux 0x9f2634da tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f540e09 md_run +EXPORT_SYMBOL_GPL vmlinux 0x9f9d319d wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x9fbb1be6 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x9fca4a23 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa01bf4a2 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xa021a53d ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xa07f6fcd ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa0c0dbc8 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0xa0d95f83 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xa11f4271 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xa12c3436 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xa1424b3c ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xa1470472 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xa17bf07a unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xa185dd1b __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa1db04de wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa1e13ba7 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa20c5214 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa24b6256 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xa26d7096 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0xa2dbf3f7 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xa306f64f bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa31b18f9 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xa339ddb1 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xa3c03db9 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa3ce32e3 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa44c669c rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4e3e40c security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xa51fe57c crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa5551077 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xa55cebd3 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xa57afc74 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa5d4fc7f alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa5da778d unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xa5dd6fae arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa6071166 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa609f75c sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6360c74 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa66b70eb ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xa73ce992 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xa752c3f0 snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0xa77a72ca i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa7903556 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xa7a5465d sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa8318e95 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8a2fc89 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa8f7c8d1 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xa900a632 omap_dm_timer_free +EXPORT_SYMBOL_GPL vmlinux 0xa932c7c5 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xa934fd6c ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa9652da3 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa97c324c device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xa9864440 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xa99209c7 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xa9c02969 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9d1ca2c kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xa9ea604b raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xa9edae17 get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa17536b blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa30965f release_pmu +EXPORT_SYMBOL_GPL vmlinux 0xaa394d87 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xaa76d8f4 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xaa937854 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xaa95c351 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xaabe7ae6 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xaad16a1a nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xaadb412b dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xaaf6819b rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xab5251ed snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab7d70ba debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xac05e0d5 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xac54c654 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xac60b52b ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xac7ed3ae tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xac8b88b8 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xac9304a3 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xacae7217 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad3961ec regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xad57f4f3 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad829da5 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xad89009b usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade7b4a9 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xadec40c5 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae323390 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xae5ad292 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xae67eccf ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xaec5ad7d scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xaed1f235 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xaef1abe2 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xaf352e89 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xaf3dcfc3 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf44654c md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf5673b7 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xafb47b1a raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xafc2487c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xafc90b18 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xb00b9df5 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xb05495d5 snd_soc_register_dai +EXPORT_SYMBOL_GPL vmlinux 0xb06c891d device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xb06ef645 parse_mtd_partitions +EXPORT_SYMBOL_GPL vmlinux 0xb0ad1170 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xb0ded995 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1807291 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a99a59 tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0xb1abd06a __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1c5de4f __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xb1ec51d2 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xb1f3220b wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xb22ddca4 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xb22e068c drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xb2b1b56e netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb3308aaa hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xb33915bd usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xb34c1171 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3aa0d66 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xb3b26993 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xb3b4464b ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xb3cb3e2e inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xb3cd4156 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xb3e96de9 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb40dce51 omap_mcbsp_st_add_controls +EXPORT_SYMBOL_GPL vmlinux 0xb41b792c pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xb42d3062 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xb465cd47 __css_put +EXPORT_SYMBOL_GPL vmlinux 0xb46c7c3b ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb49c06e6 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xb49e24f2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51392cf use_mm +EXPORT_SYMBOL_GPL vmlinux 0xb51f03a0 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb53342af tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xb5369197 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb58abbdb default_mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0xb5a25ca1 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xb5c5ff88 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb5dd7832 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5fd9b35 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0xb6402757 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xb66b222c tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xb67e6699 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xb683fc79 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xb6973b75 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c900f1 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb6d4f27f map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xb6dd099f stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xb736b7db inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7657a01 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xb769fe7a inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xb77822dc fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xb778de92 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xb7d3a557 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xb7d91fa7 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xb7dc4180 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb7f0368b crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb81e331c sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb852f263 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xb887a52c debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xb915ec00 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address +EXPORT_SYMBOL_GPL vmlinux 0xb929835b ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xb953b432 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xb99021ad usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xb9f8e7fa ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xba10f778 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xba542f07 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaf9ace8 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xbb00cc6f fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb3663c8 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xbb38369c tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xbb4914f4 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbb9a2c75 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xbb9bfb53 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0xbb9ff899 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xbbb68bf0 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xbc4658c5 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xbc64b5a2 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xbc700506 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xbc7db434 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xbca24fac sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xbca58b44 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xbce065b7 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xbd15b0b7 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xbd35d2d3 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbd4171c6 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xbd43c67a ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xbd8a5c8c ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xbdc2e866 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdea77f9 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xbdf144a3 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe1ce78a snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xbe89dd74 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xbed992bc led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xbedc62da schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xbef475ce net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xbf99ee13 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xbff0d1a5 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xbffe6a43 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xc010e9f2 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xc01552e6 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xc01a22d0 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xc0292be1 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xc02bc8c5 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc071fb70 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xc0805e02 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xc0ab93f7 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d8abfa ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc12deec2 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xc154230c device_del +EXPORT_SYMBOL_GPL vmlinux 0xc16bfaf4 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17ee92f seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xc17ef75b power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xc20ce69f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xc21a9589 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc227d20a inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2a64315 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc2e6017e sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xc32684ba hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xc32b7a08 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3527505 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc3665e68 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xc373fdd6 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xc37f0238 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc385cb58 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3994abf crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xc4160880 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc429d60a vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xc4495e20 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc49f3b43 omap_dm_timer_request_specific +EXPORT_SYMBOL_GPL vmlinux 0xc4b72fa2 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xc4ce265a usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xc4cf2ac2 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xc4e2e831 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xc51335d5 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc5a008b6 mtd_is_partition +EXPORT_SYMBOL_GPL vmlinux 0xc5b1d204 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xc5f2a0a7 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xc5f46c89 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc622d76b ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xc68755e9 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xc68b71cf fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xc6d76bb2 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xc77e3383 snd_soc_test_bits +EXPORT_SYMBOL_GPL vmlinux 0xc80c01c8 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xc81bd74c platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xc8208782 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0xc8359602 sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xc868bbd5 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc8a0aa76 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xc8b0d421 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xc8c2150f pid_vnr +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 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9606f66 dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc978d423 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca7f5e9d kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcaa260ad ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xcaaa4424 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac0d77b kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xcac75c5c rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcae88508 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0xcaf02c3e blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xcafed876 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xcb4a49bc rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xcbb7ebd0 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xcbe66ae9 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf2933e pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xcc060dd7 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc3270df xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xcc6d27b3 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xcc8659c6 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xccb3e999 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xccb8e1a4 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd2fb77 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd0eb6f5 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xcd121ab3 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xcd38ad78 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0xcd7fe99b shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdcbee1f inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xcdeeff32 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xce1a119c sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xce3f4dd7 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xce4f8b86 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6cf5f4 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xce6f1cc3 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xce860fcb blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xcea5ec07 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xceb976ce stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xcec1e5c6 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xcef9b40e vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xcf1b099e dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xcf5086dd tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcf52dc70 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xcf6b0455 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xcf72ca50 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd00ff3b8 snd_soc_add_controls +EXPORT_SYMBOL_GPL vmlinux 0xd0117fda ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd04f8d6d class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xd064d916 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xd0783370 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xd0882e5b da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xd0a2383c inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0xd0ae3df6 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd161b6dc platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd16cf519 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xd199b73d mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0xd1a2a669 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1e1b7c3 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd1f46b68 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd208ddb4 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd24c3b8b snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL vmlinux 0xd270c489 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27ba262 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xd2be00b3 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xd2de3c89 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd2f66b2e device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xd322c4bb wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd34264f2 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xd37796b2 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xd3d061e9 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xd3e76f3d unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xd3ec9da5 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xd3fa5d9f ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd442cc25 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd4447ad3 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xd4c08e73 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xd4c7fbbe usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xd4e6d996 put_device +EXPORT_SYMBOL_GPL vmlinux 0xd4e851ac __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0xd53da4e3 omap_dm_timers_active +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5995857 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5db729a debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xd6561cec snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xd67ba34d debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd6ff3685 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xd736bff8 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd7385ba3 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd75115bd snd_soc_dapm_enable_pin +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 0xd7b52496 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd7ff7fbb security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xd890c4de crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd89a46e6 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xd8a8d962 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xd8fcbd63 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xd95ffc0b omap_dm_timer_start +EXPORT_SYMBOL_GPL vmlinux 0xd9bcc456 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xd9c45b28 snd_soc_info_volsw_s8 +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 0xda1f6ba1 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xda216268 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xda694f00 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xda9f2b52 scsi_internal_device_unblock +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 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb081ae4 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdb1eddaa blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb3aa7f5 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xdb7f82c0 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL vmlinux 0xdba1f43d enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdba3c106 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xdbf96aac ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xdc24c166 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xdc5cef9a adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xdc9ed49b ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xdd12d8ed simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xdd212d86 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd4cb010 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xddceaa9b usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0xddd1e03d sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xddfd822c crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde4ec50a ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xde5a4ce0 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xde62faae device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xde8ff9d4 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xde9786f1 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xdeb2aef2 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xded61ff4 device_move +EXPORT_SYMBOL_GPL vmlinux 0xdedda31a blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xdeffa59e ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdf850c11 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xdf9cfe23 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01a5068 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe02bb238 snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0xe0c7a840 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe116b490 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xe1293b7c sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe137f28a pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0xe177ff85 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xe196c424 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe1e286bf crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xe1fc8f4e sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1fd092c otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0xe20ae2bc sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe23d95d8 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xe2595327 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe27614f0 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xe28886a9 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xe32f5bc5 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xe372f3db device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe39b9883 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xe3a2c7b2 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe3bb48e3 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xe3c3fcb5 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xe3e0794e ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xe3e75a53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xe3f5c289 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe4046a2e __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe44d6c76 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xe457ceff handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xe4e465ef dm_put +EXPORT_SYMBOL_GPL vmlinux 0xe50e6bf8 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe542f5dd ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xe5606cb2 omap_dm_timer_disable +EXPORT_SYMBOL_GPL vmlinux 0xe574f4cc ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xe59a7fde blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xe5b07032 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0xe5be03b9 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xe5d1717c snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0xe5e0175f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xe5fa7261 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe62167b0 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xe63f1a96 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe664e596 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xe679709d usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe68e3e84 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xe6b15463 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe70fea3a usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xe755b377 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xe78827ac crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe78ec9a2 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe794123b rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xe7c13207 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xe7cc886f crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xe7d4b23d usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe7f959f2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8030ebc ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xe8611953 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8a4f307 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xe8c1eedb __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xe8e20e5c set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xe8ee6583 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0xe8f4ae67 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xe917e733 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9441cf1 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe97c2957 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe99887ea ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xe9b48ef3 del_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xe9e6ea66 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea184aa9 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0xebadcdba __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xec1166ff kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec288211 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xec461f60 unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xecafdc07 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xed1499ee md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xed262cfd inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xed3e5280 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL vmlinux 0xed4a49cd debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xed7c93a5 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0xed9becea register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xededb52d sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xedffe2b2 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xee0aa42b usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xee22364c gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xee2afda7 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xee2eed14 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xee4cd13a blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xee4fcfca skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xee824bb1 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xeef4274f snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0xeefa7995 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xef33dedc usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefb6dc85 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf01475d0 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xf01796a2 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf03a7870 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xf0a9d897 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xf0ad9790 queue_work +EXPORT_SYMBOL_GPL vmlinux 0xf0f09691 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xf0fd51ee pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xf13b120c dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xf143dc6e platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xf180b402 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf18e0a81 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xf1a7407d ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xf1c44f55 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xf1f06522 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xf1f5b7a6 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf311fbb7 mount_mtd +EXPORT_SYMBOL_GPL vmlinux 0xf33b416a pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf37984bd unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf39489fd alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xf39f3a41 snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3e20f2d snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL vmlinux 0xf4064211 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xf42cae64 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xf4466ed1 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xf4544996 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf46c8d5d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf49bce78 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf4f4c594 part_round_stats +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 0xf5981aaa spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xf59d3f5a wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5ea5a9d __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xf60c8471 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xf68a909b anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xf698432a ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xf6bbd394 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xf6c78730 snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0xf6daeb05 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf700d75b snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0xf7247b21 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xf7659e62 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xf76bf640 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xf771c3c2 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xf77205b6 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xf781b8d8 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf7f1d63d cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf801ffc0 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xf809d8b2 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf88f9284 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xf8c487d6 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8f3c6e0 dapm_reg_event +EXPORT_SYMBOL_GPL vmlinux 0xf8f697e5 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xf9199e14 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xf969d458 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xf96ec2b0 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9acfc6e del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0xf9b29802 __class_create +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d02263 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa029803 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xfa622942 snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0xfac89426 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xfaf25ec9 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xfafa6d81 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xfb1dd0a4 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb3b0b5c ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb704ffc rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xfb7db937 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xfbaa781c md_stop +EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xfbf157bb usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbfd9d4c cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfc0c50de rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xfc59f671 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xfc97a843 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xfcc4bf8b usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xfcd2c949 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xfcec5a68 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xfcfbffc6 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xfcfebda3 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xfd252737 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfd30d6c1 usb_bus_start_enum +EXPORT_SYMBOL_GPL vmlinux 0xfd77a28f ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xfdcae513 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe0f01a1 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xfe2892f5 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xfe5492a4 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xfe7500a2 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfe953e30 power_supply_get_by_name +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 0xfef4f6dc aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff0b3914 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xff1ddba2 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xff31bbca css_depth +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/armel/versatile.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/armel/versatile.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/debian.master/abi/2.6.38-11.50/armel/omap.compiler +++ linux-2.6.38/debian.master/abi/2.6.38-11.50/armel/omap.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 --- linux-2.6.38.orig/arch/powerpc/Kconfig +++ linux-2.6.38/arch/powerpc/Kconfig @@ -956,6 +956,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/powerpc/sysdev/qe_lib/Kconfig" --- linux-2.6.38.orig/arch/powerpc/include/asm/reg.h +++ linux-2.6.38/arch/powerpc/include/asm/reg.h @@ -880,6 +880,7 @@ #define PV_970 0x0039 #define PV_POWER5 0x003A #define PV_POWER5p 0x003B +#define PV_POWER7 0x003F #define PV_970FX 0x003C #define PV_630 0x0040 #define PV_630p 0x0041 --- linux-2.6.38.orig/arch/powerpc/oprofile/op_model_power4.c +++ linux-2.6.38/arch/powerpc/oprofile/op_model_power4.c @@ -261,6 +261,28 @@ return is_kernel; } +static bool pmc_overflow(unsigned long val) +{ + if ((int)val < 0) + return true; + + /* + * Events on POWER7 can roll back if a speculative event doesn't + * eventually complete. Unfortunately in some rare cases they will + * raise a performance monitor exception. We need to catch this to + * ensure we reset the PMC. In all cases the PMC will be 256 or less + * cycles from overflow. + * + * We only do this if the first pass fails to find any overflowing + * PMCs because a user might set a period of less than 256 and we + * don't want to mistakenly reset them. + */ + if (__is_processor(PV_POWER7) && ((0x80000000 - val) <= 256)) + return true; + + return false; +} + static void power4_handle_interrupt(struct pt_regs *regs, struct op_counter_config *ctr) { @@ -281,7 +303,7 @@ for (i = 0; i < cur_cpu_spec->num_pmcs; ++i) { val = classic_ctr_read(i); - if (val < 0) { + if (pmc_overflow(val)) { if (oprofile_running && ctr[i].enabled) { oprofile_add_ext_sample(pc, regs, i, is_kernel); classic_ctr_write(i, reset_value[i]); --- linux-2.6.38.orig/arch/powerpc/kernel/setup-common.c +++ linux-2.6.38/arch/powerpc/kernel/setup-common.c @@ -509,6 +509,9 @@ */ cpu_init_thread_core_maps(nthreads); + /* Now that possible cpus are set, set nr_cpu_ids for later use */ + nr_cpu_ids = find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1; + free_unused_pacas(); } #endif /* CONFIG_SMP */ --- linux-2.6.38.orig/arch/powerpc/kernel/paca.c +++ linux-2.6.38/arch/powerpc/kernel/paca.c @@ -203,7 +203,7 @@ { int new_size; - new_size = PAGE_ALIGN(sizeof(struct paca_struct) * num_possible_cpus()); + new_size = PAGE_ALIGN(sizeof(struct paca_struct) * nr_cpu_ids); if (new_size >= paca_size) return; --- linux-2.6.38.orig/arch/powerpc/kernel/misc_64.S +++ linux-2.6.38/arch/powerpc/kernel/misc_64.S @@ -462,7 +462,8 @@ * wait for the flag to change, indicating this kernel is going away but * the slave code for the next one is at addresses 0 to 100. * - * This is used by all slaves. + * This is used by all slaves, even those that did not find a matching + * paca in the secondary startup code. * * Physical (hardware) cpu id should be in r3. */ @@ -471,10 +472,6 @@ 1: mflr r5 addi r5,r5,kexec_flag-1b - li r4,KEXEC_STATE_REAL_MODE - stb r4,PACAKEXECSTATE(r13) - SYNC - 99: HMT_LOW #ifdef CONFIG_KEXEC /* use no memory without kexec */ lwz r4,0(r5) @@ -499,11 +496,17 @@ * * get phys id from paca * switch to real mode + * mark the paca as no longer used * join other cpus in kexec_wait(phys_id) */ _GLOBAL(kexec_smp_wait) lhz r3,PACAHWCPUID(r13) bl real_mode + + li r4,KEXEC_STATE_REAL_MODE + stb r4,PACAKEXECSTATE(r13) + SYNC + b .kexec_wait /* --- linux-2.6.38.orig/arch/powerpc/kernel/ptrace.c +++ linux-2.6.38/arch/powerpc/kernel/ptrace.c @@ -924,12 +924,16 @@ if (data && !(data & DABR_TRANSLATION)) return -EIO; #ifdef CONFIG_HAVE_HW_BREAKPOINT + if (ptrace_get_breakpoints(task) < 0) + return -ESRCH; + bp = thread->ptrace_bps[0]; if ((!data) || !(data & (DABR_DATA_WRITE | DABR_DATA_READ))) { if (bp) { unregister_hw_breakpoint(bp); thread->ptrace_bps[0] = NULL; } + ptrace_put_breakpoints(task); return 0; } if (bp) { @@ -939,9 +943,12 @@ (DABR_DATA_WRITE | DABR_DATA_READ), &attr.bp_type); ret = modify_user_hw_breakpoint(bp, &attr); - if (ret) + if (ret) { + ptrace_put_breakpoints(task); return ret; + } thread->ptrace_bps[0] = bp; + ptrace_put_breakpoints(task); thread->dabr = data; return 0; } @@ -956,9 +963,12 @@ ptrace_triggered, task); if (IS_ERR(bp)) { thread->ptrace_bps[0] = NULL; + ptrace_put_breakpoints(task); return PTR_ERR(bp); } + ptrace_put_breakpoints(task); + #endif /* CONFIG_HAVE_HW_BREAKPOINT */ /* Move contents to the DABR register */ --- linux-2.6.38.orig/arch/powerpc/kernel/time.c +++ linux-2.6.38/arch/powerpc/kernel/time.c @@ -229,6 +229,9 @@ u64 stolen = 0; u64 dtb; + if (!dtl) + return 0; + if (i == vpa->dtl_idx) return 0; while (i < vpa->dtl_idx) { @@ -356,7 +359,7 @@ } get_paca()->user_time_scaled += user_scaled; - if (in_irq() || idle_task(smp_processor_id()) != tsk) { + if (in_interrupt() || idle_task(smp_processor_id()) != tsk) { account_system_time(tsk, 0, delta, sys_scaled); if (stolen) account_steal_time(stolen); --- linux-2.6.38.orig/arch/powerpc/kernel/crash.c +++ linux-2.6.38/arch/powerpc/kernel/crash.c @@ -170,7 +170,7 @@ int i; msecs = 10000; - for (i=0; i < NR_CPUS && msecs > 0; i++) { + for (i=0; i < nr_cpu_ids && msecs > 0; i++) { if (i == cpu) continue; --- linux-2.6.38.orig/arch/powerpc/kernel/perf_event.c +++ linux-2.6.38/arch/powerpc/kernel/perf_event.c @@ -398,6 +398,25 @@ return 0; } +static u64 check_and_compute_delta(u64 prev, u64 val) +{ + u64 delta = (val - prev) & 0xfffffffful; + + /* + * POWER7 can roll back counter values, if the new value is smaller + * than the previous value it will cause the delta and the counter to + * have bogus values unless we rolled a counter over. If a coutner is + * rolled back, it will be smaller, but within 256, which is the maximum + * number of events to rollback at once. If we dectect a rollback + * return 0. This can lead to a small lack of precision in the + * counters. + */ + if (prev > val && (prev - val) < 256) + delta = 0; + + return delta; +} + static void power_pmu_read(struct perf_event *event) { s64 val, delta, prev; @@ -416,10 +435,11 @@ prev = local64_read(&event->hw.prev_count); barrier(); val = read_pmc(event->hw.idx); + delta = check_and_compute_delta(prev, val); + if (!delta) + return; } while (local64_cmpxchg(&event->hw.prev_count, prev, val) != prev); - /* The counters are only 32 bits wide */ - delta = (val - prev) & 0xfffffffful; local64_add(delta, &event->count); local64_sub(delta, &event->hw.period_left); } @@ -449,8 +469,9 @@ val = (event->hw.idx == 5) ? pmc5 : pmc6; prev = local64_read(&event->hw.prev_count); event->hw.idx = 0; - delta = (val - prev) & 0xfffffffful; - local64_add(delta, &event->count); + delta = check_and_compute_delta(prev, val); + if (delta) + local64_add(delta, &event->count); } } @@ -458,14 +479,16 @@ unsigned long pmc5, unsigned long pmc6) { struct perf_event *event; - u64 val; + u64 val, prev; int i; for (i = 0; i < cpuhw->n_limited; ++i) { event = cpuhw->limited_counter[i]; event->hw.idx = cpuhw->limited_hwidx[i]; val = (event->hw.idx == 5) ? pmc5 : pmc6; - local64_set(&event->hw.prev_count, val); + prev = local64_read(&event->hw.prev_count); + if (check_and_compute_delta(prev, val)) + local64_set(&event->hw.prev_count, val); perf_event_update_userpage(event); } } @@ -1197,7 +1220,7 @@ /* we don't have to worry about interrupts here */ prev = local64_read(&event->hw.prev_count); - delta = (val - prev) & 0xfffffffful; + delta = check_and_compute_delta(prev, val); local64_add(delta, &event->count); /* @@ -1269,6 +1292,28 @@ return ip; } +static bool pmc_overflow(unsigned long val) +{ + if ((int)val < 0) + return true; + + /* + * Events on POWER7 can roll back if a speculative event doesn't + * eventually complete. Unfortunately in some rare cases they will + * raise a performance monitor exception. We need to catch this to + * ensure we reset the PMC. In all cases the PMC will be 256 or less + * cycles from overflow. + * + * We only do this if the first pass fails to find any overflowing + * PMCs because a user might set a period of less than 256 and we + * don't want to mistakenly reset them. + */ + if (__is_processor(PV_POWER7) && ((0x80000000 - val) <= 256)) + return true; + + return false; +} + /* * Performance monitor interrupt stuff */ @@ -1316,7 +1361,7 @@ if (is_limited_pmc(i + 1)) continue; val = read_pmc(i + 1); - if ((int)val < 0) + if (pmc_overflow(val)) write_pmc(i + 1, 0); } } --- linux-2.6.38.orig/arch/parisc/include/asm/unistd.h +++ linux-2.6.38/arch/parisc/include/asm/unistd.h @@ -814,8 +814,11 @@ #define __NR_recvmmsg (__NR_Linux + 319) #define __NR_accept4 (__NR_Linux + 320) #define __NR_prlimit64 (__NR_Linux + 321) +#define __NR_fanotify_init (__NR_Linux + 322) +#define __NR_fanotify_mark (__NR_Linux + 323) +#define __NR_clock_adjtime (__NR_Linux + 324) -#define __NR_Linux_syscalls (__NR_prlimit64 + 1) +#define __NR_Linux_syscalls (__NR_clock_adjtime + 1) #define __IGNORE_select /* newselect */ --- linux-2.6.38.orig/arch/parisc/mm/init.c +++ linux-2.6.38/arch/parisc/mm/init.c @@ -266,8 +266,10 @@ } memset(pfnnid_map, 0xff, sizeof(pfnnid_map)); - for (i = 0; i < npmem_ranges; i++) + for (i = 0; i < npmem_ranges; i++) { + node_set_state(i, N_NORMAL_MEMORY); node_set_online(i); + } #endif /* --- linux-2.6.38.orig/arch/parisc/kernel/syscall_table.S +++ linux-2.6.38/arch/parisc/kernel/syscall_table.S @@ -420,6 +420,9 @@ ENTRY_COMP(recvmmsg) ENTRY_SAME(accept4) /* 320 */ ENTRY_SAME(prlimit64) + ENTRY_SAME(fanotify_init) + ENTRY_COMP(fanotify_mark) + ENTRY_COMP(clock_adjtime) /* Nothing yet */ --- linux-2.6.38.orig/arch/parisc/kernel/irq.c +++ linux-2.6.38/arch/parisc/kernel/irq.c @@ -108,7 +108,7 @@ int cpu_dest; /* timer and ipi have to always be received on all CPUs */ - if (CHECK_IRQ_PER_CPU(irq)) { + if (CHECK_IRQ_PER_CPU(irq_to_desc(irq)->status)) { /* Bad linux design decision. The mask has already * been set; we must reset it */ cpumask_setall(irq_desc[irq].affinity); --- linux-2.6.38.orig/arch/parisc/kernel/sys_parisc32.c +++ linux-2.6.38/arch/parisc/kernel/sys_parisc32.c @@ -228,3 +228,11 @@ return sys_fallocate(fd, mode, ((loff_t)offhi << 32) | offlo, ((loff_t)lenhi << 32) | lenlo); } + +asmlinkage long compat_sys_fanotify_mark(int fan_fd, int flags, u32 mask_hi, + u32 mask_lo, int fd, + const char __user *pathname) +{ + return sys_fanotify_mark(fan_fd, flags, ((u64)mask_hi << 32) | mask_lo, + fd, pathname); +} --- linux-2.6.38.orig/arch/sparc/mm/fault_32.c +++ linux-2.6.38/arch/sparc/mm/fault_32.c @@ -240,11 +240,10 @@ * only copy the information from the master page table, * nothing more. */ + code = SEGV_MAPERR; if (!ARCH_SUN4C && address >= TASK_SIZE) goto vmalloc_fault; - code = SEGV_MAPERR; - /* * If we're in an interrupt or have no user * context, we must not take the fault.. --- linux-2.6.38.orig/arch/sparc/kernel/traps_64.c +++ linux-2.6.38/arch/sparc/kernel/traps_64.c @@ -2152,7 +2152,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp) { - unsigned long fp, thread_base, ksp; + unsigned long fp, ksp; struct thread_info *tp; int count = 0; #ifdef CONFIG_FUNCTION_GRAPH_TRACER @@ -2173,7 +2173,6 @@ flushw_all(); fp = ksp + STACK_BIAS; - thread_base = (unsigned long) tp; printk("Call Trace:\n"); do { --- linux-2.6.38.orig/arch/sparc/kernel/ptrace_64.c +++ linux-2.6.38/arch/sparc/kernel/ptrace_64.c @@ -1086,6 +1086,7 @@ asmlinkage void syscall_trace_leave(struct pt_regs *regs) { +#ifdef CONFIG_AUDITSYSCALL if (unlikely(current->audit_context)) { unsigned long tstate = regs->tstate; int result = AUDITSC_SUCCESS; @@ -1095,7 +1096,7 @@ audit_syscall_exit(result, regs->u_regs[UREG_I0]); } - +#endif if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) trace_sys_exit(regs, regs->u_regs[UREG_G1]); --- linux-2.6.38.orig/arch/sparc/kernel/iommu.c +++ linux-2.6.38/arch/sparc/kernel/iommu.c @@ -333,13 +333,10 @@ void *cpu, dma_addr_t dvma) { struct iommu *iommu; - iopte_t *iopte; unsigned long flags, order, npages; npages = IO_PAGE_ALIGN(size) >> IO_PAGE_SHIFT; iommu = dev->archdata.iommu; - iopte = iommu->page_table + - ((dvma - iommu->page_table_map_base) >> IO_PAGE_SHIFT); spin_lock_irqsave(&iommu->lock, flags); --- linux-2.6.38.orig/arch/sparc/kernel/pci_schizo.c +++ linux-2.6.38/arch/sparc/kernel/pci_schizo.c @@ -1313,7 +1313,7 @@ const struct linux_prom64_registers *regs; struct device_node *dp = op->dev.of_node; const char *chipset_name; - int is_pbm_a, err; + int err; switch (chip_type) { case PBM_CHIP_TYPE_TOMATILLO: @@ -1343,8 +1343,6 @@ */ regs = of_get_property(dp, "reg", NULL); - is_pbm_a = ((regs[0].phys_addr & 0x00700000) == 0x00600000); - pbm->next = pci_pbm_root; pci_pbm_root = pbm; --- linux-2.6.38.orig/arch/sparc/kernel/pci_fire.c +++ linux-2.6.38/arch/sparc/kernel/pci_fire.c @@ -214,11 +214,9 @@ static int pci_fire_msi_teardown(struct pci_pbm_info *pbm, unsigned long msi) { - unsigned long msiqid; u64 val; val = upa_readq(pbm->pbm_regs + MSI_MAP(msi)); - msiqid = (val & MSI_MAP_EQNUM); val &= ~MSI_MAP_VALID; --- linux-2.6.38.orig/arch/sparc/kernel/una_asm_64.S +++ linux-2.6.38/arch/sparc/kernel/una_asm_64.S @@ -127,7 +127,7 @@ wr %o5, 0x0, %asi retl mov 0, %o0 - .size __do_int_load, .-__do_int_load + .size do_int_load, .-do_int_load .section __ex_table,"a" .word 4b, __retl_efault --- linux-2.6.38.orig/arch/sparc/kernel/pci_sun4v.c +++ linux-2.6.38/arch/sparc/kernel/pci_sun4v.c @@ -580,7 +580,7 @@ { static const u32 vdma_default[] = { 0x80000000, 0x80000000 }; struct iommu *iommu = pbm->iommu; - unsigned long num_tsb_entries, sz, tsbsize; + unsigned long num_tsb_entries, sz; u32 dma_mask, dma_offset; const u32 *vdma; @@ -596,7 +596,6 @@ dma_mask = (roundup_pow_of_two(vdma[1]) - 1UL); num_tsb_entries = vdma[1] / IO_PAGE_SIZE; - tsbsize = num_tsb_entries * sizeof(iopte_t); dma_offset = vdma[0]; --- linux-2.6.38.orig/arch/sparc/kernel/pci_common.c +++ linux-2.6.38/arch/sparc/kernel/pci_common.c @@ -295,14 +295,17 @@ unsigned int bus = bus_dev->number; unsigned int device = PCI_SLOT(devfn); unsigned int func = PCI_FUNC(devfn); - unsigned long ret; if (config_out_of_range(pbm, bus, devfn, where)) { /* Do nothing. */ } else { - ret = pci_sun4v_config_put(devhandle, - HV_PCI_DEVICE_BUILD(bus, device, func), - where, size, value); + /* We don't check for hypervisor errors here, but perhaps + * we should and influence our return value depending upon + * what kind of error is thrown. + */ + pci_sun4v_config_put(devhandle, + HV_PCI_DEVICE_BUILD(bus, device, func), + where, size, value); } return PCIBIOS_SUCCESSFUL; } --- linux-2.6.38.orig/arch/sparc/kernel/pcr.c +++ linux-2.6.38/arch/sparc/kernel/pcr.c @@ -81,7 +81,7 @@ unsigned long ret; ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val); - if (val != HV_EOK) + if (ret != HV_EOK) write_pcr(val); } --- linux-2.6.38.orig/arch/sparc/kernel/pci.c +++ linux-2.6.38/arch/sparc/kernel/pci.c @@ -675,6 +675,7 @@ * humanoid. */ err = sysfs_create_file(&dev->dev.kobj, &dev_attr_obppath.attr); + (void) err; } list_for_each_entry(child_bus, &bus->children, node) pci_bus_register_of_sysfs(child_bus); --- linux-2.6.38.orig/arch/sparc/kernel/smp_64.c +++ linux-2.6.38/arch/sparc/kernel/smp_64.c @@ -189,7 +189,7 @@ void smp_synchronize_tick_client(void) { long i, delta, adj, adjust_latency = 0, done = 0; - unsigned long flags, rt, master_time_stamp, bound; + unsigned long flags, rt, master_time_stamp; #if DEBUG_TICK_SYNC struct { long rt; /* roundtrip time */ @@ -208,10 +208,8 @@ { for (i = 0; i < NUM_ROUNDS; i++) { delta = get_delta(&rt, &master_time_stamp); - if (delta == 0) { + if (delta == 0) done = 1; /* let's lock on to this... */ - bound = rt; - } if (!done) { if (i > 0) { @@ -933,13 +931,12 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page) { void *pg_addr; - int this_cpu; u64 data0; if (tlb_type == hypervisor) return; - this_cpu = get_cpu(); + preempt_disable(); #ifdef CONFIG_DEBUG_DCFLUSH atomic_inc(&dcpage_flushes); @@ -964,7 +961,7 @@ } __local_flush_dcache_page(page); - put_cpu(); + preempt_enable(); } void __irq_entry smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) --- linux-2.6.38.orig/arch/sparc/kernel/entry.S +++ linux-2.6.38/arch/sparc/kernel/entry.S @@ -1283,7 +1283,7 @@ .globl ret_from_fork ret_from_fork: call schedule_tail - mov %g3, %o0 + ld [%g3 + TI_TASK], %o0 b ret_sys_call ld [%sp + STACKFRAME_SZ + PT_I0], %o0 --- linux-2.6.38.orig/arch/sparc/kernel/ldc.c +++ linux-2.6.38/arch/sparc/kernel/ldc.c @@ -790,16 +790,20 @@ static irqreturn_t ldc_rx(int irq, void *dev_id) { struct ldc_channel *lp = dev_id; - unsigned long orig_state, hv_err, flags; + unsigned long orig_state, flags; unsigned int event_mask; spin_lock_irqsave(&lp->lock, flags); orig_state = lp->chan_state; - hv_err = sun4v_ldc_rx_get_state(lp->id, - &lp->rx_head, - &lp->rx_tail, - &lp->chan_state); + + /* We should probably check for hypervisor errors here and + * reset the LDC channel if we get one. + */ + sun4v_ldc_rx_get_state(lp->id, + &lp->rx_head, + &lp->rx_tail, + &lp->chan_state); ldcdbg(RX, "RX state[0x%02lx:0x%02lx] head[0x%04lx] tail[0x%04lx]\n", orig_state, lp->chan_state, lp->rx_head, lp->rx_tail); @@ -904,16 +908,20 @@ static irqreturn_t ldc_tx(int irq, void *dev_id) { struct ldc_channel *lp = dev_id; - unsigned long flags, hv_err, orig_state; + unsigned long flags, orig_state; unsigned int event_mask = 0; spin_lock_irqsave(&lp->lock, flags); orig_state = lp->chan_state; - hv_err = sun4v_ldc_tx_get_state(lp->id, - &lp->tx_head, - &lp->tx_tail, - &lp->chan_state); + + /* We should probably check for hypervisor errors here and + * reset the LDC channel if we get one. + */ + sun4v_ldc_tx_get_state(lp->id, + &lp->tx_head, + &lp->tx_tail, + &lp->chan_state); ldcdbg(TX, " TX state[0x%02lx:0x%02lx] head[0x%04lx] tail[0x%04lx]\n", orig_state, lp->chan_state, lp->tx_head, lp->tx_tail); --- linux-2.6.38.orig/arch/um/sys-i386/Makefile +++ linux-2.6.38/arch/um/sys-i386/Makefile @@ -4,7 +4,7 @@ obj-y = bug.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \ ptrace_user.o setjmp.o signal.o stub.o stub_segv.o syscalls.o sysrq.o \ - sys_call_table.o tls.o + sys_call_table.o tls.o atomic64_cx8_32.o obj-$(CONFIG_BINFMT_ELF) += elfcore.o --- linux-2.6.38.orig/arch/um/sys-i386/atomic64_cx8_32.S +++ linux-2.6.38/arch/um/sys-i386/atomic64_cx8_32.S @@ -0,0 +1,225 @@ +/* + * atomic64_t for 586+ + * + * Copied from arch/x86/lib/atomic64_cx8_32.S + * + * Copyright © 2010 Luca Barbieri + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the 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 + +.macro SAVE reg + pushl_cfi %\reg + CFI_REL_OFFSET \reg, 0 +.endm + +.macro RESTORE reg + popl_cfi %\reg + CFI_RESTORE \reg +.endm + +.macro read64 reg + movl %ebx, %eax + movl %ecx, %edx +/* we need LOCK_PREFIX since otherwise cmpxchg8b always does the write */ + LOCK_PREFIX + cmpxchg8b (\reg) +.endm + +ENTRY(atomic64_read_cx8) + CFI_STARTPROC + + read64 %ecx + ret + CFI_ENDPROC +ENDPROC(atomic64_read_cx8) + +ENTRY(atomic64_set_cx8) + CFI_STARTPROC + +1: +/* we don't need LOCK_PREFIX since aligned 64-bit writes + * are atomic on 586 and newer */ + cmpxchg8b (%esi) + jne 1b + + ret + CFI_ENDPROC +ENDPROC(atomic64_set_cx8) + +ENTRY(atomic64_xchg_cx8) + CFI_STARTPROC + + movl %ebx, %eax + movl %ecx, %edx +1: + LOCK_PREFIX + cmpxchg8b (%esi) + jne 1b + + ret + CFI_ENDPROC +ENDPROC(atomic64_xchg_cx8) + +.macro addsub_return func ins insc +ENTRY(atomic64_\func\()_return_cx8) + CFI_STARTPROC + SAVE ebp + SAVE ebx + SAVE esi + SAVE edi + + movl %eax, %esi + movl %edx, %edi + movl %ecx, %ebp + + read64 %ebp +1: + movl %eax, %ebx + movl %edx, %ecx + \ins\()l %esi, %ebx + \insc\()l %edi, %ecx + LOCK_PREFIX + cmpxchg8b (%ebp) + jne 1b + +10: + movl %ebx, %eax + movl %ecx, %edx + RESTORE edi + RESTORE esi + RESTORE ebx + RESTORE ebp + ret + CFI_ENDPROC +ENDPROC(atomic64_\func\()_return_cx8) +.endm + +addsub_return add add adc +addsub_return sub sub sbb + +.macro incdec_return func ins insc +ENTRY(atomic64_\func\()_return_cx8) + CFI_STARTPROC + SAVE ebx + + read64 %esi +1: + movl %eax, %ebx + movl %edx, %ecx + \ins\()l $1, %ebx + \insc\()l $0, %ecx + LOCK_PREFIX + cmpxchg8b (%esi) + jne 1b + +10: + movl %ebx, %eax + movl %ecx, %edx + RESTORE ebx + ret + CFI_ENDPROC +ENDPROC(atomic64_\func\()_return_cx8) +.endm + +incdec_return inc add adc +incdec_return dec sub sbb + +ENTRY(atomic64_dec_if_positive_cx8) + CFI_STARTPROC + SAVE ebx + + read64 %esi +1: + movl %eax, %ebx + movl %edx, %ecx + subl $1, %ebx + sbb $0, %ecx + js 2f + LOCK_PREFIX + cmpxchg8b (%esi) + jne 1b + +2: + movl %ebx, %eax + movl %ecx, %edx + RESTORE ebx + ret + CFI_ENDPROC +ENDPROC(atomic64_dec_if_positive_cx8) + +ENTRY(atomic64_add_unless_cx8) + CFI_STARTPROC + SAVE ebp + SAVE ebx +/* these just push these two parameters on the stack */ + SAVE edi + SAVE esi + + movl %ecx, %ebp + movl %eax, %esi + movl %edx, %edi + + read64 %ebp +1: + cmpl %eax, 0(%esp) + je 4f +2: + movl %eax, %ebx + movl %edx, %ecx + addl %esi, %ebx + adcl %edi, %ecx + LOCK_PREFIX + cmpxchg8b (%ebp) + jne 1b + + movl $1, %eax +3: + addl $8, %esp + CFI_ADJUST_CFA_OFFSET -8 + RESTORE ebx + RESTORE ebp + ret +4: + cmpl %edx, 4(%esp) + jne 2b + xorl %eax, %eax + jmp 3b + CFI_ENDPROC +ENDPROC(atomic64_add_unless_cx8) + +ENTRY(atomic64_inc_not_zero_cx8) + CFI_STARTPROC + SAVE ebx + + read64 %esi +1: + testl %eax, %eax + je 4f +2: + movl %eax, %ebx + movl %edx, %ecx + addl $1, %ebx + adcl $0, %ecx + LOCK_PREFIX + cmpxchg8b (%esi) + jne 1b + + movl $1, %eax +3: + RESTORE ebx + ret +4: + testl %edx, %edx + jne 2b + jmp 3b + CFI_ENDPROC +ENDPROC(atomic64_inc_not_zero_cx8) --- linux-2.6.38.orig/arch/arm/Kconfig +++ linux-2.6.38/arch/arm/Kconfig @@ -1930,6 +1930,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/arm/Kconfig.debug" --- linux-2.6.38.orig/arch/arm/boot/compressed/Makefile +++ linux-2.6.38/arch/arm/boot/compressed/Makefile @@ -59,7 +59,7 @@ ZBSSADDR := $(CONFIG_ZBOOT_ROM_BSS) else ZTEXTADDR := 0 -ZBSSADDR := ALIGN(4) +ZBSSADDR := ALIGN(8) endif SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/BSS_START/$(ZBSSADDR)/ --- linux-2.6.38.orig/arch/arm/boot/compressed/vmlinux.lds.in +++ linux-2.6.38/arch/arm/boot/compressed/vmlinux.lds.in @@ -57,6 +57,7 @@ .bss : { *(.bss) } _end = .; + . = ALIGN(8); /* the stack must be 64-bit aligned */ .stack : { *(.stack) } .stab 0 : { *(.stab) } --- linux-2.6.38.orig/arch/arm/mach-omap2/pm34xx.c +++ linux-2.6.38/arch/arm/mach-omap2/pm34xx.c @@ -928,8 +928,7 @@ pwrst->pwrdm == core_pwrdm && state == PWRDM_POWER_OFF) { pwrst->next_state = PWRDM_POWER_RET; - WARN_ONCE(1, - "%s: Core OFF disabled due to errata i583\n", + pr_warning("%s: Core OFF disabled due to errata i583\n", __func__); } else { pwrst->next_state = state; --- linux-2.6.38.orig/arch/arm/mach-omap2/cpuidle34xx.c +++ linux-2.6.38/arch/arm/mach-omap2/cpuidle34xx.c @@ -464,7 +464,7 @@ if (IS_PM34XX_ERRATUM(PM_SDRC_WAKEUP_ERRATUM_i583)) { omap3_power_states[OMAP3_STATE_C7].valid = 0; cpuidle_params_table[OMAP3_STATE_C7].valid = 0; - WARN_ONCE(1, "%s: core off state C7 disabled due to i583\n", + pr_warning("%s: core off state C7 disabled due to i583\n", __func__); } } --- linux-2.6.38.orig/arch/arm/mach-omap2/board-omap3beagle.c +++ linux-2.6.38/arch/arm/mach-omap2/board-omap3beagle.c @@ -59,7 +59,9 @@ * 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 + * XMA = GPIO173, GPIO172, GPIO171: 0 0 0 + * XMB = GPIO173, GPIO172, GPIO171: 0 0 1 + * XMC = GPIO173, GPIO172, GPIO171: 0 1 0 */ enum { OMAP3BEAGLE_BOARD_UNKN = 0, @@ -67,6 +69,7 @@ OMAP3BEAGLE_BOARD_C1_3, OMAP3BEAGLE_BOARD_C4, OMAP3BEAGLE_BOARD_XM, + OMAP3BEAGLE_BOARD_XMC, }; static u8 omap3_beagle_version; @@ -118,12 +121,21 @@ omap3_beagle_version = OMAP3BEAGLE_BOARD_C4; break; case 0: - printk(KERN_INFO "OMAP3 Beagle Rev: xM\n"); + printk(KERN_INFO "OMAP3 Beagle Rev: xM A\n"); omap3_beagle_version = OMAP3BEAGLE_BOARD_XM; break; + case 1: + printk(KERN_INFO "OMAP3 Beagle Rev: xM B\n"); + omap3_beagle_version = OMAP3BEAGLE_BOARD_XM; + break; + case 2: + printk(KERN_INFO "OMAP3 Beagle Rev: xM C\n"); + omap3_beagle_version = OMAP3BEAGLE_BOARD_XMC; + break; default: - printk(KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n", beagle_rev); - omap3_beagle_version = OMAP3BEAGLE_BOARD_UNKN; + printk(KERN_INFO "OMAP3 Beagle Rev: unknown %hd, " + "assuming xM C or newer\n", beagle_rev); + omap3_beagle_version = OMAP3BEAGLE_BOARD_XMC; } return; @@ -239,13 +251,22 @@ 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; + /* DVI reset GPIO is different between beagle revisions */ + if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) || + (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XMC)) + 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"); @@ -281,7 +302,8 @@ { int r; - if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { + if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) || + (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XMC)) { mmc[0].gpio_wp = -EINVAL; } else if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C1_3) || (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C4)) { @@ -301,7 +323,8 @@ /* REVISIT: need ehci-omap hooks for external VBUS * power switch and overcurrent detect */ - if (omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XM) { + if ((omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XM) && + (omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XMC)) { r = gpio_request(gpio + 1, "EHCI_nOC"); if (!r) { r = gpio_direction_input(gpio + 1); @@ -322,12 +345,6 @@ else gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); - /* DVI reset GPIO is different between beagle revisions */ - if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) - beagle_dvi_device.reset_gpio = 129; - else - beagle_dvi_device.reset_gpio = 170; - /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; @@ -337,7 +354,8 @@ * P7/P8 revisions(prototype): Camera EN * A2+ revisions (production): LDO (supplies DVI, serial, led blocks) */ - if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { + if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) || + (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XMC)) { r = gpio_request(gpio + 1, "nDVI_PWR_EN"); if (!r) { r = gpio_direction_output(gpio + 1, 0); @@ -419,7 +437,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 @@ -427,8 +444,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 = { @@ -619,11 +636,6 @@ ARRAY_SIZE(omap3_beagle_devices)); omap_serial_init(); - omap_mux_init_gpio(170, OMAP_PIN_INPUT); - gpio_request(170, "DVI_nPD"); - /* REVISIT leave DVI powered down until it's needed ... */ - gpio_direction_output(170, true); - usb_musb_init(&musb_board_data); usb_ehci_init(&ehci_pdata); omap3beagle_flash_init(); --- linux-2.6.38.orig/arch/arm/mach-omap2/board-omap3evm.c +++ linux-2.6.38/arch/arm/mach-omap2/board-omap3evm.c @@ -521,8 +521,10 @@ }; /* VPLL2 for digital video outputs */ -static struct regulator_consumer_supply omap3_evm_vpll2_supply = - REGULATOR_SUPPLY("vdds_dsi", "omapdss"); +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 = { .constraints = { @@ -534,8 +536,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 = { --- linux-2.6.38.orig/arch/arm/plat-omap/include/plat/cpu.h +++ linux-2.6.38/arch/arm/plat-omap/include/plat/cpu.h @@ -394,6 +394,62 @@ #define OMAP4430_REV_ES2_0 0x44301044 /* + * 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.38.orig/arch/arm/mm/cache-v7.S +++ linux-2.6.38/arch/arm/mm/cache-v7.S @@ -221,6 +221,8 @@ ENTRY(v7_flush_kern_dcache_area) dcache_line_size r2, r3 add r1, r0, r1 + sub r3, r2, #1 + bic r0, r0, r3 1: mcr p15, 0, r0, c7, c14, 1 @ clean & invalidate D line / unified line add r0, r0, r2 --- linux-2.6.38.orig/arch/arm/mm/cache-v6.S +++ linux-2.6.38/arch/arm/mm/cache-v6.S @@ -176,6 +176,7 @@ */ ENTRY(v6_flush_kern_dcache_area) add r1, r0, r1 + bic r0, r0, #D_CACHE_LINE_SIZE - 1 1: #ifdef HARVARD_CACHE mcr p15, 0, r0, c7, c14, 1 @ clean & invalidate D line --- linux-2.6.38.orig/arch/arm/kernel/sys_oabi-compat.c +++ linux-2.6.38/arch/arm/kernel/sys_oabi-compat.c @@ -311,7 +311,7 @@ long err; int i; - if (nsops < 1) + if (nsops < 1 || nsops > SEMOPM) return -EINVAL; sops = kmalloc(sizeof(*sops) * nsops, GFP_KERNEL); if (!sops) --- linux-2.6.38.orig/arch/arm/kernel/hw_breakpoint.c +++ linux-2.6.38/arch/arm/kernel/hw_breakpoint.c @@ -868,6 +868,13 @@ */ asm volatile("mcr p14, 0, %0, c1, c0, 4" : : "r" (0)); isb(); + + /* + * Clear any configured vector-catch events before + * enabling monitor mode. + */ + asm volatile("mcr p14, 0, %0, c0, c7, 0" : : "r" (0)); + isb(); } if (enable_monitor_mode()) --- linux-2.6.38.orig/arch/arm/mach-versatile/Kconfig +++ linux-2.6.38/arch/arm/mach-versatile/Kconfig @@ -3,7 +3,7 @@ config ARCH_VERSATILE_PB bool "Support Versatile Platform Baseboard for ARM926EJ-S" - select CPU_ARM926T + select CPU_V7 select MIGHT_HAVE_PCI default y help @@ -12,7 +12,7 @@ config MACH_VERSATILE_AB bool "Support Versatile Application Baseboard for ARM926EJ-S" - select CPU_ARM926T + select CPU_V7 help Include support for the ARM(R) Versatile Application Baseboard for the ARM926EJ-S. --- linux-2.6.38.orig/arch/arm/mach-davinci/board-dm644x-evm.c +++ linux-2.6.38/arch/arm/mach-davinci/board-dm644x-evm.c @@ -440,11 +440,6 @@ gpio_request(gpio + 7, "nCF_SEL"); gpio_direction_output(gpio + 7, 1); - /* irlml6401 switches over 1A, in under 8 msec; - * now it can be managed by nDRV_VBUS ... - */ - davinci_setup_usb(1000, 8); - return 0; } @@ -705,6 +700,9 @@ davinci_serial_init(&uart_config); dm644x_init_asp(&dm644x_evm_snd_data); + /* irlml6401 switches over 1A, in under 8 msec */ + davinci_setup_usb(1000, 8); + soc_info->emac_pdata->phy_id = DM644X_EVM_PHY_ID; /* Register the fixup for PHY on DaVinci */ phy_register_fixup_for_uid(LXT971_PHY_ID, LXT971_PHY_MASK, --- linux-2.6.38.orig/arch/arm/mach-s3c2440/mach-mini2440.c +++ linux-2.6.38/arch/arm/mach-s3c2440/mach-mini2440.c @@ -506,6 +506,11 @@ }, }; +static struct platform_device uda1340_codec = { + .name = "uda134x-codec", + .id = -1, +}; + static struct platform_device *mini2440_devices[] __initdata = { &s3c_device_ohci, &s3c_device_wdt, @@ -521,7 +526,9 @@ &s3c_device_nand, &s3c_device_sdi, &s3c_device_iis, + &uda1340_codec, &mini2440_audio, + &samsung_asoc_dma, }; static void __init mini2440_map_io(void) --- linux-2.6.38.orig/arch/m68k/mm/motorola.c +++ linux-2.6.38/arch/m68k/mm/motorola.c @@ -300,6 +300,8 @@ zones_size[ZONE_DMA] = m68k_memory[i].size >> PAGE_SHIFT; free_area_init_node(i, zones_size, m68k_memory[i].addr >> PAGE_SHIFT, NULL); + if (node_present_pages(i)) + node_set_state(i, N_NORMAL_MEMORY); } } --- linux-2.6.38.orig/arch/microblaze/include/asm/uaccess.h +++ linux-2.6.38/arch/microblaze/include/asm/uaccess.h @@ -120,16 +120,16 @@ { /* normal memset with two words to __ex_table */ __asm__ __volatile__ ( \ - "1: sb r0, %2, r0;" \ + "1: sb r0, %1, r0;" \ " addik %0, %0, -1;" \ " bneid %0, 1b;" \ - " addik %2, %2, 1;" \ + " addik %1, %1, 1;" \ "2: " \ __EX_TABLE_SECTION \ ".word 1b,2b;" \ ".previous;" \ - : "=r"(n) \ - : "0"(n), "r"(to) + : "=r"(n), "=r"(to) \ + : "0"(n), "1"(to) ); return n; } --- linux-2.6.38.orig/arch/sh/kernel/ptrace_64.c +++ linux-2.6.38/arch/sh/kernel/ptrace_64.c @@ -403,6 +403,9 @@ else if ((addr >= offsetof(struct user, fpu)) && (addr < offsetof(struct user, u_fpvalid))) { unsigned long index; + ret = init_fpu(child); + if (ret) + break; index = addr - offsetof(struct user, fpu); tmp = get_fpu_long(child, index); } else if (addr == offsetof(struct user, u_fpvalid)) { @@ -442,6 +445,9 @@ else if ((addr >= offsetof(struct user, fpu)) && (addr < offsetof(struct user, u_fpvalid))) { unsigned long index; + ret = init_fpu(child); + if (ret) + break; index = addr - offsetof(struct user, fpu); ret = put_fpu_long(child, index, data); } --- linux-2.6.38.orig/arch/sh/kernel/ptrace_32.c +++ linux-2.6.38/arch/sh/kernel/ptrace_32.c @@ -101,6 +101,8 @@ attr = bp->attr; attr.bp_addr = addr; + /* reenable breakpoint */ + attr.disabled = false; err = modify_user_hw_breakpoint(bp, &attr); if (unlikely(err)) return err; @@ -392,6 +394,9 @@ tmp = 0; } else { unsigned long index; + ret = init_fpu(child); + if (ret) + break; index = addr - offsetof(struct user, fpu); tmp = ((unsigned long *)child->thread.xstate) [index >> 2]; @@ -423,6 +428,9 @@ else if (addr >= offsetof(struct user, fpu) && addr < offsetof(struct user, u_fpvalid)) { unsigned long index; + ret = init_fpu(child); + if (ret) + break; index = addr - offsetof(struct user, fpu); set_stopped_child_used_math(child); ((unsigned long *)child->thread.xstate) --- linux-2.6.38.orig/arch/sh/kernel/cpu/Makefile +++ linux-2.6.38/arch/sh/kernel/cpu/Makefile @@ -17,7 +17,5 @@ obj-$(CONFIG_SH_ADC) += adc.o obj-$(CONFIG_SH_CLK_CPG_LEGACY) += clock-cpg.o -obj-$(CONFIG_SH_FPU) += fpu.o -obj-$(CONFIG_SH_FPU_EMU) += fpu.o -obj-y += irq/ init.o clock.o hwblk.o proc.o +obj-y += irq/ init.o clock.o fpu.o hwblk.o proc.o --- linux-2.6.38.orig/arch/s390/mm/fault.c +++ linux-2.6.38/arch/s390/mm/fault.c @@ -558,9 +558,9 @@ * Get the token (= address of the task structure of the affected task). */ #ifdef CONFIG_64BIT - tsk = *(struct task_struct **) param64; + tsk = (struct task_struct *) param64; #else - tsk = *(struct task_struct **) param32; + tsk = (struct task_struct *) param32; #endif if (subcode & 0x0080) { --- linux-2.6.38.orig/arch/s390/kvm/sie64a.S +++ linux-2.6.38/arch/s390/kvm/sie64a.S @@ -48,10 +48,10 @@ tm __TI_flags+7(%r2),_TIF_EXIT_SIE jz 0f larl %r2,sie_exit # work pending, leave sie - stg %r2,__LC_RETURN_PSW+8 + stg %r2,SPI_PSW+8(0,%r15) br %r14 0: larl %r2,sie_reenter # re-enter with guest id - stg %r2,__LC_RETURN_PSW+8 + stg %r2,SPI_PSW+8(0,%r15) 1: br %r14 /* --- linux-2.6.38.orig/arch/x86/Kconfig +++ linux-2.6.38/arch/x86/Kconfig @@ -364,6 +364,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 @@ -856,6 +862,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" @@ -2153,6 +2167,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "drivers/firmware/Kconfig" source "fs/Kconfig" --- linux-2.6.38.orig/arch/x86/include/asm/mmu.h +++ linux-2.6.38/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.38.orig/arch/x86/include/asm/gart.h +++ linux-2.6.38/arch/x86/include/asm/gart.h @@ -66,7 +66,7 @@ * Don't enable translation but enable GART IO and CPU accesses. * Also, set DISTLBWALKPRB since GART tables memory is UC. */ - ctl = DISTLBWALKPRB | order << 1; + ctl = order << 1; pci_write_config_dword(dev, AMD64_GARTAPERTURECTL, ctl); } @@ -83,7 +83,7 @@ /* Enable GART translation for this hammer. */ pci_read_config_dword(dev, AMD64_GARTAPERTURECTL, &ctl); - ctl |= GARTEN; + ctl |= GARTEN | DISTLBWALKPRB; ctl &= ~(DISGARTCPU | DISGARTIO); pci_write_config_dword(dev, AMD64_GARTAPERTURECTL, ctl); } --- linux-2.6.38.orig/arch/x86/include/asm/paravirt_types.h +++ linux-2.6.38/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.38.orig/arch/x86/include/asm/desc.h +++ linux-2.6.38/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.38.orig/arch/x86/include/asm/uaccess.h +++ linux-2.6.38/arch/x86/include/asm/uaccess.h @@ -42,7 +42,7 @@ * Returns 0 if the range is valid, nonzero otherwise. * * This is equivalent to the following test: - * (u33)addr + (u33)size >= (u33)current->addr_limit.seg (u65 for x86_64) + * (u33)addr + (u33)size > (u33)current->addr_limit.seg (u65 for x86_64) * * This needs 33-bit (65-bit for x86_64) arithmetic. We have a carry... */ --- linux-2.6.38.orig/arch/x86/include/asm/pgtable-3level.h +++ linux-2.6.38/arch/x86/include/asm/pgtable-3level.h @@ -69,8 +69,6 @@ static inline void pud_clear(pud_t *pudp) { - unsigned long pgd; - set_pud(pudp, __pud(0)); /* @@ -79,13 +77,10 @@ * section 8.1: in PAE mode we explicitly have to flush the * TLB via cr3 if the top-level pgd is changed... * - * Make sure the pud entry we're updating is within the - * current pgd to avoid unnecessary TLB flushes. + * Currently all places where pud_clear() is called either have + * flush_tlb_mm() followed or don't need TLB flush (x86_64 code or + * pud_clear_bad()), so we don't need TLB flush here. */ - pgd = read_cr3(); - if (__pa(pudp) >= pgd && __pa(pudp) < - (pgd + sizeof(pgd_t)*PTRS_PER_PGD)) - write_cr3(pgd); } #ifdef CONFIG_SMP --- linux-2.6.38.orig/arch/x86/include/asm/paravirt.h +++ linux-2.6.38/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.38.orig/arch/x86/include/asm/mce.h +++ linux-2.6.38/arch/x86/include/asm/mce.h @@ -71,6 +71,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.38.orig/arch/x86/include/asm/msr-index.h +++ linux-2.6.38/arch/x86/include/asm/msr-index.h @@ -92,11 +92,15 @@ #define MSR_IA32_MC0_ADDR 0x00000402 #define MSR_IA32_MC0_MISC 0x00000403 +#define MSR_AMD64_MC0_MASK 0xc0010044 + #define MSR_IA32_MCx_CTL(x) (MSR_IA32_MC0_CTL + 4*(x)) #define MSR_IA32_MCx_STATUS(x) (MSR_IA32_MC0_STATUS + 4*(x)) #define MSR_IA32_MCx_ADDR(x) (MSR_IA32_MC0_ADDR + 4*(x)) #define MSR_IA32_MCx_MISC(x) (MSR_IA32_MC0_MISC + 4*(x)) +#define MSR_AMD64_MCx_MASK(x) (MSR_AMD64_MC0_MASK + (x)) + /* These are consecutive and not in the normal 4er MCE bank block */ #define MSR_IA32_MC0_CTL2 0x00000280 #define MSR_IA32_MCx_CTL2(x) (MSR_IA32_MC0_CTL2 + (x)) @@ -250,6 +254,9 @@ #define MSR_IA32_TEMPERATURE_TARGET 0x000001a2 #define MSR_IA32_ENERGY_PERF_BIAS 0x000001b0 +#define ENERGY_PERF_BIAS_PERFORMANCE 0 +#define ENERGY_PERF_BIAS_NORMAL 6 +#define ENERGY_PERF_BIAS_POWERSWAVE 15 #define MSR_IA32_PACKAGE_THERM_STATUS 0x000001b1 --- linux-2.6.38.orig/arch/x86/include/asm/cpufeature.h +++ linux-2.6.38/arch/x86/include/asm/cpufeature.h @@ -125,7 +125,7 @@ #define X86_FEATURE_OSXSAVE (4*32+27) /* "" XSAVE enabled in the OS */ #define X86_FEATURE_AVX (4*32+28) /* Advanced Vector Extensions */ #define X86_FEATURE_F16C (4*32+29) /* 16-bit fp conversions */ -#define X86_FEATURE_RDRND (4*32+30) /* The RDRAND instruction */ +#define X86_FEATURE_RDRAND (4*32+30) /* The RDRAND instruction */ #define X86_FEATURE_HYPERVISOR (4*32+31) /* Running on a hypervisor */ /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */ --- linux-2.6.38.orig/arch/x86/include/asm/dma-mapping.h +++ linux-2.6.38/arch/x86/include/asm/dma-mapping.h @@ -144,8 +144,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.38.orig/arch/x86/include/asm/apicdef.h +++ linux-2.6.38/arch/x86/include/asm/apicdef.h @@ -78,6 +78,7 @@ #define APIC_DEST_LOGICAL 0x00800 #define APIC_DEST_PHYSICAL 0x00000 #define APIC_DM_FIXED 0x00000 +#define APIC_DM_FIXED_MASK 0x00700 #define APIC_DM_LOWEST 0x00100 #define APIC_DM_SMI 0x00200 #define APIC_DM_REMRD 0x00300 --- linux-2.6.38.orig/arch/x86/include/asm/uv/uv_bau.h +++ linux-2.6.38/arch/x86/include/asm/uv/uv_bau.h @@ -94,6 +94,8 @@ /* after this # consecutive successes, bump up the throttle if it was lowered */ #define COMPLETE_THRESHOLD 5 +#define UV_LB_SUBNODEID 0x10 + /* * number of entries in the destination side payload queue */ @@ -124,7 +126,7 @@ * The distribution specification (32 bytes) is interpreted as a 256-bit * distribution vector. Adjacent bits correspond to consecutive even numbered * nodeIDs. The result of adding the index of a given bit to the 15-bit - * 'base_dest_nodeid' field of the header corresponds to the + * 'base_dest_nasid' field of the header corresponds to the * destination nodeID associated with that specified bit. */ struct bau_target_uvhubmask { @@ -176,7 +178,7 @@ struct bau_msg_header { unsigned int dest_subnodeid:6; /* must be 0x10, for the LB */ /* bits 5:0 */ - unsigned int base_dest_nodeid:15; /* nasid of the */ + unsigned int base_dest_nasid:15; /* nasid of the */ /* bits 20:6 */ /* first bit in uvhub map */ unsigned int command:8; /* message type */ /* bits 28:21 */ @@ -378,6 +380,10 @@ unsigned long d_rcanceled; /* number of messages canceled by resets */ }; +struct hub_and_pnode { + short uvhub; + short pnode; +}; /* * one per-cpu; to locate the software tables */ @@ -399,10 +405,12 @@ int baudisabled; int set_bau_off; short cpu; + short osnode; short uvhub_cpu; short uvhub; short cpus_in_socket; short cpus_in_uvhub; + short partition_base_pnode; unsigned short message_number; unsigned short uvhub_quiesce; short socket_acknowledge_count[DEST_Q_SIZE]; @@ -422,15 +430,16 @@ int congested_period; cycles_t period_time; long period_requests; + struct hub_and_pnode *target_hub_and_pnode; }; static inline int bau_uvhub_isset(int uvhub, struct bau_target_uvhubmask *dstp) { return constant_test_bit(uvhub, &dstp->bits[0]); } -static inline void bau_uvhub_set(int uvhub, struct bau_target_uvhubmask *dstp) +static inline void bau_uvhub_set(int pnode, struct bau_target_uvhubmask *dstp) { - __set_bit(uvhub, &dstp->bits[0]); + __set_bit(pnode, &dstp->bits[0]); } static inline void bau_uvhubs_clear(struct bau_target_uvhubmask *dstp, int nbits) --- linux-2.6.38.orig/arch/x86/crypto/aesni-intel_asm.S +++ linux-2.6.38/arch/x86/crypto/aesni-intel_asm.S @@ -1612,6 +1612,7 @@ movdqa SHUF_MASK(%rip), %xmm10 PSHUFB_XMM %xmm10, %xmm0 + ENCRYPT_SINGLE_BLOCK %xmm0, %xmm1 # Encrypt(K, Yn) sub $16, %r11 add %r13, %r11 @@ -1634,7 +1635,9 @@ # GHASH computation for the last <16 byte block sub %r13, %r11 add $16, %r11 - PSHUFB_XMM %xmm10, %xmm1 + + movdqa SHUF_MASK(%rip), %xmm10 + PSHUFB_XMM %xmm10, %xmm0 # shuffle xmm0 back to output as ciphertext --- linux-2.6.38.orig/arch/x86/crypto/aesni-intel_glue.c +++ linux-2.6.38/arch/x86/crypto/aesni-intel_glue.c @@ -828,9 +828,15 @@ struct cryptd_aead *cryptd_tfm; struct aesni_rfc4106_gcm_ctx *ctx = (struct aesni_rfc4106_gcm_ctx *) PTR_ALIGN((u8 *)crypto_tfm_ctx(tfm), AESNI_ALIGN); + struct crypto_aead *cryptd_child; + struct aesni_rfc4106_gcm_ctx *child_ctx; cryptd_tfm = cryptd_alloc_aead("__driver-gcm-aes-aesni", 0, 0); if (IS_ERR(cryptd_tfm)) return PTR_ERR(cryptd_tfm); + + cryptd_child = cryptd_aead_child(cryptd_tfm); + child_ctx = aesni_rfc4106_gcm_ctx_get(cryptd_child); + memcpy(child_ctx, ctx, sizeof(*ctx)); ctx->cryptd_tfm = cryptd_tfm; tfm->crt_aead.reqsize = sizeof(struct aead_request) + crypto_aead_reqsize(&cryptd_tfm->base); @@ -925,6 +931,9 @@ int ret = 0; struct crypto_tfm *tfm = crypto_aead_tfm(parent); struct aesni_rfc4106_gcm_ctx *ctx = aesni_rfc4106_gcm_ctx_get(parent); + struct crypto_aead *cryptd_child = cryptd_aead_child(ctx->cryptd_tfm); + struct aesni_rfc4106_gcm_ctx *child_ctx = + aesni_rfc4106_gcm_ctx_get(cryptd_child); u8 *new_key_mem = NULL; if (key_len < 4) { @@ -968,6 +977,7 @@ goto exit; } ret = rfc4106_set_hash_subkey(ctx->hash_subkey, key, key_len); + memcpy(child_ctx, ctx, sizeof(*ctx)); exit: kfree(new_key_mem); return ret; @@ -999,7 +1009,6 @@ int ret; struct crypto_aead *tfm = crypto_aead_reqtfm(req); struct aesni_rfc4106_gcm_ctx *ctx = aesni_rfc4106_gcm_ctx_get(tfm); - struct crypto_aead *cryptd_child = cryptd_aead_child(ctx->cryptd_tfm); if (!irq_fpu_usable()) { struct aead_request *cryptd_req = @@ -1008,6 +1017,7 @@ aead_request_set_tfm(cryptd_req, &ctx->cryptd_tfm->base); return crypto_aead_encrypt(cryptd_req); } else { + struct crypto_aead *cryptd_child = cryptd_aead_child(ctx->cryptd_tfm); kernel_fpu_begin(); ret = cryptd_child->base.crt_aead.encrypt(req); kernel_fpu_end(); @@ -1020,7 +1030,6 @@ int ret; struct crypto_aead *tfm = crypto_aead_reqtfm(req); struct aesni_rfc4106_gcm_ctx *ctx = aesni_rfc4106_gcm_ctx_get(tfm); - struct crypto_aead *cryptd_child = cryptd_aead_child(ctx->cryptd_tfm); if (!irq_fpu_usable()) { struct aead_request *cryptd_req = @@ -1029,6 +1038,7 @@ aead_request_set_tfm(cryptd_req, &ctx->cryptd_tfm->base); return crypto_aead_decrypt(cryptd_req); } else { + struct crypto_aead *cryptd_child = cryptd_aead_child(ctx->cryptd_tfm); kernel_fpu_begin(); ret = cryptd_child->base.crt_aead.decrypt(req); kernel_fpu_end(); --- linux-2.6.38.orig/arch/x86/oprofile/op_model_amd.c +++ linux-2.6.38/arch/x86/oprofile/op_model_amd.c @@ -316,16 +316,23 @@ wrmsrl(MSR_AMD64_IBSOPCTL, 0); } -static inline int eilvt_is_available(int offset) +static inline int get_eilvt(int offset) { - /* check if we may assign a vector */ return !setup_APIC_eilvt(offset, 0, APIC_EILVT_MSG_NMI, 1); } +static inline int put_eilvt(int offset) +{ + return !setup_APIC_eilvt(offset, 0, 0, 1); +} + static inline int ibs_eilvt_valid(void) { int offset; u64 val; + int valid = 0; + + preempt_disable(); rdmsrl(MSR_AMD64_IBSCTL, val); offset = val & IBSCTL_LVT_OFFSET_MASK; @@ -333,16 +340,20 @@ if (!(val & IBSCTL_LVT_OFFSET_VALID)) { pr_err(FW_BUG "cpu %d, invalid IBS interrupt offset %d (MSR%08X=0x%016llx)\n", smp_processor_id(), offset, MSR_AMD64_IBSCTL, val); - return 0; + goto out; } - if (!eilvt_is_available(offset)) { + if (!get_eilvt(offset)) { pr_err(FW_BUG "cpu %d, IBS interrupt offset %d not available (MSR%08X=0x%016llx)\n", smp_processor_id(), offset, MSR_AMD64_IBSCTL, val); - return 0; + goto out; } - return 1; + valid = 1; +out: + preempt_enable(); + + return valid; } static inline int get_ibs_offset(void) @@ -600,67 +611,69 @@ static int force_ibs_eilvt_setup(void) { - int i; + int offset; int ret; - /* find the next free available EILVT entry */ - for (i = 1; i < 4; i++) { - if (!eilvt_is_available(i)) - continue; - ret = setup_ibs_ctl(i); - if (ret) - return ret; - pr_err(FW_BUG "using offset %d for IBS interrupts\n", i); - return 0; + /* + * find the next free available EILVT entry, skip offset 0, + * pin search to this cpu + */ + preempt_disable(); + for (offset = 1; offset < APIC_EILVT_NR_MAX; offset++) { + if (get_eilvt(offset)) + break; } + preempt_enable(); - printk(KERN_DEBUG "No EILVT entry available\n"); - - return -EBUSY; -} - -static int __init_ibs_nmi(void) -{ - int ret; - - if (ibs_eilvt_valid()) - return 0; + if (offset == APIC_EILVT_NR_MAX) { + printk(KERN_DEBUG "No EILVT entry available\n"); + return -EBUSY; + } - ret = force_ibs_eilvt_setup(); + ret = setup_ibs_ctl(offset); if (ret) - return ret; + goto out; - if (!ibs_eilvt_valid()) - return -EFAULT; + if (!ibs_eilvt_valid()) { + ret = -EFAULT; + goto out; + } + pr_err(FW_BUG "using offset %d for IBS interrupts\n", offset); pr_err(FW_BUG "workaround enabled for IBS LVT offset\n"); return 0; +out: + preempt_disable(); + put_eilvt(offset); + preempt_enable(); + return ret; } /* * 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) { - preempt_disable(); - ibs_caps = get_ibs_caps(); + if (!ibs_caps) + return; + + if (ibs_eilvt_valid()) goto out; - if (__init_ibs_nmi() < 0) - ibs_caps = 0; - else - printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps); + if (!force_ibs_eilvt_setup()) + goto out; + + /* Failed to setup ibs */ + ibs_caps = 0; + return; out: - preempt_enable(); + printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps); } static int (*create_arch_files)(struct super_block *sb, struct dentry *root); --- linux-2.6.38.orig/arch/x86/lib/semaphore_32.S +++ linux-2.6.38/arch/x86/lib/semaphore_32.S @@ -36,7 +36,7 @@ */ #ifdef CONFIG_SMP ENTRY(__write_lock_failed) - CFI_STARTPROC simple + CFI_STARTPROC FRAME 2: LOCK_PREFIX addl $ RW_LOCK_BIAS,(%eax) --- linux-2.6.38.orig/arch/x86/lib/copy_user_64.S +++ linux-2.6.38/arch/x86/lib/copy_user_64.S @@ -72,7 +72,7 @@ addq %rdx,%rcx jc bad_to_user cmpq TI_addr_limit(%rax),%rcx - jae bad_to_user + ja bad_to_user ALTERNATIVE_JUMP X86_FEATURE_REP_GOOD,copy_user_generic_unrolled,copy_user_generic_string CFI_ENDPROC ENDPROC(_copy_to_user) @@ -85,7 +85,7 @@ addq %rdx,%rcx jc bad_from_user cmpq TI_addr_limit(%rax),%rcx - jae bad_from_user + ja bad_from_user ALTERNATIVE_JUMP X86_FEATURE_REP_GOOD,copy_user_generic_unrolled,copy_user_generic_string CFI_ENDPROC ENDPROC(_copy_from_user) --- linux-2.6.38.orig/arch/x86/platform/uv/tlb_uv.c +++ linux-2.6.38/arch/x86/platform/uv/tlb_uv.c @@ -698,16 +698,17 @@ struct mm_struct *mm, unsigned long va, unsigned int cpu) { - int tcpu; - int uvhub; int locals = 0; int remotes = 0; int hubs = 0; + int tcpu; + int tpnode; struct bau_desc *bau_desc; struct cpumask *flush_mask; struct ptc_stats *stat; struct bau_control *bcp; struct bau_control *tbcp; + struct hub_and_pnode *hpp; /* kernel was booted 'nobau' */ if (nobau) @@ -749,11 +750,18 @@ bau_desc += UV_ITEMS_PER_DESCRIPTOR * bcp->uvhub_cpu; bau_uvhubs_clear(&bau_desc->distribution, UV_DISTRIBUTION_SIZE); - /* cpu statistics */ for_each_cpu(tcpu, flush_mask) { - uvhub = uv_cpu_to_blade_id(tcpu); - bau_uvhub_set(uvhub, &bau_desc->distribution); - if (uvhub == bcp->uvhub) + /* + * The distribution vector is a bit map of pnodes, relative + * to the partition base pnode (and the partition base nasid + * in the header). + * Translate cpu to pnode and hub using an array stored + * in local memory. + */ + hpp = &bcp->socket_master->target_hub_and_pnode[tcpu]; + tpnode = hpp->pnode - bcp->partition_base_pnode; + bau_uvhub_set(tpnode, &bau_desc->distribution); + if (hpp->uvhub == bcp->uvhub) locals++; else remotes++; @@ -854,7 +862,7 @@ * an interrupt, but causes an error message to be returned to * the sender. */ -static void uv_enable_timeouts(void) +static void __init uv_enable_timeouts(void) { int uvhub; int nuvhubs; @@ -1325,10 +1333,10 @@ } /* - * initialize the sending side's sending buffers + * Initialize the sending side's sending buffers. */ static void -uv_activation_descriptor_init(int node, int pnode) +uv_activation_descriptor_init(int node, int pnode, int base_pnode) { int i; int cpu; @@ -1351,11 +1359,11 @@ n = pa >> uv_nshift; m = pa & uv_mmask; + /* the 14-bit pnode */ uv_write_global_mmr64(pnode, UVH_LB_BAU_SB_DESCRIPTOR_BASE, (n << UV_DESC_BASE_PNODE_SHIFT | m)); - /* - * initializing all 8 (UV_ITEMS_PER_DESCRIPTOR) descriptors for each + * Initializing all 8 (UV_ITEMS_PER_DESCRIPTOR) descriptors for each * cpu even though we only use the first one; one descriptor can * describe a broadcast to 256 uv hubs. */ @@ -1364,12 +1372,13 @@ memset(bd2, 0, sizeof(struct bau_desc)); bd2->header.sw_ack_flag = 1; /* - * base_dest_nodeid is the nasid of the first uvhub - * in the partition. The bit map will indicate uvhub numbers, - * which are 0-N in a partition. Pnodes are unique system-wide. + * The base_dest_nasid set in the message header is the nasid + * of the first uvhub in the partition. The bit map will + * indicate destination pnode numbers relative to that base. + * They may not be consecutive if nasid striding is being used. */ - bd2->header.base_dest_nodeid = UV_PNODE_TO_NASID(uv_partition_base_pnode); - bd2->header.dest_subnodeid = 0x10; /* the LB */ + bd2->header.base_dest_nasid = UV_PNODE_TO_NASID(base_pnode); + bd2->header.dest_subnodeid = UV_LB_SUBNODEID; bd2->header.command = UV_NET_ENDPOINT_INTD; bd2->header.int_both = 1; /* @@ -1441,7 +1450,7 @@ /* * Initialization of each UV hub's structures */ -static void __init uv_init_uvhub(int uvhub, int vector) +static void __init uv_init_uvhub(int uvhub, int vector, int base_pnode) { int node; int pnode; @@ -1449,11 +1458,11 @@ node = uvhub_to_first_node(uvhub); pnode = uv_blade_to_pnode(uvhub); - uv_activation_descriptor_init(node, pnode); + uv_activation_descriptor_init(node, pnode, base_pnode); uv_payload_queue_init(node, pnode); /* - * the below initialization can't be in firmware because the - * messaging IRQ will be determined by the OS + * The below initialization can't be in firmware because the + * messaging IRQ will be determined by the OS. */ apicid = uvhub_to_first_apicid(uvhub) | uv_apicid_hibits; uv_write_global_mmr64(pnode, UVH_BAU_DATA_CONFIG, @@ -1490,10 +1499,11 @@ /* * initialize the bau_control structure for each cpu */ -static int __init uv_init_per_cpu(int nuvhubs) +static int __init uv_init_per_cpu(int nuvhubs, int base_part_pnode) { int i; int cpu; + int tcpu; int pnode; int uvhub; int have_hmaster; @@ -1527,6 +1537,15 @@ bcp = &per_cpu(bau_control, cpu); memset(bcp, 0, sizeof(struct bau_control)); pnode = uv_cpu_hub_info(cpu)->pnode; + if ((pnode - base_part_pnode) >= UV_DISTRIBUTION_SIZE) { + printk(KERN_EMERG + "cpu %d pnode %d-%d beyond %d; BAU disabled\n", + cpu, pnode, base_part_pnode, + UV_DISTRIBUTION_SIZE); + return 1; + } + bcp->osnode = cpu_to_node(cpu); + bcp->partition_base_pnode = uv_partition_base_pnode; uvhub = uv_cpu_hub_info(cpu)->numa_blade_id; *(uvhub_mask + (uvhub/8)) |= (1 << (uvhub%8)); bdp = &uvhub_descs[uvhub]; @@ -1535,7 +1554,7 @@ bdp->pnode = pnode; /* kludge: 'assuming' one node per socket, and assuming that disabling a socket just leaves a gap in node numbers */ - socket = (cpu_to_node(cpu) & 1); + socket = bcp->osnode & 1; bdp->socket_mask |= (1 << socket); sdp = &bdp->socket[socket]; sdp->cpu_number[sdp->num_cpus] = cpu; @@ -1584,6 +1603,20 @@ nextsocket: socket++; socket_mask = (socket_mask >> 1); + /* each socket gets a local array of pnodes/hubs */ + bcp = smaster; + bcp->target_hub_and_pnode = kmalloc_node( + sizeof(struct hub_and_pnode) * + num_possible_cpus(), GFP_KERNEL, bcp->osnode); + memset(bcp->target_hub_and_pnode, 0, + sizeof(struct hub_and_pnode) * + num_possible_cpus()); + for_each_present_cpu(tcpu) { + bcp->target_hub_and_pnode[tcpu].pnode = + uv_cpu_hub_info(tcpu)->pnode; + bcp->target_hub_and_pnode[tcpu].uvhub = + uv_cpu_hub_info(tcpu)->numa_blade_id; + } } } kfree(uvhub_descs); @@ -1636,21 +1669,22 @@ spin_lock_init(&disable_lock); congested_cycles = microsec_2_cycles(congested_response_us); - if (uv_init_per_cpu(nuvhubs)) { - nobau = 1; - return 0; - } - uv_partition_base_pnode = 0x7fffffff; - for (uvhub = 0; uvhub < nuvhubs; uvhub++) + for (uvhub = 0; uvhub < nuvhubs; uvhub++) { if (uv_blade_nr_possible_cpus(uvhub) && (uv_blade_to_pnode(uvhub) < uv_partition_base_pnode)) uv_partition_base_pnode = uv_blade_to_pnode(uvhub); + } + + if (uv_init_per_cpu(nuvhubs, uv_partition_base_pnode)) { + nobau = 1; + return 0; + } vector = UV_BAU_MESSAGE; for_each_possible_blade(uvhub) if (uv_blade_nr_possible_cpus(uvhub)) - uv_init_uvhub(uvhub, vector); + uv_init_uvhub(uvhub, vector, uv_partition_base_pnode); uv_enable_timeouts(); alloc_intr_gate(vector, uv_bau_message_intr1); --- linux-2.6.38.orig/arch/x86/mm/tlb.c +++ linux-2.6.38/arch/x86/mm/tlb.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -134,6 +135,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.38.orig/arch/x86/mm/setup_nx.c +++ linux-2.6.38/arch/x86/mm/setup_nx.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -5,7 +6,7 @@ #include #include -static int disable_nx __cpuinitdata; +int disable_nx __cpuinitdata; /* * noexec = on|off @@ -39,9 +40,12 @@ void __init x86_report_nx(void) { + int nx_emulation = 0; + if (!cpu_has_nx) { printk(KERN_NOTICE "Notice: NX (Execute Disable) protection " "missing in CPU!\n"); + nx_emulation = 1; } else { #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) if (disable_nx) { @@ -54,7 +58,20 @@ #else /* 32bit non-PAE kernel, NX cannot be used */ printk(KERN_NOTICE "Notice: NX (Execute Disable) protection " - "cannot be enabled: non-PAE kernel!\n"); + "cannot be enabled in hardware: non-PAE kernel!\n"); + nx_emulation = 1; +#endif + } + + if (nx_emulation) { +#ifdef CONFIG_X86_32 + if (!disable_nx) + 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"); #endif } } --- linux-2.6.38.orig/arch/x86/mm/pgtable.c +++ linux-2.6.38/arch/x86/mm/pgtable.c @@ -168,8 +168,7 @@ * section 8.1: in PAE mode we explicitly have to flush the * TLB via cr3 if the top-level pgd is changed... */ - if (mm == current->active_mm) - write_cr3(read_cr3()); + flush_tlb_mm(mm); } #else /* !CONFIG_X86_PAE */ --- linux-2.6.38.orig/arch/x86/mm/mmap.c +++ linux-2.6.38/arch/x86/mm/mmap.c @@ -131,6 +131,12 @@ } 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.38.orig/arch/x86/kernel/early-quirks.c +++ linux-2.6.38/arch/x86/kernel/early-quirks.c @@ -159,7 +159,12 @@ if (rev >= 0x40) acpi_fix_pin2_polarity = 1; - if (rev > 0x13) + /* + * SB600: revisions 0x11, 0x12, 0x13, 0x14, ... + * SB700: revisions 0x39, 0x3a, ... + * SB800: revisions 0x40, 0x41, ... + */ + if (rev >= 0x39) return; if (acpi_use_timer_override) --- linux-2.6.38.orig/arch/x86/kernel/reboot.c +++ linux-2.6.38/arch/x86/kernel/reboot.c @@ -480,6 +480,22 @@ DMI_MATCH(DMI_PRODUCT_NAME, "iMac9,1"), }, }, + { /* Handle problems with rebooting on the Latitude E6220. */ + .callback = set_pci_reboot, + .ident = "Dell Latitude E6220", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6220"), + }, + }, + { /* Handle problems with rebooting on the Latitude E6520. */ + .callback = set_pci_reboot, + .ident = "Dell Latitude E6520", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"), + }, + }, { } }; --- linux-2.6.38.orig/arch/x86/kernel/vmlinux.lds.S +++ linux-2.6.38/arch/x86/kernel/vmlinux.lds.S @@ -34,11 +34,9 @@ #ifdef CONFIG_X86_32 OUTPUT_ARCH(i386) ENTRY(phys_startup_32) -jiffies = jiffies_64; #else OUTPUT_ARCH(i386:x86-64) ENTRY(phys_startup_64) -jiffies_64 = jiffies; #endif #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA) @@ -203,6 +201,7 @@ *(.jiffies) } jiffies = VVIRT(.jiffies); + jiffies_64 = jiffies; .vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3)) { *(.vsyscall_3) --- linux-2.6.38.orig/arch/x86/kernel/entry_32.S +++ linux-2.6.38/arch/x86/kernel/entry_32.S @@ -1413,7 +1413,7 @@ CFI_ADJUST_CFA_OFFSET 4 jmp error_code CFI_ENDPROC -END(apf_page_fault) +END(async_page_fault) #endif /* --- linux-2.6.38.orig/arch/x86/kernel/paravirt.c +++ linux-2.6.38/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.38.orig/arch/x86/kernel/process_32.c +++ linux-2.6.38/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.38.orig/arch/x86/kernel/aperture_64.c +++ linux-2.6.38/arch/x86/kernel/aperture_64.c @@ -500,7 +500,7 @@ * Don't enable translation yet but enable GART IO and CPU * accesses and set DISTLBWALKPRB since GART table memory is UC. */ - u32 ctl = DISTLBWALKPRB | aper_order << 1; + u32 ctl = aper_order << 1; bus = amd_nb_bus_dev_ranges[i].bus; dev_base = amd_nb_bus_dev_ranges[i].dev_base; --- linux-2.6.38.orig/arch/x86/kernel/traps.c +++ linux-2.6.38/arch/x86/kernel/traps.c @@ -116,6 +116,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) @@ -272,6 +344,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; @@ -795,19 +890,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.38.orig/arch/x86/kernel/alternative.c +++ linux-2.6.38/arch/x86/kernel/alternative.c @@ -620,7 +620,12 @@ flush_icache_range((unsigned long)p->addr, (unsigned long)p->addr + p->len); } - + /* + * Intel Archiecture Software Developer's Manual section 7.1.3 specifies + * that a core serializing instruction such as "cpuid" should be + * executed on _each_ core before the new instruction is made visible. + */ + sync_core(); return 0; } --- linux-2.6.38.orig/arch/x86/kernel/ptrace.c +++ linux-2.6.38/arch/x86/kernel/ptrace.c @@ -608,6 +608,9 @@ unsigned len, type; struct perf_event *bp; + if (ptrace_get_breakpoints(tsk) < 0) + return -ESRCH; + data &= ~DR_CONTROL_RESERVED; old_dr7 = ptrace_get_dr7(thread->ptrace_bps); restore: @@ -655,6 +658,9 @@ } goto restore; } + + ptrace_put_breakpoints(tsk); + return ((orig_ret < 0) ? orig_ret : rc); } @@ -668,10 +674,17 @@ if (n < HBP_NUM) { struct perf_event *bp; + + if (ptrace_get_breakpoints(tsk) < 0) + return -ESRCH; + bp = thread->ptrace_bps[n]; if (!bp) - return 0; - val = bp->hw.info.address; + val = 0; + else + val = bp->hw.info.address; + + ptrace_put_breakpoints(tsk); } else if (n == 6) { val = thread->debugreg6; } else if (n == 7) { @@ -686,6 +699,10 @@ struct perf_event *bp; struct thread_struct *t = &tsk->thread; struct perf_event_attr attr; + int err = 0; + + if (ptrace_get_breakpoints(tsk) < 0) + return -ESRCH; if (!t->ptrace_bps[nr]) { ptrace_breakpoint_init(&attr); @@ -709,24 +726,23 @@ * writing for the user. And anyway this is the previous * behaviour. */ - if (IS_ERR(bp)) - return PTR_ERR(bp); + if (IS_ERR(bp)) { + err = PTR_ERR(bp); + goto put; + } t->ptrace_bps[nr] = bp; } else { - int err; - bp = t->ptrace_bps[nr]; attr = bp->attr; attr.bp_addr = addr; err = modify_user_hw_breakpoint(bp, &attr); - if (err) - return err; } - - return 0; +put: + ptrace_put_breakpoints(tsk); + return err; } /* --- linux-2.6.38.orig/arch/x86/kernel/entry_64.S +++ linux-2.6.38/arch/x86/kernel/entry_64.S @@ -1248,7 +1248,7 @@ decl PER_CPU_VAR(irq_count) jmp error_exit CFI_ENDPROC -END(do_hypervisor_callback) +END(xen_do_hypervisor_callback) /* * Hypervisor uses this for application faults while it executes. --- linux-2.6.38.orig/arch/x86/kernel/process.c +++ linux-2.6.38/arch/x86/kernel/process.c @@ -678,6 +678,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.38.orig/arch/x86/kernel/e820.c +++ linux-2.6.38/arch/x86/kernel/e820.c @@ -73,7 +73,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; @@ -100,6 +100,7 @@ } return 0; } +EXPORT_SYMBOL_GPL(e820_all_mapped); /* * Add a memory region to the kernel e820 map. @@ -847,15 +848,21 @@ if (!p) return -EINVAL; -#ifdef CONFIG_X86_32 if (!strcmp(p, "nopentium")) { +#ifdef CONFIG_X86_32 setup_clear_cpu_cap(X86_FEATURE_PSE); return 0; - } +#else + printk(KERN_WARNING "mem=nopentium ignored! (only supported on x86_32)\n"); + return -EINVAL; #endif + } userdef = 1; mem_size = memparse(p, &p); + /* don't remove all of memory when handling "mem={invalid}" param */ + if (mem_size == 0) + return -EINVAL; e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1); return 0; --- linux-2.6.38.orig/arch/x86/kernel/pci-gart_64.c +++ linux-2.6.38/arch/x86/kernel/pci-gart_64.c @@ -81,6 +81,9 @@ #define AGPEXTERN #endif +/* GART can only remap to physical addresses < 1TB */ +#define GART_MAX_PHYS_ADDR (1ULL << 40) + /* backdoor interface to AGP driver */ AGPEXTERN int agp_memory_reserved; AGPEXTERN __u32 *agp_gatt_table; @@ -212,9 +215,13 @@ size_t size, int dir, unsigned long align_mask) { unsigned long npages = iommu_num_pages(phys_mem, size, PAGE_SIZE); - unsigned long iommu_page = alloc_iommu(dev, npages, align_mask); + unsigned long iommu_page; int i; + if (unlikely(phys_mem + size > GART_MAX_PHYS_ADDR)) + return bad_dma_addr; + + iommu_page = alloc_iommu(dev, npages, align_mask); if (iommu_page == -1) { if (!nonforced_iommu(dev, phys_mem, size)) return phys_mem; --- linux-2.6.38.orig/arch/x86/kernel/apic/io_apic.c +++ linux-2.6.38/arch/x86/kernel/apic/io_apic.c @@ -615,14 +615,14 @@ struct IO_APIC_route_entry **ioapic_entries; ioapic_entries = kzalloc(sizeof(*ioapic_entries) * nr_ioapics, - GFP_KERNEL); + GFP_ATOMIC); if (!ioapic_entries) return 0; for (apic = 0; apic < nr_ioapics; apic++) { ioapic_entries[apic] = kzalloc(sizeof(struct IO_APIC_route_entry) * - nr_ioapic_registers[apic], GFP_KERNEL); + nr_ioapic_registers[apic], GFP_ATOMIC); if (!ioapic_entries[apic]) goto nomem; } --- linux-2.6.38.orig/arch/x86/kernel/cpu/amd.c +++ linux-2.6.38/arch/x86/kernel/cpu/amd.c @@ -594,6 +594,35 @@ } } #endif + + /* + * Family 0x12 and above processors have APIC timer + * running in deep C states. + */ + if (c->x86 > 0x11) + set_cpu_cap(c, X86_FEATURE_ARAT); + + /* + * Disable GART TLB Walk Errors on Fam10h. We do this here + * because this is always needed when GART is enabled, even in a + * kernel which has no MCE support built in. + */ + if (c->x86 == 0x10) { + /* + * BIOS should disable GartTlbWlk Errors themself. If + * it doesn't do it here as suggested by the BKDG. + * + * Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=33012 + */ + u64 mask; + int err; + + err = rdmsrl_safe(MSR_AMD64_MCx_MASK(4), &mask); + if (err == 0) { + mask |= (1 << 10); + checking_wrmsrl(MSR_AMD64_MCx_MASK(4), mask); + } + } } #ifdef CONFIG_X86_32 --- linux-2.6.38.orig/arch/x86/kernel/cpu/common.c +++ linux-2.6.38/arch/x86/kernel/cpu/common.c @@ -565,8 +565,7 @@ cpuid_count(0x00000007, 0, &eax, &ebx, &ecx, &edx); - if (eax > 0) - c->x86_capability[9] = ebx; + c->x86_capability[9] = ebx; } /* AMD-defined flags: level 0x80000001 */ @@ -825,6 +824,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 (!disable_nx) { +#ifdef CONFIG_X86_PAE + if (!test_cpu_cap(c, X86_FEATURE_NX)) +#endif + clear_cpu_cap(c, X86_FEATURE_SEP); + } +#endif + /* If the model name is still unset, do table lookup. */ if (!c->x86_model_id[0]) { const char *p; --- linux-2.6.38.orig/arch/x86/kernel/cpu/intel.c +++ linux-2.6.38/arch/x86/kernel/cpu/intel.c @@ -448,6 +448,24 @@ if (cpu_has(c, X86_FEATURE_VMX)) detect_vmx_virtcap(c); + + /* + * Initialize MSR_IA32_ENERGY_PERF_BIAS if BIOS did not. + * x86_energy_perf_policy(8) is available to change it at run-time + */ + if (cpu_has(c, X86_FEATURE_EPB)) { + u64 epb; + + rdmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb); + if ((epb & 0xF) == ENERGY_PERF_BIAS_PERFORMANCE) { + printk_once(KERN_WARNING "ENERGY_PERF_BIAS:" + " Set to 'normal', was 'performance'\n" + "ENERGY_PERF_BIAS: View and update with" + " x86_energy_perf_policy(8)\n"); + epb = (epb & ~0xF) | ENERGY_PERF_BIAS_NORMAL; + wrmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb); + } + } } #ifdef CONFIG_X86_32 --- linux-2.6.38.orig/arch/x86/kernel/cpu/mtrr/main.c +++ linux-2.6.38/arch/x86/kernel/cpu/mtrr/main.c @@ -292,14 +292,24 @@ /* * HACK! - * We use this same function to initialize the mtrrs on boot. - * The state of the boot cpu's mtrrs has been saved, and we want - * to replicate across all the APs. - * If we're doing that @reg is set to something special... + * + * We use this same function to initialize the mtrrs during boot, + * resume, runtime cpu online and on an explicit request to set a + * specific MTRR. + * + * During boot or suspend, the state of the boot cpu's mtrrs has been + * saved, and we want to replicate that across all the cpus that come + * online (either at the end of boot or resume or during a runtime cpu + * online). If we're doing that, @reg is set to something special and on + * this cpu we still do mtrr_if->set_all(). During boot/resume, this + * is unnecessary if at this point we are still on the cpu that started + * the boot/resume sequence. But there is no guarantee that we are still + * on the same cpu. So we do mtrr_if->set_all() on this cpu aswell to be + * sure that we are in sync with everyone else. */ if (reg != ~0U) mtrr_if->set(reg, base, size, type); - else if (!mtrr_aps_delayed_init) + else mtrr_if->set_all(); /* Wait for the others */ --- linux-2.6.38.orig/arch/x86/kernel/cpu/mcheck/therm_throt.c +++ linux-2.6.38/arch/x86/kernel/cpu/mcheck/therm_throt.c @@ -446,18 +446,20 @@ */ rdmsr(MSR_IA32_MISC_ENABLE, l, h); + h = lvtthmr_init; /* * The initial value of thermal LVT entries on all APs always reads * 0x10000 because APs are woken up by BSP issuing INIT-SIPI-SIPI * sequence to them and LVT registers are reset to 0s except for * the mask bits which are set to 1s when APs receive INIT IPI. - * Always restore the value that BIOS has programmed on AP based on - * BSP's info we saved since BIOS is always setting the same value - * for all threads/cores + * If BIOS takes over the thermal interrupt and sets its interrupt + * delivery mode to SMI (not fixed), it restores the value that the + * BIOS has programmed on AP based on BSP's info we saved since BIOS + * is always setting the same value for all threads/cores. */ - apic_write(APIC_LVTTHMR, lvtthmr_init); + if ((h & APIC_DM_FIXED_MASK) != APIC_DM_FIXED) + apic_write(APIC_LVTTHMR, lvtthmr_init); - h = lvtthmr_init; if ((l & MSR_IA32_MISC_ENABLE_TM1) && (h & APIC_DM_SMI)) { printk(KERN_DEBUG --- linux-2.6.38.orig/arch/x86/kernel/cpu/mcheck/mce.c +++ linux-2.6.38/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 @@ -379,6 +382,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 @@ -582,6 +590,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.38.orig/arch/x86/kernel/cpu/mcheck/mce-xeon75xx.c +++ linux-2.6.38/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.38.orig/arch/x86/kernel/cpu/mcheck/Makefile +++ linux-2.6.38/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.38.orig/arch/x86/kernel/cpu/mcheck/mce_amd.c +++ linux-2.6.38/arch/x86/kernel/cpu/mcheck/mce_amd.c @@ -509,6 +509,7 @@ out_free: if (b) { kobject_put(&b->kobj); + list_del(&b->miscj); kfree(b); } return err; --- linux-2.6.38.orig/arch/x86/kernel/cpu/mcheck/mce-internal.h +++ linux-2.6.38/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.38.orig/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c +++ linux-2.6.38/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c @@ -39,7 +39,7 @@ #include -#define PCC_VERSION "1.00.00" +#define PCC_VERSION "1.10.00" #define POLL_LOOPS 300 #define CMD_COMPLETE 0x1 @@ -102,7 +102,7 @@ static u64 doorbell_preserve; static u64 doorbell_write; -static u8 OSC_UUID[16] = {0x63, 0x9B, 0x2C, 0x9F, 0x70, 0x91, 0x49, 0x1f, +static u8 OSC_UUID[16] = {0x9F, 0x2C, 0x9B, 0x63, 0x91, 0x70, 0x1f, 0x49, 0xBB, 0x4F, 0xA5, 0x98, 0x2F, 0xA1, 0xB5, 0x46}; struct pcc_cpu { --- linux-2.6.38.orig/arch/x86/kernel/acpi/boot.c +++ linux-2.6.38/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.38.orig/arch/x86/kvm/x86.h +++ linux-2.6.38/arch/x86/kvm/x86.h @@ -77,7 +77,7 @@ void kvm_before_handle_nmi(struct kvm_vcpu *vcpu); void kvm_after_handle_nmi(struct kvm_vcpu *vcpu); -int kvm_inject_realmode_interrupt(struct kvm_vcpu *vcpu, int irq); +int kvm_inject_realmode_interrupt(struct kvm_vcpu *vcpu, int irq, int inc_eip); void kvm_write_tsc(struct kvm_vcpu *vcpu, u64 data); --- linux-2.6.38.orig/arch/x86/kvm/vmx.c +++ linux-2.6.38/arch/x86/kvm/vmx.c @@ -1053,7 +1053,10 @@ } if (vmx->rmode.vm86_active) { - if (kvm_inject_realmode_interrupt(vcpu, nr) != EMULATE_DONE) + int inc_eip = 0; + if (kvm_exception_is_soft(nr)) + inc_eip = vcpu->arch.event_exit_inst_len; + if (kvm_inject_realmode_interrupt(vcpu, nr, inc_eip) != EMULATE_DONE) kvm_make_request(KVM_REQ_TRIPLE_FAULT, vcpu); return; } @@ -2871,7 +2874,10 @@ ++vcpu->stat.irq_injections; if (vmx->rmode.vm86_active) { - if (kvm_inject_realmode_interrupt(vcpu, irq) != EMULATE_DONE) + int inc_eip = 0; + if (vcpu->arch.interrupt.soft) + inc_eip = vcpu->arch.event_exit_inst_len; + if (kvm_inject_realmode_interrupt(vcpu, irq, inc_eip) != EMULATE_DONE) kvm_make_request(KVM_REQ_TRIPLE_FAULT, vcpu); return; } @@ -2905,7 +2911,7 @@ ++vcpu->stat.nmi_injections; if (vmx->rmode.vm86_active) { - if (kvm_inject_realmode_interrupt(vcpu, NMI_VECTOR) != EMULATE_DONE) + if (kvm_inject_realmode_interrupt(vcpu, NMI_VECTOR, 0) != EMULATE_DONE) kvm_make_request(KVM_REQ_TRIPLE_FAULT, vcpu); return; } --- linux-2.6.38.orig/arch/x86/kvm/svm.c +++ linux-2.6.38/arch/x86/kvm/svm.c @@ -135,6 +135,8 @@ u32 *msrpm; + ulong nmi_iret_rip; + struct nested_state nested; bool nmi_singlestep; @@ -1153,8 +1155,10 @@ wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs); load_gs_index(svm->host.gs); #else +#ifdef CONFIG_X86_32_LAZY_GS loadsegment(gs, svm->host.gs); #endif +#endif for (i = 0; i < NR_HOST_SAVE_USER_MSRS; i++) wrmsrl(host_save_user_msrs[i], svm->host_user_msrs[i]); } @@ -2653,6 +2657,7 @@ ++svm->vcpu.stat.nmi_window_exits; clr_intercept(svm, INTERCEPT_IRET); svm->vcpu.arch.hflags |= HF_IRET_MASK; + svm->nmi_iret_rip = kvm_rip_read(&svm->vcpu); return 1; } @@ -3474,7 +3479,12 @@ svm->int3_injected = 0; - if (svm->vcpu.arch.hflags & HF_IRET_MASK) { + /* + * If we've made progress since setting HF_IRET_MASK, we've + * executed an IRET and can allow NMI injection. + */ + if ((svm->vcpu.arch.hflags & HF_IRET_MASK) + && kvm_rip_read(&svm->vcpu) != svm->nmi_iret_rip) { svm->vcpu.arch.hflags &= ~(HF_NMI_MASK | HF_IRET_MASK); kvm_make_request(KVM_REQ_EVENT, &svm->vcpu); } @@ -3641,6 +3651,9 @@ wrmsrl(MSR_GS_BASE, svm->host.gs_base); #else loadsegment(fs, svm->host.fs); +#ifndef CONFIG_X86_32_LAZY_GS + loadsegment(gs, svm->host.gs); +#endif #endif reload_tss(vcpu); --- linux-2.6.38.orig/arch/x86/kvm/x86.c +++ linux-2.6.38/arch/x86/kvm/x86.c @@ -4293,7 +4293,7 @@ memcpy(c->regs, vcpu->arch.regs, sizeof c->regs); } -int kvm_inject_realmode_interrupt(struct kvm_vcpu *vcpu, int irq) +int kvm_inject_realmode_interrupt(struct kvm_vcpu *vcpu, int irq, int inc_eip) { struct decode_cache *c = &vcpu->arch.emulate_ctxt.decode; int ret; @@ -4302,7 +4302,8 @@ vcpu->arch.emulate_ctxt.decode.op_bytes = 2; vcpu->arch.emulate_ctxt.decode.ad_bytes = 2; - vcpu->arch.emulate_ctxt.decode.eip = vcpu->arch.emulate_ctxt.eip; + vcpu->arch.emulate_ctxt.decode.eip = vcpu->arch.emulate_ctxt.eip + + inc_eip; ret = emulate_int_real(&vcpu->arch.emulate_ctxt, &emulate_ops, irq); if (ret != X86EMUL_CONTINUE) --- linux-2.6.38.orig/arch/x86/xen/mmu.c +++ linux-2.6.38/arch/x86/xen/mmu.c @@ -1138,7 +1138,7 @@ active_mm = percpu_read(cpu_tlbstate.active_mm); - if (active_mm == mm) + if (active_mm == mm && percpu_read(cpu_tlbstate.state) != TLBSTATE_OK) leave_mm(smp_processor_id()); /* If this cpu still has a stale cr3 reference, then make sure @@ -1651,9 +1651,6 @@ for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) { pte_t pte; - if (pfn > max_pfn_mapped) - max_pfn_mapped = pfn; - if (!pte_none(pte_page[pteidx])) continue; @@ -1711,6 +1708,12 @@ pud_t *l3; pmd_t *l2; + /* max_pfn_mapped is the last pfn mapped in the initial memory + * mappings. Considering that on Xen after the kernel mappings we + * have the mappings of some pages that don't exist in pfn space, we + * set max_pfn_mapped to the last real pfn mapped. */ + max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list)); + /* Zap identity mapping */ init_level4_pgt[0] = __pgd(0); @@ -1815,9 +1818,7 @@ initial_kernel_pmd = extend_brk(sizeof(pmd_t) * PTRS_PER_PMD, PAGE_SIZE); - max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->pt_base) + - xen_start_info->nr_pt_frames * PAGE_SIZE + - 512*1024); + max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list)); kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd); memcpy(initial_kernel_pmd, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD); --- linux-2.6.38.orig/arch/x86/xen/enlighten.c +++ linux-2.6.38/arch/x86/xen/enlighten.c @@ -358,6 +358,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; @@ -798,6 +816,7 @@ { cr4 &= ~X86_CR4_PGE; cr4 &= ~X86_CR4_PSE; + cr4 &= ~X86_CR4_OSXSAVE; native_write_cr4(cr4); } @@ -982,6 +1001,9 @@ .load_tr_desc = paravirt_nop, .set_ldt = xen_set_ldt, +#ifdef CONFIG_X86_32 + .load_user_cs_desc = xen_load_user_cs_desc, +#endif /*CONFIG_X86_32*/ .load_gdt = xen_load_gdt, .load_idt = xen_load_idt, .load_tls = xen_load_tls, --- linux-2.6.38.orig/arch/x86/vdso/vdso32-setup.c +++ linux-2.6.38/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.38.orig/arch/ia64/sn/pci/tioca_provider.c +++ linux-2.6.38/arch/ia64/sn/pci/tioca_provider.c @@ -509,7 +509,7 @@ * use the GART mapped mode. */ static u64 -tioca_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags) +tioca_dma_map(struct pci_dev *pdev, unsigned long paddr, size_t byte_count, int dma_flags) { u64 mapaddr; --- linux-2.6.38.orig/arch/ia64/kernel/mca.c +++ linux-2.6.38/arch/ia64/kernel/mca.c @@ -1859,7 +1859,8 @@ data = mca_bootmem(); first_time = 0; } else - data = __get_free_pages(GFP_KERNEL, get_order(sz)); + data = (void *)__get_free_pages(GFP_KERNEL, + get_order(sz)); if (!data) panic("Could not allocate MCA memory for cpu %d\n", cpu); --- linux-2.6.38.orig/block/blk-sysfs.c +++ linux-2.6.38/block/blk-sysfs.c @@ -152,7 +152,8 @@ static ssize_t queue_discard_max_show(struct request_queue *q, char *page) { - return queue_var_show(q->limits.max_discard_sectors << 9, page); + return sprintf(page, "%llu\n", + (unsigned long long)q->limits.max_discard_sectors << 9); } static ssize_t queue_discard_zeroes_data_show(struct request_queue *q, char *page) @@ -511,8 +512,10 @@ return ret; ret = kobject_add(&q->kobj, kobject_get(&dev->kobj), "%s", "queue"); - if (ret < 0) + if (ret < 0) { + blk_trace_remove_sysfs(dev); return ret; + } kobject_uevent(&q->kobj, KOBJ_ADD); --- linux-2.6.38.orig/block/genhd.c +++ linux-2.6.38/block/genhd.c @@ -1724,7 +1724,7 @@ { struct disk_events *ev; - if (!disk->fops->check_events || !(disk->events | disk->async_events)) + if (!disk->fops->check_events) return; ev = kzalloc(sizeof(*ev), GFP_KERNEL); --- linux-2.6.38.orig/block/blk.h +++ linux-2.6.38/block/blk.h @@ -68,7 +68,8 @@ return rq; } - if (!q->elevator->ops->elevator_dispatch_fn(q, 0)) + if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags) || + !q->elevator->ops->elevator_dispatch_fn(q, 0)) return NULL; } } --- linux-2.6.38.orig/block/blk-settings.c +++ linux-2.6.38/block/blk-settings.c @@ -120,7 +120,7 @@ lim->discard_granularity = 0; lim->discard_alignment = 0; lim->discard_misaligned = 0; - lim->discard_zeroes_data = -1; + lim->discard_zeroes_data = 1; lim->logical_block_size = lim->physical_block_size = lim->io_min = 512; lim->bounce_pfn = (unsigned long)(BLK_BOUNCE_ANY >> PAGE_SHIFT); lim->alignment_offset = 0; @@ -174,6 +174,7 @@ blk_set_default_limits(&q->limits); blk_queue_max_hw_sectors(q, BLK_SAFE_MAX_SECTORS); + q->limits.discard_zeroes_data = 0; /* * If the caller didn't supply a lock, fall back to our embedded --- linux-2.6.38.orig/scripts/checkpatch.pl +++ linux-2.6.38/scripts/checkpatch.pl @@ -2809,9 +2809,9 @@ WARN("consider using a completion\n" . $herecurr); } -# recommend strict_strto* over simple_strto* +# recommend kstrto* over simple_strto* if ($line =~ /\bsimple_(strto.*?)\s*\(/) { - WARN("consider using strict_$1 in preference to simple_$1\n" . $herecurr); + WARN("consider using kstrto* in preference to simple_$1\n" . $herecurr); } # check for __initcall(), use device_initcall() explicitly please if ($line =~ /^.\s*__initcall\s*\(/) { --- linux-2.6.38.orig/scripts/kconfig/conf.c +++ linux-2.6.38/scripts/kconfig/conf.c @@ -332,7 +332,7 @@ } if (!child) continue; - if (line[strlen(line) - 1] == '?') { + if (line[0] && line[strlen(line) - 1] == '?') { print_help(child); continue; } --- linux-2.6.38.orig/mm/huge_memory.c +++ linux-2.6.38/mm/huge_memory.c @@ -244,24 +244,28 @@ struct kobj_attribute *attr, char *buf, enum transparent_hugepage_flag flag) { - if (test_bit(flag, &transparent_hugepage_flags)) - return sprintf(buf, "[yes] no\n"); - else - return sprintf(buf, "yes [no]\n"); + return sprintf(buf, "%d\n", + !!test_bit(flag, &transparent_hugepage_flags)); } + static ssize_t single_flag_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count, enum transparent_hugepage_flag flag) { - if (!memcmp("yes", buf, - min(sizeof("yes")-1, count))) { + unsigned long value; + int ret; + + ret = kstrtoul(buf, 10, &value); + if (ret < 0) + return ret; + if (value > 1) + return -EINVAL; + + if (value) set_bit(flag, &transparent_hugepage_flags); - } else if (!memcmp("no", buf, - min(sizeof("no")-1, count))) { + else clear_bit(flag, &transparent_hugepage_flags); - } else - return -EINVAL; return count; } @@ -1396,6 +1400,9 @@ return ret; } +#define VM_NO_THP (VM_SPECIAL|VM_INSERTPAGE|VM_MIXEDMAP|VM_SAO| \ + VM_HUGETLB|VM_SHARED|VM_MAYSHARE) + int hugepage_madvise(struct vm_area_struct *vma, unsigned long *vm_flags, int advice) { @@ -1404,11 +1411,7 @@ /* * Be somewhat over-protective like KSM for now! */ - if (*vm_flags & (VM_HUGEPAGE | - VM_SHARED | VM_MAYSHARE | - VM_PFNMAP | VM_IO | VM_DONTEXPAND | - VM_RESERVED | VM_HUGETLB | VM_INSERTPAGE | - VM_MIXEDMAP | VM_SAO)) + if (*vm_flags & (VM_HUGEPAGE | VM_NO_THP)) return -EINVAL; *vm_flags &= ~VM_NOHUGEPAGE; *vm_flags |= VM_HUGEPAGE; @@ -1424,11 +1427,7 @@ /* * Be somewhat over-protective like KSM for now! */ - if (*vm_flags & (VM_NOHUGEPAGE | - VM_SHARED | VM_MAYSHARE | - VM_PFNMAP | VM_IO | VM_DONTEXPAND | - VM_RESERVED | VM_HUGETLB | VM_INSERTPAGE | - VM_MIXEDMAP | VM_SAO)) + if (*vm_flags & (VM_NOHUGEPAGE | VM_NO_THP)) return -EINVAL; *vm_flags &= ~VM_HUGEPAGE; *vm_flags |= VM_NOHUGEPAGE; @@ -1562,10 +1561,14 @@ * page fault if needed. */ return 0; - if (vma->vm_file || vma->vm_ops) + if (vma->vm_ops) /* khugepaged not yet working on file or special mappings */ return 0; - VM_BUG_ON(is_linear_pfn_mapping(vma) || is_pfn_mapping(vma)); + /* + * If is_pfn_mapping() is true is_learn_pfn_mapping() must be + * true too, verify it here. + */ + VM_BUG_ON(is_linear_pfn_mapping(vma) || vma->vm_flags & VM_NO_THP); hstart = (vma->vm_start + ~HPAGE_PMD_MASK) & HPAGE_PMD_MASK; hend = vma->vm_end & HPAGE_PMD_MASK; if (hstart < hend) @@ -1814,12 +1817,15 @@ (vma->vm_flags & VM_NOHUGEPAGE)) goto out; - /* VM_PFNMAP vmas may have vm_ops null but vm_file set */ - if (!vma->anon_vma || vma->vm_ops || vma->vm_file) + if (!vma->anon_vma || vma->vm_ops) goto out; if (is_vma_temporary_stack(vma)) goto out; - VM_BUG_ON(is_linear_pfn_mapping(vma) || is_pfn_mapping(vma)); + /* + * If is_pfn_mapping() is true is_learn_pfn_mapping() must be + * true too, verify it here. + */ + VM_BUG_ON(is_linear_pfn_mapping(vma) || vma->vm_flags & VM_NO_THP); pgd = pgd_offset(mm, address); if (!pgd_present(*pgd)) @@ -2052,13 +2058,16 @@ progress++; continue; } - /* VM_PFNMAP vmas may have vm_ops null but vm_file set */ - if (!vma->anon_vma || vma->vm_ops || vma->vm_file) + if (!vma->anon_vma || vma->vm_ops) goto skip; if (is_vma_temporary_stack(vma)) goto skip; - - VM_BUG_ON(is_linear_pfn_mapping(vma) || is_pfn_mapping(vma)); + /* + * If is_pfn_mapping() is true is_learn_pfn_mapping() + * must be true too, verify it here. + */ + VM_BUG_ON(is_linear_pfn_mapping(vma) || + vma->vm_flags & VM_NO_THP); hstart = (vma->vm_start + ~HPAGE_PMD_MASK) & HPAGE_PMD_MASK; hend = vma->vm_end & HPAGE_PMD_MASK; --- linux-2.6.38.orig/mm/readahead.c +++ linux-2.6.38/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.38.orig/mm/swapfile.c +++ linux-2.6.38/mm/swapfile.c @@ -594,6 +594,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; } @@ -2149,8 +2155,13 @@ p->flags = 0; spin_unlock(&swap_lock); vfree(swap_map); - if (swap_file) + if (swap_file) { + if (did_down) { + mutex_unlock(&inode->i_mutex); + did_down = 0; + } filp_close(swap_file, NULL); + } out: if (page && !IS_ERR(page)) { kunmap(page); @@ -2294,6 +2305,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.38.orig/mm/mprotect.c +++ linux-2.6.38/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) { @@ -148,7 +153,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; @@ -213,6 +218,9 @@ dirty_accountable = 1; } + if (oldflags & VM_EXEC) + arch_remove_exec_range(current->mm, old_end); + mmu_notifier_invalidate_range_start(mm, start, end); if (is_vm_hugetlb_page(vma)) hugetlb_change_protection(vma, start, end, vma->vm_page_prot); --- linux-2.6.38.orig/mm/slab.c +++ linux-2.6.38/mm/slab.c @@ -2288,8 +2288,8 @@ if (ralign < align) { ralign = align; } - /* disable debug if not aligning with REDZONE_ALIGN */ - if (ralign & (__alignof__(unsigned long long) - 1)) + /* disable debug if necessary */ + if (ralign > __alignof__(unsigned long long)) flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER); /* * 4) Store it. @@ -2315,8 +2315,8 @@ */ if (flags & SLAB_RED_ZONE) { /* add space for red zone words */ - cachep->obj_offset += align; - size += align + sizeof(unsigned long long); + cachep->obj_offset += sizeof(unsigned long long); + size += 2 * sizeof(unsigned long long); } if (flags & SLAB_STORE_USER) { /* user store requires one word storage behind the end of --- linux-2.6.38.orig/mm/kmemleak.c +++ linux-2.6.38/mm/kmemleak.c @@ -1414,9 +1414,12 @@ ++(*pos); list_for_each_continue_rcu(n, &object_list) { - next_obj = list_entry(n, struct kmemleak_object, object_list); - if (get_object(next_obj)) + struct kmemleak_object *obj = + list_entry(n, struct kmemleak_object, object_list); + if (get_object(obj)) { + next_obj = obj; break; + } } put_object(prev_obj); --- linux-2.6.38.orig/mm/shmem.c +++ linux-2.6.38/mm/shmem.c @@ -422,7 +422,8 @@ * a waste to allocate index if we cannot allocate data. */ if (sbinfo->max_blocks) { - if (percpu_counter_compare(&sbinfo->used_blocks, (sbinfo->max_blocks - 1)) > 0) + if (percpu_counter_compare(&sbinfo->used_blocks, + sbinfo->max_blocks - 1) >= 0) return ERR_PTR(-ENOSPC); percpu_counter_inc(&sbinfo->used_blocks); spin_lock(&inode->i_lock); @@ -852,7 +853,7 @@ static int shmem_unuse_inode(struct shmem_inode_info *info, swp_entry_t entry, struct page *page) { - struct inode *inode; + struct address_space *mapping; unsigned long idx; unsigned long size; unsigned long limit; @@ -875,8 +876,10 @@ if (size > SHMEM_NR_DIRECT) size = SHMEM_NR_DIRECT; offset = shmem_find_swp(entry, ptr, ptr+size); - if (offset >= 0) + if (offset >= 0) { + shmem_swp_balance_unmap(); goto found; + } if (!info->i_indirect) goto lost2; @@ -917,6 +920,7 @@ shmem_swp_unmap(ptr); if (offset >= 0) { shmem_dir_unmap(dir); + ptr = shmem_swp_map(subdir); goto found; } } @@ -928,8 +932,7 @@ return 0; found: idx += offset; - inode = igrab(&info->vfs_inode); - spin_unlock(&info->lock); + ptr += offset; /* * Move _head_ to start search for next from here. @@ -940,37 +943,18 @@ */ if (shmem_swaplist.next != &info->swaplist) list_move_tail(&shmem_swaplist, &info->swaplist); - mutex_unlock(&shmem_swaplist_mutex); - error = 1; - if (!inode) - goto out; /* - * Charge page using GFP_KERNEL while we can wait. - * Charged back to the user(not to caller) when swap account is used. - * add_to_page_cache() will be called with GFP_NOWAIT. + * We rely on shmem_swaplist_mutex, not only to protect the swaplist, + * but also to hold up shmem_evict_inode(): so inode cannot be freed + * beneath us (pagelock doesn't help until the page is in pagecache). */ - error = mem_cgroup_cache_charge(page, current->mm, GFP_KERNEL); - if (error) - goto out; - error = radix_tree_preload(GFP_KERNEL); - if (error) { - mem_cgroup_uncharge_cache_page(page); - goto out; - } - error = 1; - - spin_lock(&info->lock); - ptr = shmem_swp_entry(info, idx, NULL); - if (ptr && ptr->val == entry.val) { - error = add_to_page_cache_locked(page, inode->i_mapping, - idx, GFP_NOWAIT); - /* does mem_cgroup_uncharge_cache_page on error */ - } else /* we must compensate for our precharge above */ - mem_cgroup_uncharge_cache_page(page); + mapping = info->vfs_inode.i_mapping; + error = add_to_page_cache_locked(page, mapping, idx, GFP_NOWAIT); + /* which does mem_cgroup_uncharge_cache_page on error */ if (error == -EEXIST) { - struct page *filepage = find_get_page(inode->i_mapping, idx); + struct page *filepage = find_get_page(mapping, idx); error = 1; if (filepage) { /* @@ -990,14 +974,8 @@ swap_free(entry); error = 1; /* not an error, but entry was found */ } - if (ptr) - shmem_swp_unmap(ptr); + shmem_swp_unmap(ptr); spin_unlock(&info->lock); - radix_tree_preload_end(); -out: - unlock_page(page); - page_cache_release(page); - iput(inode); /* allows for NULL */ return error; } @@ -1009,6 +987,26 @@ struct list_head *p, *next; struct shmem_inode_info *info; int found = 0; + int error; + + /* + * Charge page using GFP_KERNEL while we can wait, before taking + * the shmem_swaplist_mutex which might hold up shmem_writepage(). + * Charged back to the user (not to caller) when swap account is used. + * add_to_page_cache() will be called with GFP_NOWAIT. + */ + error = mem_cgroup_cache_charge(page, current->mm, GFP_KERNEL); + if (error) + goto out; + /* + * Try to preload while we can wait, to not make a habit of + * draining atomic reserves; but don't latch on to this cpu, + * it's okay if sometimes we get rescheduled after this. + */ + error = radix_tree_preload(GFP_KERNEL); + if (error) + goto uncharge; + radix_tree_preload_end(); mutex_lock(&shmem_swaplist_mutex); list_for_each_safe(p, next, &shmem_swaplist) { @@ -1016,17 +1014,19 @@ found = shmem_unuse_inode(info, entry, page); cond_resched(); if (found) - goto out; + break; } mutex_unlock(&shmem_swaplist_mutex); - /* - * Can some race bring us here? We've been holding page lock, - * so I think not; but would rather try again later than BUG() - */ + +uncharge: + if (!found) + mem_cgroup_uncharge_cache_page(page); + if (found < 0) + error = found; +out: unlock_page(page); page_cache_release(page); -out: - return (found < 0) ? found : 0; + return error; } /* @@ -1064,7 +1064,25 @@ else swap.val = 0; + /* + * Add inode to shmem_unuse()'s list of swapped-out inodes, + * if it's not already there. Do it now because we cannot take + * mutex while holding spinlock, and must do so before the page + * is moved to swap cache, when its pagelock no longer protects + * the inode from eviction. But don't unlock the mutex until + * we've taken the spinlock, because shmem_unuse_inode() will + * prune a !swapped inode from the swaplist under both locks. + */ + if (swap.val) { + mutex_lock(&shmem_swaplist_mutex); + if (list_empty(&info->swaplist)) + list_add_tail(&info->swaplist, &shmem_swaplist); + } + spin_lock(&info->lock); + if (swap.val) + mutex_unlock(&shmem_swaplist_mutex); + if (index >= info->next_index) { BUG_ON(!(info->flags & SHMEM_TRUNCATE)); goto unlock; @@ -1084,22 +1102,11 @@ remove_from_page_cache(page); shmem_swp_set(info, entry, swap.val); shmem_swp_unmap(entry); - if (list_empty(&info->swaplist)) - inode = igrab(inode); - else - inode = NULL; - spin_unlock(&info->lock); swap_shmem_alloc(swap); + spin_unlock(&info->lock); BUG_ON(page_mapped(page)); page_cache_release(page); /* pagecache ref */ swap_writepage(page, wbc); - if (inode) { - mutex_lock(&shmem_swaplist_mutex); - /* move instead of add in case we're racing */ - list_move_tail(&info->swaplist, &shmem_swaplist); - mutex_unlock(&shmem_swaplist_mutex); - iput(inode); - } return 0; } @@ -1399,21 +1406,16 @@ shmem_swp_unmap(entry); sbinfo = SHMEM_SB(inode->i_sb); if (sbinfo->max_blocks) { - if ((percpu_counter_compare(&sbinfo->used_blocks, sbinfo->max_blocks) > 0) || - shmem_acct_block(info->flags)) { - spin_unlock(&info->lock); - error = -ENOSPC; - goto failed; - } + if (percpu_counter_compare(&sbinfo->used_blocks, + sbinfo->max_blocks) >= 0 || + shmem_acct_block(info->flags)) + goto nospace; percpu_counter_inc(&sbinfo->used_blocks); spin_lock(&inode->i_lock); inode->i_blocks += BLOCKS_PER_PAGE; spin_unlock(&inode->i_lock); - } else if (shmem_acct_block(info->flags)) { - spin_unlock(&info->lock); - error = -ENOSPC; - goto failed; - } + } else if (shmem_acct_block(info->flags)) + goto nospace; if (!filepage) { int ret; @@ -1493,6 +1495,24 @@ error = 0; goto out; +nospace: + /* + * Perhaps the page was brought in from swap between find_lock_page + * and taking info->lock? We allow for that at add_to_page_cache_lru, + * but must also avoid reporting a spurious ENOSPC while working on a + * full tmpfs. (When filepage has been passed in to shmem_getpage, it + * is already in page cache, which prevents this race from occurring.) + */ + if (!filepage) { + struct page *page = find_get_page(mapping, idx); + if (page) { + spin_unlock(&info->lock); + page_cache_release(page); + goto repeat; + } + } + spin_unlock(&info->lock); + error = -ENOSPC; failed: if (*pagep != filepage) { unlock_page(filepage); @@ -2791,5 +2811,6 @@ fput(vma->vm_file); vma->vm_file = file; vma->vm_ops = &shmem_vm_ops; + vma->vm_flags |= VM_CAN_NONLINEAR; return 0; } --- linux-2.6.38.orig/mm/oom_kill.c +++ linux-2.6.38/mm/oom_kill.c @@ -31,6 +31,7 @@ #include #include #include +#include int sysctl_panic_on_oom; int sysctl_oom_kill_allocating_task; @@ -83,24 +84,6 @@ #endif /* CONFIG_NUMA */ /* - * If this is a system OOM (not a memcg OOM) and the task selected to be - * killed is not already running at high (RT) priorities, speed up the - * recovery by boosting the dying task to the lowest FIFO priority. - * That helps with the recovery and avoids interfering with RT tasks. - */ -static void boost_dying_task_prio(struct task_struct *p, - struct mem_cgroup *mem) -{ - struct sched_param param = { .sched_priority = 1 }; - - if (mem) - return; - - if (!rt_task(p)) - sched_setscheduler_nocheck(p, SCHED_FIFO, ¶m); -} - -/* * The process p may have detached its own ->mm while exiting or through * use_mm(), but one or more of its subthreads may still have a valid * pointer. Return p, or any of its subthreads with a valid ->mm, with @@ -189,10 +172,13 @@ /* * The baseline for the badness score is the proportion of RAM that each - * task's rss and swap space use. + * task's rss, pagetable and swap space use. */ - points = (get_mm_rss(p->mm) + get_mm_counter(p->mm, MM_SWAPENTS)) * 1000 / - totalpages; + points = get_mm_rss(p->mm) + p->mm->nr_ptes; + points += get_mm_counter(p->mm, MM_SWAPENTS); + + points *= 1000; + points /= totalpages; task_unlock(p); /* @@ -292,13 +278,15 @@ unsigned long totalpages, struct mem_cgroup *mem, const nodemask_t *nodemask) { - struct task_struct *p; + struct task_struct *g, *p; struct task_struct *chosen = NULL; *ppoints = 0; - for_each_process(p) { + do_each_thread(g, p) { unsigned int points; + if (!p->mm) + continue; if (oom_unkillable_task(p, mem, nodemask)) continue; @@ -314,22 +302,29 @@ if (test_tsk_thread_flag(p, TIF_MEMDIE)) return ERR_PTR(-1UL); - /* - * This is in the process of releasing memory so wait for it - * to finish before killing some other task by mistake. - * - * However, if p is the current task, we allow the 'kill' to - * go ahead if it is exiting: this will simply set TIF_MEMDIE, - * which will allow it to gain access to memory reserves in - * the process of exiting and releasing its resources. - * Otherwise we could get an easy OOM deadlock. - */ - if (thread_group_empty(p) && (p->flags & PF_EXITING) && p->mm) { - if (p != current) - return ERR_PTR(-1UL); - - chosen = p; - *ppoints = 1000; + if (p->flags & PF_EXITING) { + /* + * If p is the current task and is in the process of + * releasing memory, we allow the "kill" to set + * TIF_MEMDIE, which will allow it to gain access to + * memory reserves. Otherwise, it may stall forever. + * + * The loop isn't broken here, however, in case other + * threads are found to have already been oom killed. + */ + if (p == current) { + chosen = p; + *ppoints = 1000; + } else { + /* + * If this task is not being ptraced on exit, + * then wait for it to finish before killing + * some other task unnecessarily. + */ + if (!(task_ptrace(p->group_leader) & + PT_TRACE_EXIT)) + return ERR_PTR(-1UL); + } } points = oom_badness(p, mem, nodemask, totalpages); @@ -337,7 +332,7 @@ chosen = p; *ppoints = points; } - } + } while_each_thread(g, p); return chosen; } @@ -442,13 +437,6 @@ set_tsk_thread_flag(p, TIF_MEMDIE); force_sig(SIGKILL, p); - /* - * We give our sacrificial lamb high priority and access to - * all the memory it needs. That way it should be able to - * exit() and clear out its resources quickly... - */ - boost_dying_task_prio(p, mem); - return 0; } #undef K @@ -472,7 +460,6 @@ */ if (p->flags & PF_EXITING) { set_tsk_thread_flag(p, TIF_MEMDIE); - boost_dying_task_prio(p, mem); return 0; } @@ -491,6 +478,8 @@ list_for_each_entry(child, &t->children, sibling) { unsigned int child_points; + if (child->mm == p->mm) + continue; /* * oom_badness() returns 0 if the thread is unkillable */ @@ -689,7 +678,6 @@ */ if (fatal_signal_pending(current)) { set_thread_flag(TIF_MEMDIE); - boost_dying_task_prio(current, NULL); return; } --- linux-2.6.38.orig/mm/mincore.c +++ linux-2.6.38/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.38.orig/mm/mlock.c +++ linux-2.6.38/mm/mlock.c @@ -135,13 +135,6 @@ } } -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 @@ -169,7 +162,7 @@ VM_BUG_ON(end > vma->vm_end); VM_BUG_ON(!rwsem_is_locked(&mm->mmap_sem)); - gup_flags = FOLL_TOUCH; + gup_flags = FOLL_TOUCH | FOLL_MLOCK; /* * We want to touch writable mappings with a write fault in order * to break COW, except for shared mappings because these don't COW @@ -185,15 +178,6 @@ if (vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)) gup_flags |= FOLL_FORCE; - if (vma->vm_flags & VM_LOCKED) - gup_flags |= FOLL_MLOCK; - - /* We don't try to access the guard page of a stack vma */ - if (stack_guard_page(vma, start)) { - addr += PAGE_SIZE; - nr_pages--; - } - return __get_user_pages(current, mm, addr, nr_pages, gup_flags, NULL, NULL, nonblocking); } --- linux-2.6.38.orig/mm/memory.c +++ linux-2.6.38/mm/memory.c @@ -1359,7 +1359,7 @@ */ mark_page_accessed(page); } - if (flags & FOLL_MLOCK) { + if ((flags & FOLL_MLOCK) && (vma->vm_flags & VM_LOCKED)) { /* * The preliminary mapping check is mainly to avoid the * pointless overhead of lock_page on the ZERO_PAGE @@ -1410,6 +1410,12 @@ return page; } +static inline int stack_guard_page(struct vm_area_struct *vma, unsigned long addr) +{ + return stack_guard_page_start(vma, addr) || + stack_guard_page_end(vma, addr+PAGE_SIZE); +} + int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long start, int nr_pages, unsigned int gup_flags, struct page **pages, struct vm_area_struct **vmas, @@ -1439,7 +1445,6 @@ vma = find_extend_vma(mm, start); if (!vma && in_gate_area(tsk, start)) { unsigned long pg = start & PAGE_MASK; - struct vm_area_struct *gate_vma = get_gate_vma(tsk); pgd_t *pgd; pud_t *pud; pmd_t *pmd; @@ -1464,10 +1469,11 @@ pte_unmap(pte); return i ? : -EFAULT; } + vma = get_gate_vma(tsk); if (pages) { struct page *page; - page = vm_normal_page(gate_vma, start, *pte); + page = vm_normal_page(vma, start, *pte); if (!page) { if (!(gup_flags & FOLL_DUMP) && is_zero_pfn(pte_pfn(*pte))) @@ -1481,12 +1487,7 @@ get_page(page); } pte_unmap(pte); - if (vmas) - vmas[i] = gate_vma; - i++; - start += PAGE_SIZE; - nr_pages--; - continue; + goto next_page; } if (!vma || @@ -1516,6 +1517,11 @@ int ret; unsigned int fault_flags = 0; + /* For mlock, just skip the stack guard page. */ + if (foll_flags & FOLL_MLOCK) { + if (stack_guard_page(vma, start)) + goto next_page; + } if (foll_flags & FOLL_WRITE) fault_flags |= FAULT_FLAG_WRITE; if (nonblocking) @@ -1569,6 +1575,7 @@ flush_anon_page(vma, page, start); flush_dcache_page(page); } +next_page: if (vmas) vmas[i] = vma; i++; @@ -3030,10 +3037,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; @@ -3322,7 +3334,7 @@ * run pte_offset_map on the pmd, if an huge pmd could * materialize from under us from a different thread. */ - if (unlikely(__pte_alloc(mm, vma, pmd, address))) + if (unlikely(pmd_none(*pmd)) && __pte_alloc(mm, vma, pmd, address)) return VM_FAULT_OOM; /* if an huge pmd materialized from under us just retry later */ if (unlikely(pmd_trans_huge(*pmd))) --- linux-2.6.38.orig/mm/page_alloc.c +++ linux-2.6.38/mm/page_alloc.c @@ -286,7 +286,7 @@ /* Don't complain about poisoned pages */ if (PageHWPoison(page)) { - __ClearPageBuddy(page); + reset_page_mapcount(page); /* remove PageBuddy */ return; } @@ -317,7 +317,7 @@ dump_stack(); out: /* Leave bad fields for debug, except PageBuddy could make trouble */ - __ClearPageBuddy(page); + reset_page_mapcount(page); /* remove PageBuddy */ add_taint(TAINT_BAD_PAGE); } @@ -2044,6 +2044,7 @@ first_zones_zonelist(zonelist, high_zoneidx, NULL, &preferred_zone); +rebalance: /* This is the last chance, in general, before the goto nopage. */ page = get_page_from_freelist(gfp_mask, nodemask, order, zonelist, high_zoneidx, alloc_flags & ~ALLOC_NO_WATERMARKS, @@ -2051,7 +2052,6 @@ if (page) goto got_pg; -rebalance: /* Allocate without watermarks if the context allows */ if (alloc_flags & ALLOC_NO_WATERMARKS) { page = __alloc_pages_high_priority(gfp_mask, order, @@ -3498,7 +3498,7 @@ if (!slab_is_available()) { zone->wait_table = (wait_queue_head_t *) - alloc_bootmem_node(pgdat, alloc_size); + alloc_bootmem_node_nopanic(pgdat, alloc_size); } else { /* * This case means that a zone whose size was 0 gets new memory @@ -4071,7 +4071,8 @@ unsigned long usemapsize = usemap_size(zonesize); zone->pageblock_flags = NULL; if (usemapsize) - zone->pageblock_flags = alloc_bootmem_node(pgdat, usemapsize); + zone->pageblock_flags = alloc_bootmem_node_nopanic(pgdat, + usemapsize); } #else static inline void setup_usemap(struct pglist_data *pgdat, @@ -4237,7 +4238,7 @@ size = (end - start) * sizeof(struct page); map = alloc_remap(pgdat->node_id, size); if (!map) - map = alloc_bootmem_node(pgdat, size); + map = alloc_bootmem_node_nopanic(pgdat, size); pgdat->node_mem_map = map + (pgdat->node_start_pfn - start); } #ifndef CONFIG_NEED_MULTIPLE_NODES --- linux-2.6.38.orig/mm/backing-dev.c +++ linux-2.6.38/mm/backing-dev.c @@ -604,7 +604,7 @@ spin_lock(&sb_lock); list_for_each_entry(sb, &super_blocks, s_list) { if (sb->s_bdi == bdi) - sb->s_bdi = NULL; + sb->s_bdi = &default_backing_dev_info; } spin_unlock(&sb_lock); } --- linux-2.6.38.orig/mm/filemap.c +++ linux-2.6.38/mm/filemap.c @@ -1211,6 +1211,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.38.orig/mm/compaction.c +++ linux-2.6.38/mm/compaction.c @@ -42,8 +42,6 @@ unsigned int order; /* order a direct compactor needs */ int migratetype; /* MOVABLE, RECLAIMABLE etc */ struct zone *zone; - - int compact_mode; }; static unsigned long release_freepages(struct list_head *freelist) @@ -397,10 +395,7 @@ return COMPACT_COMPLETE; /* Compaction run is not finished if the watermark is not met */ - if (cc->compact_mode != COMPACT_MODE_KSWAPD) - watermark = low_wmark_pages(zone); - else - watermark = high_wmark_pages(zone); + watermark = low_wmark_pages(zone); watermark += (1 << cc->order); if (!zone_watermark_ok(zone, cc->order, watermark, 0, 0)) @@ -413,15 +408,6 @@ if (cc->order == -1) return COMPACT_CONTINUE; - /* - * Generating only one page of the right order is not enough - * for kswapd, we must continue until we're above the high - * watermark as a pool for high order GFP_ATOMIC allocations - * too. - */ - if (cc->compact_mode == COMPACT_MODE_KSWAPD) - return COMPACT_CONTINUE; - /* Direct compactor: Is a suitable page free? */ for (order = cc->order; order < MAX_ORDER; order++) { /* Job done if page is free of the right migratetype */ @@ -543,8 +529,7 @@ unsigned long compact_zone_order(struct zone *zone, int order, gfp_t gfp_mask, - bool sync, - int compact_mode) + bool sync) { struct compact_control cc = { .nr_freepages = 0, @@ -553,7 +538,6 @@ .migratetype = allocflags_to_migratetype(gfp_mask), .zone = zone, .sync = sync, - .compact_mode = compact_mode, }; INIT_LIST_HEAD(&cc.freepages); INIT_LIST_HEAD(&cc.migratepages); @@ -599,8 +583,7 @@ nodemask) { int status; - status = compact_zone_order(zone, order, gfp_mask, sync, - COMPACT_MODE_DIRECT_RECLAIM); + status = compact_zone_order(zone, order, gfp_mask, sync); rc = max(status, rc); /* If a normal allocation would succeed, stop compacting */ @@ -631,7 +614,6 @@ .nr_freepages = 0, .nr_migratepages = 0, .order = -1, - .compact_mode = COMPACT_MODE_DIRECT_RECLAIM, }; zone = &pgdat->node_zones[zoneid]; --- linux-2.6.38.orig/mm/mmap.c +++ linux-2.6.38/mm/mmap.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -46,6 +47,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); @@ -259,7 +272,7 @@ * randomize_va_space to 2, which will still cause mm->start_brk * to be arbitrarily shifted */ - if (mm->start_brk > PAGE_ALIGN(mm->end_data)) + if (current->brk_randomized) min_brk = mm->start_brk; else min_brk = mm->end_data; @@ -400,6 +413,9 @@ { struct vm_area_struct *next; + if (vma->vm_flags & VM_EXEC) + arch_add_exec_range(mm, vma->vm_end); + vma->vm_prev = prev; if (prev) { next = prev->vm_next; @@ -507,6 +523,8 @@ 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); } /* @@ -824,6 +842,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; khugepaged_enter_vma_merge(prev); @@ -1018,7 +1038,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; @@ -1571,8 +1592,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); @@ -1585,7 +1606,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); @@ -1599,8 +1624,83 @@ return arch_rebalance_pgtables(addr, len); } +EXPORT_SYMBOL(get_unmapped_area_prot); + +static bool should_randomize(void) +{ + return (current->flags & PF_RANDOMIZE) && + !(current->personality & ADDR_NO_RANDOMIZE); +} + +#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 = !should_randomize() ? SHLIB_BASE : + randomize_range(SHLIB_BASE, 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 (addr >= 0x01000000 && should_randomize()) { + 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) @@ -1767,10 +1867,13 @@ size = address - vma->vm_start; grow = (address - vma->vm_end) >> PAGE_SHIFT; - error = acct_stack_growth(vma, size, grow); - if (!error) { - vma->vm_end = address; - perf_event_mmap(vma); + error = -ENOMEM; + if (vma->vm_pgoff + (size >> PAGE_SHIFT) >= vma->vm_pgoff) { + error = acct_stack_growth(vma, size, grow); + if (!error) { + vma->vm_end = address; + perf_event_mmap(vma); + } } } vma_unlock_anon_vma(vma); @@ -1814,11 +1917,14 @@ size = vma->vm_end - address; grow = (vma->vm_start - address) >> PAGE_SHIFT; - error = acct_stack_growth(vma, size, grow); - if (!error) { - vma->vm_start = address; - vma->vm_pgoff -= grow; - perf_event_mmap(vma); + error = -ENOMEM; + if (grow <= vma->vm_pgoff) { + error = acct_stack_growth(vma, size, grow); + if (!error) { + vma->vm_start = address; + vma->vm_pgoff -= grow; + perf_event_mmap(vma); + } } } vma_unlock_anon_vma(vma); @@ -2008,10 +2114,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. */ @@ -2298,6 +2408,7 @@ free_pgtables(tlb, vma, FIRST_USER_ADDRESS, 0); tlb_finish_mmu(tlb, 0, end); + arch_flush_exec_range(mm); /* * Walk the list again, actually closing and freeing it, --- linux-2.6.38.orig/mm/mremap.c +++ linux-2.6.38/mm/mremap.c @@ -277,9 +277,16 @@ if (old_len > vma->vm_end - addr) goto Efault; - if (vma->vm_flags & (VM_DONTEXPAND | VM_PFNMAP)) { - if (new_len > old_len) + /* Need to be careful about a growing mapping */ + if (new_len > old_len) { + unsigned long pgoff; + + if (vma->vm_flags & (VM_DONTEXPAND | VM_PFNMAP)) goto Efault; + pgoff = (addr - vma->vm_start) >> PAGE_SHIFT; + pgoff += vma->vm_pgoff; + if (pgoff + (new_len >> PAGE_SHIFT) < pgoff) + goto Einval; } if (vma->vm_flags & VM_LOCKED) { @@ -488,10 +495,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.38.orig/mm/vmscan.c +++ linux-2.6.38/mm/vmscan.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -229,8 +230,11 @@ if (scanned == 0) scanned = SWAP_CLUSTER_MAX; - if (!down_read_trylock(&shrinker_rwsem)) - return 1; /* Assume we'll be able to shrink next time */ + if (!down_read_trylock(&shrinker_rwsem)) { + /* Assume we'll be able to shrink next time */ + ret = 1; + goto out; + } list_for_each_entry(shrinker, &shrinker_list, list) { unsigned long long delta; @@ -281,6 +285,8 @@ shrinker->nr += total_scan; } up_read(&shrinker_rwsem); +out: + cond_resched(); return ret; } @@ -1988,17 +1994,12 @@ 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. - */ +/* All zones in zonelist are unreclaimable? */ 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) { @@ -2006,13 +2007,11 @@ continue; if (!cpuset_zone_allowed_hardwall(zone, GFP_KERNEL)) continue; - if (zone_reclaimable(zone)) { - all_unreclaimable = false; - break; - } + if (!zone->all_unreclaimable) + return false; } - return all_unreclaimable; + return true; } /* @@ -2108,6 +2107,14 @@ if (sc->nr_reclaimed) return sc->nr_reclaimed; + /* + * As hibernation is going on, kswapd is freezed so that it can't mark + * the zone into all_unreclaimable. Thus bypassing all_unreclaimable + * check. + */ + if (oom_killer_disabled) + return 0; + /* top priority shrink_zones still had more to do? don't OOM, then */ if (scanning_global_lru(sc) && !all_unreclaimable(zonelist, sc)) return 1; @@ -2238,7 +2245,8 @@ for (i = 0; i <= classzone_idx; i++) present_pages += pgdat->node_zones[i].present_pages; - return balanced_pages > (present_pages >> 2); + /* A special case here: if zone has no page, we think it's balanced */ + return balanced_pages >= (present_pages >> 2); } /* is kswapd sleeping prematurely? */ @@ -2254,7 +2262,7 @@ return true; /* Check the watermark levels */ - for (i = 0; i < pgdat->nr_zones; i++) { + for (i = 0; i <= classzone_idx; i++) { struct zone *zone = pgdat->node_zones + i; if (!populated_zone(zone)) @@ -2272,7 +2280,7 @@ } if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone), - classzone_idx, 0)) + i, 0)) all_zones_ok = false; else balanced += zone->present_pages; @@ -2284,7 +2292,7 @@ * must be balanced */ if (order) - return pgdat_balanced(pgdat, balanced, classzone_idx); + return !pgdat_balanced(pgdat, balanced, classzone_idx); else return !all_zones_ok; } @@ -2374,7 +2382,6 @@ if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone), 0, 0)) { end_zone = i; - *classzone_idx = i; break; } } @@ -2397,9 +2404,9 @@ * cause too much scanning of the lower zones. */ for (i = 0; i <= end_zone; i++) { - int compaction; struct zone *zone = pgdat->node_zones + i; int nr_slab; + unsigned long balance_gap; if (!populated_zone(zone)) continue; @@ -2416,38 +2423,32 @@ mem_cgroup_soft_limit_reclaim(zone, order, sc.gfp_mask); /* - * We put equal pressure on every zone, unless one - * zone has way too many pages free already. + * We put equal pressure on every zone, unless + * one zone has way too many pages free + * already. The "too many pages" is defined + * as the high wmark plus a "gap" where the + * gap is either the low watermark or 1% + * of the zone, whichever is smaller. */ + balance_gap = min(low_wmark_pages(zone), + (zone->present_pages + + KSWAPD_ZONE_BALANCE_GAP_RATIO-1) / + KSWAPD_ZONE_BALANCE_GAP_RATIO); if (!zone_watermark_ok_safe(zone, order, - 8*high_wmark_pages(zone), end_zone, 0)) + high_wmark_pages(zone) + balance_gap, + end_zone, 0)) { shrink_zone(priority, zone, &sc); - reclaim_state->reclaimed_slab = 0; - nr_slab = shrink_slab(sc.nr_scanned, GFP_KERNEL, - lru_pages); - sc.nr_reclaimed += reclaim_state->reclaimed_slab; - total_scanned += sc.nr_scanned; - - compaction = 0; - if (order && - zone_watermark_ok(zone, 0, - high_wmark_pages(zone), - end_zone, 0) && - !zone_watermark_ok(zone, order, - high_wmark_pages(zone), - end_zone, 0)) { - compact_zone_order(zone, - order, - sc.gfp_mask, false, - COMPACT_MODE_KSWAPD); - compaction = 1; + + reclaim_state->reclaimed_slab = 0; + nr_slab = shrink_slab(sc.nr_scanned, GFP_KERNEL, + lru_pages); + sc.nr_reclaimed += reclaim_state->reclaimed_slab; + total_scanned += sc.nr_scanned; + + if (nr_slab == 0 && !zone_reclaimable(zone)) + zone->all_unreclaimable = 1; } - if (zone->all_unreclaimable) - continue; - if (!compaction && nr_slab == 0 && - !zone_reclaimable(zone)) - zone->all_unreclaimable = 1; /* * If we've done a decent amount of scanning and * the reclaim ratio is low, start doing writepage @@ -2457,6 +2458,12 @@ total_scanned > sc.nr_reclaimed + sc.nr_reclaimed / 2) sc.may_writepage = 1; + if (zone->all_unreclaimable) { + if (end_zone && end_zone == i) + end_zone--; + continue; + } + if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone), end_zone, 0)) { all_zones_ok = 0; @@ -2635,8 +2642,8 @@ */ static int kswapd(void *p) { - unsigned long order; - int classzone_idx; + unsigned long order, new_order; + int classzone_idx, new_classzone_idx; pg_data_t *pgdat = (pg_data_t*)p; struct task_struct *tsk = current; @@ -2666,17 +2673,23 @@ tsk->flags |= PF_MEMALLOC | PF_SWAPWRITE | PF_KSWAPD; set_freezable(); - order = 0; - classzone_idx = MAX_NR_ZONES - 1; + order = new_order = 0; + classzone_idx = new_classzone_idx = pgdat->nr_zones - 1; for ( ; ; ) { - unsigned long new_order; - int new_classzone_idx; int ret; - new_order = pgdat->kswapd_max_order; - new_classzone_idx = pgdat->classzone_idx; - pgdat->kswapd_max_order = 0; - pgdat->classzone_idx = MAX_NR_ZONES - 1; + /* + * If the last balance_pgdat was unsuccessful it's unlikely a + * new request of a similar or harder type will succeed soon + * so consider going to sleep on the basis we reclaimed at + */ + if (classzone_idx >= new_classzone_idx && order == new_order) { + new_order = pgdat->kswapd_max_order; + new_classzone_idx = pgdat->classzone_idx; + pgdat->kswapd_max_order = 0; + pgdat->classzone_idx = pgdat->nr_zones - 1; + } + if (order < new_order || classzone_idx > new_classzone_idx) { /* * Don't sleep if someone wants a larger 'order' @@ -2689,7 +2702,7 @@ order = pgdat->kswapd_max_order; classzone_idx = pgdat->classzone_idx; pgdat->kswapd_max_order = 0; - pgdat->classzone_idx = MAX_NR_ZONES - 1; + pgdat->classzone_idx = pgdat->nr_zones - 1; } ret = try_to_freeze(); --- linux-2.6.38.orig/kernel/module.c +++ linux-2.6.38/kernel/module.c @@ -1168,7 +1168,7 @@ { struct module_sect_attr *sattr = container_of(mattr, struct module_sect_attr, mattr); - return sprintf(buf, "0x%lx\n", sattr->address); + return sprintf(buf, "0x%pK\n", (void *)sattr->address); } static void free_sect_attrs(struct module_sect_attrs *sect_attrs) @@ -3224,7 +3224,7 @@ mod->state == MODULE_STATE_COMING ? "Loading": "Live"); /* Used by oprofile and other similar tools. */ - seq_printf(m, " 0x%p", mod->module_core); + seq_printf(m, " 0x%pK", mod->module_core); /* Taints info */ if (mod->taints) --- linux-2.6.38.orig/kernel/signal.c +++ linux-2.6.38/kernel/signal.c @@ -2421,9 +2421,13 @@ return -EFAULT; /* Not even root can pretend to send signals from the kernel. - Nor can they impersonate a kill(), which adds source info. */ - if (info.si_code >= 0) + * Nor can they impersonate a kill()/tgkill(), which adds source info. + */ + if (info.si_code >= 0 || info.si_code == SI_TKILL) { + /* We used to allow any < 0 si_code */ + WARN_ON_ONCE(info.si_code < 0); return -EPERM; + } info.si_signo = sig; /* POSIX.1b doesn't mention process groups. */ @@ -2437,9 +2441,13 @@ return -EINVAL; /* Not even root can pretend to send signals from the kernel. - Nor can they impersonate a kill(), which adds source info. */ - if (info->si_code >= 0) + * Nor can they impersonate a kill()/tgkill(), which adds source info. + */ + if (info->si_code >= 0 || info->si_code == SI_TKILL) { + /* We used to allow any < 0 si_code */ + WARN_ON_ONCE(info->si_code < 0); return -EPERM; + } info->si_signo = sig; return do_send_specific(tgid, pid, sig, info); --- linux-2.6.38.orig/kernel/sched_fair.c +++ linux-2.6.38/kernel/sched_fair.c @@ -2043,21 +2043,20 @@ enum cpu_idle_type idle, int *all_pinned, int *this_best_prio, struct cfs_rq *busiest_cfs_rq) { - int loops = 0, pulled = 0, pinned = 0; + int loops = 0, pulled = 0; long rem_load_move = max_load_move; struct task_struct *p, *n; if (max_load_move == 0) goto out; - pinned = 1; - list_for_each_entry_safe(p, n, &busiest_cfs_rq->tasks, se.group_node) { if (loops++ > sysctl_sched_nr_migrate) break; if ((p->se.load.weight >> 1) > rem_load_move || - !can_migrate_task(p, busiest, this_cpu, sd, idle, &pinned)) + !can_migrate_task(p, busiest, this_cpu, sd, idle, + all_pinned)) continue; pull_task(busiest, p, this_rq, this_cpu); @@ -2092,9 +2091,6 @@ */ schedstat_add(sd, lb_gained[idle], pulled); - if (all_pinned) - *all_pinned = pinned; - return max_load_move - rem_load_move; } @@ -3297,6 +3293,7 @@ * still unbalanced. ld_moved simply stays zero, so it is * correctly treated as an imbalance. */ + all_pinned = 1; local_irq_save(flags); double_rq_lock(this_rq, busiest); ld_moved = move_tasks(this_rq, this_cpu, busiest, --- linux-2.6.38.orig/kernel/pm_qos_params.c +++ linux-2.6.38/kernel/pm_qos_params.c @@ -53,11 +53,17 @@ PM_QOS_MIN /* return the smallest value */ }; +/* + * Note: The lockless read path depends on the CPU accessing + * target_value atomically. Atomic access is only guaranteed on all CPU + * types linux supports for 32 bit quantites + */ struct pm_qos_object { struct plist_head requests; struct blocking_notifier_head *notifiers; struct miscdevice pm_qos_power_miscdev; char *name; + s32 target_value; /* Do not change to 64 bit */ s32 default_value; enum pm_qos_type type; }; @@ -70,7 +76,8 @@ .requests = PLIST_HEAD_INIT(cpu_dma_pm_qos.requests, pm_qos_lock), .notifiers = &cpu_dma_lat_notifier, .name = "cpu_dma_latency", - .default_value = 2000 * USEC_PER_SEC, + .target_value = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE, + .default_value = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE, .type = PM_QOS_MIN, }; @@ -79,7 +86,8 @@ .requests = PLIST_HEAD_INIT(network_lat_pm_qos.requests, pm_qos_lock), .notifiers = &network_lat_notifier, .name = "network_latency", - .default_value = 2000 * USEC_PER_SEC, + .target_value = PM_QOS_NETWORK_LAT_DEFAULT_VALUE, + .default_value = PM_QOS_NETWORK_LAT_DEFAULT_VALUE, .type = PM_QOS_MIN }; @@ -89,7 +97,8 @@ .requests = PLIST_HEAD_INIT(network_throughput_pm_qos.requests, pm_qos_lock), .notifiers = &network_throughput_notifier, .name = "network_throughput", - .default_value = 0, + .target_value = PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE, + .default_value = PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE, .type = PM_QOS_MAX, }; @@ -132,6 +141,16 @@ } } +static inline s32 pm_qos_read_value(struct pm_qos_object *o) +{ + return o->target_value; +} + +static inline void pm_qos_set_value(struct pm_qos_object *o, s32 value) +{ + o->target_value = value; +} + static void update_target(struct pm_qos_object *o, struct plist_node *node, int del, int value) { @@ -156,6 +175,7 @@ plist_add(node, &o->requests); } curr_value = pm_qos_get_value(o); + pm_qos_set_value(o, curr_value); spin_unlock_irqrestore(&pm_qos_lock, flags); if (prev_value != curr_value) @@ -190,18 +210,11 @@ * pm_qos_request - returns current system wide qos expectation * @pm_qos_class: identification of which qos value is requested * - * This function returns the current target value in an atomic manner. + * This function returns the current target value. */ int pm_qos_request(int pm_qos_class) { - unsigned long flags; - int value; - - spin_lock_irqsave(&pm_qos_lock, flags); - value = pm_qos_get_value(pm_qos_array[pm_qos_class]); - spin_unlock_irqrestore(&pm_qos_lock, flags); - - return value; + return pm_qos_read_value(pm_qos_array[pm_qos_class]); } EXPORT_SYMBOL_GPL(pm_qos_request); --- linux-2.6.38.orig/kernel/fork.c +++ linux-2.6.38/kernel/fork.c @@ -186,6 +186,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); --- linux-2.6.38.orig/kernel/cgroup.c +++ linux-2.6.38/kernel/cgroup.c @@ -1813,10 +1813,8 @@ /* Update the css_set linked lists if we're using them */ write_lock(&css_set_lock); - if (!list_empty(&tsk->cg_list)) { - list_del(&tsk->cg_list); - list_add(&tsk->cg_list, &newcg->tasks); - } + if (!list_empty(&tsk->cg_list)) + list_move(&tsk->cg_list, &newcg->tasks); write_unlock(&css_set_lock); for_each_subsys(root, ss) { @@ -3655,12 +3653,12 @@ spin_lock(&release_list_lock); set_bit(CGRP_REMOVED, &cgrp->flags); if (!list_empty(&cgrp->release_list)) - list_del(&cgrp->release_list); + list_del_init(&cgrp->release_list); spin_unlock(&release_list_lock); cgroup_lock_hierarchy(cgrp->root); /* delete this cgroup from parent->children */ - list_del(&cgrp->sibling); + list_del_init(&cgrp->sibling); cgroup_unlock_hierarchy(cgrp->root); d = dget(cgrp->dentry); @@ -3879,7 +3877,7 @@ subsys[ss->subsys_id] = NULL; /* remove subsystem from rootnode's list of subsystems */ - list_del(&ss->sibling); + list_del_init(&ss->sibling); /* * disentangle the css from all css_sets attached to the dummytop. as @@ -4253,7 +4251,7 @@ if (!list_empty(&tsk->cg_list)) { write_lock(&css_set_lock); if (!list_empty(&tsk->cg_list)) - list_del(&tsk->cg_list); + list_del_init(&tsk->cg_list); write_unlock(&css_set_lock); } --- linux-2.6.38.orig/kernel/workqueue.c +++ linux-2.6.38/kernel/workqueue.c @@ -1283,8 +1283,14 @@ return true; spin_unlock_irq(&gcwq->lock); - /* CPU has come up inbetween, retry migration */ + /* + * We've raced with CPU hot[un]plug. Give it a breather + * and retry migration. cond_resched() is required here; + * otherwise, we might deadlock against cpu_stop trying to + * bring down the CPU on non-preemptive kernel. + */ cpu_relax(); + cond_resched(); } } --- linux-2.6.38.orig/kernel/timer.c +++ linux-2.6.38/kernel/timer.c @@ -41,6 +41,7 @@ #include #include +#include #include #include #include @@ -54,6 +55,14 @@ EXPORT_SYMBOL(jiffies_64); +#ifdef CONFIG_X86 +#if defined(__LITTLE_ENDIAN) || (BITS_PER_LONG >= 64) +asm(".global jiffies; jiffies = jiffies_64"); +#else +asm(".global jiffies; jiffies = jiffies_64 + 4"); +#endif +#endif + /* * per-CPU timer vector definitions: */ --- linux-2.6.38.orig/kernel/futex.c +++ linux-2.6.38/kernel/futex.c @@ -1886,7 +1886,7 @@ restart->futex.val = val; restart->futex.time = abs_time->tv64; restart->futex.bitset = bitset; - restart->futex.flags = flags; + restart->futex.flags = flags | FLAGS_HAS_TIMEOUT; ret = -ERESTART_RESTARTBLOCK; --- linux-2.6.38.orig/kernel/pid.c +++ linux-2.6.38/kernel/pid.c @@ -217,11 +217,14 @@ return -1; } -int next_pidmap(struct pid_namespace *pid_ns, int last) +int next_pidmap(struct pid_namespace *pid_ns, unsigned int last) { int offset; struct pidmap *map, *end; + if (last >= PID_MAX_LIMIT) + return -1; + offset = (last + 1) & BITS_PER_PAGE_MASK; map = &pid_ns->pidmap[(last + 1)/BITS_PER_PAGE]; end = &pid_ns->pidmap[PIDMAP_ENTRIES]; --- linux-2.6.38.orig/kernel/smp.c +++ linux-2.6.38/kernel/smp.c @@ -450,7 +450,7 @@ { struct call_function_data *data; unsigned long flags; - int cpu, next_cpu, this_cpu = smp_processor_id(); + int refs, cpu, next_cpu, this_cpu = smp_processor_id(); /* * Can deadlock when called with interrupts disabled. @@ -461,7 +461,7 @@ WARN_ON_ONCE(cpu_online(this_cpu) && irqs_disabled() && !oops_in_progress && !early_boot_irqs_disabled); - /* So, what's a CPU they want? Ignoring this one. */ + /* Try to fastpath. So, what's a CPU they want? Ignoring this one. */ cpu = cpumask_first_and(mask, cpu_online_mask); if (cpu == this_cpu) cpu = cpumask_next_and(cpu, mask, cpu_online_mask); @@ -483,22 +483,49 @@ data = &__get_cpu_var(cfd_data); csd_lock(&data->csd); + + /* This BUG_ON verifies our reuse assertions and can be removed */ BUG_ON(atomic_read(&data->refs) || !cpumask_empty(data->cpumask)); + /* + * The global call function queue list add and delete are protected + * by a lock, but the list is traversed without any lock, relying + * on the rcu list add and delete to allow safe concurrent traversal. + * We reuse the call function data without waiting for any grace + * period after some other cpu removes it from the global queue. + * This means a cpu might find our data block as it is being + * filled out. + * + * We hold off the interrupt handler on the other cpu by + * ordering our writes to the cpu mask vs our setting of the + * refs counter. We assert only the cpu owning the data block + * will set a bit in cpumask, and each bit will only be cleared + * by the subject cpu. Each cpu must first find its bit is + * set and then check that refs is set indicating the element is + * ready to be processed, otherwise it must skip the entry. + * + * On the previous iteration refs was set to 0 by another cpu. + * To avoid the use of transitivity, set the counter to 0 here + * so the wmb will pair with the rmb in the interrupt handler. + */ + atomic_set(&data->refs, 0); /* convert 3rd to 1st party write */ + data->csd.func = func; data->csd.info = info; - cpumask_and(data->cpumask, mask, cpu_online_mask); - cpumask_clear_cpu(this_cpu, data->cpumask); - /* - * To ensure the interrupt handler gets an complete view - * we order the cpumask and refs writes and order the read - * of them in the interrupt handler. In addition we may - * only clear our own cpu bit from the mask. - */ + /* Ensure 0 refs is visible before mask. Also orders func and info */ smp_wmb(); - atomic_set(&data->refs, cpumask_weight(data->cpumask)); + /* We rely on the "and" being processed before the store */ + cpumask_and(data->cpumask, mask, cpu_online_mask); + cpumask_clear_cpu(this_cpu, data->cpumask); + refs = cpumask_weight(data->cpumask); + + /* Some callers race with other cpus changing the passed mask */ + if (unlikely(!refs)) { + csd_unlock(&data->csd); + return; + } raw_spin_lock_irqsave(&call_function.lock, flags); /* @@ -507,6 +534,12 @@ * will not miss any other list entries: */ list_add_rcu(&data->csd.list, &call_function.queue); + /* + * We rely on the wmb() in list_add_rcu to complete our writes + * to the cpumask before this write to refs, which indicates + * data is on the list and is ready to be processed. + */ + atomic_set(&data->refs, refs); raw_spin_unlock_irqrestore(&call_function.lock, flags); /* --- linux-2.6.38.orig/kernel/sched.c +++ linux-2.6.38/kernel/sched.c @@ -5572,7 +5572,7 @@ * The idle tasks have their own, simple scheduling class: */ idle->sched_class = &idle_sched_class; - ftrace_graph_init_task(idle); + ftrace_graph_init_idle_task(idle, cpu); } /* @@ -7858,7 +7858,7 @@ se->cfs_rq = parent->my_q; se->my_q = cfs_rq; - update_load_set(&se->load, 0); + update_load_set(&se->load, tg->shares); se->parent = parent; } #endif --- linux-2.6.38.orig/kernel/sysctl.c +++ linux-2.6.38/kernel/sysctl.c @@ -169,6 +169,11 @@ void __user *buffer, size_t *lenp, loff_t *ppos); #endif +#ifdef CONFIG_PRINTK +static int proc_dmesg_restrict(struct ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos); +#endif + #ifdef CONFIG_MAGIC_SYSRQ /* Note: sysrq code uses it's own private copy */ static int __sysrq_enabled = SYSRQ_DEFAULT_ENABLE; @@ -713,7 +718,7 @@ .data = &kptr_restrict, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dointvec_minmax, + .proc_handler = proc_dmesg_restrict, .extra1 = &zero, .extra2 = &two, }, @@ -2397,6 +2402,17 @@ return err; } +#ifdef CONFIG_PRINTK +static int proc_dmesg_restrict(struct ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) +{ + if (write && !capable(CAP_SYS_ADMIN)) + return -EPERM; + + return proc_dointvec_minmax(table, write, buffer, lenp, ppos); +} +#endif + struct do_proc_dointvec_minmax_conv_param { int *min; int *max; --- linux-2.6.38.orig/kernel/ptrace.c +++ linux-2.6.38/kernel/ptrace.c @@ -22,6 +22,7 @@ #include #include #include +#include /* @@ -876,3 +877,19 @@ return ret; } #endif /* CONFIG_COMPAT */ + +#ifdef CONFIG_HAVE_HW_BREAKPOINT +int ptrace_get_breakpoints(struct task_struct *tsk) +{ + if (atomic_inc_not_zero(&tsk->ptrace_bp_refcnt)) + return 0; + + return -1; +} + +void ptrace_put_breakpoints(struct task_struct *tsk) +{ + if (atomic_dec_and_test(&tsk->ptrace_bp_refcnt)) + flush_ptrace_hw_breakpoint(tsk); +} +#endif /* CONFIG_HAVE_HW_BREAKPOINT */ --- linux-2.6.38.orig/kernel/params.c +++ linux-2.6.38/kernel/params.c @@ -87,7 +87,7 @@ char *val, const 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; int err; @@ -98,6 +98,14 @@ /* Noone handled NULL, so do it here. */ if (!val && params[i].ops->set != param_set_bool) return -EINVAL; + 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].ops->set); mutex_lock(¶m_lock); @@ -107,9 +115,9 @@ } } - 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); @@ -173,7 +181,7 @@ char *args, const struct kernel_param *params, unsigned num, - int (*unknown)(char *param, char *val)) + int (*handle_arg)(char *param, char *val, int arg)) { char *param, *val; @@ -188,7 +196,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.38.orig/kernel/taskstats.c +++ linux-2.6.38/kernel/taskstats.c @@ -285,16 +285,18 @@ static int add_del_listener(pid_t pid, const struct cpumask *mask, int isadd) { struct listener_list *listeners; - struct listener *s, *tmp; + struct listener *s, *tmp, *s2; unsigned int cpu; if (!cpumask_subset(mask, cpu_possible_mask)) return -EINVAL; + s = NULL; if (isadd == REGISTER) { for_each_cpu(cpu, mask) { - s = kmalloc_node(sizeof(struct listener), GFP_KERNEL, - cpu_to_node(cpu)); + if (!s) + s = kmalloc_node(sizeof(struct listener), + GFP_KERNEL, cpu_to_node(cpu)); if (!s) goto cleanup; s->pid = pid; @@ -303,9 +305,16 @@ listeners = &per_cpu(listener_array, cpu); down_write(&listeners->sem); + list_for_each_entry_safe(s2, tmp, &listeners->list, list) { + if (s2->pid == pid) + goto next_cpu; + } list_add(&s->list, &listeners->list); + s = NULL; +next_cpu: up_write(&listeners->sem); } + kfree(s); return 0; } --- linux-2.6.38.orig/kernel/exit.c +++ linux-2.6.38/kernel/exit.c @@ -1015,7 +1015,7 @@ /* * FIXME: do that only when needed, using sched_exit tracepoint */ - flush_ptrace_hw_breakpoint(tsk); + ptrace_put_breakpoints(tsk); exit_notify(tsk, group_dead); #ifdef CONFIG_NUMA --- linux-2.6.38.orig/kernel/perf_event.c +++ linux-2.6.38/kernel/perf_event.c @@ -62,7 +62,8 @@ */ int sysctl_perf_event_paranoid __read_mostly = 1; -int sysctl_perf_event_mlock __read_mostly = 512; /* 'free' kb per user */ +/* Minimum for 512 kiB + 1 user control page */ +int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */ /* * max perf event sample rate @@ -4446,11 +4447,8 @@ if (events && atomic_dec_and_test(&event->event_limit)) { ret = 1; event->pending_kill = POLL_HUP; - if (nmi) { - event->pending_disable = 1; - irq_work_queue(&event->pending); - } else - perf_event_disable(event); + event->pending_disable = 1; + irq_work_queue(&event->pending); } if (event->overflow_handler) @@ -4567,7 +4565,7 @@ struct pt_regs *regs) { if (event->hw.state & PERF_HES_STOPPED) - return 0; + return 1; if (regs) { if (event->attr.exclude_user && user_mode(regs)) @@ -4923,6 +4921,8 @@ struct perf_sample_data *data, struct pt_regs *regs) { + if (event->hw.state & PERF_HES_STOPPED) + return 0; /* * All tracepoints are from kernel-space. */ @@ -5914,6 +5914,11 @@ goto err_alloc; } + if (task) { + put_task_struct(task); + task = NULL; + } + /* * Look up the group leader (we will attach this event to it): */ @@ -6113,17 +6118,20 @@ struct perf_event_context *child_ctx, struct task_struct *child) { - struct perf_event *parent_event; + if (child_event->parent) { + raw_spin_lock_irq(&child_ctx->lock); + perf_group_detach(child_event); + raw_spin_unlock_irq(&child_ctx->lock); + } perf_event_remove_from_context(child_event); - parent_event = child_event->parent; /* - * It can happen that parent exits first, and has events + * It can happen that the parent exits first, and has events * that are still around due to the child reference. These - * events need to be zapped - but otherwise linger. + * events need to be zapped. */ - if (parent_event) { + if (child_event->parent) { sync_child_event(child_event, child); free_event(child_event); } --- linux-2.6.38.orig/kernel/kallsyms.c +++ linux-2.6.38/kernel/kallsyms.c @@ -477,13 +477,11 @@ */ type = iter->exported ? toupper(iter->type) : tolower(iter->type); - seq_printf(m, "%0*lx %c %s\t[%s]\n", - (int)(2 * sizeof(void *)), - iter->value, type, iter->name, iter->module_name); + seq_printf(m, "%pK %c %s\t[%s]\n", (void *)iter->value, + type, iter->name, iter->module_name); } else - seq_printf(m, "%0*lx %c %s\n", - (int)(2 * sizeof(void *)), - iter->value, iter->type, iter->name); + seq_printf(m, "%pK %c %s\n", (void *)iter->value, + iter->type, iter->name); return 0; } --- linux-2.6.38.orig/kernel/trace/ftrace.c +++ linux-2.6.38/kernel/trace/ftrace.c @@ -2414,14 +2414,16 @@ ftrace_match_records(parser->buffer, parser->idx, enable); } - mutex_lock(&ftrace_lock); - if (ftrace_start_up && ftrace_enabled) - ftrace_run_update_code(FTRACE_ENABLE_CALLS); - mutex_unlock(&ftrace_lock); - trace_parser_put(parser); kfree(iter); + if (file->f_mode & FMODE_WRITE) { + mutex_lock(&ftrace_lock); + if (ftrace_start_up && ftrace_enabled) + ftrace_run_update_code(FTRACE_ENABLE_CALLS); + mutex_unlock(&ftrace_lock); + } + mutex_unlock(&ftrace_regex_lock); return 0; } @@ -3328,7 +3330,7 @@ /* The cpu_boot init_task->ret_stack will never be freed */ for_each_online_cpu(cpu) { if (!idle_task(cpu)->ret_stack) - ftrace_graph_init_task(idle_task(cpu)); + ftrace_graph_init_idle_task(idle_task(cpu), cpu); } do { @@ -3418,6 +3420,49 @@ mutex_unlock(&ftrace_lock); } +static DEFINE_PER_CPU(struct ftrace_ret_stack *, idle_ret_stack); + +static void +graph_init_task(struct task_struct *t, struct ftrace_ret_stack *ret_stack) +{ + atomic_set(&t->tracing_graph_pause, 0); + atomic_set(&t->trace_overrun, 0); + t->ftrace_timestamp = 0; + /* make curr_ret_stack visable before we add the ret_stack */ + smp_wmb(); + t->ret_stack = ret_stack; +} + +/* + * Allocate a return stack for the idle task. May be the first + * time through, or it may be done by CPU hotplug online. + */ +void ftrace_graph_init_idle_task(struct task_struct *t, int cpu) +{ + t->curr_ret_stack = -1; + /* + * The idle task has no parent, it either has its own + * stack or no stack at all. + */ + if (t->ret_stack) + WARN_ON(t->ret_stack != per_cpu(idle_ret_stack, cpu)); + + if (ftrace_graph_active) { + struct ftrace_ret_stack *ret_stack; + + ret_stack = per_cpu(idle_ret_stack, cpu); + if (!ret_stack) { + ret_stack = kmalloc(FTRACE_RETFUNC_DEPTH + * sizeof(struct ftrace_ret_stack), + GFP_KERNEL); + if (!ret_stack) + return; + per_cpu(idle_ret_stack, cpu) = ret_stack; + } + graph_init_task(t, ret_stack); + } +} + /* Allocate a return stack for newly created task */ void ftrace_graph_init_task(struct task_struct *t) { @@ -3433,12 +3478,7 @@ GFP_KERNEL); if (!ret_stack) return; - atomic_set(&t->tracing_graph_pause, 0); - atomic_set(&t->trace_overrun, 0); - t->ftrace_timestamp = 0; - /* make curr_ret_stack visable before we add the ret_stack */ - smp_wmb(); - t->ret_stack = ret_stack; + graph_init_task(t, ret_stack); } } --- linux-2.6.38.orig/kernel/power/suspend.c +++ linux-2.6.38/kernel/power/suspend.c @@ -209,7 +209,6 @@ goto Close; } suspend_console(); - pm_restrict_gfp_mask(); suspend_test_start(); error = dpm_suspend_start(PMSG_SUSPEND); if (error) { @@ -226,7 +225,6 @@ suspend_test_start(); dpm_resume_end(PMSG_RESUME); suspend_test_finish("resume devices"); - pm_restore_gfp_mask(); resume_console(); Close: if (suspend_ops->end) @@ -287,7 +285,9 @@ goto Finish; pr_debug("PM: Entering %s sleep\n", pm_states[state]); + pm_restrict_gfp_mask(); error = suspend_devices_and_enter(state); + pm_restore_gfp_mask(); Finish: pr_debug("PM: Finishing wakeup.\n"); --- linux-2.6.38.orig/kernel/power/user.c +++ linux-2.6.38/kernel/power/user.c @@ -135,8 +135,10 @@ free_basic_memory_bitmaps(); data = filp->private_data; free_all_swap_pages(data->swap); - if (data->frozen) + if (data->frozen) { + pm_restore_gfp_mask(); thaw_processes(); + } pm_notifier_call_chain(data->mode == O_RDONLY ? PM_POST_HIBERNATION : PM_POST_RESTORE); atomic_inc(&snapshot_device_available); @@ -379,6 +381,7 @@ * PM_HIBERNATION_PREPARE */ error = suspend_devices_and_enter(PM_SUSPEND_MEM); + data->ready = 0; break; case SNAPSHOT_PLATFORM_SUPPORT: --- linux-2.6.38.orig/kernel/time/clocksource.c +++ linux-2.6.38/kernel/time/clocksource.c @@ -685,8 +685,8 @@ /* Add clocksource to the clcoksource list */ mutex_lock(&clocksource_mutex); clocksource_enqueue(cs); - clocksource_select(); clocksource_enqueue_watchdog(cs); + clocksource_select(); mutex_unlock(&clocksource_mutex); return 0; } @@ -706,8 +706,8 @@ mutex_lock(&clocksource_mutex); clocksource_enqueue(cs); - clocksource_select(); clocksource_enqueue_watchdog(cs); + clocksource_select(); mutex_unlock(&clocksource_mutex); return 0; } --- linux-2.6.38.orig/kernel/time/tick-broadcast.c +++ linux-2.6.38/kernel/time/tick-broadcast.c @@ -523,10 +523,11 @@ */ void tick_broadcast_setup_oneshot(struct clock_event_device *bc) { + int cpu = smp_processor_id(); + /* Set it up only once ! */ if (bc->event_handler != tick_handle_oneshot_broadcast) { int was_periodic = bc->mode == CLOCK_EVT_MODE_PERIODIC; - int cpu = smp_processor_id(); bc->event_handler = tick_handle_oneshot_broadcast; clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT); @@ -552,6 +553,15 @@ tick_broadcast_set_event(tick_next_period, 1); } else bc->next_event.tv64 = KTIME_MAX; + } else { + /* + * The first cpu which switches to oneshot mode sets + * the bit for all other cpus which are in the general + * (periodic) broadcast mask. So the bit is set and + * would prevent the first broadcast enter after this + * to program the bc device. + */ + tick_broadcast_clear_oneshot(cpu); } } --- linux-2.6.38.orig/fs/binfmt_elf.c +++ linux-2.6.38/fs/binfmt_elf.c @@ -712,6 +712,15 @@ if (retval) goto out_free_dentry; +#ifdef CONFIG_X86_32 + /* + * Turn off the CS limit completely if exec-shield disabled or + * NX active: + */ + if (disable_nx || 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; @@ -941,9 +950,13 @@ current->mm->start_stack = bprm->p; #ifdef arch_randomize_brk - if ((current->flags & PF_RANDOMIZE) && (randomize_va_space > 1)) + if ((current->flags & PF_RANDOMIZE) && (randomize_va_space > 1)) { current->mm->brk = current->mm->start_brk = arch_randomize_brk(current->mm); +#ifdef CONFIG_COMPAT_BRK + current->brk_randomized = 1; +#endif + } #endif if (current->personality & MMAP_PAGE_ZERO) { --- linux-2.6.38.orig/fs/inode.c +++ linux-2.6.38/fs/inode.c @@ -82,6 +82,7 @@ * the i_state of an inode while it is in use.. */ DEFINE_SPINLOCK(inode_lock); +EXPORT_SYMBOL(inode_lock); /* * iprune_sem provides exclusion between the kswapd or try_to_free_pages @@ -1737,3 +1738,7 @@ inode->i_mode = mode; } EXPORT_SYMBOL(inode_init_owner); + +#define CREATE_TRACE_POINTS +#include + --- linux-2.6.38.orig/fs/fs-writeback.c +++ linux-2.6.38/fs/fs-writeback.c @@ -27,6 +27,7 @@ #include #include #include +#include #include "internal.h" /* @@ -1013,6 +1014,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.38.orig/fs/aio.c +++ linux-2.6.38/fs/aio.c @@ -520,7 +520,7 @@ ctx->reqs_active--; if (unlikely(!ctx->reqs_active && ctx->dead)) - wake_up(&ctx->wait); + wake_up_all(&ctx->wait); } static void aio_fput_routine(struct work_struct *data) @@ -1229,7 +1229,7 @@ * by other CPUs at this point. Right now, we rely on the * locking done by the above calls to ensure this consistency. */ - wake_up(&ioctx->wait); + wake_up_all(&ioctx->wait); put_ioctx(ioctx); /* once for the lookup */ } --- linux-2.6.38.orig/fs/file_table.c +++ linux-2.6.38/fs/file_table.c @@ -393,6 +393,8 @@ } } +EXPORT_SYMBOL(file_sb_list_del); + #ifdef CONFIG_SMP /* --- linux-2.6.38.orig/fs/namei.c +++ linux-2.6.38/fs/namei.c @@ -353,6 +353,7 @@ return 0; } +EXPORT_SYMBOL(deny_write_access); /** * path_get - get a reference to a path @@ -712,6 +713,7 @@ do { seq = read_seqcount_begin(&fs->seq); nd->root = fs->root; + nd->seq = __read_seqcount_begin(&nd->root.dentry->d_seq); } while (read_seqcount_retry(&fs->seq, seq)); } } @@ -1842,12 +1844,13 @@ * 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) { 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; @@ -1868,6 +1871,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.38.orig/fs/namespace.c +++ linux-2.6.38/fs/namespace.c @@ -1465,6 +1465,7 @@ } return 0; } +EXPORT_SYMBOL(iterate_mounts); static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end) { @@ -2469,9 +2470,6 @@ error = user_path_dir(new_root, &new); if (error) goto out0; - error = -EINVAL; - if (!check_mnt(new.mnt)) - goto out1; error = user_path_dir(put_old, &old); if (error) @@ -2491,7 +2489,7 @@ IS_MNT_SHARED(new.mnt->mnt_parent) || IS_MNT_SHARED(root.mnt->mnt_parent)) goto out2; - if (!check_mnt(root.mnt)) + if (!check_mnt(root.mnt) || !check_mnt(new.mnt)) goto out2; error = -ENOENT; if (cant_mount(old.dentry)) @@ -2515,19 +2513,19 @@ goto out2; /* not attached */ /* make sure we can reach put_old from new_root */ tmp = old.mnt; - br_write_lock(vfsmount_lock); if (tmp != new.mnt) { for (;;) { if (tmp->mnt_parent == tmp) - goto out3; /* already mounted on put_old */ + goto out2; /* already mounted on put_old */ if (tmp->mnt_parent == new.mnt) break; tmp = tmp->mnt_parent; } if (!is_subdir(tmp->mnt_mountpoint, new.dentry)) - goto out3; + goto out2; } else if (!is_subdir(old.dentry, new.dentry)) - goto out3; + goto out2; + br_write_lock(vfsmount_lock); detach_mnt(new.mnt, &parent_path); detach_mnt(root.mnt, &root_parent); /* mount old root on put_old */ @@ -2550,9 +2548,6 @@ path_put(&new); out0: return error; -out3: - br_write_unlock(vfsmount_lock); - goto out2; } static void __init init_mount_tree(void) --- linux-2.6.38.orig/fs/block_dev.c +++ linux-2.6.38/fs/block_dev.c @@ -1099,6 +1099,7 @@ if (!bdev->bd_part) goto out_clear; + ret = 0; if (disk->fops->open) { ret = disk->fops->open(bdev, mode); if (ret == -ERESTARTSYS) { @@ -1114,18 +1115,26 @@ mutex_unlock(&bdev->bd_mutex); goto restart; } - if (ret) - goto out_clear; } - if (!bdev->bd_openers) { + + if (!ret && !bdev->bd_openers) { bd_set_size(bdev,(loff_t)get_capacity(disk)<<9); bdi = blk_get_backing_dev_info(bdev); if (bdi == NULL) bdi = &default_backing_dev_info; bdev_inode_switch_bdi(bdev->bd_inode, bdi); } - if (bdev->bd_invalidated) + + /* + * If the device is invalidated, rescan partition + * if open succeeded or failed with -ENOMEDIUM. + * The latter is necessary to prevent ghost + * partitions on a removed medium. + */ + if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM)) rescan_partitions(disk, bdev); + if (ret) + goto out_clear; } else { struct block_device *whole; whole = bdget_disk(disk, 0); @@ -1152,13 +1161,14 @@ put_disk(disk); disk = NULL; if (bdev->bd_contains == bdev) { - if (bdev->bd_disk->fops->open) { + ret = 0; + if (bdev->bd_disk->fops->open) ret = bdev->bd_disk->fops->open(bdev, mode); - if (ret) - goto out_unlock_bdev; - } - if (bdev->bd_invalidated) + /* the same as first opener case, read comment there */ + if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM)) rescan_partitions(bdev->bd_disk, bdev); + if (ret) + goto out_unlock_bdev; } } bdev->bd_openers++; @@ -1223,6 +1233,8 @@ res = __blkdev_get(bdev, mode, 0); if (whole) { + struct gendisk *disk = whole->bd_disk; + /* finish claiming */ mutex_lock(&bdev->bd_mutex); spin_lock(&bdev_lock); @@ -1249,15 +1261,16 @@ spin_unlock(&bdev_lock); /* - * Block event polling for write claims. Any write - * holder makes the write_holder state stick until all - * are released. This is good enough and tracking - * individual writeable reference is too fragile given - * the way @mode is used in blkdev_get/put(). + * Block event polling for write claims if requested. Any + * write holder makes the write_holder state stick until + * all are released. This is good enough and tracking + * individual writeable reference is too fragile given the + * way @mode is used in blkdev_get/put(). */ - if (!res && (mode & FMODE_WRITE) && !bdev->bd_write_holder) { + if ((disk->flags & GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE) && + !res && (mode & FMODE_WRITE) && !bdev->bd_write_holder) { bdev->bd_write_holder = true; - disk_block_events(bdev->bd_disk); + disk_block_events(disk); } mutex_unlock(&bdev->bd_mutex); --- linux-2.6.38.orig/fs/file.c +++ linux-2.6.38/fs/file.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -39,14 +40,17 @@ */ static DEFINE_PER_CPU(struct fdtable_defer, fdtable_defer_list); -static inline void *alloc_fdmem(unsigned int size) +static void *alloc_fdmem(unsigned int size) { - void *data; - - data = kmalloc(size, GFP_KERNEL|__GFP_NOWARN); - if (data != NULL) - return data; - + /* + * Very large allocations can stress page reclaim, so fall back to + * vmalloc() if the allocation size will be considered "large" by the VM. + */ + if (size <= (PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER)) { + void *data = kmalloc(size, GFP_KERNEL|__GFP_NOWARN); + if (data != NULL) + return data; + } return vmalloc(size); } --- linux-2.6.38.orig/fs/dcache.c +++ linux-2.6.38/fs/dcache.c @@ -296,8 +296,12 @@ __releases(parent->d_lock) __releases(dentry->d_inode->i_lock) { - dentry->d_parent = NULL; list_del(&dentry->d_u.d_child); + /* + * Inform try_to_ascend() that we are no longer attached to the + * dentry tree + */ + dentry->d_flags |= DCACHE_DISCONNECTED; if (parent) spin_unlock(&parent->d_lock); dentry_iput(dentry); @@ -1012,6 +1016,35 @@ } /* + * This tries to ascend one level of parenthood, but + * we can race with renaming, so we need to re-check + * the parenthood after dropping the lock and check + * that the sequence number still matches. + */ +static struct dentry *try_to_ascend(struct dentry *old, int locked, unsigned seq) +{ + struct dentry *new = old->d_parent; + + rcu_read_lock(); + spin_unlock(&old->d_lock); + spin_lock(&new->d_lock); + + /* + * might go back up the wrong parent if we have had a rename + * or deletion + */ + if (new != old->d_parent || + (old->d_flags & DCACHE_DISCONNECTED) || + (!locked && read_seqretry(&rename_lock, seq))) { + spin_unlock(&new->d_lock); + new = NULL; + } + rcu_read_unlock(); + return new; +} + + +/* * Search for at least 1 mount point in the dentry's subdirs. * We descend to the next level whenever the d_subdirs * list is non-empty and continue searching. @@ -1066,24 +1099,10 @@ * All done at this level ... ascend and resume the search. */ if (this_parent != parent) { - struct dentry *tmp; - struct dentry *child; - - tmp = this_parent->d_parent; - rcu_read_lock(); - spin_unlock(&this_parent->d_lock); - child = this_parent; - this_parent = tmp; - spin_lock(&this_parent->d_lock); - /* might go back up the wrong parent if we have had a rename - * or deletion */ - if (this_parent != child->d_parent || - (!locked && read_seqretry(&rename_lock, seq))) { - spin_unlock(&this_parent->d_lock); - rcu_read_unlock(); + struct dentry *child = this_parent; + this_parent = try_to_ascend(this_parent, locked, seq); + if (!this_parent) goto rename_retry; - } - rcu_read_unlock(); next = child->d_u.d_child.next; goto resume; } @@ -1181,24 +1200,10 @@ * All done at this level ... ascend and resume the search. */ if (this_parent != parent) { - struct dentry *tmp; - struct dentry *child; - - tmp = this_parent->d_parent; - rcu_read_lock(); - spin_unlock(&this_parent->d_lock); - child = this_parent; - this_parent = tmp; - spin_lock(&this_parent->d_lock); - /* might go back up the wrong parent if we have had a rename - * or deletion */ - if (this_parent != child->d_parent || - (!locked && read_seqretry(&rename_lock, seq))) { - spin_unlock(&this_parent->d_lock); - rcu_read_unlock(); + struct dentry *child = this_parent; + this_parent = try_to_ascend(this_parent, locked, seq); + if (!this_parent) goto rename_retry; - } - rcu_read_unlock(); next = child->d_u.d_child.next; goto resume; } @@ -1607,10 +1612,13 @@ __bit_spin_unlock(0, (unsigned long *)&tmp->d_sb->s_anon.first); spin_unlock(&tmp->d_lock); spin_unlock(&inode->i_lock); + security_d_instantiate(tmp, inode); return tmp; out_iput: + if (res && !IS_ERR(res)) + security_d_instantiate(res, inode); iput(inode); return res; } @@ -2942,28 +2950,14 @@ spin_unlock(&dentry->d_lock); } if (this_parent != root) { - struct dentry *tmp; - struct dentry *child; - - tmp = this_parent->d_parent; + struct dentry *child = this_parent; if (!(this_parent->d_flags & DCACHE_GENOCIDE)) { this_parent->d_flags |= DCACHE_GENOCIDE; this_parent->d_count--; } - rcu_read_lock(); - spin_unlock(&this_parent->d_lock); - child = this_parent; - this_parent = tmp; - spin_lock(&this_parent->d_lock); - /* might go back up the wrong parent if we have had a rename - * or deletion */ - if (this_parent != child->d_parent || - (!locked && read_seqretry(&rename_lock, seq))) { - spin_unlock(&this_parent->d_lock); - rcu_read_unlock(); + this_parent = try_to_ascend(this_parent, locked, seq); + if (!this_parent) goto rename_retry; - } - rcu_read_unlock(); next = child->d_u.d_child.next; goto resume; } --- linux-2.6.38.orig/fs/super.c +++ linux-2.6.38/fs/super.c @@ -71,6 +71,7 @@ #else INIT_LIST_HEAD(&s->s_files); #endif + s->s_bdi = &default_backing_dev_info; INIT_LIST_HEAD(&s->s_instances); INIT_HLIST_BL_HEAD(&s->s_anon); INIT_LIST_HEAD(&s->s_inodes); @@ -1003,6 +1004,7 @@ } BUG_ON(!mnt->mnt_sb); WARN_ON(!mnt->mnt_sb->s_bdi); + WARN_ON(mnt->mnt_sb->s_bdi == &default_backing_dev_info); mnt->mnt_sb->s_flags |= MS_BORN; error = security_sb_kern_mount(mnt->mnt_sb, flags, secdata); --- linux-2.6.38.orig/fs/open.c +++ linux-2.6.38/fs/open.c @@ -33,6 +33,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) { @@ -60,6 +63,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) { @@ -905,6 +909,7 @@ } else { fsnotify_open(f); fd_install(fd, f); + trace_do_sys_open(tmp, flags, mode); } } putname(tmp); --- linux-2.6.38.orig/fs/exec.c +++ linux-2.6.38/fs/exec.c @@ -56,6 +56,8 @@ #include #include +#include + #include #include #include @@ -737,6 +739,8 @@ fsnotify_open(file); + trace_open_exec(name); + err = deny_write_access(file); if (err) goto exit; --- linux-2.6.38.orig/fs/splice.c +++ linux-2.6.38/fs/splice.c @@ -1081,8 +1081,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); @@ -1105,13 +1105,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); @@ -1131,6 +1132,7 @@ return splice_read(in, ppos, pipe, len, flags); } +EXPORT_SYMBOL(do_splice_to); /** * splice_direct_to_actor - splices data directly between two non-pipes --- linux-2.6.38.orig/fs/sync.c +++ linux-2.6.38/fs/sync.c @@ -33,7 +33,7 @@ * This should be safe, as we require bdi backing to actually * write out data in the first place */ - if (!sb->s_bdi || sb->s_bdi == &noop_backing_dev_info) + if (sb->s_bdi == &noop_backing_dev_info) return 0; if (sb->s_qcop && sb->s_qcop->quota_sync) @@ -79,7 +79,7 @@ static void sync_one_sb(struct super_block *sb, void *arg) { - if (!(sb->s_flags & MS_RDONLY) && sb->s_bdi) + if (!(sb->s_flags & MS_RDONLY)) __sync_filesystem(sb, *(int *)arg); } /* --- linux-2.6.38.orig/fs/ubifs/lpt.c +++ linux-2.6.38/fs/ubifs/lpt.c @@ -1270,10 +1270,9 @@ lnum = branch->lnum; offs = branch->offs; pnode = kzalloc(sizeof(struct ubifs_pnode), GFP_NOFS); - if (!pnode) { - err = -ENOMEM; - goto out; - } + if (!pnode) + return -ENOMEM; + if (lnum == 0) { /* * This pnode was not written which just means that the LEB --- linux-2.6.38.orig/fs/ubifs/debug.c +++ linux-2.6.38/fs/ubifs/debug.c @@ -961,11 +961,39 @@ void dbg_save_space_info(struct ubifs_info *c) { struct ubifs_debug_info *d = c->dbg; - - ubifs_get_lp_stats(c, &d->saved_lst); + int freeable_cnt; spin_lock(&c->space_lock); + memcpy(&d->saved_lst, &c->lst, sizeof(struct ubifs_lp_stats)); + + /* + * We use a dirty hack here and zero out @c->freeable_cnt, because it + * affects the free space calculations, and UBIFS might not know about + * all freeable eraseblocks. Indeed, we know about freeable eraseblocks + * only when we read their lprops, and we do this only lazily, upon the + * need. So at any given point of time @c->freeable_cnt might be not + * exactly accurate. + * + * Just one example about the issue we hit when we did not zero + * @c->freeable_cnt. + * 1. The file-system is mounted R/O, c->freeable_cnt is %0. We save the + * amount of free space in @d->saved_free + * 2. We re-mount R/W, which makes UBIFS to read the "lsave" + * information from flash, where we cache LEBs from various + * categories ('ubifs_remount_fs()' -> 'ubifs_lpt_init()' + * -> 'lpt_init_wr()' -> 'read_lsave()' -> 'ubifs_lpt_lookup()' + * -> 'ubifs_get_pnode()' -> 'update_cats()' + * -> 'ubifs_add_to_cat()'). + * 3. Lsave contains a freeable eraseblock, and @c->freeable_cnt + * becomes %1. + * 4. We calculate the amount of free space when the re-mount is + * finished in 'dbg_check_space_info()' and it does not match + * @d->saved_free. + */ + freeable_cnt = c->freeable_cnt; + c->freeable_cnt = 0; d->saved_free = ubifs_get_free_space_nolock(c); + c->freeable_cnt = freeable_cnt; spin_unlock(&c->space_lock); } @@ -982,12 +1010,15 @@ { struct ubifs_debug_info *d = c->dbg; struct ubifs_lp_stats lst; - long long avail, free; + long long free; + int freeable_cnt; spin_lock(&c->space_lock); - avail = ubifs_calc_available(c, c->min_idx_lebs); + freeable_cnt = c->freeable_cnt; + c->freeable_cnt = 0; + free = ubifs_get_free_space_nolock(c); + c->freeable_cnt = freeable_cnt; spin_unlock(&c->space_lock); - free = ubifs_get_free_space(c); if (free != d->saved_free) { ubifs_err("free space changed from %lld to %lld", @@ -2813,19 +2844,19 @@ } fname = "dump_lprops"; - dent = debugfs_create_file(fname, S_IWUGO, d->dfs_dir, c, &dfs_fops); + dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops); if (IS_ERR(dent)) goto out_remove; d->dfs_dump_lprops = dent; fname = "dump_budg"; - dent = debugfs_create_file(fname, S_IWUGO, d->dfs_dir, c, &dfs_fops); + dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops); if (IS_ERR(dent)) goto out_remove; d->dfs_dump_budg = dent; fname = "dump_tnc"; - dent = debugfs_create_file(fname, S_IWUGO, d->dfs_dir, c, &dfs_fops); + dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, c, &dfs_fops); if (IS_ERR(dent)) goto out_remove; d->dfs_dump_tnc = dent; --- linux-2.6.38.orig/fs/ubifs/recovery.c +++ linux-2.6.38/fs/ubifs/recovery.c @@ -300,6 +300,32 @@ goto out_free; } memcpy(c->rcvrd_mst_node, c->mst_node, UBIFS_MST_NODE_SZ); + + /* + * We had to recover the master node, which means there was an + * unclean reboot. However, it is possible that the master node + * is clean at this point, i.e., %UBIFS_MST_DIRTY is not set. + * E.g., consider the following chain of events: + * + * 1. UBIFS was cleanly unmounted, so the master node is clean + * 2. UBIFS is being mounted R/W and starts changing the master + * node in the first (%UBIFS_MST_LNUM). A power cut happens, + * so this LEB ends up with some amount of garbage at the + * end. + * 3. UBIFS is being mounted R/O. We reach this place and + * recover the master node from the second LEB + * (%UBIFS_MST_LNUM + 1). But we cannot update the media + * because we are being mounted R/O. We have to defer the + * operation. + * 4. However, this master node (@c->mst_node) is marked as + * clean (since the step 1). And if we just return, the + * mount code will be confused and won't recover the master + * node when it is re-mounter R/W later. + * + * Thus, to force the recovery by marking the master node as + * dirty. + */ + c->mst_node->flags |= cpu_to_le32(UBIFS_MST_DIRTY); } else { /* Write the recovered master node */ c->max_sqnum = le64_to_cpu(mst->ch.sqnum) - 1; --- linux-2.6.38.orig/fs/ubifs/file.c +++ linux-2.6.38/fs/ubifs/file.c @@ -1309,6 +1309,9 @@ dbg_gen("syncing inode %lu", inode->i_ino); + if (inode->i_sb->s_flags & MS_RDONLY) + return 0; + /* * VFS has already synchronized dirty pages for this inode. Synchronize * the inode unless this is a 'datasync()' call. --- linux-2.6.38.orig/fs/ubifs/sb.c +++ linux-2.6.38/fs/ubifs/sb.c @@ -475,7 +475,8 @@ * @c: UBIFS file-system description object * * This function returns a pointer to the superblock node or a negative error - * code. + * code. Note, the user of this function is responsible of kfree()'ing the + * returned superblock buffer. */ struct ubifs_sb_node *ubifs_read_sb_node(struct ubifs_info *c) { --- linux-2.6.38.orig/fs/ubifs/super.c +++ linux-2.6.38/fs/ubifs/super.c @@ -1235,12 +1235,12 @@ goto out_free; } + err = alloc_wbufs(c); + if (err) + goto out_cbuf; + sprintf(c->bgt_name, BGT_NAME_PATTERN, c->vi.ubi_num, c->vi.vol_id); if (!c->ro_mount) { - err = alloc_wbufs(c); - if (err) - goto out_cbuf; - /* Create background thread */ c->bgt = kthread_create(ubifs_bg_thread, c, "%s", c->bgt_name); if (IS_ERR(c->bgt)) { @@ -1543,6 +1543,7 @@ mutex_lock(&c->umount_mutex); dbg_save_space_info(c); c->remounting_rw = 1; + c->ro_mount = 0; c->always_chk_crc = 1; err = check_free_space(c); @@ -1559,6 +1560,7 @@ } sup->leb_cnt = cpu_to_le32(c->leb_cnt); err = ubifs_write_sb_node(c, sup); + kfree(sup); if (err) goto out; } @@ -1602,12 +1604,6 @@ if (err) goto out; - err = alloc_wbufs(c); - if (err) - goto out; - - ubifs_create_buds_lists(c); - /* Create background thread */ c->bgt = kthread_create(ubifs_bg_thread, c, "%s", c->bgt_name); if (IS_ERR(c->bgt)) { @@ -1642,20 +1638,32 @@ if (err) goto out; + dbg_gen("re-mounted read-write"); + c->remounting_rw = 0; + if (c->need_recovery) { c->need_recovery = 0; ubifs_msg("deferred recovery completed"); + } else { + /* + * Do not run the debugging space check if the were doing + * recovery, because when we saved the information we had the + * file-system in a state where the TNC and lprops has been + * modified in memory, but all the I/O operations (including a + * commit) were deferred. So the file-system was in + * "non-committed" state. Now the file-system is in committed + * state, and of course the amount of free space will change + * because, for example, the old index size was imprecise. + */ + err = dbg_check_space_info(c); } - dbg_gen("re-mounted read-write"); - c->ro_mount = 0; - c->remounting_rw = 0; c->always_chk_crc = 0; - err = dbg_check_space_info(c); mutex_unlock(&c->umount_mutex); return err; out: + c->ro_mount = 1; vfree(c->orph_buf); c->orph_buf = NULL; if (c->bgt) { @@ -1704,7 +1712,6 @@ if (err) ubifs_ro_mode(c, err); - free_wbufs(c); vfree(c->orph_buf); c->orph_buf = NULL; vfree(c->ileb_buf); --- linux-2.6.38.orig/fs/ubifs/log.c +++ linux-2.6.38/fs/ubifs/log.c @@ -175,26 +175,6 @@ } /** - * ubifs_create_buds_lists - create journal head buds lists for remount rw. - * @c: UBIFS file-system description object - */ -void ubifs_create_buds_lists(struct ubifs_info *c) -{ - struct rb_node *p; - - spin_lock(&c->buds_lock); - p = rb_first(&c->buds); - while (p) { - struct ubifs_bud *bud = rb_entry(p, struct ubifs_bud, rb); - struct ubifs_jhead *jhead = &c->jheads[bud->jhead]; - - list_add_tail(&bud->list, &jhead->buds_list); - p = rb_next(p); - } - spin_unlock(&c->buds_lock); -} - -/** * ubifs_add_bud_to_log - add a new bud to the log. * @c: UBIFS file-system description object * @jhead: journal head the bud belongs to --- linux-2.6.38.orig/fs/ubifs/commit.c +++ linux-2.6.38/fs/ubifs/commit.c @@ -521,7 +521,7 @@ size_t sz; if (!(ubifs_chk_flags & UBIFS_CHK_OLD_IDX)) - goto out; + return 0; INIT_LIST_HEAD(&list); --- linux-2.6.38.orig/fs/ubifs/replay.c +++ linux-2.6.38/fs/ubifs/replay.c @@ -59,6 +59,7 @@ * @new_size: truncation new size * @free: amount of free space in a bud * @dirty: amount of dirty space in a bud from padding and deletion nodes + * @jhead: journal head number of the bud * * UBIFS journal replay must compare node sequence numbers, which means it must * build a tree of node information to insert into the TNC. @@ -80,6 +81,7 @@ struct { int free; int dirty; + int jhead; }; }; }; @@ -159,6 +161,11 @@ err = PTR_ERR(lp); goto out; } + + /* Make sure the journal head points to the latest bud */ + err = ubifs_wbuf_seek_nolock(&c->jheads[r->jhead].wbuf, r->lnum, + c->leb_size - r->free, UBI_SHORTTERM); + out: ubifs_release_lprops(c); return err; @@ -627,10 +634,6 @@ ubifs_assert(sleb->endpt - offs >= used); ubifs_assert(sleb->endpt % c->min_io_size == 0); - if (sleb->endpt + c->min_io_size <= c->leb_size && !c->ro_mount) - err = ubifs_wbuf_seek_nolock(&c->jheads[jhead].wbuf, lnum, - sleb->endpt, UBI_SHORTTERM); - *dirty = sleb->endpt - offs - used; *free = c->leb_size - sleb->endpt; @@ -653,12 +656,14 @@ * @sqnum: sequence number * @free: amount of free space in bud * @dirty: amount of dirty space from padding and deletion nodes + * @jhead: journal head number for the bud * * This function inserts a reference node to the replay tree and returns zero * in case of success or a negative error code in case of failure. */ static int insert_ref_node(struct ubifs_info *c, int lnum, int offs, - unsigned long long sqnum, int free, int dirty) + unsigned long long sqnum, int free, int dirty, + int jhead) { struct rb_node **p = &c->replay_tree.rb_node, *parent = NULL; struct replay_entry *r; @@ -688,6 +693,7 @@ r->flags = REPLAY_REF; r->free = free; r->dirty = dirty; + r->jhead = jhead; rb_link_node(&r->rb, parent, p); rb_insert_color(&r->rb, &c->replay_tree); @@ -712,7 +718,7 @@ if (err) return err; err = insert_ref_node(c, b->bud->lnum, b->bud->start, b->sqnum, - free, dirty); + free, dirty, b->bud->jhead); if (err) return err; } --- linux-2.6.38.orig/fs/partitions/osf.c +++ linux-2.6.38/fs/partitions/osf.c @@ -10,7 +10,7 @@ #include "check.h" #include "osf.h" -#define MAX_OSF_PARTITIONS 8 +#define MAX_OSF_PARTITIONS 18 int osf_partition(struct parsed_partitions *state) { --- linux-2.6.38.orig/fs/partitions/ldm.c +++ linux-2.6.38/fs/partitions/ldm.c @@ -1299,6 +1299,11 @@ BUG_ON (!data || !frags); + if (size < 2 * VBLK_SIZE_HEAD) { + ldm_error("Value of size is to small."); + return false; + } + group = get_unaligned_be32(data + 0x08); rec = get_unaligned_be16(data + 0x0C); num = get_unaligned_be16(data + 0x0E); @@ -1306,6 +1311,10 @@ ldm_error ("A VBLK claims to have %d parts.", num); return false; } + if (rec >= num) { + ldm_error("REC value (%d) exceeds NUM value (%d)", rec, num); + return false; + } list_for_each (item, frags) { f = list_entry (item, struct frag, list); @@ -1326,6 +1335,11 @@ list_add_tail (&f->list, frags); found: + if (rec >= f->num) { + ldm_error("REC value (%d) exceeds NUM value (%d)", rec, f->num); + return false; + } + if (f->map & (1 << rec)) { ldm_error ("Duplicate VBLK, part %d.", rec); f->map &= 0x7F; /* Mark the group as broken */ @@ -1334,10 +1348,9 @@ f->map |= (1 << rec); - if (num > 0) { - data += VBLK_SIZE_HEAD; - size -= VBLK_SIZE_HEAD; - } + data += VBLK_SIZE_HEAD; + size -= VBLK_SIZE_HEAD; + memcpy (f->data+rec*(size-VBLK_SIZE_HEAD)+VBLK_SIZE_HEAD, data, size); return true; --- linux-2.6.38.orig/fs/partitions/efi.c +++ linux-2.6.38/fs/partitions/efi.c @@ -310,6 +310,15 @@ goto fail; } + /* Check the GUID Partition Table header size */ + if (le32_to_cpu((*gpt)->header_size) > + bdev_logical_block_size(state->bdev)) { + pr_debug("GUID Partition Table Header size is wrong: %u > %u\n", + le32_to_cpu((*gpt)->header_size), + bdev_logical_block_size(state->bdev)); + goto fail; + } + /* Check the GUID Partition Table CRC */ origcrc = le32_to_cpu((*gpt)->header_crc32); (*gpt)->header_crc32 = 0; @@ -348,6 +357,12 @@ goto fail; } + /* Check that sizeof_partition_entry has the correct value */ + if (le32_to_cpu((*gpt)->sizeof_partition_entry) != sizeof(gpt_entry)) { + pr_debug("GUID Partitition Entry Size check failed.\n"); + goto fail; + } + if (!(*ptes = alloc_read_gpt_entries(state, *gpt))) goto fail; --- linux-2.6.38.orig/fs/ramfs/file-nommu.c +++ linux-2.6.38/fs/ramfs/file-nommu.c @@ -112,6 +112,7 @@ SetPageDirty(page); unlock_page(page); + put_page(page); } return 0; --- linux-2.6.38.orig/fs/cifs/sess.c +++ linux-2.6.38/fs/cifs/sess.c @@ -277,7 +277,7 @@ } static void -decode_unicode_ssetup(char **pbcc_area, __u16 bleft, struct cifsSesInfo *ses, +decode_unicode_ssetup(char **pbcc_area, int bleft, struct cifsSesInfo *ses, const struct nls_table *nls_cp) { int len; @@ -285,19 +285,6 @@ cFYI(1, "bleft %d", bleft); - /* - * Windows servers do not always double null terminate their final - * Unicode string. Check to see if there are an uneven number of bytes - * left. If so, then add an extra NULL pad byte to the end of the - * response. - * - * See section 2.7.2 in "Implementing CIFS" for details - */ - if (bleft % 2) { - data[bleft] = 0; - ++bleft; - } - kfree(ses->serverOS); ses->serverOS = cifs_strndup_from_ucs(data, bleft, true, nls_cp); cFYI(1, "serverOS=%s", ses->serverOS); @@ -930,7 +917,9 @@ } /* BB check if Unicode and decode strings */ - if (smb_buf->Flags2 & SMBFLG2_UNICODE) { + if (bytes_remaining == 0) { + /* no string area to decode, do nothing */ + } else if (smb_buf->Flags2 & SMBFLG2_UNICODE) { /* unicode string area must be word-aligned */ if (((unsigned long) bcc_ptr - (unsigned long) smb_buf) % 2) { ++bcc_ptr; --- linux-2.6.38.orig/fs/cifs/cifsfs.c +++ linux-2.6.38/fs/cifs/cifsfs.c @@ -127,6 +127,7 @@ kfree(cifs_sb); return rc; } + cifs_sb->bdi.ra_pages = default_backing_dev_info.ra_pages; #ifdef CONFIG_CIFS_DFS_UPCALL /* copy mount params to sb for use in submounts */ --- linux-2.6.38.orig/fs/cifs/cifssmb.c +++ linux-2.6.38/fs/cifs/cifssmb.c @@ -3805,7 +3805,8 @@ T2_FNEXT_RSP_PARMS *parms; char *response_data; int rc = 0; - int bytes_returned, name_len; + int bytes_returned; + unsigned int name_len; __u16 params, byte_count; cFYI(1, "In FindNext"); --- linux-2.6.38.orig/fs/cifs/file.c +++ linux-2.6.38/fs/cifs/file.c @@ -575,8 +575,10 @@ int cifs_close(struct inode *inode, struct file *file) { - cifsFileInfo_put(file->private_data); - file->private_data = NULL; + if (file->private_data != NULL) { + cifsFileInfo_put(file->private_data); + file->private_data = NULL; + } /* return code from the ->release op is always ignored */ return 0; --- linux-2.6.38.orig/fs/cifs/cifs_unicode.c +++ linux-2.6.38/fs/cifs/cifs_unicode.c @@ -90,7 +90,7 @@ case UNI_COLON: *target = ':'; break; - case UNI_ASTERIK: + case UNI_ASTERISK: *target = '*'; break; case UNI_QUESTION: @@ -264,40 +264,41 @@ * names are little endian 16 bit Unicode on the wire */ int -cifsConvertToUCS(__le16 *target, const char *source, int maxlen, +cifsConvertToUCS(__le16 *target, const char *source, int srclen, const struct nls_table *cp, int mapChars) { int i, j, charlen; - int len_remaining = maxlen; char src_char; - __u16 temp; + __le16 dst_char; + wchar_t tmp; if (!mapChars) return cifs_strtoUCS(target, source, PATH_MAX, cp); - for (i = 0, j = 0; i < maxlen; j++) { + for (i = 0, j = 0; i < srclen; j++) { src_char = source[i]; + charlen = 1; switch (src_char) { case 0: - put_unaligned_le16(0, &target[j]); + put_unaligned(0, &target[j]); goto ctoUCS_out; case ':': - temp = UNI_COLON; + dst_char = cpu_to_le16(UNI_COLON); break; case '*': - temp = UNI_ASTERIK; + dst_char = cpu_to_le16(UNI_ASTERISK); break; case '?': - temp = UNI_QUESTION; + dst_char = cpu_to_le16(UNI_QUESTION); break; case '<': - temp = UNI_LESSTHAN; + dst_char = cpu_to_le16(UNI_LESSTHAN); break; case '>': - temp = UNI_GRTRTHAN; + dst_char = cpu_to_le16(UNI_GRTRTHAN); break; case '|': - temp = UNI_PIPE; + dst_char = cpu_to_le16(UNI_PIPE); break; /* * FIXME: We can not handle remapping backslash (UNI_SLASH) @@ -305,28 +306,24 @@ * as they use backslash as separator. */ default: - charlen = cp->char2uni(source+i, len_remaining, - &temp); + charlen = cp->char2uni(source + i, srclen - i, &tmp); + dst_char = cpu_to_le16(tmp); + /* * if no match, use question mark, which at least in * some cases serves as wild card */ if (charlen < 1) { - temp = 0x003f; + dst_char = cpu_to_le16(0x003f); charlen = 1; } - len_remaining -= charlen; - /* - * character may take more than one byte in the source - * string, but will take exactly two bytes in the - * target string - */ - i += charlen; - continue; } - put_unaligned_le16(temp, &target[j]); - i++; /* move to next char in source string */ - len_remaining--; + /* + * character may take more than one byte in the source string, + * but will take exactly two bytes in the target string + */ + i += charlen; + put_unaligned(dst_char, &target[j]); } ctoUCS_out: --- linux-2.6.38.orig/fs/cifs/cifsencrypt.c +++ linux-2.6.38/fs/cifs/cifsencrypt.c @@ -30,12 +30,13 @@ #include #include -/* Calculate and return the CIFS signature based on the mac key and SMB PDU */ -/* the 16 byte signature must be allocated by the caller */ -/* Note we only use the 1st eight bytes */ -/* Note that the smb header signature field on input contains the - sequence number before this function is called */ - +/* + * Calculate and return the CIFS signature based on the mac key and SMB PDU. + * The 16 byte signature must be allocated by the caller. Note we only use the + * 1st eight bytes and that the smb header signature field on input contains + * the sequence number before this function is called. Also, this function + * should be called with the server->srv_mutex held. + */ static int cifs_calculate_signature(const struct smb_hdr *cifs_pdu, struct TCP_Server_Info *server, char *signature) { @@ -209,8 +210,10 @@ cpu_to_le32(expected_sequence_number); cifs_pdu->Signature.Sequence.Reserved = 0; + mutex_lock(&server->srv_mutex); rc = cifs_calculate_signature(cifs_pdu, server, what_we_think_sig_should_be); + mutex_unlock(&server->srv_mutex); if (rc) return rc; --- linux-2.6.38.orig/fs/cifs/connect.c +++ linux-2.6.38/fs/cifs/connect.c @@ -275,7 +275,8 @@ char *data_area_of_target; char *data_area_of_buf2; int remaining; - __u16 byte_count, total_data_size, total_in_buf, total_in_buf2; + unsigned int byte_count, total_in_buf; + __u16 total_data_size, total_in_buf2; total_data_size = get_unaligned_le16(&pSMBt->t2_rsp.TotalDataCount); @@ -288,7 +289,7 @@ remaining = total_data_size - total_in_buf; if (remaining < 0) - return -EINVAL; + return -EPROTO; if (remaining == 0) /* nothing to do, ignore */ return 0; @@ -309,20 +310,29 @@ data_area_of_target += total_in_buf; /* copy second buffer into end of first buffer */ - memcpy(data_area_of_target, data_area_of_buf2, total_in_buf2); total_in_buf += total_in_buf2; + /* is the result too big for the field? */ + if (total_in_buf > USHRT_MAX) + return -EPROTO; put_unaligned_le16(total_in_buf, &pSMBt->t2_rsp.DataCount); + + /* fix up the BCC */ byte_count = get_bcc_le(pTargetSMB); byte_count += total_in_buf2; + /* is the result too big for the field? */ + if (byte_count > USHRT_MAX) + return -EPROTO; put_bcc_le(byte_count, pTargetSMB); byte_count = pTargetSMB->smb_buf_length; byte_count += total_in_buf2; - - /* BB also add check that we are not beyond maximum buffer size */ - + /* don't allow buffer to overflow */ + if (byte_count > CIFSMaxBufSize) + return -ENOBUFS; pTargetSMB->smb_buf_length = byte_count; + memcpy(data_area_of_target, data_area_of_buf2, total_in_buf2); + if (remaining == total_in_buf2) { cFYI(1, "found the last secondary response"); return 0; /* we are done */ @@ -608,59 +618,63 @@ list_for_each_safe(tmp, tmp2, &server->pending_mid_q) { mid_entry = list_entry(tmp, struct mid_q_entry, qhead); - if ((mid_entry->mid == smb_buffer->Mid) && - (mid_entry->midState == MID_REQUEST_SUBMITTED) && - (mid_entry->command == smb_buffer->Command)) { - if (length == 0 && - check2ndT2(smb_buffer, server->maxBuf) > 0) { - /* We have a multipart transact2 resp */ - isMultiRsp = true; - if (mid_entry->resp_buf) { - /* merge response - fix up 1st*/ - if (coalesce_t2(smb_buffer, - mid_entry->resp_buf)) { - mid_entry->multiRsp = - true; - break; - } else { - /* all parts received */ - mid_entry->multiEnd = - true; - goto multi_t2_fnd; - } + if (mid_entry->mid != smb_buffer->Mid || + mid_entry->midState != MID_REQUEST_SUBMITTED || + mid_entry->command != smb_buffer->Command) { + mid_entry = NULL; + continue; + } + + if (length == 0 && + check2ndT2(smb_buffer, server->maxBuf) > 0) { + /* We have a multipart transact2 resp */ + isMultiRsp = true; + if (mid_entry->resp_buf) { + /* merge response - fix up 1st*/ + length = coalesce_t2(smb_buffer, + mid_entry->resp_buf); + if (length > 0) { + length = 0; + mid_entry->multiRsp = true; + break; } else { - if (!isLargeBuf) { - cERROR(1, "1st trans2 resp needs bigbuf"); - /* BB maybe we can fix this up, switch - to already allocated large buffer? */ - } else { - /* Have first buffer */ - mid_entry->resp_buf = - smb_buffer; - mid_entry->largeBuf = - true; - bigbuf = NULL; - } + /* all parts received or + * packet is malformed + */ + mid_entry->multiEnd = true; + goto multi_t2_fnd; + } + } else { + if (!isLargeBuf) { + /* + * FIXME: switch to already + * allocated largebuf? + */ + cERROR(1, "1st trans2 resp " + "needs bigbuf"); + } else { + /* Have first buffer */ + mid_entry->resp_buf = + smb_buffer; + mid_entry->largeBuf = true; + bigbuf = NULL; } - break; } - mid_entry->resp_buf = smb_buffer; - mid_entry->largeBuf = isLargeBuf; + break; + } + mid_entry->resp_buf = smb_buffer; + mid_entry->largeBuf = isLargeBuf; multi_t2_fnd: - if (length == 0) - mid_entry->midState = - MID_RESPONSE_RECEIVED; - else - mid_entry->midState = - MID_RESPONSE_MALFORMED; + if (length == 0) + mid_entry->midState = MID_RESPONSE_RECEIVED; + else + mid_entry->midState = MID_RESPONSE_MALFORMED; #ifdef CONFIG_CIFS_STATS2 - mid_entry->when_received = jiffies; + mid_entry->when_received = jiffies; #endif - list_del_init(&mid_entry->qhead); - mid_entry->callback(mid_entry); - break; - } - mid_entry = NULL; + list_del_init(&mid_entry->qhead); + mid_entry->callback(mid_entry); + break; } spin_unlock(&GlobalMid_Lock); @@ -808,8 +822,7 @@ cifs_parse_mount_options(char *options, const char *devname, struct smb_vol *vol) { - char *value; - char *data; + char *value, *data, *end; unsigned int temp_len, i, j; char separator[2]; short int override_uid = -1; @@ -852,6 +865,7 @@ if (!options) return 1; + end = options + strlen(options); if (strncmp(options, "sep=", 4) == 0) { if (options[4] != 0) { separator[0] = options[4]; @@ -916,6 +930,7 @@ the only illegal character in a password is null */ if ((value[temp_len] == 0) && + (value + temp_len < end) && (value[temp_len+1] == separator[0])) { /* reinsert comma */ value[temp_len] = separator[0]; @@ -2416,7 +2431,7 @@ if (!CIFSSMBQFSUnixInfo(xid, tcon)) { __u64 cap = le64_to_cpu(tcon->fsUnixInfo.Capability); - + cFYI(1, "unix caps which server supports %lld", cap); /* check for reconnect case in which we do not want to change the mount behavior if we can avoid it */ if (vol_info == NULL) { @@ -2434,6 +2449,9 @@ } } + if (cap & CIFS_UNIX_TRANSPORT_ENCRYPTION_MANDATORY_CAP) + cERROR(1, "per-share encryption not supported yet"); + cap &= CIFS_UNIX_CAP_MASK; if (vol_info && vol_info->no_psx_acl) cap &= ~CIFS_UNIX_POSIX_ACL_CAP; @@ -2482,6 +2500,10 @@ cFYI(1, "very large read cap"); if (cap & CIFS_UNIX_LARGE_WRITE_CAP) cFYI(1, "very large write cap"); + if (cap & CIFS_UNIX_TRANSPORT_ENCRYPTION_CAP) + cFYI(1, "transport encryption cap"); + if (cap & CIFS_UNIX_TRANSPORT_ENCRYPTION_MANDATORY_CAP) + cFYI(1, "mandatory transport encryption cap"); #endif /* CIFS_DEBUG2 */ if (CIFSSMBSetFSUnixInfo(xid, tcon, cap)) { if (vol_info == NULL) { @@ -2642,6 +2664,11 @@ 0 /* not legacy */, cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); + + if (rc == -EOPNOTSUPP || rc == -EINVAL) + rc = SMBQueryInformation(xid, tcon, full_path, pfile_info, + cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & + CIFS_MOUNT_MAP_SPECIAL_CHR); kfree(pfile_info); return rc; } @@ -2795,20 +2822,26 @@ goto remote_path_check; } - /* do not care if following two calls succeed - informational */ - if (!tcon->ipc) { - CIFSSMBQFSDeviceInfo(xid, tcon); - CIFSSMBQFSAttributeInfo(xid, tcon); - } - /* tell server which Unix caps we support */ - if (tcon->ses->capabilities & CAP_UNIX) + if (tcon->ses->capabilities & CAP_UNIX) { /* reset of caps checks mount to see if unix extensions disabled for just this mount */ reset_cifs_unix_caps(xid, tcon, sb, volume_info); - else + if ((tcon->ses->server->tcpStatus == CifsNeedReconnect) && + (le64_to_cpu(tcon->fsUnixInfo.Capability) & + CIFS_UNIX_TRANSPORT_ENCRYPTION_MANDATORY_CAP)) { + rc = -EACCES; + goto mount_fail_check; + } + } else tcon->unix_ext = 0; /* server does not support them */ + /* do not care if following two calls succeed - informational */ + if (!tcon->ipc) { + CIFSSMBQFSDeviceInfo(xid, tcon); + CIFSSMBQFSAttributeInfo(xid, tcon); + } + /* convert forward to back slashes in prepath here if needed */ if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) == 0) convert_delimiter(cifs_sb->prepath, CIFS_DIR_SEP(cifs_sb)); @@ -2826,7 +2859,7 @@ remote_path_check: /* check if a whole path (including prepath) is not remote */ - if (!rc && cifs_sb->prepathlen && tcon) { + if (!rc && tcon) { /* build_path_to_root works only when we have a valid tcon */ full_path = cifs_build_path_to_root(cifs_sb, tcon); if (full_path == NULL) { --- linux-2.6.38.orig/fs/cifs/cifs_unicode.h +++ linux-2.6.38/fs/cifs/cifs_unicode.h @@ -44,7 +44,7 @@ * reserved symbols (along with \ and /), otherwise illegal to store * in filenames in NTFS */ -#define UNI_ASTERIK (__u16) ('*' + 0xF000) +#define UNI_ASTERISK (__u16) ('*' + 0xF000) #define UNI_QUESTION (__u16) ('?' + 0xF000) #define UNI_COLON (__u16) (':' + 0xF000) #define UNI_GRTRTHAN (__u16) ('>' + 0xF000) --- linux-2.6.38.orig/fs/nfsd/lockd.c +++ linux-2.6.38/fs/nfsd/lockd.c @@ -38,7 +38,6 @@ exp_readlock(); nfserr = nfsd_open(rqstp, &fh, S_IFREG, NFSD_MAY_LOCK, filp); fh_put(&fh); - rqstp->rq_client = NULL; exp_readunlock(); /* We return nlm error codes as nlm doesn't know * about nfsd, but nfsd does know about nlm.. --- linux-2.6.38.orig/fs/nfsd/nfs4proc.c +++ linux-2.6.38/fs/nfsd/nfs4proc.c @@ -984,8 +984,8 @@ void *); enum nfsd4_op_flags { ALLOWED_WITHOUT_FH = 1 << 0, /* No current filehandle required */ - ALLOWED_ON_ABSENT_FS = 2 << 0, /* ops processed on absent fs */ - ALLOWED_AS_FIRST_OP = 3 << 0, /* ops reqired first in compound */ + ALLOWED_ON_ABSENT_FS = 1 << 1, /* ops processed on absent fs */ + ALLOWED_AS_FIRST_OP = 1 << 2, /* ops reqired first in compound */ }; struct nfsd4_operation { --- linux-2.6.38.orig/fs/nfsd/vfs.c +++ linux-2.6.38/fs/nfsd/vfs.c @@ -1363,7 +1363,7 @@ goto out; if (!(iap->ia_valid & ATTR_MODE)) iap->ia_mode = 0; - err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_CREATE); + err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_EXEC); if (err) goto out; @@ -1385,6 +1385,13 @@ if (IS_ERR(dchild)) goto out_nfserr; + /* If file doesn't exist, check for permissions to create one */ + if (!dchild->d_inode) { + err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_CREATE); + if (err) + goto out; + } + err = fh_compose(resfhp, fhp->fh_export, dchild, fhp); if (err) goto out; --- linux-2.6.38.orig/fs/nfsd/nfs4state.c +++ linux-2.6.38/fs/nfsd/nfs4state.c @@ -258,6 +258,7 @@ if (atomic_dec_and_test(&fp->fi_delegees)) { vfs_setlease(fp->fi_deleg_file, F_UNLCK, &fp->fi_lease); fp->fi_lease = NULL; + fput(fp->fi_deleg_file); fp->fi_deleg_file = NULL; } } @@ -316,64 +317,6 @@ static struct list_head client_lru; static struct list_head close_lru; -static void unhash_generic_stateid(struct nfs4_stateid *stp) -{ - list_del(&stp->st_hash); - list_del(&stp->st_perfile); - list_del(&stp->st_perstateowner); -} - -static void free_generic_stateid(struct nfs4_stateid *stp) -{ - put_nfs4_file(stp->st_file); - kmem_cache_free(stateid_slab, stp); -} - -static void release_lock_stateid(struct nfs4_stateid *stp) -{ - struct file *file; - - unhash_generic_stateid(stp); - file = find_any_file(stp->st_file); - if (file) - locks_remove_posix(file, (fl_owner_t)stp->st_stateowner); - free_generic_stateid(stp); -} - -static void unhash_lockowner(struct nfs4_stateowner *sop) -{ - struct nfs4_stateid *stp; - - list_del(&sop->so_idhash); - list_del(&sop->so_strhash); - list_del(&sop->so_perstateid); - while (!list_empty(&sop->so_stateids)) { - stp = list_first_entry(&sop->so_stateids, - struct nfs4_stateid, st_perstateowner); - release_lock_stateid(stp); - } -} - -static void release_lockowner(struct nfs4_stateowner *sop) -{ - unhash_lockowner(sop); - nfs4_put_stateowner(sop); -} - -static void -release_stateid_lockowners(struct nfs4_stateid *open_stp) -{ - struct nfs4_stateowner *lock_sop; - - while (!list_empty(&open_stp->st_lockowners)) { - lock_sop = list_entry(open_stp->st_lockowners.next, - struct nfs4_stateowner, so_perstateid); - /* list_del(&open_stp->st_lockowners); */ - BUG_ON(lock_sop->so_is_open_owner); - release_lockowner(lock_sop); - } -} - /* * We store the NONE, READ, WRITE, and BOTH bits separately in the * st_{access,deny}_bmap field of the stateid, in order to track not @@ -446,13 +389,74 @@ return nfs4_access_to_omode(access); } -static void release_open_stateid(struct nfs4_stateid *stp) +static void unhash_generic_stateid(struct nfs4_stateid *stp) +{ + list_del(&stp->st_hash); + list_del(&stp->st_perfile); + list_del(&stp->st_perstateowner); +} + +static void free_generic_stateid(struct nfs4_stateid *stp) +{ + int oflag; + + if (stp->st_access_bmap) { + oflag = nfs4_access_bmap_to_omode(stp); + nfs4_file_put_access(stp->st_file, oflag); + } + put_nfs4_file(stp->st_file); + kmem_cache_free(stateid_slab, stp); +} + +static void release_lock_stateid(struct nfs4_stateid *stp) +{ + struct file *file; + + unhash_generic_stateid(stp); + file = find_any_file(stp->st_file); + if (file) + locks_remove_posix(file, (fl_owner_t)stp->st_stateowner); + free_generic_stateid(stp); +} + +static void unhash_lockowner(struct nfs4_stateowner *sop) +{ + struct nfs4_stateid *stp; + + list_del(&sop->so_idhash); + list_del(&sop->so_strhash); + list_del(&sop->so_perstateid); + while (!list_empty(&sop->so_stateids)) { + stp = list_first_entry(&sop->so_stateids, + struct nfs4_stateid, st_perstateowner); + release_lock_stateid(stp); + } +} + +static void release_lockowner(struct nfs4_stateowner *sop) { - int oflag = nfs4_access_bmap_to_omode(stp); + unhash_lockowner(sop); + nfs4_put_stateowner(sop); +} + +static void +release_stateid_lockowners(struct nfs4_stateid *open_stp) +{ + struct nfs4_stateowner *lock_sop; + while (!list_empty(&open_stp->st_lockowners)) { + lock_sop = list_entry(open_stp->st_lockowners.next, + struct nfs4_stateowner, so_perstateid); + /* list_del(&open_stp->st_lockowners); */ + BUG_ON(lock_sop->so_is_open_owner); + release_lockowner(lock_sop); + } +} + +static void release_open_stateid(struct nfs4_stateid *stp) +{ unhash_generic_stateid(stp); release_stateid_lockowners(stp); - nfs4_file_put_access(stp->st_file, oflag); free_generic_stateid(stp); } @@ -3735,6 +3739,7 @@ stp->st_stateid.si_stateownerid = sop->so_id; stp->st_stateid.si_fileid = fp->fi_id; stp->st_stateid.si_generation = 0; + stp->st_access_bmap = 0; stp->st_deny_bmap = open_stp->st_deny_bmap; stp->st_openstp = open_stp; @@ -3749,6 +3754,17 @@ LOFF_OVERFLOW(offset, length))); } +static void get_lock_access(struct nfs4_stateid *lock_stp, u32 access) +{ + struct nfs4_file *fp = lock_stp->st_file; + int oflag = nfs4_access_to_omode(access); + + if (test_bit(access, &lock_stp->st_access_bmap)) + return; + nfs4_file_get_access(fp, oflag); + __set_bit(access, &lock_stp->st_access_bmap); +} + /* * LOCK operation */ @@ -3765,7 +3781,6 @@ struct file_lock conflock; __be32 status = 0; unsigned int strhashval; - unsigned int cmd; int err; dprintk("NFSD: nfsd4_lock: start=%Ld length=%Ld\n", @@ -3847,22 +3862,18 @@ switch (lock->lk_type) { case NFS4_READ_LT: case NFS4_READW_LT: - if (find_readable_file(lock_stp->st_file)) { - nfs4_get_vfs_file(rqstp, fp, &cstate->current_fh, NFS4_SHARE_ACCESS_READ); - filp = find_readable_file(lock_stp->st_file); - } + filp = find_readable_file(lock_stp->st_file); + if (filp) + get_lock_access(lock_stp, NFS4_SHARE_ACCESS_READ); file_lock.fl_type = F_RDLCK; - cmd = F_SETLK; - break; + break; case NFS4_WRITE_LT: case NFS4_WRITEW_LT: - if (find_writeable_file(lock_stp->st_file)) { - nfs4_get_vfs_file(rqstp, fp, &cstate->current_fh, NFS4_SHARE_ACCESS_WRITE); - filp = find_writeable_file(lock_stp->st_file); - } + filp = find_writeable_file(lock_stp->st_file); + if (filp) + get_lock_access(lock_stp, NFS4_SHARE_ACCESS_WRITE); file_lock.fl_type = F_WRLCK; - cmd = F_SETLK; - break; + break; default: status = nfserr_inval; goto out; @@ -3886,7 +3897,7 @@ * Note: locks.c uses the BKL to protect the inode's lock list. */ - err = vfs_lock_file(filp, cmd, &file_lock, &conflock); + err = vfs_lock_file(filp, F_SETLK, &file_lock, &conflock); switch (-err) { case 0: /* success! */ update_stateid(&lock_stp->st_stateid); --- linux-2.6.38.orig/fs/nfsd/nfs4xdr.c +++ linux-2.6.38/fs/nfsd/nfs4xdr.c @@ -1142,7 +1142,7 @@ u32 dummy; char *machine_name; - int i, j; + int i; int nr_secflavs; READ_BUF(16); @@ -1215,8 +1215,6 @@ READ_BUF(4); READ32(dummy); READ_BUF(dummy * 4); - for (j = 0; j < dummy; ++j) - READ32(dummy); break; case RPC_AUTH_GSS: dprintk("RPC_AUTH_GSS callback secflavor " @@ -1232,7 +1230,6 @@ READ_BUF(4); READ32(dummy); READ_BUF(dummy); - p += XDR_QUADLEN(dummy); break; default: dprintk("Illegal callback secflavor\n"); --- linux-2.6.38.orig/fs/btrfs/ioctl.c +++ linux-2.6.38/fs/btrfs/ioctl.c @@ -294,6 +294,10 @@ inode_item->nbytes = cpu_to_le64(root->leafsize); inode_item->mode = cpu_to_le32(S_IFDIR | 0755); + root_item.flags = 0; + root_item.byte_limit = 0; + inode_item->flags = cpu_to_le64(BTRFS_INODE_ROOT_ITEM_INIT); + btrfs_set_root_bytenr(&root_item, leaf->start); btrfs_set_root_generation(&root_item, trans->transid); btrfs_set_root_level(&root_item, 0); --- linux-2.6.38.orig/fs/btrfs/root-tree.c +++ linux-2.6.38/fs/btrfs/root-tree.c @@ -471,3 +471,21 @@ btrfs_free_path(path); return 0; } + +/* + * Old btrfs forgets to init root_item->flags and root_item->byte_limit + * for subvolumes. To work around this problem, we steal a bit from + * root_item->inode_item->flags, and use it to indicate if those fields + * have been properly initialized. + */ +void btrfs_check_and_init_root_item(struct btrfs_root_item *root_item) +{ + u64 inode_flags = le64_to_cpu(root_item->inode.flags); + + if (!(inode_flags & BTRFS_INODE_ROOT_ITEM_INIT)) { + inode_flags |= BTRFS_INODE_ROOT_ITEM_INIT; + root_item->inode.flags = cpu_to_le64(inode_flags); + root_item->flags = 0; + root_item->byte_limit = 0; + } +} --- linux-2.6.38.orig/fs/btrfs/ctree.h +++ linux-2.6.38/fs/btrfs/ctree.h @@ -1284,6 +1284,8 @@ #define BTRFS_INODE_NOATIME (1 << 9) #define BTRFS_INODE_DIRSYNC (1 << 10) +#define BTRFS_INODE_ROOT_ITEM_INIT (1 << 31) + /* some macros to generate set/get funcs for the struct fields. This * assumes there is a lefoo_to_cpu for every type, so lets make a simple * one for u8: @@ -2355,6 +2357,8 @@ int btrfs_find_orphan_roots(struct btrfs_root *tree_root); int btrfs_set_root_node(struct btrfs_root_item *item, struct extent_buffer *node); +void btrfs_check_and_init_root_item(struct btrfs_root_item *item); + /* dir-item.c */ int btrfs_insert_dir_item(struct btrfs_trans_handle *trans, struct btrfs_root *root, const char *name, --- linux-2.6.38.orig/fs/btrfs/disk-io.c +++ linux-2.6.38/fs/btrfs/disk-io.c @@ -1184,8 +1184,10 @@ root->commit_root = btrfs_root_node(root); BUG_ON(!root->node); out: - if (location->objectid != BTRFS_TREE_LOG_OBJECTID) + if (location->objectid != BTRFS_TREE_LOG_OBJECTID) { root->ref_cows = 1; + btrfs_check_and_init_root_item(&root->root_item); + } return root; } --- linux-2.6.38.orig/fs/btrfs/transaction.c +++ linux-2.6.38/fs/btrfs/transaction.c @@ -970,6 +970,7 @@ record_root_in_trans(trans, root); btrfs_set_root_last_snapshot(&root->root_item, trans->transid); memcpy(new_root_item, &root->root_item, sizeof(*new_root_item)); + btrfs_check_and_init_root_item(new_root_item); root_flags = btrfs_root_flags(new_root_item); if (pending->readonly) --- linux-2.6.38.orig/fs/nilfs2/file.c +++ linux-2.6.38/fs/nilfs2/file.c @@ -72,10 +72,9 @@ /* * check to see if the page is mapped already (no holes) */ - if (PageMappedToDisk(page)) { - unlock_page(page); + if (PageMappedToDisk(page)) goto mapped; - } + if (page_has_buffers(page)) { struct buffer_head *bh, *head; int fully_mapped = 1; @@ -90,7 +89,6 @@ if (fully_mapped) { SetPageMappedToDisk(page); - unlock_page(page); goto mapped; } } @@ -105,16 +103,17 @@ return VM_FAULT_SIGBUS; ret = block_page_mkwrite(vma, vmf, nilfs_get_block); - if (unlikely(ret)) { + if (ret != VM_FAULT_LOCKED) { nilfs_transaction_abort(inode->i_sb); return ret; } + nilfs_set_file_dirty(inode, 1 << (PAGE_SHIFT - inode->i_blkbits)); nilfs_transaction_commit(inode->i_sb); mapped: SetPageChecked(page); wait_on_page_writeback(page); - return 0; + return VM_FAULT_LOCKED; } static const struct vm_operations_struct nilfs_file_vm_ops = { --- linux-2.6.38.orig/fs/squashfs/zlib_wrapper.c +++ linux-2.6.38/fs/squashfs/zlib_wrapper.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "squashfs_fs.h" #include "squashfs_fs_sb.h" @@ -37,8 +38,7 @@ z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL); if (stream == NULL) goto failed; - stream->workspace = kmalloc(zlib_inflate_workspacesize(), - GFP_KERNEL); + stream->workspace = vmalloc(zlib_inflate_workspacesize()); if (stream->workspace == NULL) goto failed; @@ -56,7 +56,7 @@ z_stream *stream = strm; if (stream) - kfree(stream->workspace); + vfree(stream->workspace); kfree(stream); } --- linux-2.6.38.orig/fs/squashfs/namei.c +++ linux-2.6.38/fs/squashfs/namei.c @@ -176,6 +176,11 @@ length += sizeof(dirh); dir_count = le32_to_cpu(dirh.count) + 1; + + /* dir_count should never be larger than 256 */ + if (dir_count > 256) + goto data_error; + while (dir_count--) { /* * Read directory entry. @@ -187,6 +192,10 @@ size = le16_to_cpu(dire->size) + 1; + /* size should never be larger than SQUASHFS_NAME_LEN */ + if (size > SQUASHFS_NAME_LEN) + goto data_error; + err = squashfs_read_metadata(dir->i_sb, dire->name, &block, &offset, size); if (err < 0) @@ -228,6 +237,9 @@ d_add(dentry, inode); return ERR_PTR(0); +data_error: + err = -EIO; + read_failure: ERROR("Unable to read directory block [%llx:%x]\n", squashfs_i(dir)->start + msblk->directory_table, --- linux-2.6.38.orig/fs/squashfs/dir.c +++ linux-2.6.38/fs/squashfs/dir.c @@ -172,6 +172,11 @@ length += sizeof(dirh); dir_count = le32_to_cpu(dirh.count) + 1; + + /* dir_count should never be larger than 256 */ + if (dir_count > 256) + goto failed_read; + while (dir_count--) { /* * Read directory entry. @@ -183,6 +188,10 @@ size = le16_to_cpu(dire->size) + 1; + /* size should never be larger than SQUASHFS_NAME_LEN */ + if (size > SQUASHFS_NAME_LEN) + goto failed_read; + err = squashfs_read_metadata(inode->i_sb, dire->name, &block, &offset, size); if (err < 0) --- linux-2.6.38.orig/fs/ext3/namei.c +++ linux-2.6.38/fs/ext3/namei.c @@ -1416,10 +1416,19 @@ frame->at = entries; frame->bh = bh; bh = bh2; + /* + * Mark buffers dirty here so that if do_split() fails we write a + * consistent set of buffers to disk. + */ + ext3_journal_dirty_metadata(handle, frame->bh); + ext3_journal_dirty_metadata(handle, bh); de = do_split(handle,dir, &bh, frame, &hinfo, &retval); - dx_release (frames); - if (!(de)) + if (!de) { + ext3_mark_inode_dirty(handle, dir); + dx_release(frames); return retval; + } + dx_release(frames); return add_dirent_to_buf(handle, dentry, inode, de, bh); } @@ -1540,8 +1549,8 @@ goto cleanup; node2 = (struct dx_node *)(bh2->b_data); entries2 = node2->entries; + memset(&node2->fake, 0, sizeof(struct fake_dirent)); node2->fake.rec_len = ext3_rec_len_to_disk(sb->s_blocksize); - node2->fake.inode = 0; BUFFER_TRACE(frame->bh, "get_write_access"); err = ext3_journal_get_write_access(handle, frame->bh); if (err) --- linux-2.6.38.orig/fs/ext3/super.c +++ linux-2.6.38/fs/ext3/super.c @@ -1464,6 +1464,13 @@ return; } + /* Check if feature set allows readwrite operations */ + if (EXT3_HAS_RO_COMPAT_FEATURE(sb, ~EXT3_FEATURE_RO_COMPAT_SUPP)) { + ext3_msg(sb, KERN_INFO, "Skipping orphan cleanup due to " + "unknown ROCOMPAT features"); + return; + } + if (EXT3_SB(sb)->s_mount_state & EXT3_ERROR_FS) { if (es->s_last_orphan) jbd_debug(1, "Errors on filesystem, " --- linux-2.6.38.orig/fs/proc/task_mmu.c +++ linux-2.6.38/fs/proc/task_mmu.c @@ -119,11 +119,11 @@ priv->task = get_pid_task(priv->pid, PIDTYPE_PID); if (!priv->task) - return NULL; + return ERR_PTR(-ESRCH); mm = mm_for_maps(priv->task); - if (!mm) - return NULL; + if (!mm || IS_ERR(mm)) + return mm; down_read(&mm->mmap_sem); tail_vma = get_gate_vma(priv->task); @@ -180,7 +180,8 @@ struct proc_maps_private *priv = m->private; struct vm_area_struct *vma = v; - vma_stop(priv, vma); + if (!IS_ERR(vma)) + vma_stop(priv, vma); if (priv->task) put_task_struct(priv->task); } @@ -211,7 +212,7 @@ int flags = vma->vm_flags; unsigned long ino = 0; unsigned long long pgoff = 0; - unsigned long start; + unsigned long start, end; dev_t dev = 0; int len; @@ -224,13 +225,15 @@ /* 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; + if (stack_guard_page_start(vma, start)) + start += PAGE_SIZE; + end = vma->vm_end; + if (stack_guard_page_end(vma, end)) + end -= PAGE_SIZE; seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", start, - vma->vm_end, + end, flags & VM_READ ? 'r' : '-', flags & VM_WRITE ? 'w' : '-', flags & VM_EXEC ? 'x' : '-', @@ -249,8 +252,8 @@ const char *name = arch_vma_name(vma); if (!name) { if (mm) { - if (vma->vm_start <= mm->start_brk && - vma->vm_end >= mm->brk) { + if (vma->vm_start <= mm->brk && + vma->vm_end >= mm->start_brk) { name = "[heap]"; } else if (vma->vm_start <= mm->start_stack && vma->vm_end >= mm->start_stack) { @@ -728,8 +731,9 @@ if (!task) goto out; - ret = -EACCES; - if (!ptrace_may_access(task, PTRACE_MODE_READ)) + mm = mm_for_maps(task); + ret = PTR_ERR(mm); + if (!mm || IS_ERR(mm)) goto out_task; ret = -EINVAL; @@ -742,10 +746,6 @@ if (!count) goto out_task; - mm = get_task_mm(task); - if (!mm) - goto out_task; - pm.len = PM_ENTRY_BYTES * (PAGEMAP_WALK_SIZE >> PAGE_SHIFT); pm.buffer = kmalloc(pm.len, GFP_TEMPORARY); ret = -ENOMEM; --- linux-2.6.38.orig/fs/proc/base.c +++ linux-2.6.38/fs/proc/base.c @@ -225,15 +225,17 @@ struct mm_struct *mm_for_maps(struct task_struct *task) { struct mm_struct *mm; + int err; - if (mutex_lock_killable(&task->signal->cred_guard_mutex)) - return NULL; + err = mutex_lock_killable(&task->signal->cred_guard_mutex); + if (err) + return ERR_PTR(err); mm = get_task_mm(task); if (mm && mm != current->mm && !ptrace_may_access(task, PTRACE_MODE_READ)) { mmput(mm); - mm = NULL; + mm = ERR_PTR(-EACCES); } mutex_unlock(&task->signal->cred_guard_mutex); @@ -279,9 +281,9 @@ static int proc_pid_auxv(struct task_struct *task, char *buffer) { - int res = 0; - struct mm_struct *mm = get_task_mm(task); - if (mm) { + struct mm_struct *mm = mm_for_maps(task); + int res = PTR_ERR(mm); + if (mm && !IS_ERR(mm)) { unsigned int nwords = 0; do { nwords += 2; @@ -318,6 +320,23 @@ } #endif /* CONFIG_KALLSYMS */ +static int lock_trace(struct task_struct *task) +{ + int err = mutex_lock_killable(&task->signal->cred_guard_mutex); + if (err) + return err; + if (!ptrace_may_access(task, PTRACE_MODE_ATTACH)) { + mutex_unlock(&task->signal->cred_guard_mutex); + return -EPERM; + } + return 0; +} + +static void unlock_trace(struct task_struct *task) +{ + mutex_unlock(&task->signal->cred_guard_mutex); +} + #ifdef CONFIG_STACKTRACE #define MAX_STACK_TRACE_DEPTH 64 @@ -327,6 +346,7 @@ { struct stack_trace trace; unsigned long *entries; + int err; int i; entries = kmalloc(MAX_STACK_TRACE_DEPTH * sizeof(*entries), GFP_KERNEL); @@ -337,15 +357,20 @@ trace.max_entries = MAX_STACK_TRACE_DEPTH; trace.entries = entries; trace.skip = 0; - save_stack_trace_tsk(task, &trace); - for (i = 0; i < trace.nr_entries; i++) { - seq_printf(m, "[<%p>] %pS\n", - (void *)entries[i], (void *)entries[i]); + err = lock_trace(task); + if (!err) { + save_stack_trace_tsk(task, &trace); + + for (i = 0; i < trace.nr_entries; i++) { + seq_printf(m, "[<%pK>] %pS\n", + (void *)entries[i], (void *)entries[i]); + } + unlock_trace(task); } kfree(entries); - return 0; + return err; } #endif @@ -508,18 +533,22 @@ { long nr; unsigned long args[6], sp, pc; + int res = lock_trace(task); + if (res) + return res; if (task_current_syscall(task, &nr, args, 6, &sp, &pc)) - return sprintf(buffer, "running\n"); - - if (nr < 0) - return sprintf(buffer, "%ld 0x%lx 0x%lx\n", nr, sp, pc); - - return sprintf(buffer, + res = sprintf(buffer, "running\n"); + else if (nr < 0) + res = sprintf(buffer, "%ld 0x%lx 0x%lx\n", nr, sp, pc); + else + res = sprintf(buffer, "%ld 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx\n", nr, args[0], args[1], args[2], args[3], args[4], args[5], sp, pc); + unlock_trace(task); + return res; } #endif /* CONFIG_HAVE_ARCH_TRACEHOOK */ @@ -917,20 +946,18 @@ if (!task) goto out_no_task; - if (!ptrace_may_access(task, PTRACE_MODE_READ)) - goto out; - ret = -ENOMEM; page = (char *)__get_free_page(GFP_TEMPORARY); if (!page) goto out; - ret = 0; - mm = get_task_mm(task); - if (!mm) + mm = mm_for_maps(task); + ret = PTR_ERR(mm); + if (!mm || IS_ERR(mm)) goto out_free; + ret = 0; while (count > 0) { int this_len, retval, max_len; @@ -2748,8 +2775,12 @@ static int proc_pid_personality(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task) { - seq_printf(m, "%08x\n", task->personality); - return 0; + int err = lock_trace(task); + if (!err) { + seq_printf(m, "%08x\n", task->personality); + unlock_trace(task); + } + return err; } /* @@ -2768,7 +2799,7 @@ REG("environ", S_IRUSR, proc_environ_operations), INF("auxv", S_IRUSR, proc_pid_auxv), ONE("status", S_IRUGO, proc_pid_status), - ONE("personality", S_IRUSR, proc_pid_personality), + ONE("personality", S_IRUGO, proc_pid_personality), INF("limits", S_IRUGO, proc_pid_limits), #ifdef CONFIG_SCHED_DEBUG REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), @@ -2778,7 +2809,7 @@ #endif REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations), #ifdef CONFIG_HAVE_ARCH_TRACEHOOK - INF("syscall", S_IRUSR, proc_pid_syscall), + INF("syscall", S_IRUGO, proc_pid_syscall), #endif INF("cmdline", S_IRUGO, proc_pid_cmdline), ONE("stat", S_IRUGO, proc_tgid_stat), @@ -2797,7 +2828,7 @@ #ifdef CONFIG_PROC_PAGE_MONITOR REG("clear_refs", S_IWUSR, proc_clear_refs_operations), REG("smaps", S_IRUGO, proc_smaps_operations), - REG("pagemap", S_IRUSR, proc_pagemap_operations), + REG("pagemap", S_IRUGO, proc_pagemap_operations), #endif #ifdef CONFIG_SECURITY DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations), @@ -2806,7 +2837,7 @@ INF("wchan", S_IRUGO, proc_pid_wchan), #endif #ifdef CONFIG_STACKTRACE - ONE("stack", S_IRUSR, proc_pid_stack), + ONE("stack", S_IRUGO, proc_pid_stack), #endif #ifdef CONFIG_SCHEDSTATS INF("schedstat", S_IRUGO, proc_pid_schedstat), @@ -3066,11 +3097,16 @@ /* for the /proc/ directory itself, after non-process stuff has been done */ int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir) { - unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY; - struct task_struct *reaper = get_proc_task(filp->f_path.dentry->d_inode); + unsigned int nr; + struct task_struct *reaper; struct tgid_iter iter; struct pid_namespace *ns; + if (filp->f_pos >= PID_MAX_LIMIT + TGID_OFFSET) + goto out_no_task; + nr = filp->f_pos - FIRST_PROCESS_ENTRY; + + reaper = get_proc_task(filp->f_path.dentry->d_inode); if (!reaper) goto out_no_task; @@ -3108,14 +3144,14 @@ REG("environ", S_IRUSR, proc_environ_operations), INF("auxv", S_IRUSR, proc_pid_auxv), ONE("status", S_IRUGO, proc_pid_status), - ONE("personality", S_IRUSR, proc_pid_personality), + ONE("personality", S_IRUGO, proc_pid_personality), INF("limits", S_IRUGO, proc_pid_limits), #ifdef CONFIG_SCHED_DEBUG REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), #endif REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations), #ifdef CONFIG_HAVE_ARCH_TRACEHOOK - INF("syscall", S_IRUSR, proc_pid_syscall), + INF("syscall", S_IRUGO, proc_pid_syscall), #endif INF("cmdline", S_IRUGO, proc_pid_cmdline), ONE("stat", S_IRUGO, proc_tid_stat), @@ -3133,7 +3169,7 @@ #ifdef CONFIG_PROC_PAGE_MONITOR REG("clear_refs", S_IWUSR, proc_clear_refs_operations), REG("smaps", S_IRUGO, proc_smaps_operations), - REG("pagemap", S_IRUSR, proc_pagemap_operations), + REG("pagemap", S_IRUGO, proc_pagemap_operations), #endif #ifdef CONFIG_SECURITY DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations), @@ -3142,7 +3178,7 @@ INF("wchan", S_IRUGO, proc_pid_wchan), #endif #ifdef CONFIG_STACKTRACE - ONE("stack", S_IRUSR, proc_pid_stack), + ONE("stack", S_IRUGO, proc_pid_stack), #endif #ifdef CONFIG_SCHEDSTATS INF("schedstat", S_IRUGO, proc_pid_schedstat), --- linux-2.6.38.orig/fs/proc/Makefile +++ linux-2.6.38/fs/proc/Makefile @@ -27,3 +27,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.38.orig/fs/proc/task_nommu.c +++ linux-2.6.38/fs/proc/task_nommu.c @@ -199,13 +199,13 @@ /* pin the task and mm whilst we play with them */ priv->task = get_pid_task(priv->pid, PIDTYPE_PID); if (!priv->task) - return NULL; + return ERR_PTR(-ESRCH); mm = mm_for_maps(priv->task); - if (!mm) { + if (!mm || IS_ERR(mm)) { put_task_struct(priv->task); priv->task = NULL; - return NULL; + return mm; } down_read(&mm->mmap_sem); --- linux-2.6.38.orig/fs/proc/array.c +++ linux-2.6.38/fs/proc/array.c @@ -489,8 +489,8 @@ vsize, mm ? get_mm_rss(mm) : 0, rsslim, - mm ? mm->start_code : 0, - mm ? mm->end_code : 0, + mm ? (permitted ? mm->start_code : 1) : 0, + mm ? (permitted ? mm->end_code : 1) : 0, (permitted && mm) ? mm->start_stack : 0, esp, eip, --- linux-2.6.38.orig/fs/proc/version_signature.c +++ linux-2.6.38/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.38.orig/fs/ecryptfs/main.c +++ linux-2.6.38/fs/ecryptfs/main.c @@ -218,6 +218,7 @@ ecryptfs_opt_encrypted_view, ecryptfs_opt_fnek_sig, ecryptfs_opt_fn_cipher, ecryptfs_opt_fn_cipher_key_bytes, ecryptfs_opt_unlink_sigs, ecryptfs_opt_mount_auth_tok_only, + ecryptfs_opt_check_dev_ruid, ecryptfs_opt_err }; static const match_table_t tokens = { @@ -234,6 +235,7 @@ {ecryptfs_opt_fn_cipher_key_bytes, "ecryptfs_fn_key_bytes=%u"}, {ecryptfs_opt_unlink_sigs, "ecryptfs_unlink_sigs"}, {ecryptfs_opt_mount_auth_tok_only, "ecryptfs_mount_auth_tok_only"}, + {ecryptfs_opt_check_dev_ruid, "ecryptfs_check_dev_ruid"}, {ecryptfs_opt_err, NULL} }; @@ -277,6 +279,7 @@ * ecryptfs_parse_options * @sb: The ecryptfs super block * @options: The options pased to the kernel + * @check_ruid: set to 1 if device uid should be checked against the ruid * * Parse mount options: * debug=N - ecryptfs_verbosity level for debug output @@ -292,7 +295,8 @@ * * Returns zero on success; non-zero on error */ -static int ecryptfs_parse_options(struct ecryptfs_sb_info *sbi, char *options) +static int ecryptfs_parse_options(struct ecryptfs_sb_info *sbi, char *options, + uid_t *check_ruid) { char *p; int rc = 0; @@ -317,6 +321,8 @@ char *cipher_key_bytes_src; char *fn_cipher_key_bytes_src; + *check_ruid = 0; + if (!options) { rc = -EINVAL; goto out; @@ -421,6 +427,9 @@ mount_crypt_stat->flags |= ECRYPTFS_GLOBAL_MOUNT_AUTH_TOK_ONLY; break; + case ecryptfs_opt_check_dev_ruid: + *check_ruid = 1; + break; case ecryptfs_opt_err: default: printk(KERN_WARNING @@ -516,6 +525,7 @@ const char *err = "Getting sb failed"; struct inode *inode; struct path path; + uid_t check_ruid; int rc; sbi = kmem_cache_zalloc(ecryptfs_sb_info_cache, GFP_KERNEL); @@ -524,7 +534,7 @@ goto out; } - rc = ecryptfs_parse_options(sbi, raw_data); + rc = ecryptfs_parse_options(sbi, raw_data, &check_ruid); if (rc) { err = "Error parsing options"; goto out; @@ -562,6 +572,15 @@ "known incompatibilities\n"); goto out_free; } + + if (check_ruid && path.dentry->d_inode->i_uid != current_uid()) { + rc = -EPERM; + printk(KERN_ERR "Mount of device (uid: %d) not owned by " + "requested user (uid: %d)\n", + path.dentry->d_inode->i_uid, current_uid()); + goto out_free; + } + ecryptfs_set_superblock_lower(s, path.dentry->d_sb); s->s_maxbytes = path.dentry->d_sb->s_maxbytes; s->s_blocksize = path.dentry->d_sb->s_blocksize; --- linux-2.6.38.orig/fs/ecryptfs/keystore.c +++ linux-2.6.38/fs/ecryptfs/keystore.c @@ -492,8 +492,8 @@ struct mutex *tfm_mutex; char *block_aligned_filename; struct ecryptfs_auth_tok *auth_tok; - struct scatterlist src_sg; - struct scatterlist dst_sg; + struct scatterlist src_sg[2]; + struct scatterlist dst_sg[2]; struct blkcipher_desc desc; char iv[ECRYPTFS_MAX_IV_BYTES]; char hash[ECRYPTFS_TAG_70_DIGEST_SIZE]; @@ -709,23 +709,21 @@ memcpy(&s->block_aligned_filename[s->num_rand_bytes], filename, filename_size); rc = virt_to_scatterlist(s->block_aligned_filename, - s->block_aligned_filename_size, &s->src_sg, 1); - if (rc != 1) { + s->block_aligned_filename_size, s->src_sg, 2); + if (rc < 1) { printk(KERN_ERR "%s: Internal error whilst attempting to " - "convert filename memory to scatterlist; " - "expected rc = 1; got rc = [%d]. " + "convert filename memory to scatterlist; rc = [%d]. " "block_aligned_filename_size = [%zd]\n", __func__, rc, s->block_aligned_filename_size); goto out_release_free_unlock; } rc = virt_to_scatterlist(&dest[s->i], s->block_aligned_filename_size, - &s->dst_sg, 1); - if (rc != 1) { + s->dst_sg, 2); + if (rc < 1) { printk(KERN_ERR "%s: Internal error whilst attempting to " "convert encrypted filename memory to scatterlist; " - "expected rc = 1; got rc = [%d]. " - "block_aligned_filename_size = [%zd]\n", __func__, rc, - s->block_aligned_filename_size); + "rc = [%d]. block_aligned_filename_size = [%zd]\n", + __func__, rc, s->block_aligned_filename_size); goto out_release_free_unlock; } /* The characters in the first block effectively do the job @@ -748,7 +746,7 @@ mount_crypt_stat->global_default_fn_cipher_key_bytes); goto out_release_free_unlock; } - rc = crypto_blkcipher_encrypt_iv(&s->desc, &s->dst_sg, &s->src_sg, + rc = crypto_blkcipher_encrypt_iv(&s->desc, s->dst_sg, s->src_sg, s->block_aligned_filename_size); if (rc) { printk(KERN_ERR "%s: Error attempting to encrypt filename; " @@ -782,8 +780,8 @@ struct mutex *tfm_mutex; char *decrypted_filename; struct ecryptfs_auth_tok *auth_tok; - struct scatterlist src_sg; - struct scatterlist dst_sg; + struct scatterlist src_sg[2]; + struct scatterlist dst_sg[2]; struct blkcipher_desc desc; char fnek_sig_hex[ECRYPTFS_SIG_SIZE_HEX + 1]; char iv[ECRYPTFS_MAX_IV_BYTES]; @@ -890,13 +888,12 @@ } mutex_lock(s->tfm_mutex); rc = virt_to_scatterlist(&data[(*packet_size)], - s->block_aligned_filename_size, &s->src_sg, 1); - if (rc != 1) { + s->block_aligned_filename_size, s->src_sg, 2); + if (rc < 1) { printk(KERN_ERR "%s: Internal error whilst attempting to " "convert encrypted filename memory to scatterlist; " - "expected rc = 1; got rc = [%d]. " - "block_aligned_filename_size = [%zd]\n", __func__, rc, - s->block_aligned_filename_size); + "rc = [%d]. block_aligned_filename_size = [%zd]\n", + __func__, rc, s->block_aligned_filename_size); goto out_unlock; } (*packet_size) += s->block_aligned_filename_size; @@ -910,13 +907,12 @@ goto out_unlock; } rc = virt_to_scatterlist(s->decrypted_filename, - s->block_aligned_filename_size, &s->dst_sg, 1); - if (rc != 1) { + s->block_aligned_filename_size, s->dst_sg, 2); + if (rc < 1) { printk(KERN_ERR "%s: Internal error whilst attempting to " "convert decrypted filename memory to scatterlist; " - "expected rc = 1; got rc = [%d]. " - "block_aligned_filename_size = [%zd]\n", __func__, rc, - s->block_aligned_filename_size); + "rc = [%d]. block_aligned_filename_size = [%zd]\n", + __func__, rc, s->block_aligned_filename_size); goto out_free_unlock; } /* The characters in the first block effectively do the job of @@ -956,7 +952,7 @@ mount_crypt_stat->global_default_fn_cipher_key_bytes); goto out_free_unlock; } - rc = crypto_blkcipher_decrypt_iv(&s->desc, &s->dst_sg, &s->src_sg, + rc = crypto_blkcipher_decrypt_iv(&s->desc, s->dst_sg, s->src_sg, s->block_aligned_filename_size); if (rc) { printk(KERN_ERR "%s: Error attempting to decrypt filename; " @@ -1563,6 +1559,7 @@ printk(KERN_ERR "Could not find key with description: [%s]\n", sig); rc = process_request_key_err(PTR_ERR(*auth_tok_key)); + (*auth_tok_key) = NULL; goto out; } (*auth_tok) = ecryptfs_get_key_payload_data(*auth_tok_key); --- linux-2.6.38.orig/fs/ecryptfs/mmap.c +++ linux-2.6.38/fs/ecryptfs/mmap.c @@ -374,6 +374,11 @@ && (pos != 0)) zero_user(page, 0, PAGE_CACHE_SIZE); out: + if (unlikely(rc)) { + unlock_page(page); + page_cache_release(page); + *pagep = NULL; + } return rc; } --- linux-2.6.38.orig/fs/nfs/nfs4proc.c +++ linux-2.6.38/fs/nfs/nfs4proc.c @@ -258,9 +258,11 @@ break; nfs4_schedule_stateid_recovery(server, state); goto wait_on_recovery; + case -NFS4ERR_EXPIRED: + if (state != NULL) + nfs4_schedule_stateid_recovery(server, state); case -NFS4ERR_STALE_STATEID: case -NFS4ERR_STALE_CLIENTID: - case -NFS4ERR_EXPIRED: nfs4_schedule_lease_recovery(clp); goto wait_on_recovery; #if defined(CONFIG_NFS_V4_1) @@ -3504,9 +3506,11 @@ break; nfs4_schedule_stateid_recovery(server, state); goto wait_on_recovery; + case -NFS4ERR_EXPIRED: + if (state != NULL) + nfs4_schedule_stateid_recovery(server, state); case -NFS4ERR_STALE_STATEID: case -NFS4ERR_STALE_CLIENTID: - case -NFS4ERR_EXPIRED: nfs4_schedule_lease_recovery(clp); goto wait_on_recovery; #if defined(CONFIG_NFS_V4_1) @@ -4397,6 +4401,7 @@ case -ESTALE: goto out; case -NFS4ERR_EXPIRED: + nfs4_schedule_stateid_recovery(server, state); case -NFS4ERR_STALE_CLIENTID: case -NFS4ERR_STALE_STATEID: nfs4_schedule_lease_recovery(server->nfs_client); --- linux-2.6.38.orig/fs/nfs/nfs4state.c +++ linux-2.6.38/fs/nfs/nfs4state.c @@ -1446,7 +1446,10 @@ #ifdef CONFIG_NFS_V4_1 void nfs4_schedule_session_recovery(struct nfs4_session *session) { - nfs4_schedule_lease_recovery(session->clp); + struct nfs_client *clp = session->clp; + + set_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state); + nfs4_schedule_lease_recovery(clp); } void nfs41_handle_recall_slot(struct nfs_client *clp) @@ -1528,6 +1531,7 @@ status = nfs4_recovery_handle_error(clp, status); goto out; } + clear_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state); /* create_session negotiated new slot table */ clear_bit(NFS4CLNT_RECALL_SLOT, &clp->cl_state); @@ -1600,7 +1604,7 @@ int status = 0; /* Ensure exclusive access to NFSv4 state */ - for(;;) { + do { if (test_and_clear_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state)) { /* We're going to have to re-establish a clientid */ status = nfs4_reclaim_lease(clp); @@ -1684,7 +1688,7 @@ break; if (test_and_set_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) != 0) break; - } + } while (atomic_read(&clp->cl_count) > 1); return; out_error: printk(KERN_WARNING "Error: state manager failed on NFSv4 server %s" --- linux-2.6.38.orig/fs/nfs/super.c +++ linux-2.6.38/fs/nfs/super.c @@ -2077,6 +2077,15 @@ if (error < 0) goto out; + /* + * noac is a special case. It implies -o sync, but that's not + * necessarily reflected in the mtab options. do_remount_sb + * will clear MS_SYNCHRONOUS if -o sync wasn't specified in the + * remount options, so we have to explicitly reset it. + */ + if (data->flags & NFS_MOUNT_NOAC) + *flags |= MS_SYNCHRONOUS; + /* compare new mount options with old ones */ error = nfs_compare_remount_data(nfss, data); out: --- linux-2.6.38.orig/fs/nfs/write.c +++ linux-2.6.38/fs/nfs/write.c @@ -1214,13 +1214,17 @@ #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) static int nfs_commit_set_lock(struct nfs_inode *nfsi, int may_wait) { + int ret; + if (!test_and_set_bit(NFS_INO_COMMIT, &nfsi->flags)) return 1; - if (may_wait && !out_of_line_wait_on_bit_lock(&nfsi->flags, - NFS_INO_COMMIT, nfs_wait_bit_killable, - TASK_KILLABLE)) - return 1; - return 0; + if (!may_wait) + return 0; + ret = out_of_line_wait_on_bit_lock(&nfsi->flags, + NFS_INO_COMMIT, + nfs_wait_bit_killable, + TASK_KILLABLE); + return (ret < 0) ? ret : 1; } static void nfs_commit_clear_lock(struct nfs_inode *nfsi) @@ -1396,9 +1400,10 @@ { LIST_HEAD(head); int may_wait = how & FLUSH_SYNC; - int res = 0; + int res; - if (!nfs_commit_set_lock(NFS_I(inode), may_wait)) + res = nfs_commit_set_lock(NFS_I(inode), may_wait); + if (res <= 0) goto out_mark_dirty; spin_lock(&inode->i_lock); res = nfs_scan_commit(inode, &head, 0, 0); @@ -1407,12 +1412,14 @@ int error = nfs_commit_list(inode, &head, how); if (error < 0) return error; - if (may_wait) - wait_on_bit(&NFS_I(inode)->flags, NFS_INO_COMMIT, - nfs_wait_bit_killable, - TASK_KILLABLE); - else + if (!may_wait) goto out_mark_dirty; + error = wait_on_bit(&NFS_I(inode)->flags, + NFS_INO_COMMIT, + nfs_wait_bit_killable, + TASK_KILLABLE); + if (error < 0) + return error; } else nfs_commit_clear_lock(NFS_I(inode)); return res; --- linux-2.6.38.orig/fs/befs/linuxvfs.c +++ linux-2.6.38/fs/befs/linuxvfs.c @@ -475,17 +475,22 @@ befs_data_stream *data = &befs_ino->i_data.ds; befs_off_t len = data->size; - befs_debug(sb, "Follow long symlink"); - - link = kmalloc(len, GFP_NOFS); - if (!link) { - link = ERR_PTR(-ENOMEM); - } else if (befs_read_lsymlink(sb, data, link, len) != len) { - kfree(link); - befs_error(sb, "Failed to read entire long symlink"); + if (len == 0) { + befs_error(sb, "Long symlink with illegal length"); link = ERR_PTR(-EIO); } else { - link[len - 1] = '\0'; + befs_debug(sb, "Follow long symlink"); + + link = kmalloc(len, GFP_NOFS); + if (!link) { + link = ERR_PTR(-ENOMEM); + } else if (befs_read_lsymlink(sb, data, link, len) != len) { + kfree(link); + befs_error(sb, "Failed to read entire long symlink"); + link = ERR_PTR(-EIO); + } else { + link[len - 1] = '\0'; + } } } else { link = befs_ino->i_data.symlink; --- linux-2.6.38.orig/fs/jbd/journal.c +++ linux-2.6.38/fs/jbd/journal.c @@ -437,9 +437,12 @@ int __log_start_commit(journal_t *journal, tid_t target) { /* - * Are we already doing a recent enough commit? + * The only transaction we can possibly wait upon is the + * currently running transaction (if it exists). Otherwise, + * the target tid must be an old one. */ - if (!tid_geq(journal->j_commit_request, target)) { + if (journal->j_running_transaction && + journal->j_running_transaction->t_tid == target) { /* * We want a new commit: OK, mark the request and wakeup the * commit thread. We do _not_ do the commit ourselves. @@ -451,7 +454,14 @@ journal->j_commit_sequence); wake_up(&journal->j_wait_commit); return 1; - } + } else if (!tid_geq(journal->j_commit_request, target)) + /* This should never happen, but if it does, preserve + the evidence before kjournald goes into a loop and + increments j_commit_sequence beyond all recognition. */ + WARN_ONCE(1, "jbd: bad log_start_commit: %u %u %u %u\n", + journal->j_commit_request, journal->j_commit_sequence, + target, journal->j_running_transaction ? + journal->j_running_transaction->t_tid : 0); return 0; } --- linux-2.6.38.orig/fs/jbd/commit.c +++ linux-2.6.38/fs/jbd/commit.c @@ -722,8 +722,13 @@ required. */ JBUFFER_TRACE(jh, "file as BJ_Forget"); journal_file_buffer(jh, commit_transaction, BJ_Forget); - /* Wake up any transactions which were waiting for this - IO to complete */ + /* + * Wake up any transactions which were waiting for this + * IO to complete. The barrier must be here so that changes + * by journal_file_buffer() take effect before wake_up_bit() + * does the waitqueue check. + */ + smp_mb(); wake_up_bit(&bh->b_state, BH_Unshadow); JBUFFER_TRACE(jh, "brelse shadowed buffer"); __brelse(bh); --- linux-2.6.38.orig/fs/notify/group.c +++ linux-2.6.38/fs/notify/group.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include "fsnotify.h" @@ -70,6 +71,7 @@ if (atomic_dec_and_test(&group->refcnt)) fsnotify_destroy_group(group); } +EXPORT_SYMBOL(fsnotify_put_group); /* * Create a new fsnotify_group and hold a reference for the group returned. @@ -102,3 +104,4 @@ return group; } +EXPORT_SYMBOL(fsnotify_alloc_group); --- linux-2.6.38.orig/fs/notify/mark.c +++ linux-2.6.38/fs/notify/mark.c @@ -113,6 +113,7 @@ if (atomic_dec_and_test(&mark->refcnt)) mark->free_mark(mark); } +EXPORT_SYMBOL(fsnotify_put_mark); /* * Any time a mark is getting freed we end up here. @@ -190,6 +191,7 @@ if (unlikely(atomic_dec_and_test(&group->num_marks))) fsnotify_final_destroy_group(group); } +EXPORT_SYMBOL(fsnotify_destroy_mark); void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask) { @@ -277,6 +279,7 @@ return ret; } +EXPORT_SYMBOL(fsnotify_add_mark); /* * clear any marks in a group in which mark->flags & flags is true @@ -332,6 +335,7 @@ atomic_set(&mark->refcnt, 1); mark->free_mark = free_mark; } +EXPORT_SYMBOL(fsnotify_init_mark); static int fsnotify_mark_destroy(void *ignored) { --- linux-2.6.38.orig/fs/notify/inotify/inotify_fsnotify.c +++ linux-2.6.38/fs/notify/inotify/inotify_fsnotify.c @@ -198,6 +198,7 @@ idr_for_each(&group->inotify_data.idr, idr_callback, group); idr_remove_all(&group->inotify_data.idr); idr_destroy(&group->inotify_data.idr); + atomic_dec(&group->inotify_data.user->inotify_devs); free_uid(group->inotify_data.user); } --- linux-2.6.38.orig/fs/notify/inotify/inotify_user.c +++ linux-2.6.38/fs/notify/inotify/inotify_user.c @@ -290,7 +290,6 @@ static int inotify_release(struct inode *ignored, struct file *file) { struct fsnotify_group *group = file->private_data; - struct user_struct *user = group->inotify_data.user; pr_debug("%s: group=%p\n", __func__, group); @@ -299,8 +298,6 @@ /* free this group, matching get was inotify_init->fsnotify_obtain_group */ fsnotify_put_group(group); - atomic_dec(&user->inotify_devs); - return 0; } @@ -697,7 +694,7 @@ return ret; } -static struct fsnotify_group *inotify_new_group(struct user_struct *user, unsigned int max_events) +static struct fsnotify_group *inotify_new_group(unsigned int max_events) { struct fsnotify_group *group; @@ -710,8 +707,14 @@ spin_lock_init(&group->inotify_data.idr_lock); idr_init(&group->inotify_data.idr); group->inotify_data.last_wd = 0; - group->inotify_data.user = user; group->inotify_data.fa = NULL; + group->inotify_data.user = get_current_user(); + + if (atomic_inc_return(&group->inotify_data.user->inotify_devs) > + inotify_max_user_instances) { + fsnotify_put_group(group); + return ERR_PTR(-EMFILE); + } return group; } @@ -721,7 +724,6 @@ SYSCALL_DEFINE1(inotify_init1, int, flags) { struct fsnotify_group *group; - struct user_struct *user; int ret; /* Check the IN_* constants for consistency. */ @@ -731,31 +733,16 @@ if (flags & ~(IN_CLOEXEC | IN_NONBLOCK)) return -EINVAL; - user = get_current_user(); - if (unlikely(atomic_read(&user->inotify_devs) >= - inotify_max_user_instances)) { - ret = -EMFILE; - goto out_free_uid; - } - /* fsnotify_obtain_group took a reference to group, we put this when we kill the file in the end */ - group = inotify_new_group(user, inotify_max_queued_events); - if (IS_ERR(group)) { - ret = PTR_ERR(group); - goto out_free_uid; - } - - atomic_inc(&user->inotify_devs); + group = inotify_new_group(inotify_max_queued_events); + if (IS_ERR(group)) + return PTR_ERR(group); ret = anon_inode_getfd("inotify", &inotify_fops, group, O_RDONLY | flags); - if (ret >= 0) - return ret; + if (ret < 0) + fsnotify_put_group(group); - fsnotify_put_group(group); - atomic_dec(&user->inotify_devs); -out_free_uid: - free_uid(user); return ret; } --- linux-2.6.38.orig/fs/ext4/extents.c +++ linux-2.6.38/fs/ext4/extents.c @@ -1383,7 +1383,7 @@ /* * ext4_ext_next_allocated_block: - * returns allocated block in subsequent extent or EXT_MAX_BLOCK. + * returns allocated block in subsequent extent or EXT_MAX_BLOCKS. * NOTE: it considers block number from index entry as * allocated block. Thus, index entries have to be consistent * with leaves. @@ -1397,7 +1397,7 @@ depth = path->p_depth; if (depth == 0 && path->p_ext == NULL) - return EXT_MAX_BLOCK; + return EXT_MAX_BLOCKS; while (depth >= 0) { if (depth == path->p_depth) { @@ -1414,12 +1414,12 @@ depth--; } - return EXT_MAX_BLOCK; + return EXT_MAX_BLOCKS; } /* * ext4_ext_next_leaf_block: - * returns first allocated block from next leaf or EXT_MAX_BLOCK + * returns first allocated block from next leaf or EXT_MAX_BLOCKS */ static ext4_lblk_t ext4_ext_next_leaf_block(struct inode *inode, struct ext4_ext_path *path) @@ -1431,7 +1431,7 @@ /* zero-tree has no leaf blocks at all */ if (depth == 0) - return EXT_MAX_BLOCK; + return EXT_MAX_BLOCKS; /* go to index block */ depth--; @@ -1444,7 +1444,7 @@ depth--; } - return EXT_MAX_BLOCK; + return EXT_MAX_BLOCKS; } /* @@ -1627,13 +1627,13 @@ */ if (b2 < b1) { b2 = ext4_ext_next_allocated_block(path); - if (b2 == EXT_MAX_BLOCK) + if (b2 == EXT_MAX_BLOCKS) goto out; } /* check for wrap through zero on extent logical start block*/ if (b1 + len1 < b1) { - len1 = EXT_MAX_BLOCK - b1; + len1 = EXT_MAX_BLOCKS - b1; newext->ee_len = cpu_to_le16(len1); ret = 1; } @@ -1716,7 +1716,7 @@ fex = EXT_LAST_EXTENT(eh); next = ext4_ext_next_leaf_block(inode, path); if (le32_to_cpu(newext->ee_block) > le32_to_cpu(fex->ee_block) - && next != EXT_MAX_BLOCK) { + && next != EXT_MAX_BLOCKS) { ext_debug("next leaf block - %d\n", next); BUG_ON(npath != NULL); npath = ext4_ext_find_extent(inode, next, NULL); @@ -1834,7 +1834,7 @@ BUG_ON(func == NULL); BUG_ON(inode == NULL); - while (block < last && block != EXT_MAX_BLOCK) { + while (block < last && block != EXT_MAX_BLOCKS) { num = last - block; /* find extent for this block */ down_read(&EXT4_I(inode)->i_data_sem); @@ -1967,7 +1967,7 @@ if (ex == NULL) { /* there is no extent yet, so gap is [0;-] */ lblock = 0; - len = EXT_MAX_BLOCK; + len = EXT_MAX_BLOCKS; ext_debug("cache gap(whole file):"); } else if (block < le32_to_cpu(ex->ee_block)) { lblock = block; @@ -2211,8 +2211,8 @@ path[depth].p_ext = ex; a = ex_ee_block > start ? ex_ee_block : start; - b = ex_ee_block + ex_ee_len - 1 < EXT_MAX_BLOCK ? - ex_ee_block + ex_ee_len - 1 : EXT_MAX_BLOCK; + b = ex_ee_block + ex_ee_len - 1 < EXT_MAX_BLOCKS - 1 ? + ex_ee_block + ex_ee_len - 1 : EXT_MAX_BLOCKS - 1; ext_debug(" border %u:%u\n", a, b); @@ -3823,15 +3823,15 @@ flags |= FIEMAP_EXTENT_UNWRITTEN; /* - * If this extent reaches EXT_MAX_BLOCK, it must be last. + * If this extent reaches EXT_MAX_BLOCKS, it must be last. * - * Or if ext4_ext_next_allocated_block is EXT_MAX_BLOCK, + * Or if ext4_ext_next_allocated_block is EXT_MAX_BLOCKS, * this also indicates no more allocated blocks. * - * XXX this might miss a single-block extent at EXT_MAX_BLOCK + * XXX this might miss a single-block extent at EXT_MAX_BLOCKS */ - if (ext4_ext_next_allocated_block(path) == EXT_MAX_BLOCK || - newex->ec_block + newex->ec_len - 1 == EXT_MAX_BLOCK) { + if (ext4_ext_next_allocated_block(path) == EXT_MAX_BLOCKS || + newex->ec_block + newex->ec_len - 1 == EXT_MAX_BLOCKS) { loff_t size = i_size_read(inode); loff_t bs = EXT4_BLOCK_SIZE(inode->i_sb); @@ -3911,8 +3911,8 @@ start_blk = start >> inode->i_sb->s_blocksize_bits; last_blk = (start + len - 1) >> inode->i_sb->s_blocksize_bits; - if (last_blk >= EXT_MAX_BLOCK) - last_blk = EXT_MAX_BLOCK-1; + if (last_blk >= EXT_MAX_BLOCKS) + last_blk = EXT_MAX_BLOCKS-1; len_blks = ((ext4_lblk_t) last_blk) - start_blk + 1; /* --- linux-2.6.38.orig/fs/ext4/inode.c +++ linux-2.6.38/fs/ext4/inode.c @@ -5460,13 +5460,12 @@ /* if nrblocks are contiguous */ if (chunk) { /* - * With N contiguous data blocks, it need at most - * N/EXT4_ADDR_PER_BLOCK(inode->i_sb) indirect blocks - * 2 dindirect blocks - * 1 tindirect block + * With N contiguous data blocks, we need at most + * N/EXT4_ADDR_PER_BLOCK(inode->i_sb) + 1 indirect blocks, + * 2 dindirect blocks, and 1 tindirect block */ - indirects = nrblocks / EXT4_ADDR_PER_BLOCK(inode->i_sb); - return indirects + 3; + return DIV_ROUND_UP(nrblocks, + EXT4_ADDR_PER_BLOCK(inode->i_sb)) + 4; } /* * if nrblocks are not contiguous, worse case, each block touch --- linux-2.6.38.orig/fs/ext4/move_extent.c +++ linux-2.6.38/fs/ext4/move_extent.c @@ -1003,12 +1003,12 @@ return -EINVAL; } - if ((orig_start > EXT_MAX_BLOCK) || - (donor_start > EXT_MAX_BLOCK) || - (*len > EXT_MAX_BLOCK) || - (orig_start + *len > EXT_MAX_BLOCK)) { + if ((orig_start >= EXT_MAX_BLOCKS) || + (donor_start >= EXT_MAX_BLOCKS) || + (*len > EXT_MAX_BLOCKS) || + (orig_start + *len >= EXT_MAX_BLOCKS)) { ext4_debug("ext4 move extent: Can't handle over [%u] blocks " - "[ino:orig %lu, donor %lu]\n", EXT_MAX_BLOCK, + "[ino:orig %lu, donor %lu]\n", EXT_MAX_BLOCKS, orig_inode->i_ino, donor_inode->i_ino); return -EINVAL; } --- linux-2.6.38.orig/fs/ext4/ext4.h +++ linux-2.6.38/fs/ext4/ext4.h @@ -1590,12 +1590,8 @@ */ struct ext4_lazy_init { unsigned long li_state; - - wait_queue_head_t li_wait_daemon; wait_queue_head_t li_wait_task; - struct timer_list li_timer; struct task_struct *li_task; - struct list_head li_request_list; struct mutex li_list_mtx; }; --- linux-2.6.38.orig/fs/ext4/mballoc.c +++ linux-2.6.38/fs/ext4/mballoc.c @@ -1268,6 +1268,8 @@ return 0; err: + if (page) + page_cache_release(page); if (e4b->bd_bitmap_page) page_cache_release(e4b->bd_bitmap_page); if (e4b->bd_buddy_page) --- linux-2.6.38.orig/fs/ext4/ext4_extents.h +++ linux-2.6.38/fs/ext4/ext4_extents.h @@ -133,8 +133,11 @@ #define EXT_BREAK 1 #define EXT_REPEAT 2 -/* Maximum logical block in a file; ext4_extent's ee_block is __le32 */ -#define EXT_MAX_BLOCK 0xffffffff +/* + * Maximum number of logical blocks in a file; ext4_extent's ee_block is + * __le32. + */ +#define EXT_MAX_BLOCKS 0xffffffff /* * EXT_INIT_MAX_LEN is the maximum number of blocks we can have in an --- linux-2.6.38.orig/fs/ext4/super.c +++ linux-2.6.38/fs/ext4/super.c @@ -75,6 +75,7 @@ static int ext4_freeze(struct super_block *sb); static struct dentry *ext4_mount(struct file_system_type *fs_type, int flags, const char *dev_name, void *data); +static int ext4_feature_set_ok(struct super_block *sb, int readonly); static void ext4_destroy_lazyinit_thread(void); static void ext4_unregister_li_request(struct super_block *sb); static void ext4_clear_request_list(void); @@ -2120,6 +2121,13 @@ return; } + /* Check if feature set would not allow a r/w mount */ + if (!ext4_feature_set_ok(sb, 0)) { + ext4_msg(sb, KERN_INFO, "Skipping orphan cleanup due to " + "unknown ROCOMPAT features"); + return; + } + if (EXT4_SB(sb)->s_mount_state & EXT4_ERROR_FS) { if (es->s_last_orphan) jbd_debug(1, "Errors on filesystem, " @@ -2203,6 +2211,12 @@ * in the vfs. ext4 inode has 48 bits of i_block in fsblock units, * so that won't be a limiting factor. * + * However there is other limiting factor. We do store extents in the form + * of starting block and length, hence the resulting length of the extent + * covering maximum file size must fit into on-disk format containers as + * well. Given that length is always by 1 unit bigger than max unit (because + * we count 0 as well) we have to lower the s_maxbytes by one fs block. + * * Note, this does *not* consider any metadata overhead for vfs i_blocks. */ static loff_t ext4_max_size(int blkbits, int has_huge_files) @@ -2224,10 +2238,13 @@ upper_limit <<= blkbits; } - /* 32-bit extent-start container, ee_block */ - res = 1LL << 32; + /* + * 32-bit extent-start container, ee_block. We lower the maxbytes + * by one fs block, so ee_len can cover the extent of maximum file + * size + */ + res = (1LL << 32) - 1; res <<= blkbits; - res -= 1; /* Sanity check against vm- & vfs- imposed limits */ if (res > upper_limit) @@ -2637,12 +2654,6 @@ mod_timer(&sbi->s_err_report, jiffies + 24*60*60*HZ); /* Once a day */ } -static void ext4_lazyinode_timeout(unsigned long data) -{ - struct task_struct *p = (struct task_struct *)data; - wake_up_process(p); -} - /* Find next suitable group and run ext4_init_inode_table */ static int ext4_run_li_request(struct ext4_li_request *elr) { @@ -2690,7 +2701,7 @@ /* * Remove lr_request from the list_request and free the - * request tructure. Should be called with li_list_mtx held + * request structure. Should be called with li_list_mtx held */ static void ext4_remove_li_request(struct ext4_li_request *elr) { @@ -2708,14 +2719,16 @@ static void ext4_unregister_li_request(struct super_block *sb) { - struct ext4_li_request *elr = EXT4_SB(sb)->s_li_request; - - if (!ext4_li_info) + mutex_lock(&ext4_li_mtx); + if (!ext4_li_info) { + mutex_unlock(&ext4_li_mtx); return; + } mutex_lock(&ext4_li_info->li_list_mtx); - ext4_remove_li_request(elr); + ext4_remove_li_request(EXT4_SB(sb)->s_li_request); mutex_unlock(&ext4_li_info->li_list_mtx); + mutex_unlock(&ext4_li_mtx); } static struct task_struct *ext4_lazyinit_task; @@ -2734,14 +2747,10 @@ struct ext4_lazy_init *eli = (struct ext4_lazy_init *)arg; struct list_head *pos, *n; struct ext4_li_request *elr; - unsigned long next_wakeup; - DEFINE_WAIT(wait); + unsigned long next_wakeup, cur; BUG_ON(NULL == eli); - eli->li_timer.data = (unsigned long)current; - eli->li_timer.function = ext4_lazyinode_timeout; - eli->li_task = current; wake_up(&eli->li_wait_task); @@ -2775,19 +2784,15 @@ if (freezing(current)) refrigerator(); - if ((time_after_eq(jiffies, next_wakeup)) || + cur = jiffies; + if ((time_after_eq(cur, next_wakeup)) || (MAX_JIFFY_OFFSET == next_wakeup)) { cond_resched(); continue; } - eli->li_timer.expires = next_wakeup; - add_timer(&eli->li_timer); - prepare_to_wait(&eli->li_wait_daemon, &wait, - TASK_INTERRUPTIBLE); - if (time_before(jiffies, next_wakeup)) - schedule(); - finish_wait(&eli->li_wait_daemon, &wait); + schedule_timeout_interruptible(next_wakeup - cur); + if (kthread_should_stop()) { ext4_clear_request_list(); goto exit_thread; @@ -2811,12 +2816,10 @@ goto cont_thread; } mutex_unlock(&eli->li_list_mtx); - del_timer_sync(&ext4_li_info->li_timer); eli->li_task = NULL; wake_up(&eli->li_wait_task); kfree(ext4_li_info); - ext4_lazyinit_task = NULL; ext4_li_info = NULL; mutex_unlock(&ext4_li_mtx); @@ -2844,7 +2847,6 @@ if (IS_ERR(ext4_lazyinit_task)) { int err = PTR_ERR(ext4_lazyinit_task); ext4_clear_request_list(); - del_timer_sync(&ext4_li_info->li_timer); kfree(ext4_li_info); ext4_li_info = NULL; printk(KERN_CRIT "EXT4: error %d creating inode table " @@ -2893,9 +2895,7 @@ INIT_LIST_HEAD(&eli->li_request_list); mutex_init(&eli->li_list_mtx); - init_waitqueue_head(&eli->li_wait_daemon); init_waitqueue_head(&eli->li_wait_task); - init_timer(&eli->li_timer); eli->li_state |= EXT4_LAZYINIT_QUIT; ext4_li_info = eli; @@ -2970,6 +2970,12 @@ mutex_unlock(&ext4_li_info->li_list_mtx); sbi->s_li_request = elr; + /* + * set elr to NULL here since it has been inserted to + * the request_list and the removal and free of it is + * handled by ext4_clear_request_list from now on. + */ + elr = NULL; if (!(ext4_li_info->li_state & EXT4_LAZYINIT_RUNNING)) { ret = ext4_run_lazyinit_thread(); @@ -3380,6 +3386,10 @@ get_random_bytes(&sbi->s_next_generation, sizeof(u32)); spin_lock_init(&sbi->s_next_gen_lock); + init_timer(&sbi->s_err_report); + sbi->s_err_report.function = print_daily_error_info; + sbi->s_err_report.data = (unsigned long) sb; + err = percpu_counter_init(&sbi->s_freeblocks_counter, ext4_count_free_blocks(sb)); if (!err) { @@ -3635,9 +3645,6 @@ "Opts: %s%s%s", descr, sbi->s_es->s_mount_opts, *sbi->s_es->s_mount_opts ? "; " : "", orig_data); - init_timer(&sbi->s_err_report); - sbi->s_err_report.function = print_daily_error_info; - sbi->s_err_report.data = (unsigned long) sb; if (es->s_error_count) mod_timer(&sbi->s_err_report, jiffies + 300*HZ); /* 5 minutes */ @@ -3659,6 +3666,7 @@ sbi->s_journal = NULL; } failed_mount3: + del_timer(&sbi->s_err_report); if (sbi->s_flex_groups) { if (is_vmalloc_addr(sbi->s_flex_groups)) vfree(sbi->s_flex_groups); --- linux-2.6.38.orig/fs/xfs/linux-2.6/xfs_super.c +++ linux-2.6.38/fs/xfs/linux-2.6/xfs_super.c @@ -1551,10 +1551,14 @@ if (error) goto out_free_sb; - error = xfs_mountfs(mp); - if (error) - goto out_filestream_unmount; - + /* + * we must configure the block size in the superblock before we run the + * full mount process as the mount process can lookup and cache inodes. + * For the same reason we must also initialise the syncd and register + * the inode cache shrinker so that inodes can be reclaimed during + * operations like a quotacheck that iterate all inodes in the + * filesystem. + */ sb->s_magic = XFS_SB_MAGIC; sb->s_blocksize = mp->m_sb.sb_blocksize; sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1; @@ -1562,6 +1566,16 @@ sb->s_time_gran = 1; set_posix_acl_flag(sb); + error = xfs_syncd_init(mp); + if (error) + goto out_filestream_unmount; + + xfs_inode_shrinker_register(mp); + + error = xfs_mountfs(mp); + if (error) + goto out_syncd_stop; + root = igrab(VFS_I(mp->m_rootip)); if (!root) { error = ENOENT; @@ -1577,14 +1591,11 @@ goto fail_vnrele; } - error = xfs_syncd_init(mp); - if (error) - goto fail_vnrele; - - xfs_inode_shrinker_register(mp); - return 0; + out_syncd_stop: + xfs_inode_shrinker_unregister(mp); + xfs_syncd_stop(mp); out_filestream_unmount: xfs_filestream_unmount(mp); out_free_sb: @@ -1608,6 +1619,9 @@ } fail_unmount: + xfs_inode_shrinker_unregister(mp); + xfs_syncd_stop(mp); + /* * Blow away any referenced inode in the filestreams cache. * This can and will cause log traffic as inodes go inactive --- linux-2.6.38.orig/fs/ocfs2/aops.c +++ linux-2.6.38/fs/ocfs2/aops.c @@ -1026,6 +1026,12 @@ ocfs2_figure_cluster_boundaries(OCFS2_SB(inode->i_sb), cpos, &cluster_start, &cluster_end); + /* treat the write as new if the a hole/lseek spanned across + * the page boundary. + */ + new = new | ((i_size_read(inode) <= page_offset(page)) && + (page_offset(page) <= user_pos)); + if (page == wc->w_target_page) { map_from = user_pos & (PAGE_CACHE_SIZE - 1); map_to = map_from + user_len; --- linux-2.6.38.orig/fs/gfs2/file.c +++ linux-2.6.38/fs/gfs2/file.c @@ -777,6 +777,7 @@ loff_t bytes, max_bytes; struct gfs2_alloc *al; int error; + loff_t bsize_mask = ~((loff_t)sdp->sd_sb.sb_bsize - 1); loff_t next = (offset + len - 1) >> sdp->sd_sb.sb_bsize_shift; next = (next + 1) << sdp->sd_sb.sb_bsize_shift; @@ -784,13 +785,15 @@ if (mode & ~FALLOC_FL_KEEP_SIZE) return -EOPNOTSUPP; - offset = (offset >> sdp->sd_sb.sb_bsize_shift) << - sdp->sd_sb.sb_bsize_shift; + offset &= bsize_mask; len = next - offset; bytes = sdp->sd_max_rg_data * sdp->sd_sb.sb_bsize / 2; if (!bytes) bytes = UINT_MAX; + bytes &= bsize_mask; + if (bytes == 0) + bytes = sdp->sd_sb.sb_bsize; gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &ip->i_gh); error = gfs2_glock_nq(&ip->i_gh); @@ -821,6 +824,9 @@ if (error) { if (error == -ENOSPC && bytes > sdp->sd_sb.sb_bsize) { bytes >>= 1; + bytes &= bsize_mask; + if (bytes == 0) + bytes = sdp->sd_sb.sb_bsize; goto retry; } goto out_qunlock; --- linux-2.6.38.orig/fs/quota/dquot.c +++ linux-2.6.38/fs/quota/dquot.c @@ -442,7 +442,7 @@ */ int dquot_commit(struct dquot *dquot) { - int ret = 0, ret2 = 0; + int ret = 0; struct quota_info *dqopt = sb_dqopt(dquot->dq_sb); mutex_lock(&dqopt->dqio_mutex); @@ -454,15 +454,10 @@ spin_unlock(&dq_list_lock); /* Inactive dquot can be only if there was error during read/init * => we have better not writing it */ - if (test_bit(DQ_ACTIVE_B, &dquot->dq_flags)) { + if (test_bit(DQ_ACTIVE_B, &dquot->dq_flags)) ret = dqopt->ops[dquot->dq_type]->commit_dqblk(dquot); - if (info_dirty(&dqopt->info[dquot->dq_type])) { - ret2 = dqopt->ops[dquot->dq_type]->write_file_info( - dquot->dq_sb, dquot->dq_type); - } - if (ret >= 0) - ret = ret2; - } + else + ret = -EIO; out_sem: mutex_unlock(&dqopt->dqio_mutex); return ret; --- linux-2.6.38.orig/init/Kconfig +++ linux-2.6.38/init/Kconfig @@ -82,6 +82,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" @@ -209,6 +216,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 @@ -1209,6 +1225,7 @@ per cpu and per node queues. config SLUB + depends on BROKEN || NUMA || !DISCONTIGMEM bool "SLUB (Unqueued Allocator)" help SLUB is a slab allocator that minimizes cache line usage --- linux-2.6.38.orig/init/initramfs.c +++ linux-2.6.38/init/initramfs.c @@ -8,6 +8,7 @@ #include #include #include +#include static __initdata char *message; static void __init error(char *x) @@ -569,7 +570,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_size); if (err) @@ -582,7 +591,7 @@ initrd_end - initrd_start); if (!err) { free_initrd(); - return 0; + return; } else { clean_rootfs(); unpack_to_rootfs(__initramfs_start, __initramfs_size); @@ -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.38.orig/init/main.c +++ linux-2.6.38/init/main.c @@ -113,6 +113,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. */ @@ -257,7 +262,7 @@ static int __init quiet_kernel(char *str) { - console_loglevel = 4; + console_loglevel = 2; return 0; } @@ -273,10 +278,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) { @@ -292,11 +298,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) @@ -327,6 +333,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; @@ -464,10 +480,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) { const 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 && @@ -587,7 +606,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() @@ -668,8 +687,8 @@ #endif page_cgroup_init(); enable_debug_pagealloc(); - kmemleak_init(); debug_objects_mem_init(); + kmemleak_init(); setup_per_cpu_pageset(); numa_policy_init(); if (late_time_init) @@ -904,6 +923,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.38.orig/init/noinitramfs.c +++ linux-2.6.38/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.38.orig/init/version.c +++ linux-2.6.38/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.38.orig/net/socket.c +++ linux-2.6.38/net/socket.c @@ -2117,14 +2117,16 @@ */ if (MSG_CMSG_COMPAT & flags) { err = __sys_recvmsg(sock, (struct msghdr __user *)compat_entry, - &msg_sys, flags, datagrams); + &msg_sys, flags & ~MSG_WAITFORONE, + datagrams); if (err < 0) break; err = __put_user(err, &compat_entry->msg_len); ++compat_entry; } else { err = __sys_recvmsg(sock, (struct msghdr __user *)entry, - &msg_sys, flags, datagrams); + &msg_sys, flags & ~MSG_WAITFORONE, + datagrams); if (err < 0) break; err = put_user(err, &entry->msg_len); @@ -2583,23 +2585,123 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32) { + struct compat_ethtool_rxnfc __user *compat_rxnfc; + bool convert_in = false, convert_out = false; + size_t buf_size = ALIGN(sizeof(struct ifreq), 8); + struct ethtool_rxnfc __user *rxnfc; struct ifreq __user *ifr; + u32 rule_cnt = 0, actual_rule_cnt; + u32 ethcmd; u32 data; - void __user *datap; + int ret; + + if (get_user(data, &ifr32->ifr_ifru.ifru_data)) + return -EFAULT; - ifr = compat_alloc_user_space(sizeof(*ifr)); + compat_rxnfc = compat_ptr(data); - if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ)) + if (get_user(ethcmd, &compat_rxnfc->cmd)) return -EFAULT; - if (get_user(data, &ifr32->ifr_ifru.ifru_data)) + /* Most ethtool structures are defined without padding. + * Unfortunately struct ethtool_rxnfc is an exception. + */ + switch (ethcmd) { + default: + break; + case ETHTOOL_GRXCLSRLALL: + /* Buffer size is variable */ + if (get_user(rule_cnt, &compat_rxnfc->rule_cnt)) + return -EFAULT; + if (rule_cnt > KMALLOC_MAX_SIZE / sizeof(u32)) + return -ENOMEM; + buf_size += rule_cnt * sizeof(u32); + /* fall through */ + case ETHTOOL_GRXRINGS: + case ETHTOOL_GRXCLSRLCNT: + case ETHTOOL_GRXCLSRULE: + convert_out = true; + /* fall through */ + case ETHTOOL_SRXCLSRLDEL: + case ETHTOOL_SRXCLSRLINS: + buf_size += sizeof(struct ethtool_rxnfc); + convert_in = true; + break; + } + + ifr = compat_alloc_user_space(buf_size); + rxnfc = (void *)ifr + ALIGN(sizeof(struct ifreq), 8); + + if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ)) return -EFAULT; - datap = compat_ptr(data); - if (put_user(datap, &ifr->ifr_ifru.ifru_data)) + if (put_user(convert_in ? rxnfc : compat_ptr(data), + &ifr->ifr_ifru.ifru_data)) return -EFAULT; - return dev_ioctl(net, SIOCETHTOOL, ifr); + if (convert_in) { + /* We expect there to be holes between fs.m_u and + * fs.ring_cookie and at the end of fs, but nowhere else. + */ + BUILD_BUG_ON(offsetof(struct compat_ethtool_rxnfc, fs.m_u) + + sizeof(compat_rxnfc->fs.m_u) != + offsetof(struct ethtool_rxnfc, fs.m_u) + + sizeof(rxnfc->fs.m_u)); + BUILD_BUG_ON( + offsetof(struct compat_ethtool_rxnfc, fs.location) - + offsetof(struct compat_ethtool_rxnfc, fs.ring_cookie) != + offsetof(struct ethtool_rxnfc, fs.location) - + offsetof(struct ethtool_rxnfc, fs.ring_cookie)); + + if (copy_in_user(rxnfc, compat_rxnfc, + (void *)(&rxnfc->fs.m_u + 1) - + (void *)rxnfc) || + copy_in_user(&rxnfc->fs.ring_cookie, + &compat_rxnfc->fs.ring_cookie, + (void *)(&rxnfc->fs.location + 1) - + (void *)&rxnfc->fs.ring_cookie) || + copy_in_user(&rxnfc->rule_cnt, &compat_rxnfc->rule_cnt, + sizeof(rxnfc->rule_cnt))) + return -EFAULT; + } + + ret = dev_ioctl(net, SIOCETHTOOL, ifr); + if (ret) + return ret; + + if (convert_out) { + if (copy_in_user(compat_rxnfc, rxnfc, + (const void *)(&rxnfc->fs.m_u + 1) - + (const void *)rxnfc) || + copy_in_user(&compat_rxnfc->fs.ring_cookie, + &rxnfc->fs.ring_cookie, + (const void *)(&rxnfc->fs.location + 1) - + (const void *)&rxnfc->fs.ring_cookie) || + copy_in_user(&compat_rxnfc->rule_cnt, &rxnfc->rule_cnt, + sizeof(rxnfc->rule_cnt))) + return -EFAULT; + + if (ethcmd == ETHTOOL_GRXCLSRLALL) { + /* As an optimisation, we only copy the actual + * number of rules that the underlying + * function returned. Since Mallory might + * change the rule count in user memory, we + * check that it is less than the rule count + * originally given (as the user buffer size), + * which has been range-checked. + */ + if (get_user(actual_rule_cnt, &rxnfc->rule_cnt)) + return -EFAULT; + if (actual_rule_cnt < rule_cnt) + rule_cnt = actual_rule_cnt; + if (copy_in_user(&compat_rxnfc->rule_locs[0], + &rxnfc->rule_locs[0], + rule_cnt * sizeof(u32))) + return -EFAULT; + } + } + + return 0; } static int compat_siocwandev(struct net *net, struct compat_ifreq __user *uifr32) --- linux-2.6.38.orig/net/8021q/vlan.c +++ linux-2.6.38/net/8021q/vlan.c @@ -124,6 +124,9 @@ grp->nr_vlans--; + if (vlan->flags & VLAN_FLAG_GVRP) + vlan_gvrp_request_leave(dev); + vlan_group_set_device(grp, vlan_id, NULL); if (!grp->killall) synchronize_net(); --- linux-2.6.38.orig/net/8021q/vlan_dev.c +++ linux-2.6.38/net/8021q/vlan_dev.c @@ -487,9 +487,6 @@ struct vlan_dev_info *vlan = vlan_dev_info(dev); struct net_device *real_dev = vlan->real_dev; - if (vlan->flags & VLAN_FLAG_GVRP) - vlan_gvrp_request_leave(dev); - dev_mc_unsync(real_dev, dev); dev_uc_unsync(real_dev, dev); if (dev->flags & IFF_ALLMULTI) @@ -707,6 +704,7 @@ dev->fcoe_ddp_xid = real_dev->fcoe_ddp_xid; #endif + dev->needed_headroom = real_dev->needed_headroom; if (real_dev->features & NETIF_F_HW_VLAN_TX) { dev->header_ops = real_dev->header_ops; dev->hard_header_len = real_dev->hard_header_len; --- linux-2.6.38.orig/net/netfilter/nf_conntrack_h323_asn1.c +++ linux-2.6.38/net/netfilter/nf_conntrack_h323_asn1.c @@ -631,7 +631,7 @@ CHECK_BOUND(bs, 2); count = *bs->cur++; count <<= 8; - count = *bs->cur++; + count += *bs->cur++; break; case SEMI: BYTE_ALIGN(bs); --- linux-2.6.38.orig/net/netfilter/nf_conntrack_netlink.c +++ linux-2.6.38/net/netfilter/nf_conntrack_netlink.c @@ -528,6 +528,11 @@ return 0; net = nf_ct_net(ct); + + /* container deinit, netlink may have died before death_by_timeout */ + if (!net->nfnl) + return 0; + if (!item->report && !nfnetlink_has_listeners(net, group)) return 0; --- linux-2.6.38.orig/net/xfrm/xfrm_policy.c +++ linux-2.6.38/net/xfrm/xfrm_policy.c @@ -1778,6 +1778,8 @@ goto no_transform; } + dst_hold(&xdst->u.dst); + spin_lock_bh(&xfrm_policy_sk_bundle_lock); xdst->u.dst.next = xfrm_policy_sk_bundles; xfrm_policy_sk_bundles = &xdst->u.dst; --- linux-2.6.38.orig/net/packet/af_packet.c +++ linux-2.6.38/net/packet/af_packet.c @@ -2683,7 +2683,7 @@ const struct packet_sock *po = pkt_sk(s); seq_printf(seq, - "%p %-6d %-4d %04x %-5d %1d %-6u %-6u %-6lu\n", + "%pK %-6d %-4d %04x %-5d %1d %-6u %-6u %-6lu\n", s, atomic_read(&s->sk_refcnt), s->sk_type, --- linux-2.6.38.orig/net/sched/sch_sfq.c +++ linux-2.6.38/net/sched/sch_sfq.c @@ -361,7 +361,7 @@ { struct sfq_sched_data *q = qdisc_priv(sch); unsigned int hash; - sfq_index x; + sfq_index x, qlen; struct sfq_slot *slot; int uninitialized_var(ret); @@ -405,20 +405,12 @@ if (++sch->q.qlen <= q->limit) return NET_XMIT_SUCCESS; + qlen = slot->qlen; sfq_drop(sch); - return NET_XMIT_CN; -} - -static struct sk_buff * -sfq_peek(struct Qdisc *sch) -{ - struct sfq_sched_data *q = qdisc_priv(sch); - - /* No active slots */ - if (q->tail == NULL) - return NULL; - - return q->slots[q->tail->next].skblist_next; + /* Return Congestion Notification only if we dropped a packet + * from this flow. + */ + return (qlen != slot->qlen) ? NET_XMIT_CN : NET_XMIT_SUCCESS; } static struct sk_buff * @@ -679,7 +671,7 @@ .priv_size = sizeof(struct sfq_sched_data), .enqueue = sfq_enqueue, .dequeue = sfq_dequeue, - .peek = sfq_peek, + .peek = qdisc_peek_dequeued, .drop = sfq_drop, .init = sfq_init, .reset = sfq_reset, --- linux-2.6.38.orig/net/ieee802154/Makefile +++ linux-2.6.38/net/ieee802154/Makefile @@ -1,5 +1,3 @@ obj-$(CONFIG_IEEE802154) += ieee802154.o af_802154.o ieee802154-y := netlink.o nl-mac.o nl-phy.o nl_policy.o wpan-class.o af_802154-y := af_ieee802154.o raw.o dgram.o - -ccflags-y += -Wall -DDEBUG --- linux-2.6.38.orig/net/netlink/af_netlink.c +++ linux-2.6.38/net/netlink/af_netlink.c @@ -2000,7 +2000,7 @@ struct sock *s = v; struct netlink_sock *nlk = nlk_sk(s); - seq_printf(seq, "%p %-3d %-6d %08x %-8d %-8d %p %-8d %-8d %-8lu\n", + seq_printf(seq, "%pK %-3d %-6d %08x %-8d %-8d %pK %-8d %-8d %-8lu\n", s, s->sk_protocol, nlk->pid, --- linux-2.6.38.orig/net/mac80211/sta_info.c +++ linux-2.6.38/net/mac80211/sta_info.c @@ -243,6 +243,7 @@ memcpy(sta->sta.addr, addr, ETH_ALEN); sta->local = local; sta->sdata = sdata; + sta->last_rx = jiffies; ewma_init(&sta->avg_signal, 1024, 8); --- linux-2.6.38.orig/net/mac80211/rc80211_minstrel_ht.c +++ linux-2.6.38/net/mac80211/rc80211_minstrel_ht.c @@ -639,18 +639,14 @@ struct ieee80211_mcs_info *mcs = &sta->ht_cap.mcs; struct ieee80211_local *local = hw_to_local(mp->hw); u16 sta_cap = sta->ht_cap.cap; + int n_supported = 0; int ack_dur; int stbc; int i; /* fall back to the old minstrel for legacy stations */ - if (!sta->ht_cap.ht_supported) { - msp->is_ht = false; - memset(&msp->legacy, 0, sizeof(msp->legacy)); - msp->legacy.r = msp->ratelist; - msp->legacy.sample_table = msp->sample_table; - return mac80211_minstrel.rate_init(priv, sband, sta, &msp->legacy); - } + if (!sta->ht_cap.ht_supported) + goto use_legacy; BUILD_BUG_ON(ARRAY_SIZE(minstrel_mcs_groups) != MINSTREL_MAX_STREAMS * MINSTREL_STREAM_GROUPS); @@ -705,7 +701,22 @@ mi->groups[i].supported = mcs->rx_mask[minstrel_mcs_groups[i].streams - 1]; + + if (mi->groups[i].supported) + n_supported++; } + + if (!n_supported) + goto use_legacy; + + return; + +use_legacy: + msp->is_ht = false; + memset(&msp->legacy, 0, sizeof(msp->legacy)); + msp->legacy.r = msp->ratelist; + msp->legacy.sample_table = msp->sample_table; + return mac80211_minstrel.rate_init(priv, sband, sta, &msp->legacy); } static void --- linux-2.6.38.orig/net/mac80211/cfg.c +++ linux-2.6.38/net/mac80211/cfg.c @@ -228,11 +228,11 @@ goto out; if (pairwise) - key = sta->ptk; + key = rcu_dereference(sta->ptk); else if (key_idx < NUM_DEFAULT_KEYS) - key = sta->gtk[key_idx]; + key = rcu_dereference(sta->gtk[key_idx]); } else - key = sdata->keys[key_idx]; + key = rcu_dereference(sdata->keys[key_idx]); if (!key) goto out; @@ -904,8 +904,10 @@ static void mpath_set_pinfo(struct mesh_path *mpath, u8 *next_hop, struct mpath_info *pinfo) { - if (mpath->next_hop) - memcpy(next_hop, mpath->next_hop->sta.addr, ETH_ALEN); + struct sta_info *next_hop_sta = rcu_dereference(mpath->next_hop); + + if (next_hop_sta) + memcpy(next_hop, next_hop_sta->sta.addr, ETH_ALEN); else memset(next_hop, 0, ETH_ALEN); @@ -1471,6 +1473,8 @@ enum ieee80211_smps_mode old_req; int err; + lockdep_assert_held(&sdata->u.mgd.mtx); + old_req = sdata->u.mgd.req_smps; sdata->u.mgd.req_smps = smps_mode; --- linux-2.6.38.orig/net/mac80211/debugfs_netdev.c +++ linux-2.6.38/net/mac80211/debugfs_netdev.c @@ -172,9 +172,9 @@ if (sdata->vif.type != NL80211_IFTYPE_STATION) return -EOPNOTSUPP; - mutex_lock(&local->iflist_mtx); + mutex_lock(&sdata->u.mgd.mtx); err = __ieee80211_request_smps(sdata, smps_mode); - mutex_unlock(&local->iflist_mtx); + mutex_unlock(&sdata->u.mgd.mtx); return err; } --- linux-2.6.38.orig/net/key/af_key.c +++ linux-2.6.38/net/key/af_key.c @@ -3643,7 +3643,7 @@ if (v == SEQ_START_TOKEN) seq_printf(f ,"sk RefCnt Rmem Wmem User Inode\n"); else - seq_printf(f ,"%p %-6d %-6u %-6u %-6u %-6lu\n", + seq_printf(f, "%pK %-6d %-6u %-6u %-6u %-6lu\n", s, atomic_read(&s->sk_refcnt), sk_rmem_alloc_get(s), --- linux-2.6.38.orig/net/unix/af_unix.c +++ linux-2.6.38/net/unix/af_unix.c @@ -2234,7 +2234,7 @@ struct unix_sock *u = unix_sk(s); unix_state_lock(s); - seq_printf(seq, "%p: %08X %08X %08X %04X %02X %5lu", + seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu", s, atomic_read(&s->sk_refcnt), 0, --- linux-2.6.38.orig/net/l2tp/l2tp_eth.c +++ linux-2.6.38/net/l2tp/l2tp_eth.c @@ -283,7 +283,7 @@ return 0; } -static __net_initdata struct pernet_operations l2tp_eth_net_ops = { +static struct pernet_operations l2tp_eth_net_ops = { .init = l2tp_eth_init_net, .id = &l2tp_eth_net_id, .size = sizeof(struct l2tp_eth_net), --- linux-2.6.38.orig/net/irda/iriap.c +++ linux-2.6.38/net/irda/iriap.c @@ -656,10 +656,16 @@ n = 1; name_len = fp[n++]; + + IRDA_ASSERT(name_len < IAS_MAX_CLASSNAME + 1, return;); + memcpy(name, fp+n, name_len); n+=name_len; name[name_len] = '\0'; attr_len = fp[n++]; + + IRDA_ASSERT(attr_len < IAS_MAX_ATTRIBNAME + 1, return;); + memcpy(attr, fp+n, attr_len); n+=attr_len; attr[attr_len] = '\0'; --- linux-2.6.38.orig/net/irda/af_irda.c +++ linux-2.6.38/net/irda/af_irda.c @@ -1297,8 +1297,7 @@ /* Note : socket.c set MSG_EOR on SEQPACKET sockets */ if (msg->msg_flags & ~(MSG_DONTWAIT | MSG_EOR | MSG_CMSG_COMPAT | MSG_NOSIGNAL)) { - err = -EINVAL; - goto out; + return -EINVAL; } lock_sock(sk); --- linux-2.6.38.orig/net/irda/irnet/irnet_ppp.c +++ linux-2.6.38/net/irda/irnet/irnet_ppp.c @@ -105,6 +105,9 @@ while(isspace(start[length - 1])) length--; + DABORT(length < 5 || length > NICKNAME_MAX_LEN + 5, + -EINVAL, CTRL_ERROR, "Invalid nickname.\n"); + /* Copy the name for later reuse */ memcpy(ap->rname, start + 5, length - 5); ap->rname[length - 5] = '\0'; --- linux-2.6.38.orig/net/bridge/br_netfilter.c +++ linux-2.6.38/net/bridge/br_netfilter.c @@ -249,11 +249,9 @@ goto drop; } - /* Zero out the CB buffer if no options present */ - if (iph->ihl == 5) { - memset(IPCB(skb), 0, sizeof(struct inet_skb_parm)); + memset(IPCB(skb), 0, sizeof(struct inet_skb_parm)); + if (iph->ihl == 5) return 0; - } opt->optlen = iph->ihl*4 - sizeof(struct iphdr); if (ip_options_compile(dev_net(dev), opt, skb)) @@ -741,6 +739,9 @@ nf_bridge->mask |= BRNF_PKT_TYPE; } + if (pf == PF_INET && br_parse_ip_options(skb)) + return NF_DROP; + /* The physdev module checks on this */ nf_bridge->mask |= BRNF_BRIDGED; nf_bridge->physoutdev = skb->dev; --- linux-2.6.38.orig/net/bridge/br_input.c +++ linux-2.6.38/net/bridge/br_input.c @@ -163,7 +163,7 @@ goto drop; /* If STP is turned off, then forward */ - if (p->br->stp_enabled == BR_NO_STP) + if (p->br->stp_enabled == BR_NO_STP && dest[5] == 0) goto forward; if (NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev, --- linux-2.6.38.orig/net/bridge/br_multicast.c +++ linux-2.6.38/net/bridge/br_multicast.c @@ -445,9 +445,9 @@ ip6h->payload_len = htons(8 + sizeof(*mldq)); ip6h->nexthdr = IPPROTO_HOPOPTS; ip6h->hop_limit = 1; + ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1)); ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0, &ip6h->saddr); - ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1)); ipv6_eth_mc_map(&ip6h->daddr, eth->h_dest); hopopt = (u8 *)(ip6h + 1); --- linux-2.6.38.orig/net/bridge/netfilter/ebtables.c +++ linux-2.6.38/net/bridge/netfilter/ebtables.c @@ -1107,6 +1107,8 @@ if (tmp.num_counters >= INT_MAX / sizeof(struct ebt_counter)) return -ENOMEM; + tmp.name[sizeof(tmp.name) - 1] = 0; + countersize = COUNTER_OFFSET(tmp.nentries) * nr_cpu_ids; newinfo = vmalloc(sizeof(*newinfo) + countersize); if (!newinfo) --- linux-2.6.38.orig/net/sctp/protocol.c +++ linux-2.6.38/net/sctp/protocol.c @@ -1204,7 +1204,7 @@ if ((sctp_assoc_hashsize > (64 * 1024)) && order > 0) continue; sctp_assoc_hashtable = (struct sctp_hashbucket *) - __get_free_pages(GFP_ATOMIC, order); + __get_free_pages(GFP_ATOMIC|__GFP_NOWARN, order); } while (!sctp_assoc_hashtable && --order > 0); if (!sctp_assoc_hashtable) { pr_err("Failed association hash alloc\n"); @@ -1237,7 +1237,7 @@ if ((sctp_port_hashsize > (64 * 1024)) && order > 0) continue; sctp_port_hashtable = (struct sctp_bind_hashbucket *) - __get_free_pages(GFP_ATOMIC, order); + __get_free_pages(GFP_ATOMIC|__GFP_NOWARN, order); } while (!sctp_port_hashtable && --order > 0); if (!sctp_port_hashtable) { pr_err("Failed bind hash alloc\n"); --- linux-2.6.38.orig/net/sctp/bind_addr.c +++ linux-2.6.38/net/sctp/bind_addr.c @@ -140,14 +140,12 @@ /* Dispose of the address list. */ static void sctp_bind_addr_clean(struct sctp_bind_addr *bp) { - struct sctp_sockaddr_entry *addr; - struct list_head *pos, *temp; + struct sctp_sockaddr_entry *addr, *temp; /* Empty the bind address list. */ - list_for_each_safe(pos, temp, &bp->address_list) { - addr = list_entry(pos, struct sctp_sockaddr_entry, list); - list_del(pos); - kfree(addr); + list_for_each_entry_safe(addr, temp, &bp->address_list, list) { + list_del_rcu(&addr->list); + call_rcu(&addr->rcu, sctp_local_addr_free); SCTP_DBG_OBJCNT_DEC(addr); } } --- linux-2.6.38.orig/net/sctp/proc.c +++ linux-2.6.38/net/sctp/proc.c @@ -212,7 +212,7 @@ sctp_for_each_hentry(epb, node, &head->chain) { ep = sctp_ep(epb); sk = epb->sk; - seq_printf(seq, "%8p %8p %-3d %-3d %-4d %-5d %5d %5lu ", ep, sk, + seq_printf(seq, "%8pK %8pK %-3d %-3d %-4d %-5d %5d %5lu ", ep, sk, sctp_sk(sk)->type, sk->sk_state, hash, epb->bind_addr.port, sock_i_uid(sk), sock_i_ino(sk)); @@ -316,7 +316,7 @@ assoc = sctp_assoc(epb); sk = epb->sk; seq_printf(seq, - "%8p %8p %-3d %-3d %-2d %-4d " + "%8pK %8pK %-3d %-3d %-2d %-4d " "%4d %8d %8d %7d %5lu %-5d %5d ", assoc, sk, sctp_sk(sk)->type, sk->sk_state, assoc->state, hash, --- linux-2.6.38.orig/net/sctp/associola.c +++ linux-2.6.38/net/sctp/associola.c @@ -64,6 +64,7 @@ /* Forward declarations for internal functions. */ static void sctp_assoc_bh_rcv(struct work_struct *work); static void sctp_assoc_free_asconf_acks(struct sctp_association *asoc); +static void sctp_assoc_free_asconf_queue(struct sctp_association *asoc); /* Keep track of the new idr low so that we don't re-use association id * numbers too fast. It is protected by they idr spin lock is in the @@ -446,6 +447,9 @@ /* Free any cached ASCONF_ACK chunk. */ sctp_assoc_free_asconf_acks(asoc); + /* Free the ASCONF queue. */ + sctp_assoc_free_asconf_queue(asoc); + /* Free any cached ASCONF chunk. */ if (asoc->addip_last_asconf) sctp_chunk_free(asoc->addip_last_asconf); @@ -1576,6 +1580,18 @@ return error; } +/* Free the ASCONF queue */ +static void sctp_assoc_free_asconf_queue(struct sctp_association *asoc) +{ + struct sctp_chunk *asconf; + struct sctp_chunk *tmp; + + list_for_each_entry_safe(asconf, tmp, &asoc->addip_chunk_list, list) { + list_del_init(&asconf->list); + sctp_chunk_free(asconf); + } +} + /* Free asconf_ack cache */ static void sctp_assoc_free_asconf_acks(struct sctp_association *asoc) { --- linux-2.6.38.orig/net/ipv4/udp.c +++ linux-2.6.38/net/ipv4/udp.c @@ -2045,7 +2045,7 @@ __u16 srcp = ntohs(inet->inet_sport); seq_printf(f, "%5d: %08X:%04X %08X:%04X" - " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d%n", + " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %pK %d%n", bucket, src, srcp, dest, destp, sp->sk_state, sk_wmem_alloc_get(sp), sk_rmem_alloc_get(sp), --- linux-2.6.38.orig/net/ipv4/inet_hashtables.c +++ linux-2.6.38/net/ipv4/inet_hashtables.c @@ -21,6 +21,7 @@ #include #include +#include #include /* --- linux-2.6.38.orig/net/ipv4/ip_fragment.c +++ linux-2.6.38/net/ipv4/ip_fragment.c @@ -223,31 +223,30 @@ if ((qp->q.last_in & INET_FRAG_FIRST_IN) && qp->q.fragments != NULL) { struct sk_buff *head = qp->q.fragments; + const struct iphdr *iph; + int err; rcu_read_lock(); head->dev = dev_get_by_index_rcu(net, qp->iif); if (!head->dev) goto out_rcu_unlock; + /* skb dst is stale, drop it, and perform route lookup again */ + skb_dst_drop(head); + iph = ip_hdr(head); + err = ip_route_input_noref(head, iph->daddr, iph->saddr, + iph->tos, head->dev); + if (err) + goto out_rcu_unlock; + /* - * Only search router table for the head fragment, - * when defraging timeout at PRE_ROUTING HOOK. + * Only an end host needs to send an ICMP + * "Fragment Reassembly Timeout" message, per RFC792. */ - if (qp->user == IP_DEFRAG_CONNTRACK_IN && !skb_dst(head)) { - const struct iphdr *iph = ip_hdr(head); - int err = ip_route_input(head, iph->daddr, iph->saddr, - iph->tos, head->dev); - if (unlikely(err)) - goto out_rcu_unlock; - - /* - * Only an end host needs to send an ICMP - * "Fragment Reassembly Timeout" message, per RFC792. - */ - if (skb_rtable(head)->rt_type != RTN_LOCAL) - goto out_rcu_unlock; + if (qp->user == IP_DEFRAG_CONNTRACK_IN && + skb_rtable(head)->rt_type != RTN_LOCAL) + goto out_rcu_unlock; - } /* Send an ICMP "Fragment Reassembly Timeout" message. */ icmp_send(head, ICMP_TIME_EXCEEDED, ICMP_EXC_FRAGTIME, 0); --- linux-2.6.38.orig/net/ipv4/inet_diag.c +++ linux-2.6.38/net/ipv4/inet_diag.c @@ -437,7 +437,7 @@ return 0; if (cc == len) return 1; - if (op->yes < 4) + if (op->yes < 4 || op->yes & 3) return 0; len -= op->yes; bc += op->yes; @@ -447,11 +447,11 @@ static int inet_diag_bc_audit(const void *bytecode, int bytecode_len) { - const unsigned char *bc = bytecode; + const void *bc = bytecode; int len = bytecode_len; while (len > 0) { - struct inet_diag_bc_op *op = (struct inet_diag_bc_op *)bc; + const struct inet_diag_bc_op *op = bc; //printk("BC: %d %d %d {%d} / %d\n", op->code, op->yes, op->no, op[1].no, len); switch (op->code) { @@ -462,22 +462,20 @@ case INET_DIAG_BC_S_LE: case INET_DIAG_BC_D_GE: case INET_DIAG_BC_D_LE: - if (op->yes < 4 || op->yes > len + 4) - return -EINVAL; case INET_DIAG_BC_JMP: - if (op->no < 4 || op->no > len + 4) + if (op->no < 4 || op->no > len + 4 || op->no & 3) return -EINVAL; if (op->no < len && !valid_cc(bytecode, bytecode_len, len - op->no)) return -EINVAL; break; case INET_DIAG_BC_NOP: - if (op->yes < 4 || op->yes > len + 4) - return -EINVAL; break; default: return -EINVAL; } + if (op->yes < 4 || op->yes > len + 4 || op->yes & 3) + return -EINVAL; bc += op->yes; len -= op->yes; } --- linux-2.6.38.orig/net/ipv4/inet_connection_sock.c +++ linux-2.6.38/net/ipv4/inet_connection_sock.c @@ -73,7 +73,7 @@ !sk2->sk_bound_dev_if || sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) { if (!reuse || !sk2->sk_reuse || - ((1 << sk2->sk_state) & (TCPF_LISTEN | TCPF_CLOSE))) { + sk2->sk_state == TCP_LISTEN) { const __be32 sk2_rcv_saddr = sk_rcv_saddr(sk2); if (!sk2_rcv_saddr || !sk_rcv_saddr(sk) || sk2_rcv_saddr == sk_rcv_saddr(sk)) @@ -122,8 +122,7 @@ (tb->num_owners < smallest_size || smallest_size == -1)) { smallest_size = tb->num_owners; smallest_rover = rover; - if (atomic_read(&hashinfo->bsockets) > (high - low) + 1 && - !inet_csk(sk)->icsk_af_ops->bind_conflict(sk, tb)) { + if (atomic_read(&hashinfo->bsockets) > (high - low) + 1) { spin_unlock(&head->lock); snum = smallest_rover; goto have_snum; --- linux-2.6.38.orig/net/ipv4/tcp_output.c +++ linux-2.6.38/net/ipv4/tcp_output.c @@ -1003,7 +1003,8 @@ int nlen; u8 flags; - BUG_ON(len > skb->len); + if (WARN_ON(len > skb->len)) + return -EINVAL; nsize = skb_headlen(skb) - len; if (nsize < 0) --- linux-2.6.38.orig/net/ipv4/raw.c +++ linux-2.6.38/net/ipv4/raw.c @@ -967,7 +967,7 @@ srcp = inet->inet_num; seq_printf(seq, "%4d: %08X:%04X %08X:%04X" - " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d\n", + " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %pK %d\n", i, src, srcp, dest, destp, sp->sk_state, sk_wmem_alloc_get(sp), sk_rmem_alloc_get(sp), --- linux-2.6.38.orig/net/ipv4/tcp_input.c +++ linux-2.6.38/net/ipv4/tcp_input.c @@ -2659,7 +2659,7 @@ #define DBGUNDO(x...) do { } while (0) #endif -static void tcp_undo_cwr(struct sock *sk, const int undo) +static void tcp_undo_cwr(struct sock *sk, const int undo_ssthresh) { struct tcp_sock *tp = tcp_sk(sk); @@ -2671,14 +2671,13 @@ else tp->snd_cwnd = max(tp->snd_cwnd, tp->snd_ssthresh << 1); - if (undo && tp->prior_ssthresh > tp->snd_ssthresh) { + if (undo_ssthresh && tp->prior_ssthresh > tp->snd_ssthresh) { tp->snd_ssthresh = tp->prior_ssthresh; TCP_ECN_withdraw_cwr(tp); } } else { tp->snd_cwnd = max(tp->snd_cwnd, tp->snd_ssthresh); } - tcp_moderate_cwnd(tp); tp->snd_cwnd_stamp = tcp_time_stamp; } @@ -2822,8 +2821,11 @@ static inline void tcp_complete_cwr(struct sock *sk) { struct tcp_sock *tp = tcp_sk(sk); - tp->snd_cwnd = min(tp->snd_cwnd, tp->snd_ssthresh); - tp->snd_cwnd_stamp = tcp_time_stamp; + /* Do not moderate cwnd if it's already undone in cwr or recovery */ + if (tp->undo_marker && tp->snd_cwnd > tp->snd_ssthresh) { + tp->snd_cwnd = tp->snd_ssthresh; + tp->snd_cwnd_stamp = tcp_time_stamp; + } tcp_ca_event(sk, CA_EVENT_COMPLETE_CWR); } --- linux-2.6.38.orig/net/ipv4/fib_frontend.c +++ linux-2.6.38/net/ipv4/fib_frontend.c @@ -1041,6 +1041,7 @@ fib4_rules_exit(net); #endif + rtnl_lock(); for (i = 0; i < FIB_TABLE_HASHSZ; i++) { struct fib_table *tb; struct hlist_head *head; @@ -1053,6 +1054,7 @@ fib_free_table(tb); } } + rtnl_unlock(); kfree(net->ipv4.fib_table_hash); } --- linux-2.6.38.orig/net/ipv4/route.c +++ linux-2.6.38/net/ipv4/route.c @@ -108,6 +108,7 @@ #ifdef CONFIG_SYSCTL #include #endif +#include #define RT_FL_TOS(oldflp) \ ((u32)(oldflp->fl4_tos & (IPTOS_RT_MASK | RTO_ONLINK))) @@ -171,7 +172,7 @@ const __u8 ip_tos2prio[16] = { TC_PRIO_BESTEFFORT, - ECN_OR_COST(FILLER), + ECN_OR_COST(BESTEFFORT), TC_PRIO_BESTEFFORT, ECN_OR_COST(BESTEFFORT), TC_PRIO_BULK, --- linux-2.6.38.orig/net/ipv4/sysctl_net_ipv4.c +++ linux-2.6.38/net/ipv4/sysctl_net_ipv4.c @@ -311,7 +311,6 @@ .mode = 0644, .proc_handler = proc_do_large_bitmap, }, -#ifdef CONFIG_IP_MULTICAST { .procname = "igmp_max_memberships", .data = &sysctl_igmp_max_memberships, @@ -319,8 +318,6 @@ .mode = 0644, .proc_handler = proc_dointvec }, - -#endif { .procname = "igmp_max_msf", .data = &sysctl_igmp_max_msf, --- linux-2.6.38.orig/net/ipv4/tcp_ipv4.c +++ linux-2.6.38/net/ipv4/tcp_ipv4.c @@ -72,6 +72,7 @@ #include #include #include +#include #include #include @@ -2358,7 +2359,7 @@ int ttd = req->expires - jiffies; seq_printf(f, "%4d: %08X:%04X %08X:%04X" - " %02X %08X:%08X %02X:%08lX %08X %5d %8d %u %d %p%n", + " %02X %08X:%08X %02X:%08lX %08X %5d %8d %u %d %pK%n", i, ireq->loc_addr, ntohs(inet_sk(sk)->inet_sport), @@ -2413,7 +2414,7 @@ rx_queue = max_t(int, tp->rcv_nxt - tp->copied_seq, 0); seq_printf(f, "%4d: %08X:%04X %08X:%04X %02X %08X:%08X %02X:%08lX " - "%08X %5d %8d %lu %d %p %lu %lu %u %u %d%n", + "%08X %5d %8d %lu %d %pK %lu %lu %u %u %d%n", i, src, srcp, dest, destp, sk->sk_state, tp->write_seq - tp->snd_una, rx_queue, @@ -2448,7 +2449,7 @@ srcp = ntohs(tw->tw_sport); seq_printf(f, "%4d: %08X:%04X %08X:%04X" - " %02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %p%n", + " %02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %pK%n", i, src, srcp, dest, destp, tw->tw_substate, 0, 0, 3, jiffies_to_clock_t(ttd), 0, 0, 0, 0, atomic_read(&tw->tw_refcnt), tw, len); --- linux-2.6.38.orig/net/ipv4/igmp.c +++ linux-2.6.38/net/ipv4/igmp.c @@ -1172,20 +1172,18 @@ if (!in_dev->dead) { if (IGMP_V1_SEEN(in_dev)) - goto done; + return; if (IGMP_V2_SEEN(in_dev)) { if (reporter) igmp_send_report(in_dev, im, IGMP_HOST_LEAVE_MESSAGE); - goto done; + return; } /* IGMPv3 */ igmpv3_add_delrec(in_dev, im); igmp_ifc_event(in_dev); } -done: #endif - ip_mc_clear_src(im); } static void igmp_group_added(struct ip_mc_list *im) @@ -1322,6 +1320,7 @@ *ip = i->next_rcu; in_dev->mc_count--; igmp_group_dropped(i); + ip_mc_clear_src(i); if (!in_dev->dead) ip_rt_multicast_event(in_dev); @@ -1431,7 +1430,8 @@ in_dev->mc_list = i->next_rcu; in_dev->mc_count--; - igmp_group_dropped(i); + /* We've dropped the groups in ip_mc_down already */ + ip_mc_clear_src(i); ip_ma_put(i); } } --- linux-2.6.38.orig/net/ipv4/inetpeer.c +++ linux-2.6.38/net/ipv4/inetpeer.c @@ -19,6 +19,7 @@ #include #include #include +#include /* * Theory of operations. @@ -366,7 +367,8 @@ } /* May be called with local BH enabled. */ -static void unlink_from_pool(struct inet_peer *p, struct inet_peer_base *base) +static void unlink_from_pool(struct inet_peer *p, struct inet_peer_base *base, + struct inet_peer __rcu **stack[PEER_MAXDEPTH]) { int do_free; @@ -380,7 +382,6 @@ * We use refcnt=-1 to alert lockless readers this entry is deleted. */ if (atomic_cmpxchg(&p->refcnt, 1, -1) == 1) { - struct inet_peer __rcu **stack[PEER_MAXDEPTH]; struct inet_peer __rcu ***stackptr, ***delp; if (lookup(&p->daddr, stack, base) != p) BUG(); @@ -435,7 +436,7 @@ } /* May be called with local BH enabled. */ -static int cleanup_once(unsigned long ttl) +static int cleanup_once(unsigned long ttl, struct inet_peer __rcu **stack[PEER_MAXDEPTH]) { struct inet_peer *p = NULL; @@ -467,7 +468,7 @@ * happen because of entry limits in route cache. */ return -1; - unlink_from_pool(p, peer_to_base(p)); + unlink_from_pool(p, peer_to_base(p), stack); return 0; } @@ -523,7 +524,7 @@ if (base->total >= inet_peer_threshold) /* Remove one less-recently-used entry. */ - cleanup_once(0); + cleanup_once(0, stack); return p; } @@ -539,6 +540,7 @@ { unsigned long now = jiffies; int ttl, total; + struct inet_peer __rcu **stack[PEER_MAXDEPTH]; total = compute_total(); if (total >= inet_peer_threshold) @@ -547,7 +549,7 @@ ttl = inet_peer_maxttl - (inet_peer_maxttl - inet_peer_minttl) / HZ * total / inet_peer_threshold * HZ; - while (!cleanup_once(ttl)) { + while (!cleanup_once(ttl, stack)) { if (jiffies != now) break; } --- linux-2.6.38.orig/net/ipv4/ip_options.c +++ linux-2.6.38/net/ipv4/ip_options.c @@ -329,7 +329,7 @@ pp_ptr = optptr + 2; goto error; } - if (skb) { + if (rt) { memcpy(&optptr[optptr[2]-1], &rt->rt_spec_dst, 4); opt->is_changed = 1; } @@ -371,7 +371,7 @@ goto error; } opt->ts = optptr - iph; - if (skb) { + if (rt) { memcpy(&optptr[optptr[2]-1], &rt->rt_spec_dst, 4); timeptr = (__be32*)&optptr[optptr[2]+3]; } @@ -603,7 +603,7 @@ unsigned long orefdst; int err; - if (!opt->srr) + if (!opt->srr || !rt) return 0; if (skb->pkt_type != PACKET_HOST) --- linux-2.6.38.orig/net/ipv4/netfilter/arp_tables.c +++ linux-2.6.38/net/ipv4/netfilter/arp_tables.c @@ -1065,6 +1065,7 @@ /* overflow check */ if (tmp.num_counters >= INT_MAX / sizeof(struct xt_counters)) return -ENOMEM; + tmp.name[sizeof(tmp.name)-1] = 0; newinfo = xt_alloc_table_info(tmp.size); if (!newinfo) @@ -1486,6 +1487,7 @@ return -ENOMEM; if (tmp.num_counters >= INT_MAX / sizeof(struct xt_counters)) return -ENOMEM; + tmp.name[sizeof(tmp.name)-1] = 0; newinfo = xt_alloc_table_info(tmp.size); if (!newinfo) @@ -1738,6 +1740,7 @@ ret = -EFAULT; break; } + rev.name[sizeof(rev.name)-1] = 0; try_then_request_module(xt_find_revision(NFPROTO_ARP, rev.name, rev.revision, 1, &ret), --- linux-2.6.38.orig/net/ipv4/netfilter/nf_nat_proto_common.c +++ linux-2.6.38/net/ipv4/netfilter/nf_nat_proto_common.c @@ -12,6 +12,7 @@ #include #include +#include #include #include #include --- linux-2.6.38.orig/net/ipv4/netfilter/ip_tables.c +++ linux-2.6.38/net/ipv4/netfilter/ip_tables.c @@ -387,7 +387,7 @@ verdict = (unsigned)(-v) - 1; break; } - if (*stackptr == 0) { + if (*stackptr <= origptr) { e = get_entry(table_base, private->underflow[hook]); pr_debug("Underflow (this is normal) " @@ -427,10 +427,10 @@ /* Verdict */ break; } while (!acpar.hotdrop); - xt_info_rdunlock_bh(); pr_debug("Exiting %s; resetting sp from %u to %u\n", __func__, *stackptr, origptr); *stackptr = origptr; + xt_info_rdunlock_bh(); #ifdef DEBUG_ALLOW_ALL return NF_ACCEPT; #else @@ -1261,6 +1261,7 @@ /* overflow check */ if (tmp.num_counters >= INT_MAX / sizeof(struct xt_counters)) return -ENOMEM; + tmp.name[sizeof(tmp.name)-1] = 0; newinfo = xt_alloc_table_info(tmp.size); if (!newinfo) @@ -1805,6 +1806,7 @@ return -ENOMEM; if (tmp.num_counters >= INT_MAX / sizeof(struct xt_counters)) return -ENOMEM; + tmp.name[sizeof(tmp.name)-1] = 0; newinfo = xt_alloc_table_info(tmp.size); if (!newinfo) @@ -2034,6 +2036,7 @@ ret = -EFAULT; break; } + rev.name[sizeof(rev.name)-1] = 0; if (cmd == IPT_SO_GET_REVISION_TARGET) target = 1; --- linux-2.6.38.orig/net/ipv4/netfilter/ipt_CLUSTERIP.c +++ linux-2.6.38/net/ipv4/netfilter/ipt_CLUSTERIP.c @@ -669,8 +669,11 @@ char buffer[PROC_WRITELEN+1]; unsigned long nodenum; - if (copy_from_user(buffer, input, PROC_WRITELEN)) + if (size > PROC_WRITELEN) + return -EIO; + if (copy_from_user(buffer, input, size)) return -EFAULT; + buffer[size] = 0; if (*buffer == '+') { nodenum = simple_strtoul(buffer+1, NULL, 10); --- linux-2.6.38.orig/net/sunrpc/xprtsock.c +++ linux-2.6.38/net/sunrpc/xprtsock.c @@ -710,6 +710,8 @@ if (sk == NULL) return; + transport->srcport = 0; + write_lock_bh(&sk->sk_callback_lock); transport->inet = NULL; transport->sock = NULL; @@ -1342,7 +1344,6 @@ case TCP_CLOSE_WAIT: /* The server initiated a shutdown of the socket */ xprt_force_disconnect(xprt); - case TCP_SYN_SENT: xprt->connect_cookie++; case TCP_CLOSING: /* @@ -1756,6 +1757,7 @@ static int xs_tcp_finish_connecting(struct rpc_xprt *xprt, struct socket *sock) { struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt); + int ret = -ENOTCONN; if (!transport->inet) { struct sock *sk = sock->sk; @@ -1787,12 +1789,22 @@ } if (!xprt_bound(xprt)) - return -ENOTCONN; + goto out; /* Tell the socket layer to start connecting... */ xprt->stat.connect_count++; xprt->stat.connect_start = jiffies; - return kernel_connect(sock, xs_addr(xprt), xprt->addrlen, O_NONBLOCK); + ret = kernel_connect(sock, xs_addr(xprt), xprt->addrlen, O_NONBLOCK); + switch (ret) { + case 0: + case -EINPROGRESS: + /* SYN_SENT! */ + xprt->connect_cookie++; + if (xprt->reestablish_timeout < XS_TCP_INIT_REEST_TO) + xprt->reestablish_timeout = XS_TCP_INIT_REEST_TO; + } +out: + return ret; } /** --- linux-2.6.38.orig/net/sunrpc/clnt.c +++ linux-2.6.38/net/sunrpc/clnt.c @@ -436,7 +436,9 @@ if (!(rovr->tk_flags & RPC_TASK_KILLED)) { rovr->tk_flags |= RPC_TASK_KILLED; rpc_exit(rovr, -EIO); - rpc_wake_up_queued_task(rovr->tk_waitqueue, rovr); + if (RPC_IS_QUEUED(rovr)) + rpc_wake_up_queued_task(rovr->tk_waitqueue, + rovr); } } spin_unlock(&clnt->cl_lock); --- linux-2.6.38.orig/net/sunrpc/sched.c +++ linux-2.6.38/net/sunrpc/sched.c @@ -637,14 +637,12 @@ save_callback = task->tk_callback; task->tk_callback = NULL; save_callback(task); - } - - /* - * Perform the next FSM step. - * tk_action may be NULL when the task has been killed - * by someone else. - */ - if (!RPC_IS_QUEUED(task)) { + } else { + /* + * Perform the next FSM step. + * tk_action may be NULL when the task has been killed + * by someone else. + */ if (task->tk_action == NULL) break; task->tk_action(task); --- linux-2.6.38.orig/net/sunrpc/auth_gss/gss_krb5_mech.c +++ linux-2.6.38/net/sunrpc/auth_gss/gss_krb5_mech.c @@ -427,7 +427,7 @@ context_derive_keys_rc4(struct krb5_ctx *ctx) { struct crypto_hash *hmac; - static const char sigkeyconstant[] = "signaturekey"; + char sigkeyconstant[] = "signaturekey"; int slen = strlen(sigkeyconstant) + 1; /* include null terminator */ struct hash_desc desc; struct scatterlist sg[1]; --- linux-2.6.38.orig/net/ipv6/udp.c +++ linux-2.6.38/net/ipv6/udp.c @@ -1339,7 +1339,7 @@ skb->ip_summed = CHECKSUM_NONE; /* Check if there is enough headroom to insert fragment header. */ - if ((skb_headroom(skb) < frag_hdr_sz) && + if ((skb_mac_header(skb) < skb->head + frag_hdr_sz) && pskb_expand_head(skb, frag_hdr_sz, 0, GFP_ATOMIC)) goto out; @@ -1360,7 +1360,7 @@ fptr = (struct frag_hdr *)(skb_network_header(skb) + unfrag_ip6hlen); fptr->nexthdr = nexthdr; fptr->reserved = 0; - ipv6_select_ident(fptr); + ipv6_select_ident(fptr, (struct rt6_info *)skb_dst(skb)); /* Fragment the skb. ipv6 header and the remaining fields of the * fragment header are updated in ipv6_gso_segment() @@ -1395,7 +1395,7 @@ srcp = ntohs(inet->inet_sport); seq_printf(seq, "%5d: %08X%08X%08X%08X:%04X %08X%08X%08X%08X:%04X " - "%02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d\n", + "%02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %pK %d\n", bucket, src->s6_addr32[0], src->s6_addr32[1], src->s6_addr32[2], src->s6_addr32[3], srcp, --- linux-2.6.38.orig/net/ipv6/ip6_output.c +++ linux-2.6.38/net/ipv6/ip6_output.c @@ -596,6 +596,35 @@ return offset; } +static u32 hashidentrnd __read_mostly; +#define FID_HASH_SZ 16 +static u32 ipv6_fragmentation_id[FID_HASH_SZ]; + +void __init initialize_hashidentrnd(void) +{ + get_random_bytes(&hashidentrnd, sizeof(hashidentrnd)); +} + +static u32 __ipv6_select_ident(const struct in6_addr *addr) +{ + u32 newid, oldid, hash = jhash2((u32 *)addr, 4, hashidentrnd); + u32 *pid = &ipv6_fragmentation_id[hash % FID_HASH_SZ]; + + do { + oldid = *pid; + newid = oldid + 1; + if (!(hash + newid)) + newid++; + } while (cmpxchg(pid, oldid, newid) != oldid); + + return hash + newid; +} + +void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt) +{ + fhdr->identification = htonl(__ipv6_select_ident(&rt->rt6i_dst.addr)); +} + int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) { struct sk_buff *frag; @@ -680,7 +709,7 @@ skb_reset_network_header(skb); memcpy(skb_network_header(skb), tmp_hdr, hlen); - ipv6_select_ident(fh); + ipv6_select_ident(fh, rt); fh->nexthdr = nexthdr; fh->reserved = 0; fh->frag_off = htons(IP6_MF); @@ -826,7 +855,7 @@ fh->nexthdr = nexthdr; fh->reserved = 0; if (!frag_id) { - ipv6_select_ident(fh); + ipv6_select_ident(fh, rt); frag_id = fh->identification; } else fh->identification = frag_id; @@ -1030,7 +1059,8 @@ int getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb), void *from, int length, int hh_len, int fragheaderlen, - int transhdrlen, int mtu,unsigned int flags) + int transhdrlen, int mtu,unsigned int flags, + struct rt6_info *rt) { struct sk_buff *skb; @@ -1075,7 +1105,7 @@ skb_shinfo(skb)->gso_size = (mtu - fragheaderlen - sizeof(struct frag_hdr)) & ~7; skb_shinfo(skb)->gso_type = SKB_GSO_UDP; - ipv6_select_ident(&fhdr); + ipv6_select_ident(&fhdr, rt); skb_shinfo(skb)->ip6_frag_id = fhdr.identification; __skb_queue_tail(&sk->sk_write_queue, skb); @@ -1231,7 +1261,7 @@ err = ip6_ufo_append_data(sk, getfrag, from, length, hh_len, fragheaderlen, - transhdrlen, mtu, flags); + transhdrlen, mtu, flags, rt); if (err) goto error; return 0; --- linux-2.6.38.orig/net/ipv6/af_inet6.c +++ linux-2.6.38/net/ipv6/af_inet6.c @@ -1081,6 +1081,8 @@ goto out; } + initialize_hashidentrnd(); + err = proto_register(&tcpv6_prot, 1); if (err) goto out; --- linux-2.6.38.orig/net/ipv6/inet6_hashtables.c +++ linux-2.6.38/net/ipv6/inet6_hashtables.c @@ -20,6 +20,7 @@ #include #include #include +#include #include int __inet6_hash(struct sock *sk, struct inet_timewait_sock *tw) --- linux-2.6.38.orig/net/ipv6/tcp_ipv6.c +++ linux-2.6.38/net/ipv6/tcp_ipv6.c @@ -61,6 +61,7 @@ #include #include #include +#include #include @@ -2052,7 +2053,7 @@ seq_printf(seq, "%4d: %08X%08X%08X%08X:%04X %08X%08X%08X%08X:%04X " - "%02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %p\n", + "%02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %pK\n", i, src->s6_addr32[0], src->s6_addr32[1], src->s6_addr32[2], src->s6_addr32[3], @@ -2103,7 +2104,7 @@ seq_printf(seq, "%4d: %08X%08X%08X%08X:%04X %08X%08X%08X%08X:%04X " - "%02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %lu %lu %u %u %d\n", + "%02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %pK %lu %lu %u %u %d\n", i, src->s6_addr32[0], src->s6_addr32[1], src->s6_addr32[2], src->s6_addr32[3], srcp, @@ -2145,7 +2146,7 @@ seq_printf(seq, "%4d: %08X%08X%08X%08X:%04X %08X%08X%08X%08X:%04X " - "%02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %p\n", + "%02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %pK\n", i, src->s6_addr32[0], src->s6_addr32[1], src->s6_addr32[2], src->s6_addr32[3], srcp, --- linux-2.6.38.orig/net/ipv6/raw.c +++ linux-2.6.38/net/ipv6/raw.c @@ -1250,7 +1250,7 @@ srcp = inet_sk(sp)->inet_num; seq_printf(seq, "%4d: %08X%08X%08X%08X:%04X %08X%08X%08X%08X:%04X " - "%02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d\n", + "%02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %pK %d\n", i, src->s6_addr32[0], src->s6_addr32[1], src->s6_addr32[2], src->s6_addr32[3], srcp, --- linux-2.6.38.orig/net/ipv6/route.c +++ linux-2.6.38/net/ipv6/route.c @@ -1970,7 +1970,6 @@ rt->dst.output = ip6_output; rt->rt6i_dev = net->loopback_dev; rt->rt6i_idev = idev; - dst_metric_set(&rt->dst, RTAX_HOPLIMIT, -1); rt->dst.obsolete = -1; rt->rt6i_flags = RTF_UP | RTF_NONEXTHOP; --- linux-2.6.38.orig/net/ipv6/sysctl_net_ipv6.c +++ linux-2.6.38/net/ipv6/sysctl_net_ipv6.c @@ -17,6 +17,16 @@ static struct ctl_table empty[1]; +static ctl_table ipv6_static_skeleton[] = { + { + .procname = "neigh", + .maxlen = 0, + .mode = 0555, + .child = empty, + }, + { } +}; + static ctl_table ipv6_table_template[] = { { .procname = "route", @@ -37,12 +47,6 @@ .mode = 0644, .proc_handler = proc_dointvec }, - { - .procname = "neigh", - .maxlen = 0, - .mode = 0555, - .child = empty, - }, { } }; @@ -160,7 +164,7 @@ int ipv6_static_sysctl_register(void) { - ip6_base = register_sysctl_paths(net_ipv6_ctl_path, empty); + ip6_base = register_sysctl_paths(net_ipv6_ctl_path, ipv6_static_skeleton); if (ip6_base == NULL) return -ENOMEM; return 0; --- linux-2.6.38.orig/net/ipv6/inet6_connection_sock.c +++ linux-2.6.38/net/ipv6/inet6_connection_sock.c @@ -44,7 +44,7 @@ !sk2->sk_bound_dev_if || sk->sk_bound_dev_if == sk2->sk_bound_dev_if) && (!sk->sk_reuse || !sk2->sk_reuse || - ((1 << sk2->sk_state) & (TCPF_LISTEN | TCPF_CLOSE))) && + sk2->sk_state == TCP_LISTEN) && ipv6_rcv_saddr_equal(sk, sk2)) break; } --- linux-2.6.38.orig/net/ipv6/netfilter/ip6_tables.c +++ linux-2.6.38/net/ipv6/netfilter/ip6_tables.c @@ -410,7 +410,7 @@ verdict = (unsigned)(-v) - 1; break; } - if (*stackptr == 0) + if (*stackptr <= origptr) e = get_entry(table_base, private->underflow[hook]); else @@ -441,8 +441,8 @@ break; } while (!acpar.hotdrop); - xt_info_rdunlock_bh(); *stackptr = origptr; + xt_info_rdunlock_bh(); #ifdef DEBUG_ALLOW_ALL return NF_ACCEPT; @@ -1274,6 +1274,7 @@ /* overflow check */ if (tmp.num_counters >= INT_MAX / sizeof(struct xt_counters)) return -ENOMEM; + tmp.name[sizeof(tmp.name)-1] = 0; newinfo = xt_alloc_table_info(tmp.size); if (!newinfo) @@ -1820,6 +1821,7 @@ return -ENOMEM; if (tmp.num_counters >= INT_MAX / sizeof(struct xt_counters)) return -ENOMEM; + tmp.name[sizeof(tmp.name)-1] = 0; newinfo = xt_alloc_table_info(tmp.size); if (!newinfo) @@ -2049,6 +2051,7 @@ ret = -EFAULT; break; } + rev.name[sizeof(rev.name)-1] = 0; if (cmd == IP6T_SO_GET_REVISION_TARGET) target = 1; --- linux-2.6.38.orig/net/wireless/nl80211.c +++ linux-2.6.38/net/wireless/nl80211.c @@ -1679,14 +1679,6 @@ if (err) goto out; - if (!(rdev->wiphy.flags & - WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS)) { - if (!key.def_uni || !key.def_multi) { - err = -EOPNOTSUPP; - goto out; - } - } - err = rdev->ops->set_default_key(&rdev->wiphy, dev, key.idx, key.def_uni, key.def_multi); --- linux-2.6.38.orig/net/econet/af_econet.c +++ linux-2.6.38/net/econet/af_econet.c @@ -435,10 +435,10 @@ udpdest.sin_addr.s_addr = htonl(network | addr.station); } + memset(&ah, 0, sizeof(ah)); ah.port = port; ah.cb = cb & 0x7f; ah.code = 2; /* magic */ - ah.pad = 0; /* tack our header on the front of the iovec */ size = sizeof(struct aunhdr); --- linux-2.6.38.orig/net/bluetooth/hci_event.c +++ linux-2.6.38/net/bluetooth/hci_event.c @@ -183,6 +183,8 @@ BT_DBG("%s status 0x%x", hdev->name, status); + clear_bit(HCI_RESET, &hdev->flags); + hci_req_complete(hdev, HCI_OP_RESET, status); } @@ -1464,7 +1466,7 @@ break; } - if (ev->ncmd) { + if (ev->ncmd && !test_bit(HCI_RESET, &hdev->flags)) { atomic_set(&hdev->cmd_cnt, 1); if (!skb_queue_empty(&hdev->cmd_q)) tasklet_schedule(&hdev->cmd_task); --- linux-2.6.38.orig/net/bluetooth/sco.c +++ linux-2.6.38/net/bluetooth/sco.c @@ -703,6 +703,7 @@ break; } + memset(&cinfo, 0, sizeof(cinfo)); cinfo.hci_handle = sco_pi(sk)->conn->hcon->handle; memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3); --- linux-2.6.38.orig/net/bluetooth/hci_core.c +++ linux-2.6.38/net/bluetooth/hci_core.c @@ -184,6 +184,7 @@ BT_DBG("%s %ld", hdev->name, opt); /* Reset device */ + set_bit(HCI_RESET, &hdev->flags); hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL); } @@ -210,8 +211,10 @@ /* Mandatory initialization */ /* Reset */ - if (!test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks)) + if (!test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks)) { + set_bit(HCI_RESET, &hdev->flags); hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL); + } /* Read Local Supported Features */ hci_send_cmd(hdev, HCI_OP_READ_LOCAL_FEATURES, 0, NULL); --- linux-2.6.38.orig/net/bluetooth/l2cap.c +++ linux-2.6.38/net/bluetooth/l2cap.c @@ -2154,6 +2154,7 @@ break; } + memset(&cinfo, 0, sizeof(cinfo)); cinfo.hci_handle = l2cap_pi(sk)->conn->hcon->handle; memcpy(cinfo.dev_class, l2cap_pi(sk)->conn->hcon->dev_class, 3); @@ -3116,7 +3117,7 @@ /* Reject if config buffer is too small. */ len = cmd_len - sizeof(*req); - if (l2cap_pi(sk)->conf_len + len > sizeof(l2cap_pi(sk)->conf_req)) { + if (len < 0 || l2cap_pi(sk)->conf_len + len > sizeof(l2cap_pi(sk)->conf_req)) { l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP, l2cap_build_conf_rsp(sk, rsp, L2CAP_CONF_REJECT, flags), rsp); --- linux-2.6.38.orig/net/bluetooth/bnep/sock.c +++ linux-2.6.38/net/bluetooth/bnep/sock.c @@ -88,6 +88,7 @@ sockfd_put(nsock); return -EBADFD; } + ca.device[sizeof(ca.device)-1] = 0; err = bnep_add_connection(&ca, nsock); if (!err) { --- linux-2.6.38.orig/net/bluetooth/rfcomm/sock.c +++ linux-2.6.38/net/bluetooth/rfcomm/sock.c @@ -787,6 +787,7 @@ l2cap_sk = rfcomm_pi(sk)->dlc->session->sock->sk; + memset(&cinfo, 0, sizeof(cinfo)); cinfo.hci_handle = l2cap_pi(l2cap_sk)->conn->hcon->handle; memcpy(cinfo.dev_class, l2cap_pi(l2cap_sk)->conn->hcon->dev_class, 3); --- linux-2.6.38.orig/net/atm/proc.c +++ linux-2.6.38/net/atm/proc.c @@ -191,7 +191,7 @@ { struct sock *sk = sk_atm(vcc); - seq_printf(seq, "%p ", vcc); + seq_printf(seq, "%pK ", vcc); if (!vcc->dev) seq_printf(seq, "Unassigned "); else @@ -218,7 +218,7 @@ { if (!vcc->dev) seq_printf(seq, sizeof(void *) == 4 ? - "N/A@%p%10s" : "N/A@%p%2s", vcc, ""); + "N/A@%pK%10s" : "N/A@%pK%2s", vcc, ""); else seq_printf(seq, "%3d %3d %5d ", vcc->dev->number, vcc->vpi, vcc->vci); --- linux-2.6.38.orig/net/atm/atm_sysfs.c +++ linux-2.6.38/net/atm/atm_sysfs.c @@ -59,6 +59,14 @@ return pos - buf; } +static ssize_t show_atmindex(struct device *cdev, + struct device_attribute *attr, char *buf) +{ + struct atm_dev *adev = to_atm_dev(cdev); + + return sprintf(buf, "%d\n", adev->number); +} + static ssize_t show_carrier(struct device *cdev, struct device_attribute *attr, char *buf) { @@ -99,6 +107,7 @@ static DEVICE_ATTR(address, S_IRUGO, show_address, NULL); static DEVICE_ATTR(atmaddress, S_IRUGO, show_atmaddress, NULL); +static DEVICE_ATTR(atmindex, S_IRUGO, show_atmindex, NULL); static DEVICE_ATTR(carrier, S_IRUGO, show_carrier, NULL); static DEVICE_ATTR(type, S_IRUGO, show_type, NULL); static DEVICE_ATTR(link_rate, S_IRUGO, show_link_rate, NULL); @@ -106,6 +115,7 @@ static struct device_attribute *atm_attrs[] = { &dev_attr_atmaddress, &dev_attr_address, + &dev_attr_atmindex, &dev_attr_carrier, &dev_attr_type, &dev_attr_link_rate, --- linux-2.6.38.orig/net/atm/common.c +++ linux-2.6.38/net/atm/common.c @@ -252,6 +252,7 @@ } write_unlock_irq(&vcc_sklist_lock); } +EXPORT_SYMBOL(atm_dev_release_vccs); static int adjust_tp(struct atm_trafprm *tp, unsigned char aal) { --- linux-2.6.38.orig/net/rose/rose_subr.c +++ linux-2.6.38/net/rose/rose_subr.c @@ -142,7 +142,7 @@ *dptr++ = ROSE_GFI | lci1; *dptr++ = lci2; *dptr++ = frametype; - *dptr++ = 0xAA; + *dptr++ = ROSE_CALL_REQ_ADDR_LEN_VAL; memcpy(dptr, &rose->dest_addr, ROSE_ADDR_LEN); dptr += ROSE_ADDR_LEN; memcpy(dptr, &rose->source_addr, ROSE_ADDR_LEN); @@ -246,12 +246,16 @@ do { switch (*p & 0xC0) { case 0x00: + if (len < 2) + return -1; p += 2; n += 2; len -= 2; break; case 0x40: + if (len < 3) + return -1; if (*p == FAC_NATIONAL_RAND) facilities->rand = ((p[1] << 8) & 0xFF00) + ((p[2] << 0) & 0x00FF); p += 3; @@ -260,40 +264,61 @@ break; case 0x80: + if (len < 4) + return -1; p += 4; n += 4; len -= 4; break; case 0xC0: + if (len < 2) + return -1; l = p[1]; + if (len < 2 + l) + return -1; if (*p == FAC_NATIONAL_DEST_DIGI) { if (!fac_national_digis_received) { + if (l < AX25_ADDR_LEN) + return -1; memcpy(&facilities->source_digis[0], p + 2, AX25_ADDR_LEN); facilities->source_ndigis = 1; } } else if (*p == FAC_NATIONAL_SRC_DIGI) { if (!fac_national_digis_received) { + if (l < AX25_ADDR_LEN) + return -1; memcpy(&facilities->dest_digis[0], p + 2, AX25_ADDR_LEN); facilities->dest_ndigis = 1; } } else if (*p == FAC_NATIONAL_FAIL_CALL) { + if (l < AX25_ADDR_LEN) + return -1; memcpy(&facilities->fail_call, p + 2, AX25_ADDR_LEN); } else if (*p == FAC_NATIONAL_FAIL_ADD) { + if (l < 1 + ROSE_ADDR_LEN) + return -1; memcpy(&facilities->fail_addr, p + 3, ROSE_ADDR_LEN); } else if (*p == FAC_NATIONAL_DIGIS) { + if (l % AX25_ADDR_LEN) + return -1; fac_national_digis_received = 1; facilities->source_ndigis = 0; facilities->dest_ndigis = 0; for (pt = p + 2, lg = 0 ; lg < l ; pt += AX25_ADDR_LEN, lg += AX25_ADDR_LEN) { - if (pt[6] & AX25_HBIT) + if (pt[6] & AX25_HBIT) { + if (facilities->dest_ndigis >= ROSE_MAX_DIGIS) + return -1; memcpy(&facilities->dest_digis[facilities->dest_ndigis++], pt, AX25_ADDR_LEN); - else + } else { + if (facilities->source_ndigis >= ROSE_MAX_DIGIS) + return -1; memcpy(&facilities->source_digis[facilities->source_ndigis++], pt, AX25_ADDR_LEN); + } } } p += l + 2; @@ -314,25 +339,38 @@ do { switch (*p & 0xC0) { case 0x00: + if (len < 2) + return -1; p += 2; n += 2; len -= 2; break; case 0x40: + if (len < 3) + return -1; p += 3; n += 3; len -= 3; break; case 0x80: + if (len < 4) + return -1; p += 4; n += 4; len -= 4; break; case 0xC0: + if (len < 2) + return -1; l = p[1]; + + /* Prevent overflows*/ + if (l < 10 || l > 20) + return -1; + if (*p == FAC_CCITT_DEST_NSAP) { memcpy(&facilities->source_addr, p + 7, ROSE_ADDR_LEN); memcpy(callsign, p + 12, l - 10); @@ -355,45 +393,44 @@ return n; } -int rose_parse_facilities(unsigned char *p, +int rose_parse_facilities(unsigned char *p, unsigned packet_len, struct rose_facilities_struct *facilities) { int facilities_len, len; facilities_len = *p++; - if (facilities_len == 0) + if (facilities_len == 0 || (unsigned)facilities_len > packet_len) return 0; - while (facilities_len > 0) { - if (*p == 0x00) { - facilities_len--; - p++; - - switch (*p) { - case FAC_NATIONAL: /* National */ - len = rose_parse_national(p + 1, facilities, facilities_len - 1); - facilities_len -= len + 1; - p += len + 1; - break; - - case FAC_CCITT: /* CCITT */ - len = rose_parse_ccitt(p + 1, facilities, facilities_len - 1); - facilities_len -= len + 1; - p += len + 1; - break; - - default: - printk(KERN_DEBUG "ROSE: rose_parse_facilities - unknown facilities family %02X\n", *p); - facilities_len--; - p++; - break; - } - } else - break; /* Error in facilities format */ + while (facilities_len >= 3 && *p == 0x00) { + facilities_len--; + p++; + + switch (*p) { + case FAC_NATIONAL: /* National */ + len = rose_parse_national(p + 1, facilities, facilities_len - 1); + break; + + case FAC_CCITT: /* CCITT */ + len = rose_parse_ccitt(p + 1, facilities, facilities_len - 1); + break; + + default: + printk(KERN_DEBUG "ROSE: rose_parse_facilities - unknown facilities family %02X\n", *p); + len = 1; + break; + } + + if (len < 0) + return 0; + if (WARN_ON(len >= facilities_len)) + return 0; + facilities_len -= len + 1; + p += len + 1; } - return 1; + return facilities_len == 0; } static int rose_create_facilities(unsigned char *buffer, struct rose_sock *rose) --- linux-2.6.38.orig/net/rose/rose_route.c +++ linux-2.6.38/net/rose/rose_route.c @@ -857,7 +857,7 @@ unsigned int lci, new_lci; unsigned char cause, diagnostic; struct net_device *dev; - int len, res = 0; + int res = 0; char buf[11]; #if 0 @@ -865,10 +865,17 @@ return res; #endif + if (skb->len < ROSE_MIN_LEN) + return res; frametype = skb->data[2]; lci = ((skb->data[0] << 8) & 0xF00) + ((skb->data[1] << 0) & 0x0FF); - src_addr = (rose_address *)(skb->data + 9); - dest_addr = (rose_address *)(skb->data + 4); + if (frametype == ROSE_CALL_REQUEST && + (skb->len <= ROSE_CALL_REQ_FACILITIES_OFF || + skb->data[ROSE_CALL_REQ_ADDR_LEN_OFF] != + ROSE_CALL_REQ_ADDR_LEN_VAL)) + return res; + src_addr = (rose_address *)(skb->data + ROSE_CALL_REQ_SRC_ADDR_OFF); + dest_addr = (rose_address *)(skb->data + ROSE_CALL_REQ_DEST_ADDR_OFF); spin_lock_bh(&rose_neigh_list_lock); spin_lock_bh(&rose_route_list_lock); @@ -1006,12 +1013,11 @@ goto out; } - len = (((skb->data[3] >> 4) & 0x0F) + 1) >> 1; - len += (((skb->data[3] >> 0) & 0x0F) + 1) >> 1; - memset(&facilities, 0x00, sizeof(struct rose_facilities_struct)); - if (!rose_parse_facilities(skb->data + len + 4, &facilities)) { + if (!rose_parse_facilities(skb->data + ROSE_CALL_REQ_FACILITIES_OFF, + skb->len - ROSE_CALL_REQ_FACILITIES_OFF, + &facilities)) { rose_transmit_clear_request(rose_neigh, lci, ROSE_INVALID_FACILITY, 76); goto out; } --- linux-2.6.38.orig/net/rose/rose_loopback.c +++ linux-2.6.38/net/rose/rose_loopback.c @@ -73,9 +73,20 @@ unsigned int lci_i, lci_o; while ((skb = skb_dequeue(&loopback_queue)) != NULL) { + if (skb->len < ROSE_MIN_LEN) { + kfree_skb(skb); + continue; + } lci_i = ((skb->data[0] << 8) & 0xF00) + ((skb->data[1] << 0) & 0x0FF); frametype = skb->data[2]; - dest = (rose_address *)(skb->data + 4); + if (frametype == ROSE_CALL_REQUEST && + (skb->len <= ROSE_CALL_REQ_FACILITIES_OFF || + skb->data[ROSE_CALL_REQ_ADDR_LEN_OFF] != + ROSE_CALL_REQ_ADDR_LEN_VAL)) { + kfree_skb(skb); + continue; + } + dest = (rose_address *)(skb->data + ROSE_CALL_REQ_DEST_ADDR_OFF); lci_o = ROSE_DEFAULT_MAXVC + 1 - lci_i; skb_reset_transport_header(skb); --- linux-2.6.38.orig/net/rose/af_rose.c +++ linux-2.6.38/net/rose/af_rose.c @@ -985,7 +985,7 @@ struct sock *make; struct rose_sock *make_rose; struct rose_facilities_struct facilities; - int n, len; + int n; skb->sk = NULL; /* Initially we don't know who it's for */ @@ -994,9 +994,9 @@ */ memset(&facilities, 0x00, sizeof(struct rose_facilities_struct)); - len = (((skb->data[3] >> 4) & 0x0F) + 1) >> 1; - len += (((skb->data[3] >> 0) & 0x0F) + 1) >> 1; - if (!rose_parse_facilities(skb->data + len + 4, &facilities)) { + if (!rose_parse_facilities(skb->data + ROSE_CALL_REQ_FACILITIES_OFF, + skb->len - ROSE_CALL_REQ_FACILITIES_OFF, + &facilities)) { rose_transmit_clear_request(neigh, lci, ROSE_INVALID_FACILITY, 76); return 0; } --- linux-2.6.38.orig/net/can/raw.c +++ linux-2.6.38/net/can/raw.c @@ -305,7 +305,12 @@ static int raw_release(struct socket *sock) { struct sock *sk = sock->sk; - struct raw_sock *ro = raw_sk(sk); + struct raw_sock *ro; + + if (!sk) + return 0; + + ro = raw_sk(sk); unregister_netdevice_notifier(&ro->notifier); --- linux-2.6.38.orig/net/can/bcm.c +++ linux-2.6.38/net/can/bcm.c @@ -165,9 +165,9 @@ struct bcm_sock *bo = bcm_sk(sk); struct bcm_op *op; - seq_printf(m, ">>> socket %p", sk->sk_socket); - seq_printf(m, " / sk %p", sk); - seq_printf(m, " / bo %p", bo); + seq_printf(m, ">>> socket %pK", sk->sk_socket); + seq_printf(m, " / sk %pK", sk); + seq_printf(m, " / bo %pK", bo); seq_printf(m, " / dropped %lu", bo->dropped_usr_msgs); seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex)); seq_printf(m, " <<<\n"); @@ -1427,9 +1427,14 @@ static int bcm_release(struct socket *sock) { struct sock *sk = sock->sk; - struct bcm_sock *bo = bcm_sk(sk); + struct bcm_sock *bo; struct bcm_op *op, *next; + if (sk == NULL) + return 0; + + bo = bcm_sk(sk); + /* remove bcm_ops, timer, rx_unregister(), etc. */ unregister_netdevice_notifier(&bo->notifier); --- linux-2.6.38.orig/net/phonet/socket.c +++ linux-2.6.38/net/phonet/socket.c @@ -632,7 +632,7 @@ struct pn_sock *pn = pn_sk(sk); seq_printf(seq, "%2d %04X:%04X:%02X %02X %08X:%08X %5d %lu " - "%d %p %d%n", + "%d %pK %d%n", sk->sk_protocol, pn->sobject, 0, pn->resource, sk->sk_state, sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk), --- linux-2.6.38.orig/net/dccp/ipv6.c +++ linux-2.6.38/net/dccp/ipv6.c @@ -29,6 +29,7 @@ #include #include #include +#include #include "dccp.h" #include "ipv6.h" @@ -69,13 +70,7 @@ dh->dccph_checksum = dccp_v6_csum_finish(skb, &np->saddr, &np->daddr); } -static inline __u32 secure_dccpv6_sequence_number(__be32 *saddr, __be32 *daddr, - __be16 sport, __be16 dport ) -{ - return secure_tcpv6_sequence_number(saddr, daddr, sport, dport); -} - -static inline __u32 dccp_v6_init_sequence(struct sk_buff *skb) +static inline __u64 dccp_v6_init_sequence(struct sk_buff *skb) { return secure_dccpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32, ipv6_hdr(skb)->saddr.s6_addr32, --- linux-2.6.38.orig/net/dccp/options.c +++ linux-2.6.38/net/dccp/options.c @@ -123,6 +123,8 @@ case DCCPO_CHANGE_L ... DCCPO_CONFIRM_R: if (pkt_type == DCCP_PKT_DATA) /* RFC 4340, 6 */ break; + if (len == 0) + goto out_invalid_option; rc = dccp_feat_parse_options(sk, dreq, mandatory, opt, *value, value + 1, len - 1); if (rc) --- linux-2.6.38.orig/net/dccp/ipv4.c +++ linux-2.6.38/net/dccp/ipv4.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "ackvec.h" #include "ccid.h" --- linux-2.6.38.orig/net/core/secure_seq.c +++ linux-2.6.38/net/core/secure_seq.c @@ -0,0 +1,184 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +static u32 net_secret[MD5_MESSAGE_BYTES / 4] ____cacheline_aligned; + +static int __init net_secret_init(void) +{ + get_random_bytes(net_secret, sizeof(net_secret)); + return 0; +} +late_initcall(net_secret_init); + +static u32 seq_scale(u32 seq) +{ + /* + * As close as possible to RFC 793, which + * suggests using a 250 kHz clock. + * Further reading shows this assumes 2 Mb/s networks. + * For 10 Mb/s Ethernet, a 1 MHz clock is appropriate. + * For 10 Gb/s Ethernet, a 1 GHz clock should be ok, but + * we also need to limit the resolution so that the u32 seq + * overlaps less than one time per MSL (2 minutes). + * Choosing a clock of 64 ns period is OK. (period of 274 s) + */ + return seq + (ktime_to_ns(ktime_get_real()) >> 6); +} + +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) +__u32 secure_tcpv6_sequence_number(__be32 *saddr, __be32 *daddr, + __be16 sport, __be16 dport) +{ + u32 secret[MD5_MESSAGE_BYTES / 4]; + u32 hash[MD5_DIGEST_WORDS]; + u32 i; + + memcpy(hash, saddr, 16); + for (i = 0; i < 4; i++) + secret[i] = net_secret[i] + daddr[i]; + secret[4] = net_secret[4] + + (((__force u16)sport << 16) + (__force u16)dport); + for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) + secret[i] = net_secret[i]; + + md5_transform(hash, secret); + + return seq_scale(hash[0]); +} +EXPORT_SYMBOL(secure_tcpv6_sequence_number); + +u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr, + __be16 dport) +{ + u32 secret[MD5_MESSAGE_BYTES / 4]; + u32 hash[MD5_DIGEST_WORDS]; + u32 i; + + memcpy(hash, saddr, 16); + for (i = 0; i < 4; i++) + secret[i] = net_secret[i] + (__force u32) daddr[i]; + secret[4] = net_secret[4] + (__force u32)dport; + for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) + secret[i] = net_secret[i]; + + md5_transform(hash, secret); + + return hash[0]; +} +#endif + +#ifdef CONFIG_INET +__u32 secure_ip_id(__be32 daddr) +{ + u32 hash[MD5_DIGEST_WORDS]; + + hash[0] = (__force __u32) daddr; + hash[1] = net_secret[13]; + hash[2] = net_secret[14]; + hash[3] = net_secret[15]; + + md5_transform(hash, net_secret); + + return hash[0]; +} + +__u32 secure_ipv6_id(const __be32 daddr[4]) +{ + __u32 hash[4]; + + memcpy(hash, daddr, 16); + md5_transform(hash, net_secret); + + return hash[0]; +} + +__u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, + __be16 sport, __be16 dport) +{ + u32 hash[MD5_DIGEST_WORDS]; + + hash[0] = (__force u32)saddr; + hash[1] = (__force u32)daddr; + hash[2] = ((__force u16)sport << 16) + (__force u16)dport; + hash[3] = net_secret[15]; + + md5_transform(hash, net_secret); + + return seq_scale(hash[0]); +} + +u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport) +{ + u32 hash[MD5_DIGEST_WORDS]; + + hash[0] = (__force u32)saddr; + hash[1] = (__force u32)daddr; + hash[2] = (__force u32)dport ^ net_secret[14]; + hash[3] = net_secret[15]; + + md5_transform(hash, net_secret); + + return hash[0]; +} +EXPORT_SYMBOL_GPL(secure_ipv4_port_ephemeral); +#endif + +#if defined(CONFIG_IP_DCCP) || defined(CONFIG_IP_DCCP_MODULE) +u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, + __be16 sport, __be16 dport) +{ + u32 hash[MD5_DIGEST_WORDS]; + u64 seq; + + hash[0] = (__force u32)saddr; + hash[1] = (__force u32)daddr; + hash[2] = ((__force u16)sport << 16) + (__force u16)dport; + hash[3] = net_secret[15]; + + md5_transform(hash, net_secret); + + seq = hash[0] | (((u64)hash[1]) << 32); + seq += ktime_to_ns(ktime_get_real()); + seq &= (1ull << 48) - 1; + + return seq; +} +EXPORT_SYMBOL(secure_dccp_sequence_number); + +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) +u64 secure_dccpv6_sequence_number(__be32 *saddr, __be32 *daddr, + __be16 sport, __be16 dport) +{ + u32 secret[MD5_MESSAGE_BYTES / 4]; + u32 hash[MD5_DIGEST_WORDS]; + u64 seq; + u32 i; + + memcpy(hash, saddr, 16); + for (i = 0; i < 4; i++) + secret[i] = net_secret[i] + daddr[i]; + secret[4] = net_secret[4] + + (((__force u16)sport << 16) + (__force u16)dport); + for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) + secret[i] = net_secret[i]; + + md5_transform(hash, secret); + + seq = hash[0] | (((u64)hash[1]) << 32); + seq += ktime_to_ns(ktime_get_real()); + seq &= (1ull << 48) - 1; + + return seq; +} +EXPORT_SYMBOL(secure_dccpv6_sequence_number); +#endif +#endif --- linux-2.6.38.orig/net/core/ethtool.c +++ linux-2.6.38/net/core/ethtool.c @@ -146,9 +146,24 @@ } EXPORT_SYMBOL(ethtool_op_get_flags); +/* Check if device can enable (or disable) particular feature coded in "data" + * argument. Flags "supported" describe features that can be toggled by device. + * If feature can not be toggled, it state (enabled or disabled) must match + * hardcoded device features state, otherwise flags are marked as invalid. + */ +bool ethtool_invalid_flags(struct net_device *dev, u32 data, u32 supported) +{ + u32 features = dev->features & flags_dup_features; + /* "data" can contain only flags_dup_features bits, + * see __ethtool_set_flags */ + + return (features & ~supported) != (data & ~supported); +} +EXPORT_SYMBOL(ethtool_invalid_flags); + int ethtool_op_set_flags(struct net_device *dev, u32 data, u32 supported) { - if (data & ~supported) + if (ethtool_invalid_flags(dev, data, supported)) return -EINVAL; dev->features = ((dev->features & ~flags_dup_features) | --- linux-2.6.38.orig/net/core/skbuff.c +++ linux-2.6.38/net/core/skbuff.c @@ -2997,6 +2997,9 @@ skb->destructor = sock_rmem_free; atomic_add(skb->truesize, &sk->sk_rmem_alloc); + /* before exiting rcu section, make sure dst is refcounted */ + skb_dst_force(skb); + skb_queue_tail(&sk->sk_error_queue, skb); if (!sock_flag(sk, SOCK_DEAD)) sk->sk_data_ready(sk, skb->len); --- linux-2.6.38.orig/net/core/dev.c +++ linux-2.6.38/net/core/dev.c @@ -1006,7 +1006,7 @@ } write_lock_bh(&dev_base_lock); - hlist_del(&dev->name_hlist); + hlist_del_rcu(&dev->name_hlist); write_unlock_bh(&dev_base_lock); synchronize_rcu(); @@ -1332,11 +1332,13 @@ */ int dev_close(struct net_device *dev) { - LIST_HEAD(single); + if (dev->flags & IFF_UP) { + LIST_HEAD(single); - list_add(&dev->unreg_list, &single); - dev_close_many(&single); - list_del(&single); + list_add(&dev->unreg_list, &single); + dev_close_many(&single); + list_del(&single); + } return 0; } EXPORT_SYMBOL(dev_close); --- linux-2.6.38.orig/net/core/Makefile +++ linux-2.6.38/net/core/Makefile @@ -3,7 +3,7 @@ # obj-y := sock.o request_sock.o skbuff.o iovec.o datagram.o stream.o scm.o \ - gen_stats.o gen_estimator.o net_namespace.o + gen_stats.o gen_estimator.o net_namespace.o secure_seq.o obj-$(CONFIG_SYSCTL) += sysctl_net_core.o --- linux-2.6.38.orig/tools/perf/builtin-top.c +++ linux-2.6.38/tools/perf/builtin-top.c @@ -183,7 +183,6 @@ FILE *file; char command[PATH_MAX*2]; const char *path; - u64 len; if (!syme) return -1; @@ -212,8 +211,6 @@ } path = map->dso->long_name; - len = sym->end - sym->start; - sprintf(command, "objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s", BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start), @@ -1296,7 +1293,7 @@ { pthread_t thread; struct perf_evsel *counter; - int i, ret; + int i, ret __used; /* * FIXME: perf_session__new should allow passing a O_MMAP, so that all this * mmap reading, etc is encapsulated in it. Use O_WRONLY for now. --- linux-2.6.38.orig/tools/perf/builtin-sched.c +++ linux-2.6.38/tools/perf/builtin-sched.c @@ -369,11 +369,6 @@ process_sched_event(struct task_desc *this_task __used, struct sched_atom *atom) { int ret = 0; - u64 now; - long long delta; - - now = get_nsecs(); - delta = start_time + atom->timestamp - now; switch (atom->type) { case SCHED_EVENT_RUN: @@ -562,7 +557,7 @@ static void run_one_test(void) { - u64 T0, T1, delta, avg_delta, fluct, std_dev; + u64 T0, T1, delta, avg_delta, fluct; T0 = get_nsecs(); wait_for_tasks(); @@ -578,7 +573,6 @@ else fluct = delta - avg_delta; sum_fluct += fluct; - std_dev = sum_fluct / nr_runs / sqrt(nr_runs); if (!run_avg) run_avg = delta; run_avg = (run_avg*9 + delta)/10; @@ -799,7 +793,7 @@ u64 timestamp, struct thread *thread __used) { - struct task_desc *prev, *next; + struct task_desc *prev, __used *next; u64 timestamp0; s64 delta; @@ -1404,7 +1398,7 @@ u64 timestamp, struct thread *thread __used) { - struct thread *sched_out, *sched_in; + struct thread *sched_out __used, *sched_in; int new_shortname; u64 timestamp0; s64 delta; --- linux-2.6.38.orig/tools/perf/util/header.c +++ linux-2.6.38/tools/perf/util/header.c @@ -1144,7 +1144,7 @@ { event_t ev; ssize_t size = 0, aligned_size = 0, padding; - int err = 0; + int err __used = 0; memset(&ev, 0, sizeof(ev)); --- linux-2.6.38.orig/tools/perf/util/PERF-VERSION-GEN +++ linux-2.6.38/tools/perf/util/PERF-VERSION-GEN @@ -23,10 +23,10 @@ then VN=$(echo "$VN" | sed -e 's/-/./g'); else - eval `grep '^VERSION\s*=' ../../Makefile|tr -d ' '` - eval `grep '^PATCHLEVEL\s*=' ../../Makefile|tr -d ' '` - eval `grep '^SUBLEVEL\s*=' ../../Makefile|tr -d ' '` - eval `grep '^EXTRAVERSION\s*=' ../../Makefile|tr -d ' '` + eval $(grep '^VERSION[[:space:]]*=' ../../Makefile|tr -d ' ') + eval $(grep '^PATCHLEVEL[[:space:]]*=' ../../Makefile|tr -d ' ') + eval $(grep '^SUBLEVEL[[:space:]]*=' ../../Makefile|tr -d ' ') + eval $(grep '^EXTRAVERSION[[:space:]]*=' ../../Makefile|tr -d ' ') VN="${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}" fi --- linux-2.6.38.orig/tools/perf/util/hist.c +++ linux-2.6.38/tools/perf/util/hist.c @@ -1095,7 +1095,6 @@ char command[PATH_MAX * 2]; FILE *file; int err = 0; - u64 len; char symfs_filename[PATH_MAX]; if (filename) { @@ -1140,8 +1139,6 @@ filename, sym->name, map->unmap_ip(map, sym->start), map->unmap_ip(map, sym->end)); - len = sym->end - sym->start; - pr_debug("annotating [%p] %30s : [%p] %30s\n", dso, dso->long_name, sym, sym->name); --- linux-2.6.38.orig/tools/perf/util/trace-event-parse.c +++ linux-2.6.38/tools/perf/util/trace-event-parse.c @@ -153,7 +153,7 @@ char *next = NULL; char *addr_str; char ch; - int ret; + int ret __used; int i; line = strtok_r(file, "\n", &next); --- linux-2.6.38.orig/tools/perf/util/symbol.c +++ linux-2.6.38/tools/perf/util/symbol.c @@ -1525,8 +1525,8 @@ symbol_conf.symfs, self->long_name); break; case DSO__ORIG_GUEST_KMODULE: - if (map->groups && map->groups->machine) - root_dir = map->groups->machine->root_dir; + if (map->groups && machine) + root_dir = machine->root_dir; else root_dir = ""; snprintf(name, size, "%s%s%s", symbol_conf.symfs, --- linux-2.6.38.orig/tools/perf/util/ui/browsers/map.c +++ linux-2.6.38/tools/perf/util/ui/browsers/map.c @@ -41,7 +41,7 @@ out_free_form: newtPopWindow(); newtFormDestroy(form); - return 0; + return err; } struct map_browser { --- linux-2.6.38.orig/tools/perf/util/scripting-engines/trace-event-python.c +++ linux-2.6.38/tools/perf/util/scripting-engines/trace-event-python.c @@ -248,8 +248,7 @@ context = PyCObject_FromVoidPtr(scripting_context, NULL); PyTuple_SetItem(t, n++, PyString_FromString(handler_name)); - PyTuple_SetItem(t, n++, - PyCObject_FromVoidPtr(scripting_context, NULL)); + PyTuple_SetItem(t, n++, context); if (handler) { PyTuple_SetItem(t, n++, PyInt_FromLong(cpu)); --- linux-2.6.38.orig/tools/perf/bench/sched-pipe.c +++ linux-2.6.38/tools/perf/bench/sched-pipe.c @@ -55,7 +55,7 @@ * discarding returned value of read(), write() * causes error in building environment for perf */ - int ret, wait_stat; + int __used ret, wait_stat; pid_t pid, retpid; argc = parse_options(argc, argv, options, --- linux-2.6.38.orig/ubuntu/Kconfig +++ linux-2.6.38/ubuntu/Kconfig @@ -0,0 +1,53 @@ +menu "Ubuntu Supplied Third-Party Device Drivers" + +# +# NOTE: to allow drivers to be added and removed without causing merge +# collisions you should add new entries in the middle of the six lines +# of ## at the bottom of the list. Always add three lines of ## above +# your new entry and maintain the six lines below. +# + +## +## +## +source "ubuntu/compcache/Kconfig" +## +## +## +source "ubuntu/dm-raid4-5/Kconfig" +## +## +## +source "ubuntu/ndiswrapper/Kconfig" +## +## +## +source "ubuntu/rfkill/Kconfig" +## +## +## +source "ubuntu/fsam7400/Kconfig" +## +## +## +source "ubuntu/omnibook/Kconfig" +## +## +## +source "ubuntu/iscsitarget/Kconfig" +## +## +## +source "ubuntu/rtl8192se/Kconfig" +## +## +## +source "ubuntu/aufs/Kconfig" +## +## +## +## +## +## + +endmenu --- linux-2.6.38.orig/ubuntu/aufs-update +++ linux-2.6.38/ubuntu/aufs-update @@ -0,0 +1,38 @@ +#!/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 +} + * 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.38.orig/ubuntu/iscsitarget/iscsi_dbg.h +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/Kconfig +++ linux-2.6.38/ubuntu/iscsitarget/Kconfig @@ -0,0 +1,3 @@ +config SCSI_ISCSITARGET + tristate "iSCSI Target Driver" + depends on SCSI --- linux-2.6.38.orig/ubuntu/iscsitarget/BOM +++ linux-2.6.38/ubuntu/iscsitarget/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://sourceforge.net/projects/iscsitarget/files/ +Current Version: 1.4.20.2 --- linux-2.6.38.orig/ubuntu/iscsitarget/session.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/digest.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/block-io.c +++ linux-2.6.38/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 = blkdev_get_by_path(path, flags | FMODE_EXCL, 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) + blkdev_put(bio_data->bdev, flags | FMODE_EXCL); + 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.38.orig/ubuntu/iscsitarget/iscsi.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/config.c +++ linux-2.6.38/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 DEFINE_SEMAPHORE(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.38.orig/ubuntu/iscsitarget/digest.h +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/iscsi.h +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/target.c +++ linux-2.6.38/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 DEFINE_SEMAPHORE(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); + + sema_init(&target->target_sem, 1); + 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.38.orig/ubuntu/iscsitarget/Makefile +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/file-io.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/iscsi_hdr.h +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/null-io.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/tio.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/iotype.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/ua.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/volume.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/compat.h +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/conn.c +++ linux-2.6.38/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), + "%pI4", &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.38.orig/ubuntu/iscsitarget/wthread.c +++ linux-2.6.38/ubuntu/iscsitarget/wthread.c @@ -0,0 +1,258 @@ +/* + * 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 void copy_io_context(struct io_context **pdst, struct io_context **psrc) +{ + struct io_context *src = *psrc; + struct io_context *dst = *pdst; + + if (src) { + BUG_ON(atomic_long_read(&src->refcount) == 0); + atomic_long_inc(&src->refcount); + put_io_context(dst); + *pdst = src; + } +} + +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.38.orig/ubuntu/iscsitarget/param.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/event.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/iotype.h +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/nthread.c +++ linux-2.6.38/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.38.orig/ubuntu/iscsitarget/include/iet_u.h +++ linux-2.6.38/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.38.orig/ubuntu/include/Kbuild +++ linux-2.6.38/ubuntu/include/Kbuild @@ -0,0 +1 @@ +header-y += linux/ --- linux-2.6.38.orig/ubuntu/include/README +++ linux-2.6.38/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.38.orig/ubuntu/include/linux/aufs_type.h +++ linux-2.6.38/ubuntu/include/linux/aufs_type.h @@ -0,0 +1,197 @@ +/* + * Copyright (C) 2005-2011 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 +#include +#include +#include + +#define AUFS_VERSION "2.1-standalone.tree-38-rcN-20110207" + +/* 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_RDCACHE_MAX 3600 /* 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_DEF_SEC 30 /* seconds */ +#define AUFS_MFS_MAX_SEC 3600 /* seconds */ +#define AUFS_PLINK_WARN 100 /* number of plinks */ + +/* pseudo-link maintenace under /proc */ +#define AUFS_PLINK_MAINT_NAME "plink_maint" +#define AUFS_PLINK_MAINT_DIR "fs/" AUFS_NAME +#define AUFS_PLINK_MAINT_PATH AUFS_PLINK_MAINT_DIR "/" AUFS_PLINK_MAINT_NAME + +#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 { + /* 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_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.38.orig/ubuntu/include/linux/Kbuild +++ linux-2.6.38/ubuntu/include/linux/Kbuild @@ -0,0 +1 @@ +header-y += aufs_type.h --- linux-2.6.38.orig/ubuntu/compcache/Kconfig +++ linux-2.6.38/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.38.orig/ubuntu/compcache/BOM +++ linux-2.6.38/ubuntu/compcache/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://code.google.com/p/compcache/ +Current Version: 0.5.3 --- linux-2.6.38.orig/ubuntu/compcache/xvmalloc.c +++ linux-2.6.38/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.38.orig/ubuntu/compcache/ramzswap.h +++ linux-2.6.38/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.38.orig/ubuntu/compcache/LGPL-2.1.txt +++ linux-2.6.38/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.38.orig/ubuntu/compcache/Makefile +++ linux-2.6.38/ubuntu/compcache/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_BLK_DEV_COMPCACHE) := ramzswap.o xvmalloc.o --- linux-2.6.38.orig/ubuntu/compcache/xvmalloc_int.h +++ linux-2.6.38/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.38.orig/ubuntu/compcache/compat.h +++ linux-2.6.38/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.38.orig/ubuntu/compcache/xvmalloc.h +++ linux-2.6.38/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.38.orig/ubuntu/compcache/GPL.txt +++ linux-2.6.38/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.38.orig/ubuntu/compcache/Changelog +++ linux-2.6.38/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.38.orig/ubuntu/compcache/README +++ linux-2.6.38/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.38.orig/ubuntu/compcache/ramzswap.c +++ linux-2.6.38/ubuntu/compcache/ramzswap.c @@ -0,0 +1,1050 @@ +/* + * 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 = blkdev_get(bdev, O_RDWR | FMODE_EXCL, 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); + blkdev_put(bdev, O_RDWR | FMODE_EXCL); + } + 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); + blkdev_put(rzs.backing_swap, O_RDWR | FMODE_EXCL); + 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.38.orig/ubuntu/rfkill/Kconfig +++ linux-2.6.38/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.38.orig/ubuntu/rfkill/BOM +++ linux-2.6.38/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.38.orig/ubuntu/rfkill/pbe5.c +++ linux-2.6.38/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.38.orig/ubuntu/rfkill/Makefile +++ linux-2.6.38/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.38.orig/ubuntu/rfkill/av5100.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/wireless.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/init.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/pio.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/kbc.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/blank.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/muteled.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/acpi.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/display.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/ac.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/bluetooth.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/fan.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/touchpad.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/Kconfig +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/BOM +++ linux-2.6.38/ubuntu/omnibook/BOM @@ -0,0 +1,3 @@ +Downloaded from: git://omnibook.git.sourceforge.net/gitroot/omnibook/omnibook +Current Version: 2.20070211 +Documentation: http://sourceforge.net/apps/mediawiki/omnibook/ --- linux-2.6.38.orig/ubuntu/omnibook/nbsmi.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/compal.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/dock.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/throttling.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/hotkeys.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/polling.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/laptop.h +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/dump.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/hardware.h +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/Makefile +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/info.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/lib.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/lcd.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/temperature.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/compat.h +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/battery.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/ec.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/sections.lds +++ linux-2.6.38/ubuntu/omnibook/sections.lds @@ -0,0 +1,11 @@ +SECTIONS +{ + .data : + { + . = ALIGN(32); + _start_features_driver = .; + *(.features) + _end_features_driver = .; + *(.data) + } +} --- linux-2.6.38.orig/ubuntu/omnibook/cooling.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/fan_policy.c +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/omnibook.h +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/misc/dmi_strings.txt +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/misc/README.mmkeys +++ linux-2.6.38/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 --- linux-2.6.38.orig/ubuntu/omnibook/misc/hotkeys/ob5xx.def +++ linux-2.6.38/ubuntu/omnibook/misc/hotkeys/ob5xx.def @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.38.orig/ubuntu/omnibook/misc/hotkeys/xt155.def +++ linux-2.6.38/ubuntu/omnibook/misc/hotkeys/xt155.def @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.38.orig/ubuntu/omnibook/misc/hotkeys/README.hotkeys +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/misc/hotkeys/xe3gf.def +++ linux-2.6.38/ubuntu/omnibook/misc/hotkeys/xe3gf.def @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.38.orig/ubuntu/omnibook/misc/hotkeys/xe4xxx.def +++ linux-2.6.38/ubuntu/omnibook/misc/hotkeys/xe4xxx.def @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.38.orig/ubuntu/omnibook/misc/hotkeys/xe3gc.def +++ linux-2.6.38/ubuntu/omnibook/misc/hotkeys/xe3gc.def @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.38.orig/ubuntu/omnibook/misc/hotkeys/nx9xxx.def +++ linux-2.6.38/ubuntu/omnibook/misc/hotkeys/nx9xxx.def @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-2.6.38.orig/ubuntu/omnibook/doc/ChangeLog +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/doc/COPYING +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/doc/CREDITS +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/doc/BUGS +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/doc/README +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/debian/README.Debian +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/debian/copyright +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/debian/changelog +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/debian/docs +++ linux-2.6.38/ubuntu/omnibook/debian/docs @@ -0,0 +1,4 @@ +doc/BUGS +doc/CREDITS +doc/README +misc/hotkeys --- linux-2.6.38.orig/ubuntu/omnibook/debian/rules +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/debian/control +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/debian/control.modules.in +++ linux-2.6.38/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.38.orig/ubuntu/omnibook/debian/compat +++ linux-2.6.38/ubuntu/omnibook/debian/compat @@ -0,0 +1 @@ +7 --- linux-2.6.38.orig/ubuntu/ndiswrapper/ntoskernel_io.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/wrapndis.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/crt.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/pe_linker.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/wrapmem.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/win2lin_stubs.S +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/ndis.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/Kconfig +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/BOM +++ linux-2.6.38/ubuntu/ndiswrapper/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://sourceforge.net/project/showfiles.php?group_id=93482 +Current Version: 1.56 --- linux-2.6.38.orig/ubuntu/ndiswrapper/ndiswrapper.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/proc.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/mkstubs.sh +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/wrapndis.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/wrapper.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/usb.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/winnt_types.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/mkexport.sh +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/hal.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/loader.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/wrapper.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/pe_linker.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/loader.c +++ linux-2.6.38/ubuntu/ndiswrapper/loader.c @@ -0,0 +1,884 @@ +/* + * 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; +} + +static DEFINE_MUTEX(ndiswrapper_ioctl_mutex); + +/* called with loader_mutex is down */ +static long wrapper_ioctl(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; + + mutex_lock(&ndiswrapper_ioctl_mutex); + + 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); + + mutex_unlock(&ndiswrapper_ioctl_mutex); + + 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, + .unlocked_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.38.orig/ubuntu/ndiswrapper/usb.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/ntoskernel.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/Makefile +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/pnp.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/rtl.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/pnp.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/lin2win.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/iw_ndis.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/iw_ndis.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/wrapmem.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/ndis.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/ntoskernel.c +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/longlong.h +++ linux-2.6.38/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.38.orig/ubuntu/ndiswrapper/divdi3.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_rfkill.h +++ linux-2.6.38/ubuntu/rtl8192se/rtl_rfkill.h @@ -0,0 +1,12 @@ +#ifndef RTL_RFKILL_H +#define RTL_RFKILL_H + +#ifdef CONFIG_RTL_RFKILL +struct net_device; + +bool rtl8192_rfkill_init(struct net_device *dev); +void rtl8192_rfkill_poll(struct net_device *dev); +void rtl8192_rfkill_exit(struct net_device *dev); +#endif + +#endif /* RTL_RFKILL_H */ --- linux-2.6.38.orig/ubuntu/rtl8192se/rtl_cam.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_core.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_ps.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_dm.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_eeprom.c +++ linux-2.6.38/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 "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.38.orig/ubuntu/rtl8192se/rtl_mesh.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_pci.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_mesh.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_debug.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_rfkill.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_dm.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_cam.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_eeprom.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/Makefile +++ linux-2.6.38/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 (1,1) +###################### 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.38.orig/ubuntu/rtl8192se/rtl_ethtool.c +++ linux-2.6.38/ubuntu/rtl8192se/rtl_ethtool.c @@ -0,0 +1,59 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * Based on the r8180 driver, which is: + * Copyright 2004-2005 Andrea Merello , 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.38.orig/ubuntu/rtl8192se/rtl_pm.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_regd.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_core.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_debug.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_wx.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_pm.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_wx.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_ps.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl_regd.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtl_crypto.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/scatterwalk.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_crypt_ccmp.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/michael_mic.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/compress.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_rx.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/wapi_interface.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib.h +++ linux-2.6.38/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 + * + * 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.38.orig/ubuntu/rtl8192se/rtllib/rtl819x_BAProc.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_crypt_wep.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtl819x_TSProc.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/proc.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/digest.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtl819x_BA.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/autoload.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtl819x_Qos.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_module.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/arc4.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_crypt.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/scatterwalk.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_tx.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/crypto_compat.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/internal.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/api.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/Makefile +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/readme +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtl819x_HT.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_wx.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtl819x_TS.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtl819x_HTProc.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/wapi_interface.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/kmap_types.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_crypt_tkip.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/license +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/wapi.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/wapi.c +++ linux-2.6.38/ubuntu/rtl8192se/rtllib/wapi.c @@ -0,0 +1,1842 @@ +#if defined (RTL8192S_WAPI_SUPPORT) + +#include +#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.38.orig/ubuntu/rtl8192se/rtllib/cipher.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/dot11d.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/dot11d.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_softmac.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/rtllib_endianfree.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtllib/aes.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_led.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_mp.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_scan.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_def.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_scan.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.c +++ linux-2.6.38/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_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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_inc.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hw.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/Makefile +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_dev.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_led.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.h +++ linux-2.6.38/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.h @@ -0,0 +1,419 @@ +/****************************************************************************** + * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae +******************************************************************************/ +#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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_mp.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_phy.h +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_dev.c +++ linux-2.6.38/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); + + } + +} --- linux-2.6.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_phy.c +++ linux-2.6.38/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.38.orig/ubuntu/rtl8192se/rtl8192s/r8192S_phyreg.h +++ linux-2.6.38/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.38.orig/ubuntu/fsam7400/INSTALL +++ linux-2.6.38/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.38.orig/ubuntu/fsam7400/Kconfig +++ linux-2.6.38/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.38.orig/ubuntu/fsam7400/LICENSE +++ linux-2.6.38/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.38.orig/ubuntu/fsam7400/BOM +++ linux-2.6.38/ubuntu/fsam7400/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://www.iragan.com/linux/fsam7400/ +Current Version: 0.5.2 (2008 Nov 22) --- linux-2.6.38.orig/ubuntu/fsam7400/FILES +++ linux-2.6.38/ubuntu/fsam7400/FILES @@ -0,0 +1,6 @@ +CHANGELOG Recently changes logged +FILES This file +fsam7400.c The source code, what else... :) +INSTALL Installation instructions +Makefile Makefile to build, install, uninstall the module +README don't forget to read it --- linux-2.6.38.orig/ubuntu/fsam7400/Makefile +++ linux-2.6.38/ubuntu/fsam7400/Makefile @@ -0,0 +1,2 @@ + +obj-$(CONFIG_FSAM7400) += fsam7400.o --- linux-2.6.38.orig/ubuntu/fsam7400/CHANGELOG +++ linux-2.6.38/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.38.orig/ubuntu/fsam7400/fsam7400.c +++ linux-2.6.38/ubuntu/fsam7400/fsam7400.c @@ -0,0 +1,386 @@ +/******************************************************************************* + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Author: + Marcel Naziri + + 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.38.orig/ubuntu/fsam7400/README +++ linux-2.6.38/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.38.orig/ubuntu/aufs/ioctl.c +++ linux-2.6.38/ubuntu/aufs/ioctl.c @@ -0,0 +1,150 @@ +/* + * Copyright (C) 2005-2011 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_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.38.orig/ubuntu/aufs/module.h +++ linux-2.6.38/ubuntu/aufs/module.h @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2005-2011 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); + +#ifdef CONFIG_PROC_FS +/* procfs.c */ +int __init au_procfs_init(void); +void au_procfs_fin(void); +#else +AuStubInt0(au_procfs_init, void); +AuStubVoid(au_procfs_fin, void); +#endif + +/* ---------------------------------------------------------------------- */ + +/* 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.38.orig/ubuntu/aufs/fstype.h +++ linux-2.6.38/ubuntu/aufs/fstype.h @@ -0,0 +1,497 @@ +/* + * Copyright (C) 2005-2011 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.38.orig/ubuntu/aufs/inode.h +++ linux-2.6.38/ubuntu/aufs/inode.h @@ -0,0 +1,546 @@ +/* + * Copyright (C) 2005-2011 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 + /* never use fsnotify_add_vfsmount_mark() */ + struct fsnotify_mark hn_mark; + int hn_mark_dead; +#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) \ + do { (flags) |= AuPin_##name; } while (0) +#define au_fclr_pin(flags, name) \ + do { (flags) &= ~AuPin_##name; } while (0) + +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 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) \ + do { (flags) |= AuWrDir_##name; } while (0) +#define au_fclr_wrdir(flags, name) \ + do { (flags) &= ~AuWrDir_##name; } while (0) + +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) \ + do { (flags) |= AuHi_##name; } while (0) +#define au_fclr_hi(flags, name) \ + do { (flags) &= ~AuHi_##name; } while (0) + +#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); + +#ifdef CONFIG_PROC_FS +/* plink.c */ +int au_plink_maint(struct super_block *sb, int flags); +void au_plink_maint_leave(struct au_sbinfo *sbinfo); +int au_plink_maint_enter(struct super_block *sb); +#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, int verbose); +void au_plink_clean(struct super_block *sb, int verbose); +void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id); +#else +AuStubInt0(au_plink_maint, struct super_block *sb, int flags); +AuStubVoid(au_plink_maint_leave, struct au_sbinfo *sbinfo); +AuStubInt0(au_plink_maint_enter, struct super_block *sb); +AuStubVoid(au_plink_list, struct super_block *sb); +AuStubInt0(au_plink_test, struct inode *inode); +AuStub(struct dentry *, au_plink_lkup, return NULL, + struct inode *inode, aufs_bindex_t bindex); +AuStubVoid(au_plink_append, struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_dentry); +AuStubVoid(au_plink_put, struct super_block *sb, int verbose); +AuStubVoid(au_plink_clean, struct super_block *sb, int verbose); +AuStubVoid(au_plink_half_refresh, struct super_block *sb, aufs_bindex_t br_id); +#endif /* CONFIG_PROC_FS */ + +/* ---------------------------------------------------------------------- */ + +/* 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 void au_icntnr_init(struct au_icntnr *c) +{ +#ifdef CONFIG_AUFS_DEBUG + c->vfs_inode.i_mode = 0; +#endif +} + +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) +{ + atomic_dec(&au_ii(inode)->ii_generation); +} + +static inline int au_iigen_test(struct inode *inode, unsigned int sigen) +{ + int err; + + err = 0; + if (unlikely(inode && au_iigen(inode) != sigen)) + err = -EIO; + + return err; +} + +/* ---------------------------------------------------------------------- */ + +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) { + 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); + } +} + +/* ---------------------------------------------------------------------- */ + +struct au_branch; +#ifdef CONFIG_AUFS_HNOTIFY +struct au_hnotify_op { + void (*ctl)(struct au_hinode *hinode, int do_set); + int (*alloc)(struct au_hinode *hinode); + void (*free)(struct au_hinode *hinode); + + void (*fin)(void); + int (*init)(void); + + int (*reset_br)(unsigned int udba, struct au_branch *br, int perm); + void (*fin_br)(struct au_branch *br); + int (*init_br)(struct au_branch *br, int perm); +}; + +/* hnotify.c */ +int au_hn_alloc(struct au_hinode *hinode, struct inode *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 au_hnotify_reset_br(unsigned int udba, struct au_branch *br, int perm); +int au_hnotify_init_br(struct au_branch *br, int perm); +void au_hnotify_fin_br(struct au_branch *br); +int __init au_hnotify_init(void); +void au_hnotify_fin(void); + +/* hfsnotify.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) +{ + 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(au_hnotify_reset_br, unsigned int udba __maybe_unused, + struct au_branch *br __maybe_unused, + int perm __maybe_unused) +AuStubInt0(au_hnotify_init_br, struct au_branch *br __maybe_unused, + int perm __maybe_unused) +AuStubVoid(au_hnotify_fin_br, struct au_branch *br __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.38.orig/ubuntu/aufs/sysfs.c +++ linux-2.6.38/ubuntu/aufs/sysfs.c @@ -0,0 +1,250 @@ +/* + * Copyright (C) 2005-2011 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; +} + +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.38.orig/ubuntu/aufs/spl.h +++ linux-2.6.38/ubuntu/aufs/spl.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2005-2011 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.38.orig/ubuntu/aufs/plink.c +++ linux-2.6.38/ubuntu/aufs/plink.c @@ -0,0 +1,515 @@ +/* + * Copyright (C) 2005-2011 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" + +/* + * the pseudo-link maintenance mode. + * during a user process maintains the pseudo-links, + * prohibit adding a new plink and branch manipulation. + * + * Flags + * NOPLM: + * For entry functions which will handle plink, and i_mutex is already held + * in VFS. + * They cannot wait and should return an error at once. + * Callers has to check the error. + * NOPLMW: + * For entry functions which will handle plink, but i_mutex is not held + * in VFS. + * They can wait the plink maintenance mode to finish. + * + * They behave like F_SETLK and F_SETLKW. + * If the caller never handle plink, then both flags are unnecessary. + */ + +int au_plink_maint(struct super_block *sb, int flags) +{ + int err; + pid_t pid, ppid; + struct au_sbinfo *sbi; + + SiMustAnyLock(sb); + + err = 0; + if (!au_opt_test(au_mntflags(sb), PLINK)) + goto out; + + sbi = au_sbi(sb); + pid = sbi->si_plink_maint_pid; + if (!pid || pid == current->pid) + goto out; + + /* todo: it highly depends upon /sbin/mount.aufs */ + rcu_read_lock(); + ppid = task_pid_vnr(rcu_dereference(current->real_parent)); + rcu_read_unlock(); + if (pid == ppid) + goto out; + + if (au_ftest_lock(flags, NOPLMW)) { + /* if there is no i_mutex lock in VFS, we don't need to wait */ + /* AuDebugOn(!lockdep_depth(current)); */ + while (sbi->si_plink_maint_pid) { + si_read_unlock(sb); + /* gave up wake_up_bit() */ + wait_event(sbi->si_plink_wq, !sbi->si_plink_maint_pid); + + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&sbi->si_nowait); + si_noflush_read_lock(sb); + } + } else if (au_ftest_lock(flags, NOPLM)) { + AuDbg("ppid %d, pid %d\n", ppid, pid); + err = -EAGAIN; + } + +out: + return err; +} + +void au_plink_maint_leave(struct au_sbinfo *sbinfo) +{ + spin_lock(&sbinfo->si_plink_maint_lock); + sbinfo->si_plink_maint_pid = 0; + spin_unlock(&sbinfo->si_plink_maint_lock); + wake_up_all(&sbinfo->si_plink_wq); +} + +int au_plink_maint_enter(struct super_block *sb) +{ + int err; + struct au_sbinfo *sbinfo; + + err = 0; + sbinfo = au_sbi(sb); + /* make sure i am the only one in this fs */ + si_write_lock(sb, AuLock_FLUSH); + if (au_opt_test(au_mntflags(sb), PLINK)) { + spin_lock(&sbinfo->si_plink_maint_lock); + if (!sbinfo->si_plink_maint_pid) + sbinfo->si_plink_maint_pid = current->pid; + 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)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + 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)); + AuDebugOn(au_plink_maint(inode->i_sb, AuLock_NOPLM)); + + 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; +} + +struct au_do_plink_lkup_args { + struct dentry **errp; + struct qstr *tgtname; + struct dentry *h_parent; + struct au_branch *br; +}; + +static struct dentry *au_do_plink_lkup(struct qstr *tgtname, + struct dentry *h_parent, + struct au_branch *br) +{ + struct dentry *h_dentry; + struct mutex *h_mtx; + + h_mtx = &h_parent->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD2); + h_dentry = au_lkup_one(tgtname, h_parent, br, /*nd*/NULL); + mutex_unlock(h_mtx); + return h_dentry; +} + +static void au_call_do_plink_lkup(void *args) +{ + struct au_do_plink_lkup_args *a = args; + *a->errp = au_do_plink_lkup(a->tgtname, a->h_parent, a->br); +} + +/* 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; + int wkq_err; + char a[PLINK_NAME_LEN]; + struct qstr tgtname = { + .name = a + }; + + AuDebugOn(au_plink_maint(inode->i_sb, AuLock_NOPLM)); + + 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); + + if (current_fsuid()) { + struct au_do_plink_lkup_args args = { + .errp = &h_dentry, + .tgtname = &tgtname, + .h_parent = h_parent, + .br = br + }; + + wkq_err = au_wkq_wait(au_call_do_plink_lkup, &args); + if (unlikely(wkq_err)) + h_dentry = ERR_PTR(wkq_err); + } else + h_dentry = au_do_plink_lkup(&tgtname, h_parent, br); + + 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; + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_CHILD2); +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 */ + /* todo: is it really safe? */ + 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: + mutex_unlock(&h_dir->i_mutex); + 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. */ + if (current_fsuid()) { + 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); + + 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)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + 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); + 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, int verbose) +{ + 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)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + plink_list = &sbinfo->si_plink.head; + /* no spin_lock since sbinfo is write-locked */ + WARN(verbose && !list_empty(plink_list), "pseudo-link is not flushed"); + list_for_each_entry_safe(plink, tmp, plink_list, list) + do_put_plink(plink, 0); + INIT_LIST_HEAD(plink_list); +} + +void au_plink_clean(struct super_block *sb, int verbose) +{ + struct dentry *root; + + root = sb->s_root; + aufs_write_lock(root); + if (au_opt_test(au_mntflags(sb), PLINK)) + au_plink_put(sb, verbose); + aufs_write_unlock(root); +} + +/* 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)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + 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); + } +} --- linux-2.6.38.orig/ubuntu/aufs/finfo.c +++ linux-2.6.38/ubuntu/aufs/finfo.c @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2005-2011 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(&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; + + au_nfiles_dec(file->f_dentry->d_sb); + + finfo = au_fi(file); + AuDebugOn(finfo->fi_hdir); + AuRwDestroy(&finfo->fi_rwsem); + au_cache_free_finfo(finfo); +} + +void au_fi_init_once(void *_finfo) +{ + struct au_finfo *finfo = _finfo; + static struct lock_class_key aufs_fi, aufs_fi_vm, aufs_fi_mmap; + + au_rw_init(&finfo->fi_rwsem); + au_rw_class(&finfo->fi_rwsem, &aufs_fi); + mutex_init(&finfo->fi_vm_mtx); + lockdep_set_class(&finfo->fi_vm_mtx, &aufs_fi_vm); + mutex_init(&finfo->fi_mmap); + lockdep_set_class(&finfo->fi_mmap, &aufs_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_nfiles_inc(dentry->d_sb); + 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.38.orig/ubuntu/aufs/vfsub.h +++ linux-2.6.38/ubuntu/aufs/vfsub.h @@ -0,0 +1,226 @@ +/* + * Copyright (C) 2005-2011 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 +#include +#include "debug.h" + +/* copied from linux/fs/internal.h */ +DECLARE_BRLOCK(vfsmount_lock); +extern void file_sb_list_del(struct file *f); + +/* copied from linux/fs/file_table.c */ +DECLARE_LGLOCK(files_lglock); +#ifdef CONFIG_SMP +/* + * These macros iterate all files on all CPUs for a given superblock. + * files_lglock must be held globally. + */ +#define do_file_list_for_each_entry(__sb, __file) \ +{ \ + int i; \ + for_each_possible_cpu(i) { \ + struct list_head *list; \ + list = per_cpu_ptr((__sb)->s_files, i); \ + list_for_each_entry((__file), list, f_u.fu_list) + +#define while_file_list_for_each_entry \ + } \ +} + +#else + +#define do_file_list_for_each_entry(__sb, __file) \ +{ \ + struct list_head *list; \ + list = &(sb)->s_files; \ + list_for_each_entry((__file), list, f_u.fu_list) + +#define while_file_list_for_each_entry \ +} +#endif + +/* ---------------------------------------------------------------------- */ + +/* 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) + +/* ---------------------------------------------------------------------- */ + +static inline void vfsub_drop_nlink(struct inode *inode) +{ + AuDebugOn(!inode->i_nlink); + drop_nlink(inode); +} + +static inline void vfsub_dead_dir(struct inode *inode) +{ + AuDebugOn(!S_ISDIR(inode->i_mode)); + inode->i_flags |= S_DEAD; + clear_nlink(inode); +} + +/* ---------------------------------------------------------------------- */ + +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.38.orig/ubuntu/aufs/hnotify.c +++ linux-2.6.38/ubuntu/aufs/hnotify.c @@ -0,0 +1,709 @@ +/* + * Copyright (C) 2005-2011 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) +{ + int err; + struct au_hnotify *hn; + + err = -ENOMEM; + hn = au_cache_alloc_hnotify(); + if (hn) { + hn->hn_aufs_inode = inode; + hinode->hi_notify = hn; + err = au_hnotify_op.alloc(hinode); + AuTraceErr(err); + if (unlikely(err)) { + hinode->hi_notify = NULL; + 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; + } + } + + AuTraceErr(err); + return err; +} + +void au_hn_free(struct au_hinode *hinode) +{ + struct au_hnotify *hn; + + hn = hinode->hi_notify; + if (hn) { + au_hnotify_op.free(hinode); + 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; + + 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); + +#if 0 + /* discard children */ + dentry_unhash(dentry); + dput(dentry); +#endif +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(&inode->i_lock); + list_for_each_entry(d, &inode->i_dentry, d_alias) { + spin_lock(&d->d_lock); + dname = &d->d_name; + if (dname->len != nlen + && memcmp(dname->name, name, nlen)) { + spin_unlock(&d->d_lock); + continue; + } + err = 0; + au_digen_dec(d); + spin_unlock(&d->d_lock); + break; + } + spin_unlock(&inode->i_lock); + } else { + au_fset_si(au_sbi(inode->i_sb), FAILED_REFRESH_DIR); + d = d_find_alias(inode); + if (!d) { + au_iigen_dec(inode); + goto out; + } + + spin_lock(&d->d_lock); + dname = &d->d_name; + if (dname->len == nlen && !memcmp(dname->name, name, nlen)) { + spin_unlock(&d->d_lock); + err = hn_gen_tree(d); + spin_lock(&d->d_lock); + } + spin_unlock(&d->d_lock); + 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) { + au_digen_dec(dentry); + if (inode) + au_iigen_dec(inode); + } else { + au_fset_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIR); + 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) \ + do { (flags) |= AuHnJob_##name; } while (0) +#define au_fclr_hnjob(flags, name) \ + do { (flags) &= ~AuHnJob_##name; } while (0) + +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(&parent->d_lock); + list_for_each_entry(d, &parent->d_subdirs, d_u.d_child) { + /* AuDbg("%.*s\n", AuDLNPair(d)); */ + spin_lock_nested(&d->d_lock, DENTRY_D_LOCK_NESTED); + dname = &d->d_name; + if (dname->len != nlen || memcmp(dname->name, name, nlen)) + goto cont_unlock; + if (au_di(d)) + au_digen_dec(d); + else + goto cont_unlock; + if (d->d_count) { + dentry = dget_dlock(d); + spin_unlock(&d->d_lock); + break; + } + + cont_unlock: + spin_unlock(&d->d_lock); + } + spin_unlock(&parent->d_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); + si_write_lock(sb, AuLock_NOPLMW); + + 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 (au_di(dentry)) + 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: + iput(a->h_child_inode); + iput(a->h_dir); + iput(a->dir); + si_write_unlock(sb); + au_nwt_done(&sbinfo->si_nowait); + 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; +} + +/* ---------------------------------------------------------------------- */ + +int au_hnotify_reset_br(unsigned int udba, struct au_branch *br, int perm) +{ + int err; + + AuDebugOn(!(udba & AuOptMask_UDBA)); + + err = 0; + if (au_hnotify_op.reset_br) + err = au_hnotify_op.reset_br(udba, br, perm); + + return err; +} + +int au_hnotify_init_br(struct au_branch *br, int perm) +{ + int err; + + err = 0; + if (au_hnotify_op.init_br) + err = au_hnotify_op.init_br(br, perm); + + return err; +} + +void au_hnotify_fin_br(struct au_branch *br) +{ + if (au_hnotify_op.fin_br) + au_hnotify_op.fin_br(br); +} + +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 = 0; + if (au_hnotify_op.init) + err = au_hnotify_op.init(); + if (unlikely(err)) + au_hn_destroy_cache(); + } + AuTraceErr(err); + return err; +} + +void au_hnotify_fin(void) +{ + if (au_hnotify_op.fin) + au_hnotify_op.fin(); + /* cf. au_cache_fin() */ + if (au_cachep[AuCache_HNOTIFY]) + au_hn_destroy_cache(); +} --- linux-2.6.38.orig/ubuntu/aufs/module.c +++ linux-2.6.38/ubuntu/aufs/module.c @@ -0,0 +1,183 @@ +/* + * Copyright (C) 2005-2011 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]) + /* SLAB_DESTROY_BY_RCU */ + 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; + +#ifdef CONFIG_AUFS_SBILIST +struct au_splhead au_sbilist; +#endif + +/* + * 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); + + au_sbilist_init(); + sysaufs_brs_init(); + au_debug_init(); + au_dy_init(); + err = sysaufs_init(); + if (unlikely(err)) + goto out; + err = au_procfs_init(); + if (unlikely(err)) + goto out_sysaufs; + err = au_wkq_init(); + if (unlikely(err)) + goto out_procfs; + 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_procfs: + au_procfs_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(); + au_procfs_fin(); + sysaufs_fin(); + au_dy_fin(); +} + +module_init(aufs_init); +module_exit(aufs_exit); --- linux-2.6.38.orig/ubuntu/aufs/mtx.h +++ linux-2.6.38/ubuntu/aufs/mtx.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2010-2011 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.38.orig/ubuntu/aufs/i_op_add.c +++ linux-2.6.38/ubuntu/aufs/i_op_add.c @@ -0,0 +1,702 @@ +/* + * Copyright (C) 2005-2011 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; +} + +static int au_d_may_add(struct dentry *dentry) +{ + int err; + + err = 0; + if (unlikely(d_unhashed(dentry))) + err = -ENOENT; + if (unlikely(dentry->d_inode)) + err = -EEXIST; + 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 */ + err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN); + if (unlikely(err)) + goto out; + err = au_d_may_add(dentry); + if (unlikely(err)) + goto out_unlock; + 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_parent; + + 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); + } + + au_unpin(&pin); + dput(wh_dentry); + +out_parent: + di_write_unlock(parent); +out_unlock: + if (unlikely(err)) { + au_update_dbstart(dentry); + d_drop(dentry); + } + aufs_read_unlock(dentry, AuLock_DW); +out: + 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 = -ENOMEM; + a = kzalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + a->parent = dentry->d_parent; /* dir inode is locked */ + err = aufs_read_and_write_lock2(dentry, src_dentry, + AuLock_NOPLM | AuLock_GEN); + if (unlikely(err)) + goto out_kfree; + err = au_d_hashed_positive(src_dentry); + if (unlikely(err)) + goto out_unlock; + err = au_d_may_add(dentry); + if (unlikely(err)) + goto out_unlock; + + 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_parent; + + 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; + d_instantiate(dentry, au_igrab(inode)); + if (d_unhashed(a->h_path.dentry)) + /* 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 (unlikely(rerr)) { + AuIOErr("%.*s reverting failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } + au_dtime_revert(&dt); +out_unpin: + au_unpin(&a->pin); +out_wh: + dput(wh_dentry); +out_parent: + di_write_unlock(a->parent); + dput(a->src_parent); +out_unlock: + if (unlikely(err)) { + au_update_dbstart(dentry); + d_drop(dentry); + } + aufs_read_and_write_unlock2(dentry, src_dentry); +out_kfree: + 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; + + err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN); + if (unlikely(err)) + goto out_free; + err = au_d_may_add(dentry); + if (unlikely(err)) + goto out_unlock; + + 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_parent; + + 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_unpin; + + /* 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_unpin; /* 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; + } + au_dtime_revert(&a->dt); +out_unpin: + au_unpin(&a->pin); + dput(wh_dentry); +out_parent: + di_write_unlock(parent); +out_unlock: + if (unlikely(err)) { + au_update_dbstart(dentry); + d_drop(dentry); + } + aufs_read_unlock(dentry, AuLock_DW); +out_free: + kfree(a); +out: + return err; +} --- linux-2.6.38.orig/ubuntu/aufs/opts.h +++ linux-2.6.38/ubuntu/aufs/opts.h @@ -0,0 +1,210 @@ +/* + * Copyright (C) 2005-2011 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) do { \ + ((flags) &= ~AuOpt_##name); \ +} while (0) + +static inline unsigned int au_opts_plink(unsigned int mntflags) +{ +#ifdef CONFIG_PROC_FS + return mntflags; +#else + return mntflags & ~AuOpt_PLINK; +#endif +} + +/* ---------------------------------------------------------------------- */ + +/* 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 (1 << 1) +#define AuOpts_TRUNC_XIB (1 << 2) +#define AuOpts_REFRESH_DYAOP (1 << 3) +#define au_ftest_opts(flags, name) ((flags) & AuOpts_##name) +#define au_fset_opts(flags, name) \ + do { (flags) |= AuOpts_##name; } while (0) +#define au_fclr_opts(flags, name) \ + do { (flags) &= ~AuOpts_##name; } while (0) + +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.38.orig/ubuntu/aufs/hfsplus.c +++ linux-2.6.38/ubuntu/aufs/hfsplus.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2010-2011 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.38.orig/ubuntu/aufs/dinfo.c +++ linux-2.6.38/ubuntu/aufs/dinfo.c @@ -0,0 +1,493 @@ +/* + * Copyright (C) 2005-2011 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 *_dinfo) +{ + struct au_dinfo *dinfo = _dinfo; + static struct lock_class_key aufs_di; + + au_rw_init(&dinfo->di_rwsem); + au_rw_class(&dinfo->di_rwsem, &aufs_di); +} + +struct au_dinfo *au_di_alloc(struct super_block *sb, unsigned int lsc) +{ + struct au_dinfo *dinfo; + int nbr, i; + + dinfo = au_cache_alloc_dinfo(); + if (unlikely(!dinfo)) + goto out; + + nbr = au_sbend(sb) + 1; + if (nbr <= 0) + nbr = 1; + dinfo->di_hdentry = kcalloc(nbr, sizeof(*dinfo->di_hdentry), GFP_NOFS); + if (dinfo->di_hdentry) { + au_rw_write_lock_nested(&dinfo->di_rwsem, lsc); + dinfo->di_bstart = -1; + dinfo->di_bend = -1; + dinfo->di_bwh = -1; + dinfo->di_bdiropq = -1; + for (i = 0; i < nbr; i++) + dinfo->di_hdentry[i].hd_id = -1; + goto out; + } + + au_cache_free_dinfo(dinfo); + dinfo = NULL; + +out: + return dinfo; +} + +void au_di_free(struct au_dinfo *dinfo) +{ + struct au_hdentry *p; + aufs_bindex_t bend, bindex; + + /* dentry may not be revalidated */ + bindex = dinfo->di_bstart; + if (bindex >= 0) { + bend = dinfo->di_bend; + p = dinfo->di_hdentry + bindex; + while (bindex++ <= bend) + au_hdput(p++); + } + kfree(dinfo->di_hdentry); + au_cache_free_dinfo(dinfo); +} + +void au_di_swap(struct au_dinfo *a, struct au_dinfo *b) +{ + struct au_hdentry *p; + aufs_bindex_t bi; + + AuRwMustWriteLock(&a->di_rwsem); + AuRwMustWriteLock(&b->di_rwsem); + +#define DiSwap(v, name) \ + do { \ + v = a->di_##name; \ + a->di_##name = b->di_##name; \ + b->di_##name = v; \ + } while (0) + + DiSwap(p, hdentry); + DiSwap(bi, bstart); + DiSwap(bi, bend); + DiSwap(bi, bwh); + DiSwap(bi, bdiropq); + /* smp_mb(); */ + +#undef DiSwap +} + +void au_di_cp(struct au_dinfo *dst, struct au_dinfo *src) +{ + AuRwMustWriteLock(&dst->di_rwsem); + AuRwMustWriteLock(&src->di_rwsem); + + dst->di_bstart = src->di_bstart; + dst->di_bend = src->di_bend; + dst->di_bwh = src->di_bwh; + dst->di_bdiropq = src->di_bdiropq; + /* smp_mb(); */ +} + +int au_di_init(struct dentry *dentry) +{ + int err; + struct super_block *sb; + struct au_dinfo *dinfo; + + err = 0; + sb = dentry->d_sb; + dinfo = au_di_alloc(sb, AuLsc_DI_CHILD); + if (dinfo) { + atomic_set(&dinfo->di_generation, au_sigen(sb)); + /* smp_mb(); */ /* atomic_set */ + dentry->d_fsdata = dinfo; + } else + err = -ENOMEM; + + return err; +} + +void au_di_fin(struct dentry *dentry) +{ + struct au_dinfo *dinfo; + + dinfo = au_di(dentry); + AuRwDestroy(&dinfo->di_rwsem); + au_di_free(dinfo); +} + +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)) { + au_dbg_verify_dinode(d); + ii_write_unlock(d->d_inode); + } else if (au_ftest_lock(flags, IR)) { + au_dbg_verify_dinode(d); + 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) +{ + au_dbg_verify_dinode(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 && 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; + struct au_branch *br; + + DiMustWriteLock(dentry); + + au_hdput(hd); + hd->hd_dentry = h_dentry; + if (h_dentry) { + br = au_sbr(dentry->d_sb, bindex); + hd->hd_id = br->br_id; + } +} + +int au_dbrange_test(struct dentry *dentry) +{ + int err; + aufs_bindex_t bstart, bend; + + err = 0; + bstart = au_dbstart(dentry); + bend = au_dbend(dentry); + if (bstart >= 0) + AuDebugOn(bend < 0 && bstart > bend); + else { + err = -EIO; + AuDebugOn(bend >= 0); + } + + return err; +} + +int au_digen_test(struct dentry *dentry, unsigned int sigen) +{ + int err; + + err = 0; + if (unlikely(au_digen(dentry) != sigen + || au_iigen_test(dentry->d_inode, sigen))) + err = -EIO; + + return err; +} + +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.38.orig/ubuntu/aufs/loop.h +++ linux-2.6.38/ubuntu/aufs/loop.h @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2005-2011 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_adding); +int au_test_loopback_kthread(void); +#else +AuStubInt0(au_test_loopback_overlap, struct super_block *sb, + struct dentry *h_adding) +AuStubInt0(au_test_loopback_kthread, void) +#endif /* BLK_DEV_LOOP */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_LOOP_H__ */ --- linux-2.6.38.orig/ubuntu/aufs/dynop.c +++ linux-2.6.38/ubuntu/aufs/dynop.c @@ -0,0 +1,426 @@ +/* + * Copyright (C) 2010-2011 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) do { cnt++; } while (0) +#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); + DySetAop(freepage); + /* 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; + struct op { + unsigned int sz; + void (*set)(struct au_dykey *key, const void *h_op, + struct super_block *h_sb __maybe_unused); + }; + static const struct op a[] = { + [AuDy_AOP] = { + .sz = sizeof(struct au_dyaop), + .set = dy_aop + }, + [AuDy_VMOP] = { + .sz = sizeof(struct au_dyvmop), + .set = dy_vmop + } + }; + const struct op *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(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; +} + +/* + * Is it safe to replace a_ops during the inode/file is in operation? + * Yes, I hope so. + */ +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; +} + +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.38.orig/ubuntu/aufs/Kconfig +++ linux-2.6.38/ubuntu/aufs/Kconfig @@ -0,0 +1,180 @@ +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_SBILIST + bool + depends on AUFS_MAGIC_SYSRQ || PROC_FS + default y + help + Automatic configuration for internal use. + When aufs supports Magic SysRq or /proc, enabled automatically. + +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. + Currently there is only one available configuration, "fsnotify". + 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 +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.38.orig/ubuntu/aufs/debug.c +++ linux-2.6.38/ubuntu/aufs/debug.c @@ -0,0 +1,469 @@ +/* + * Copyright (C) 2005-2011 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_plevel \ + && strcmp(au_plevel, KERN_DEBUG)) \ + || 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 */ + /* note: access d_xxx without d_lock */ + 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) : "??", + 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), ", gen %d, mmapped %d", + au_figen(file), !!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 >= 0 && 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_dinode(struct dentry *dentry, const char *func, int line) +{ + struct inode *h_inode, *inode = dentry->d_inode; + struct dentry *h_dentry; + aufs_bindex_t bindex, bend, bi; + + if (!inode /* || au_di(dentry)->di_lsc == AuLsc_DI_TMP */) + return; + + bend = au_dbend(dentry); + bi = au_ibend(inode); + if (bi < bend) + bend = bi; + bindex = au_dbstart(dentry); + bi = au_ibstart(inode); + if (bi > bindex) + bindex = bi; + + for (; bindex <= bend; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + h_inode = au_h_iptr(inode, bindex); + if (unlikely(h_inode != h_dentry->d_inode)) { + int old = au_debug_test(); + if (!old) + au_debug(1); + AuDbg("b%d, %s:%d\n", bindex, func, line); + AuDbgDentry(dentry); + AuDbgInode(inode); + if (!old) + au_debug(0); + BUG(); + } + } +} + +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)); + AuDebugOn(IS_ROOT(dentry)); + AuDebugOn(au_digen_test(parent, sigen)); + dput(parent); +} + +void au_dbg_verify_nondir_parent(struct dentry *dentry, unsigned int sigen) +{ + struct dentry *parent; + struct inode *inode; + + parent = dget_parent(dentry); + inode = dentry->d_inode; + AuDebugOn(inode && S_ISDIR(dentry->d_inode->i_mode)); + AuDebugOn(au_digen_test(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_aufs(&dpages, parent, /*do_include*/1); + 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_test(dentries[j], sigen)); + } + au_dpages_free(&dpages); +} + +void au_dbg_verify_kthread(void) +{ + if (current->flags & PF_WQ_WORKER) { + au_dbg_blocked(); + WARN_ON(1); + } +} + +/* ---------------------------------------------------------------------- */ + +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.38.orig/ubuntu/aufs/BOM +++ linux-2.6.38/ubuntu/aufs/BOM @@ -0,0 +1,2 @@ +URL: http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git +COMMIT: 65835da20b77c98fb538c9114fc31f5de1328230 --- linux-2.6.38.orig/ubuntu/aufs/xino.c +++ linux-2.6.38/ubuntu/aufs/xino.c @@ -0,0 +1,1265 @@ +/* + * Copyright (C) 2005-2011 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? */ + if (rlimit(RLIMIT_FSIZE) == RLIM_INFINITY) { + lockdep_off(); + err = do_xino_fwrite(func, file, buf, size, pos); + lockdep_on(); + } else { + /* + * it breaks RLIMIT_FSIZE and normal user's limit, + * users should care about quota and real 'filesystem full.' + */ + 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; + } + + 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 + /* | FMODE_NONOTIFY */); + 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); + si_write_unlock(sb); + au_nwt_done(&au_sbi(sb)->si_nowait); + 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(&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(&br->br_count); + +out_args: + kfree(args); +out: + atomic_dec(&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 = free_bit + 1; + 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 + /* | FMODE_NONOTIFY */, + 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 (unlikely(err)) { + fput(br->br_xino.xi_file); + br->br_xino.xi_file = NULL; + } + +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.38.orig/ubuntu/aufs/inode.c +++ linux-2.6.38/ubuntu/aufs/inode.c @@ -0,0 +1,471 @@ +/* + * Copyright (C) 2005-2011 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)); + ihold(inode); + } + 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++; +} + +static int au_ii_refresh(struct inode *inode, int *update) +{ + int err, e; + umode_t type; + aufs_bindex_t bindex, new_bindex; + struct super_block *sb; + struct au_iinfo *iinfo; + struct au_hinode *p, *q, tmp; + + IiMustWriteLock(inode); + + *update = 0; + sb = inode->i_sb; + type = inode->i_mode & S_IFMT; + iinfo = au_ii(inode); + err = au_ii_realloc(iinfo, au_sbend(sb) + 1); + if (unlikely(err)) + goto out; + + AuDebugOn(iinfo->ii_bstart < 0); + p = iinfo->ii_hinode + iinfo->ii_bstart; + for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; + bindex++, p++) { + if (!p->hi_inode) + continue; + + AuDebugOn(type != (p->hi_inode->i_mode & S_IFMT)); + 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; + +out: + AuTraceErr(err); + return err; +} + +int au_refresh_hinode_self(struct inode *inode) +{ + int err, update; + + err = au_ii_refresh(inode, &update); + if (!err) + au_refresh_hinode_attr(inode, update && S_ISDIR(inode->i_mode)); + + AuTraceErr(err); + return err; +} + +int au_refresh_hinode(struct inode *inode, struct dentry *dentry) +{ + int err, e, update; + unsigned int flags; + umode_t mode; + aufs_bindex_t bindex, bend; + unsigned char isdir; + struct au_hinode *p; + struct au_iinfo *iinfo; + + err = au_ii_refresh(inode, &update); + if (unlikely(err)) + goto out; + + update = 0; + iinfo = au_ii(inode); + p = iinfo->ii_hinode + iinfo->ii_bstart; + mode = (inode->i_mode & S_IFMT); + isdir = S_ISDIR(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; + + AuDebugOn(mode != (h_d->d_inode->i_mode & S_IFMT)); + 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; + if (!err) + 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 + * minus: errno + * zero: success, matched + * plus: no error, but unmatched + */ +static int reval_inode(struct inode *inode, struct dentry *dentry) +{ + int err; + aufs_bindex_t bindex, bend; + struct inode *h_inode, *h_dinode; + + /* + * 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 = 1; + 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) { + err = 0; + if (au_iigen_test(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; + 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 */ + } + + /* + * iget_failed() calls iput(), but we need to call + * ii_write_unlock() after iget_failed(). so dirty hack for + * i_count. + */ + atomic_inc(&inode->i_count); + iget_failed(inode); + ii_write_unlock(inode); + au_xino_write(sb, bstart, h_ino, /*ino*/0); + /* ignore this error */ + goto out_iput; + } else if (!must_new && !IS_DEADDIR(inode) && inode->i_nlink) { + /* + * horrible race condition between lookup, readdir and copyup + * (or something). + */ + if (mtx) + mutex_unlock(mtx); + err = reval_inode(inode, dentry); + if (unlikely(err < 0)) { + mtx = NULL; + goto out_iput; + } + + if (!err) { + mtx = NULL; + goto out; /* success */ + } 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); + 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.38.orig/ubuntu/aufs/super.h +++ linux-2.6.38/ubuntu/aufs/super.h @@ -0,0 +1,527 @@ +/* + * Copyright (C) 2005-2011 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; + + /* + * dirty approach to protect sb->sb_inodes and ->s_files from remount. + */ + atomic_long_t si_ninodes, si_nfiles; + + /* branch management */ + unsigned int si_generation; + + /* see above flags */ + unsigned char au_si_status; + + aufs_bindex_t si_bend; + + /* dirty trick to keep br_id plus */ + unsigned int si_last_br_id : + sizeof(aufs_bindex_t) * BITS_PER_BYTE - 1; + 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 jiffies */ + 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; + pid_t si_plink_maint_pid; + + /* + * 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 + +#ifdef CONFIG_AUFS_SBILIST + struct list_head si_list; +#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_DIR 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 AuLock_NOPLM (1 << 5) /* return err in plm mode */ +#define AuLock_NOPLMW (1 << 6) /* wait for plm mode ends */ +#define AuLock_GEN (1 << 7) /* test digen/iigen */ +#define au_ftest_lock(flags, name) ((flags) & AuLock_##name) +#define au_fset_lock(flags, name) \ + do { (flags) |= AuLock_##name; } while (0) +#define au_fclr_lock(flags, name) \ + do { (flags) &= ~AuLock_##name; } while (0) + +/* ---------------------------------------------------------------------- */ + +/* super.c */ +extern struct file_system_type aufs_fs_type; +struct inode *au_iget_locked(struct super_block *sb, ino_t ino); +typedef unsigned long long (*au_arraycb_t)(void *array, unsigned long long max, + void *arg); +void au_array_free(void *array); +void *au_array_alloc(unsigned long long *hint, au_arraycb_t cb, void *arg); +struct inode **au_iarray_alloc(struct super_block *sb, unsigned long long *max); +void au_iarray_free(struct inode **a, unsigned long long max); + +/* 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); + +int si_read_lock(struct super_block *sb, int flags); +int si_write_lock(struct super_block *sb, int flags); +int 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); +int aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int flags); +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(void) +{ + struct task_struct *tsk = current; + + return (tsk->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()) + return -EBUSY; + return -ESTALE; +} +#else +AuStubVoid(au_export_init, struct super_block *sb) +AuStubInt0(au_test_nfsd, void) +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 */ + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_SBILIST +/* module.c */ +extern struct au_splhead au_sbilist; + +static inline void au_sbilist_init(void) +{ + au_spl_init(&au_sbilist); +} + +static inline void au_sbilist_add(struct super_block *sb) +{ + au_spl_add(&au_sbi(sb)->si_list, &au_sbilist); +} + +static inline void au_sbilist_del(struct super_block *sb) +{ + au_spl_del(&au_sbi(sb)->si_list, &au_sbilist); +} +#else +AuStubVoid(au_sbilist_init, void) +AuStubVoid(au_sbilist_add, struct super_block*) +AuStubVoid(au_sbilist_del, struct super_block*) +#endif + +/* ---------------------------------------------------------------------- */ + +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; +} + +#if 0 /* unused */ +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); +} +#endif + +static inline void si_read_unlock(struct super_block *sb) +{ + si_pid_clr(sb); + __si_read_unlock(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 void au_ninodes_inc(struct super_block *sb) +{ + atomic_long_inc(&au_sbi(sb)->si_ninodes); +} + +static inline void au_ninodes_dec(struct super_block *sb) +{ + AuDebugOn(!atomic_long_read(&au_sbi(sb)->si_ninodes)); + atomic_long_dec(&au_sbi(sb)->si_ninodes); +} + +static inline void au_nfiles_inc(struct super_block *sb) +{ + atomic_long_inc(&au_sbi(sb)->si_nfiles); +} + +static inline void au_nfiles_dec(struct super_block *sb) +{ + AuDebugOn(!atomic_long_read(&au_sbi(sb)->si_nfiles)); + atomic_long_dec(&au_sbi(sb)->si_nfiles); +} + +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.38.orig/ubuntu/aufs/branch.h +++ linux-2.6.38/ubuntu/aufs/branch.h @@ -0,0 +1,229 @@ +/* + * Copyright (C) 2005-2011 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_AUFS_HFSNOTIFY + struct fsnotify_group *br_hfsn_group; + struct fsnotify_ops br_hfsn_ops; +#endif + +#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_refresh); + +/* 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(&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.38.orig/ubuntu/aufs/file.h +++ linux-2.6.38/ubuntu/aufs/file.h @@ -0,0 +1,238 @@ +/* + * Copyright (C) 2005-2011 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.38.orig/ubuntu/aufs/f_op_sp.c +++ linux-2.6.38/ubuntu/aufs/f_op_sp.c @@ -0,0 +1,299 @@ +/* + * Copyright (C) 2005-2011 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); + +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.38.orig/ubuntu/aufs/dynop.h +++ linux-2.6.38/ubuntu/aufs/dynop.h @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2010-2011 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); +int au_dy_irefresh(struct inode *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); + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DYNOP_H__ */ --- linux-2.6.38.orig/ubuntu/aufs/conf.mk +++ linux-2.6.38/ubuntu/aufs/conf.mk @@ -0,0 +1,37 @@ + +AuConfStr = CONFIG_AUFS_FS=${CONFIG_AUFS_FS} + +define AuConf +ifdef ${1} +AuConfStr += ${1}=${${1}} +endif +endef + +AuConfAll = BRANCH_MAX_127 BRANCH_MAX_511 BRANCH_MAX_1023 BRANCH_MAX_32767 \ + SBILIST \ + HNOTIFY HFSNOTIFY \ + EXPORT INO_T_64 \ + RDU \ + SP_IATTR \ + SHWH \ + BR_RAMFS \ + BR_FUSE POLL \ + BR_HFSPLUS \ + BDEV_LOOP \ + DEBUG MAGIC_SYSRQ +$(foreach i, ${AuConfAll}, \ + $(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} + +-include ${srctree}/${src}/conf_priv.mk --- linux-2.6.38.orig/ubuntu/aufs/rwsem.h +++ linux-2.6.38/ubuntu/aufs/rwsem.h @@ -0,0 +1,189 @@ +/* + * Copyright (C) 2005-2011 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(&(rw)->rcnt) +#define AuDbgRcntDec(rw) WARN_ON(atomic_dec_return(&(rw)->rcnt) < 0) +#define AuDbgWcntInc(rw) atomic_inc(&(rw)->wcnt) +#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)) + +#define au_rw_class(rw, key) lockdep_set_class(&(rw)->rwsem, key) + +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.38.orig/ubuntu/aufs/i_op_ren.c +++ linux-2.6.38/ubuntu/aufs/i_op_ren.c @@ -0,0 +1,1017 @@ +/* + * Copyright (C) 2005-2011 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) \ + do { (flags) |= AuRen_##name; } while (0) +#define au_fclr_ren(flags, name) \ + do { (flags) &= ~AuRen_##name; } while (0) + +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, src_bwh, src_bdiropq; + + 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); + au_set_dbdiropq(a->src_dentry, a->src_bdiropq); + 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); + au_set_dbwh(a->src_dentry, a->src_bwh); + if (rerr) + RevertFailure("unlink %.*s", AuDLNPair(a->src_wh_dentry)); +} +#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); + } + } + if (!err && a->h_dst) + /* it will be set to dinfo later */ + dget(a->h_dst); + + 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_bdiropq = au_dbdiropq(a->src_dentry); + 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_bwh = au_dbwh(a->src_dentry); + AuDebugOn(a->src_bwh >= 0); + 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); + dput(a->h_dst); +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); +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 = -ENOTEMPTY; + if (unlikely(a->dst_h_dentry == a->h_trap)) + 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; + } + +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 (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->dst_dentry; + d_drop(d); + if (a->h_dst) + /* already dget-ed by au_ren_or_cpup() */ + au_set_h_dptr(d, a->btgt, a->h_dst); + + i = a->dst_inode; + if (i) { + if (!au_ftest_ren(a->flags, ISDIR)) + vfsub_drop_nlink(i); + else { + vfsub_dead_dir(i); + au_cpup_attr_timesizes(i); + } + au_update_dbrange(d, /*do_put_zero*/1); + } else { + bend = a->btgt; + for (bindex = au_dbstart(d); bindex < bend; bindex++) + au_set_h_dptr(d, bindex, NULL); + bend = au_dbend(d); + for (bindex = a->btgt + 1; bindex <= bend; bindex++) + au_set_h_dptr(d, bindex, NULL); + au_update_dbrange(d, /*do_put_zero*/0); + } + + 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, flags; + /* 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; + flags = AuLock_FLUSH | AuLock_NOPLM | AuLock_GEN; + 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; + err = aufs_read_and_write_lock2(a->dst_dentry, a->src_dentry, + AuLock_DIR | flags); + } else + err = aufs_read_and_write_lock2(a->dst_dentry, a->src_dentry, + flags); + if (unlikely(err)) + goto out_free; + + err = au_d_hashed_positive(a->src_dentry); + if (unlikely(err)) + goto out_unlock; + err = -ENOENT; + if (a->dst_inode) { + /* + * If it is a dir, VFS unhash dst_dentry before this + * function. It means we cannot rely upon d_unhashed(). + */ + if (unlikely(!a->dst_inode->i_nlink)) + goto out_unlock; + if (!S_ISDIR(a->dst_inode->i_mode)) { + err = au_d_hashed_positive(a->dst_dentry); + if (unlikely(err)) + goto out_unlock; + } else if (unlikely(IS_DEADDIR(a->dst_inode))) + goto out_unlock; + } else if (unlikely(d_unhashed(a->dst_dentry))) + goto out_unlock; + + 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_parent; + 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); + if (err && a->dst_inode && a->dst_bstart != a->btgt) { + AuDbg("bstart %d, btgt %d\n", a->dst_bstart, a->btgt); + au_set_h_dptr(a->dst_dentry, a->btgt, NULL); + au_set_dbstart(a->dst_dentry, a->dst_bstart); + } +out_parent: + if (!err) + d_move(a->src_dentry, a->dst_dentry); + else { + au_update_dbstart(a->dst_dentry); + if (!a->dst_inode) + d_drop(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); +out_unlock: + 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.38.orig/ubuntu/aufs/dbgaufs.c +++ linux-2.6.38/ubuntu/aufs/dbgaufs.c @@ -0,0 +1,334 @@ +/* + * Copyright (C) 2005-2011 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.38.orig/ubuntu/aufs/dcsub.c +++ linux-2.6.38/ubuntu/aufs/dcsub.c @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2005-2011 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++; + } + + AuDebugOn(!dentry->d_count); + dpage->dentries[dpage->ndentry++] = dget_dlock(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; + struct list_head *next; + struct super_block *sb = root->d_sb; + + err = 0; + write_seqlock(&rename_lock); + this_parent = root; + spin_lock(&this_parent->d_lock); +repeat: + next = this_parent->d_subdirs.next; +resume: + if (this_parent->d_sb == sb + && !IS_ROOT(this_parent) + && au_di(this_parent) + && this_parent->d_count + && (!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; + spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED); + if (dentry->d_count) { + if (!list_empty(&dentry->d_subdirs)) { + spin_unlock(&this_parent->d_lock); + spin_release(&dentry->d_lock.dep_map, 1, + _RET_IP_); + this_parent = dentry; + spin_acquire(&this_parent->d_lock.dep_map, 0, 1, + _RET_IP_); + goto repeat; + } + if (dentry->d_sb == sb + && au_di(dentry) + && (!test || test(dentry, arg))) + err = au_dpages_append(dpages, dentry, + GFP_ATOMIC); + } + spin_unlock(&dentry->d_lock); + if (unlikely(err)) + goto out; + } + + if (this_parent != root) { + struct dentry *tmp; + struct dentry *child; + + tmp = this_parent->d_parent; + rcu_read_lock(); + spin_unlock(&this_parent->d_lock); + child = this_parent; + this_parent = tmp; + spin_lock(&this_parent->d_lock); + rcu_read_unlock(); + next = child->d_u.d_child.next; + goto resume; + } + +out: + spin_unlock(&this_parent->d_lock); + write_sequnlock(&rename_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; + write_seqlock(&rename_lock); + spin_lock(&dentry->d_lock); + if (do_include + && dentry->d_count + && (!test || test(dentry, arg))) + err = au_dpages_append(dpages, dentry, GFP_ATOMIC); + spin_unlock(&dentry->d_lock); + if (unlikely(err)) + goto out; + + /* + * vfsmount_lock is unnecessary since this is a traverse in a single + * mount + */ + while (!IS_ROOT(dentry)) { + dentry = dentry->d_parent; /* rename_lock is locked */ + spin_lock(&dentry->d_lock); + if (dentry->d_count + && (!test || test(dentry, arg))) + err = au_dpages_append(dpages, dentry, GFP_ATOMIC); + spin_unlock(&dentry->d_lock); + if (unlikely(err)) + break; + } + +out: + write_sequnlock(&rename_lock); + return err; +} + +static inline int au_dcsub_dpages_aufs(struct dentry *dentry, void *arg) +{ + return au_di(dentry) && dentry->d_sb == arg; +} + +int au_dcsub_pages_rev_aufs(struct au_dcsub_pages *dpages, + struct dentry *dentry, int do_include) +{ + return au_dcsub_pages_rev(dpages, dentry, do_include, + au_dcsub_dpages_aufs, dentry->d_sb); +} + +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.38.orig/ubuntu/aufs/rdu.c +++ linux-2.6.38/ubuntu/aufs/rdu.c @@ -0,0 +1,383 @@ +/* + * Copyright (C) 2005-2011 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) \ + do { (flags) |= AuRdu_##name; } while (0) +#define au_fclr_rdu(flags, name) \ + do { (flags) &= ~AuRdu_##name; } while (0) + +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 + + arg.sb = inode->i_sb; + err = si_read_lock(arg.sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out_mtx; + err = au_alive_dir(dentry); + if (unlikely(err)) + goto out_si; + /* todo: reval? */ + 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); +out_si: + 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.38.orig/ubuntu/aufs/file.c +++ linux-2.6.38/ubuntu/aufs/file.c @@ -0,0 +1,679 @@ +/* + * Copyright (C) 2005-2011 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() && !h_dentry) + goto out; + h_inode = h_dentry->d_inode; + if (au_test_nfsd() && !h_inode) + goto out; + spin_lock(&h_dentry->d_lock); + err = (!d_unhashed(dentry) && d_unlinked(h_dentry)) + || !h_inode + /* || !dentry->d_inode->i_nlink */ + ; + spin_unlock(&h_dentry->d_lock); + if (unlikely(err)) + 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_file); + 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, *h_inode; + struct dentry *dentry, *h_dentry, *hi_wh; + + dentry = file->f_dentry; + au_update_dbstart(dentry); + inode = dentry->d_inode; + h_inode = NULL; + if (au_dbstart(dentry) <= bcpup && au_dbend(dentry) >= bcpup) { + h_dentry = au_h_dptr(dentry, bcpup); + if (h_dentry) + h_inode = h_dentry->d_inode; + } + hi_wh = au_hi_wh(inode, bcpup); + if (!hi_wh && !h_inode) + 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, dbstart; + 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 or reopen */ + 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 (!d_unhashed(dentry) && !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; + dbstart = au_dbstart(dentry); + if (dbstart <= bcpup) { + h_dentry = au_h_dptr(dentry, bcpup); + AuDebugOn(!h_dentry); + h_inode = h_dentry->d_inode; + AuDebugOn(!h_inode); + bstart = bcpup; + } + + if (dbstart <= bcpup /* just reopen */ + || !d_unhashed(dentry) /* copyup and reopen */ + ) { + 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 { + di_downgrade_lock(parent, AuLock_IR); + if (dbstart > 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); + } else { /* copyup as wh and reopen */ + /* + * since writable hfsplus branch is not supported, + * h_open_pre/post() are unnecessary. + */ + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + err = au_ready_to_write_wh(file, len, bcpup); + di_downgrade_lock(parent, AuLock_IR); + mutex_unlock(&h_inode->i_mutex); + } + + 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 || IS_ROOT(dentry)) + 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 (!S_ISDIR(inode->i_mode) + && 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_unlinked(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_unlinked(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 (au_digen_test(dentry, sigen)) { + err = au_reval_dpath(dentry, sigen); + AuDebugOn(!err && au_digen_test(dentry, sigen)); + } + + if (!err) + 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.38.orig/ubuntu/aufs/vfsub.c +++ linux-2.6.38/ubuntu/aufs/vfsub.c @@ -0,0 +1,790 @@ +/* + * Copyright (C) 2005-2011 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 /* | vfsub_fmode_to_uint(FMODE_NONOTIFY) */, + 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 /* | vfsub_fmode_to_uint(FMODE_NONOTIFY) */, + 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, new_encode_dev(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); + 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) + && 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) + ihold(h_inode); + + *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.38.orig/ubuntu/aufs/sysaufs.c +++ linux-2.6.38/ubuntu/aufs/sysaufs.c @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2005-2011 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_kset; + +#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_kset; + /* cf. sysaufs_name() */ + err = kobject_init_and_add + (&sbinfo->si_kobj, &au_sbi_ktype, /*&sysaufs_kset->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_kset->kobj, sysaufs_attr_group); + kset_unregister(sysaufs_kset); +} + +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_kset = kset_create_and_add(AUFS_NAME, NULL, fs_kobj); + if (unlikely(!sysaufs_kset)) + goto out; + err = PTR_ERR(sysaufs_kset); + if (IS_ERR(sysaufs_kset)) + goto out; + err = sysfs_create_group(&sysaufs_kset->kobj, sysaufs_attr_group); + if (unlikely(err)) { + kset_unregister(sysaufs_kset); + goto out; + } + + err = dbgaufs_init(); + if (unlikely(err)) + sysaufs_fin(); +out: + return err; +} --- linux-2.6.38.orig/ubuntu/aufs/dbgaufs.h +++ linux-2.6.38/ubuntu/aufs/dbgaufs.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2005-2011 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.38.orig/ubuntu/aufs/wkq.c +++ linux-2.6.38/ubuntu/aufs/wkq.c @@ -0,0 +1,236 @@ +/* + * Copyright (C) 2005-2011 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 kobject *kobj; + + 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); + + AuDebugOn(current_fsuid()); + AuDebugOn(rlimit(RLIMIT_FSIZE) != RLIM_INFINITY); + + wkinfo->func(wkinfo->args); + if (au_ftest_wkq(wkinfo->flags, WAIT)) + complete(wkinfo->comp); + else { + kobject_put(wkinfo->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_ONSTACK(&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); + } +} + +/* + * Be careful. It is easy to make deadlock happen. + * processA: lock, wkq and wait + * processB: wkq and wait, lock in wkq + * --> deadlock + */ +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; + +} + +/* + * Note: dget/dput() in func for aufs dentries are not supported. It will be a + * problem in a concurrent umounting. + */ +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->kobj = &au_sbi(sb)->si_kobj; + wkinfo->flags = !AuWkq_WAIT; + wkinfo->func = func; + wkinfo->args = args; + wkinfo->comp = NULL; + kobject_get(wkinfo->kobj); + __module_get(THIS_MODULE); + + au_wkq_run(wkinfo, !AuWkq_WAIT); + } else { + err = -ENOMEM; + au_nwt_done(&au_sbi(sb)->si_nowait); + } + + 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++) { + BUILD_BUG_ON(!WQ_RESCUER); + au_wkq[i].wkq = alloc_workqueue(au_wkq[i].name, !WQ_RESCUER, + WQ_DFL_ACTIVE); + 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.38.orig/ubuntu/aufs/Makefile +++ linux-2.6.38/ubuntu/aufs/Makefile @@ -0,0 +1,38 @@ + +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 +# sparse doesn't allow spaces +ccflags-y += -D'pr_fmt(fmt)=AUFS_NAME"\040%s:%d:%s[%d]:\040"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 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_PROC_FS) += procfs.o plink.o +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_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.38.orig/ubuntu/aufs/branch.c +++ linux-2.6.38/ubuntu/aufs/branch.c @@ -0,0 +1,1072 @@ +/* + * Copyright (C) 2005-2011 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; + + au_hnotify_fin_br(br); + + 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_adding, + struct dentry *h_root) +{ + if (unlikely(h_adding == h_root + || au_test_loopback_overlap(sb, h_adding))) + return 1; + if (h_adding->d_sb != h_root->d_sb) + return 0; + return au_test_subdir(h_adding, h_root) + || au_test_subdir(h_root, h_adding); +} + +/* + * 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; + + err = au_hnotify_init_br(add_branch, perm); + if (unlikely(err)) + goto out_br; + + 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_hnotify; + } + + 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_hnotify: + au_hnotify_fin_br(add_branch); +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 + */ + err = vfs_statfs(path, &kst); + if (unlikely(err)) + goto out; + err = -EINVAL; + h_dentry = path->dentry; + 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); + AuDebugOn(br->br_id < 0); + + if (au_br_writable(add->perm)) { + err = au_wbr_init(br, sb, add->perm, &add->path); + if (unlikely(err)) + goto out_err; + } + + 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_err; + } + } + + sysaufs_br_init(br); + mntget(add->path.mnt); + goto out; /* success */ + +out_err: + br->br_mnt = NULL; +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; + 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 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(!d->d_count); + if (!au_digen_test(d, sigen)) { + di_read_lock_child(d, AuLock_IR); + if (unlikely(au_dbrange_test(d))) { + di_read_unlock(d, AuLock_IR); + continue; + } + } else { + di_write_lock_child(d); + if (unlikely(au_dbrange_test(d))) { + di_write_unlock(d); + continue; + } + err = au_reval_dpath(d, sigen); + if (!err) + di_downgrade_lock(d, AuLock_IR); + else { + di_write_unlock(d); + break; + } + } + + /* AuDbgDentry(d); */ + inode = d->d_inode; + bstart = au_dbstart(d); + bend = au_dbend(d); + if (bstart <= bindex + && bindex <= bend + && au_h_dptr(d, bindex) + && ((inode && !S_ISDIR(inode->i_mode)) + || bstart == bend)) { + err = -EBUSY; + AuVerbose(verbose, "busy %.*s\n", AuDLNPair(d)); + AuDbgDentry(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; + unsigned long long max, ull; + struct inode *i, **array; + aufs_bindex_t bstart, bend; + + array = au_iarray_alloc(sb, &max); + err = PTR_ERR(array); + if (IS_ERR(array)) + goto out; + + err = 0; + AuDbg("b%d\n", bindex); + for (ull = 0; !err && ull < max; ull++) { + i = array[ull]; + if (i->i_ino == AUFS_ROOT_INO) + continue; + + /* AuDbgInode(i); */ + if (au_iigen(i) == sigen) + ii_read_lock_child(i); + else { + ii_write_lock_child(i); + err = au_refresh_hinode_self(i); + au_iigen_dec(i); + 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); + AuDbgInode(i); + } + ii_read_unlock(i); + } + au_iarray_free(array, max); + +out: + 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; + 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_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() */ + AuWarn1("RW -> RO makes IMA to produce wrong message\n"); +#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 unsigned long long au_farray_cb(void *a, + unsigned long long max __maybe_unused, + void *arg) +{ + unsigned long long n; + struct file **p, *f; + struct super_block *sb = arg; + + n = 0; + p = a; + lg_global_lock(files_lglock); + do_file_list_for_each_entry(sb, f) { + if (au_fi(f) + && file_count(f) + && !special_file(f->f_dentry->d_inode->i_mode)) { + get_file(f); + *p++ = f; + n++; + AuDebugOn(n > max); + } + } while_file_list_for_each_entry; + lg_global_unlock(files_lglock); + + return n; +} + +static struct file **au_farray_alloc(struct super_block *sb, + unsigned long long *max) +{ + *max = atomic_long_read(&au_sbi(sb)->si_nfiles); + return au_array_alloc(max, au_farray_cb, sb); +} + +static void au_farray_free(struct file **a, unsigned long long max) +{ + unsigned long long ull; + + for (ull = 0; ull < max; ull++) + if (a[ull]) + fput(a[ull]); + au_array_free(a); +} + +static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex) +{ + int err, do_warn; + unsigned long long ull, max; + aufs_bindex_t br_id; + struct file *file, *hf, **array; + struct inode *inode; + struct au_hfile *hfile; + + array = au_farray_alloc(sb, &max); + err = PTR_ERR(array); + if (IS_ERR(array)) + goto out; + + do_warn = 0; + br_id = au_sbr_id(sb, bindex); + for (ull = 0; ull < max; ull++) { + file = array[ull]; + + /* AuDbg("%.*s\n", AuDLNPair(file->f_dentry)); */ + fi_read_lock(file); + if (unlikely(au_test_mmapped(file))) { + err = -EBUSY; + AuDbgFile(file); + FiMustNoWaiters(file); + fi_read_unlock(file); + goto out_array; + } + + inode = file->f_dentry->d_inode; + hfile = &au_fi(file)->fi_htop; + hf = hfile->hf_file; + if (!S_ISREG(inode->i_mode) + || !(file->f_mode & FMODE_WRITE) + || hfile->hf_br->br_id != br_id + || !(hf->f_mode & FMODE_WRITE)) + array[ull] = NULL; + else { + do_warn = 1; + get_file(file); + } + + FiMustNoWaiters(file); + fi_read_unlock(file); + fput(file); + } + + err = 0; + if (do_warn) + au_warn_ima(); + + for (ull = 0; ull < max; ull++) { + file = array[ull]; + if (!file) + continue; + + /* todo: already flushed? */ + /* cf. fs/super.c:mark_files_ro() */ + /* fi_read_lock(file); */ + hfile = &au_fi(file)->fi_htop; + hf = hfile->hf_file; + /* fi_read_unlock(file); */ + spin_lock(&hf->f_lock); + hf->f_mode &= ~FMODE_WRITE; + spin_unlock(&hf->f_lock); + if (!file_check_writeable(hf)) { + file_release_write(hf); + mnt_drop_write(hf->f_vfsmnt); + } + } + +out_array: + au_farray_free(array, max); +out: + AuTraceErr(err); + return err; +} + +int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount, + int *do_refresh) +{ + int err, rerr; + aufs_bindex_t bindex; + struct path path; + struct dentry *root; + struct au_branch *br; + + root = sb->s_root; + 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_refresh |= need_sigen_inc(br->br_perm, mod->perm); + br->br_perm = mod->perm; + } + +out: + AuTraceErr(err); + return err; +} --- linux-2.6.38.orig/ubuntu/aufs/iinfo.c +++ linux-2.6.38/ubuntu/aufs/iinfo.c @@ -0,0 +1,264 @@ +/* + * Copyright (C) 2005-2011 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; + + AuDebugOn(inode->i_mode + && (h_inode->i_mode & S_IFMT) + != (inode->i_mode & S_IFMT)); + 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); + 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; + aufs_bindex_t bindex, bend; + + iinfo = au_ii(inode); + if (!iinfo) + return; + + IiMustWriteLock(inode); + + if (do_put_zero && iinfo->ii_bstart >= 0) { + 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; + iinfo->ii_bend = -1; + bend = au_sbend(inode->i_sb); + for (bindex = 0; bindex <= bend; bindex++) + if (iinfo->ii_hinode[0 + bindex].hi_inode) { + iinfo->ii_bstart = bindex; + break; + } + if (iinfo->ii_bstart >= 0) + for (bindex = bend; bindex >= iinfo->ii_bstart; bindex--) + if (iinfo->ii_hinode[0 + bindex].hi_inode) { + iinfo->ii_bend = bindex; + break; + } + AuDebugOn(iinfo->ii_bstart > iinfo->ii_bend); +} + +/* ---------------------------------------------------------------------- */ + +void au_icntnr_init_once(void *_c) +{ + struct au_icntnr *c = _c; + struct au_iinfo *iinfo = &c->iinfo; + static struct lock_class_key aufs_ii; + + au_rw_init(&iinfo->ii_rwsem); + au_rw_class(&iinfo->ii_rwsem, &aufs_ii); + 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) { + au_ninodes_inc(sb); + 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; + au_ninodes_dec(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); + iinfo->ii_hinode = NULL; + AuRwDestroy(&iinfo->ii_rwsem); +} --- linux-2.6.38.orig/ubuntu/aufs/sysrq.c +++ linux-2.6.38/ubuntu/aufs/sysrq.c @@ -0,0 +1,148 @@ +/* + * Copyright (C) 2005-2011 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 +#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; + + 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); + +#if 0 + 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); +#endif + +#if 0 + do { + int err, i, j, ndentry; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + + err = au_dpages_init(&dpages, GFP_ATOMIC); + if (unlikely(err)) + break; + err = au_dcsub_pages(&dpages, sb->s_root, NULL, NULL); + if (!err) + for (i = 0; i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + ndentry = dpage->ndentry; + for (j = 0; j < ndentry; j++) + au_dpri_dentry(dpage->dentries[j]); + } + au_dpages_free(&dpages); + } while (0); +#endif + +#if 1 + { + struct inode *i; + printk(KERN_WARNING AUFS_NAME ": isolated inode\n"); + spin_lock(&inode_lock); + list_for_each_entry(i, &sb->s_inodes, i_sb_list) + if (1 || list_empty(&i->i_dentry)) + au_dpri_inode(i); + spin_unlock(&inode_lock); + } +#endif + printk(KERN_WARNING AUFS_NAME ": files\n"); + lg_global_lock(files_lglock); + do_file_list_for_each_entry(sb, file) { + umode_t mode; + mode = file->f_dentry->d_inode->i_mode; + if (!special_file(mode) || au_special_file(mode)) + au_dpri_file(file); + } while_file_list_for_each_entry; + lg_global_unlock(files_lglock); + printk(KERN_WARNING AUFS_NAME ": done\n"); + + au_plevel = plevel; +} + +/* ---------------------------------------------------------------------- */ + +/* 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 au_sbinfo *sbinfo; + + lockdep_off(); + spin_lock(&au_sbilist.spin); + list_for_each_entry(sbinfo, &au_sbilist.head, si_list) + sysrq_sb(sbinfo->si_sb); + spin_unlock(&au_sbilist.spin); + lockdep_on(); +} + +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.38.orig/ubuntu/aufs/export.c +++ linux-2.6.38/ubuntu/aufs/export.c @@ -0,0 +1,803 @@ +/* + * Copyright (C) 2005-2011 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) +{ + /* note: read d_flags without d_lock */ + 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(&inode->i_lock); + list_for_each_entry(d, &inode->i_dentry, d_alias) { + spin_lock(&d->d_lock); + if (!au_test_anon(d) + && d->d_parent->d_inode->i_ino == dir_ino) { + dentry = dget_dlock(d); + spin_unlock(&d->d_lock); + break; + } + spin_unlock(&d->d_lock); + } + spin_unlock(&inode->i_lock); + } + if (unlikely(dentry && au_digen_test(dentry, sigen))) { + 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; + + br_read_lock(vfsmount_lock); + /* no get/put ?? */ + AuDebugOn(!current->nsproxy); + ns = current->nsproxy->mnt_ns; + AuDebugOn(!ns); + err = iterate_mounts(au_compare_mnt, &args, ns->root); + br_read_unlock(vfsmount_lock); + AuDebugOn(!err); + AuDebugOn(!args.mnt); + return args.mnt; +} + +struct au_nfsd_si_lock { + unsigned int sigen; + aufs_bindex_t bindex, br_id; + unsigned char force_lock; +}; + +static int si_nfsd_read_lock(struct super_block *sb, + struct au_nfsd_si_lock *nsi_lock) +{ + int err; + aufs_bindex_t bindex; + + si_read_lock(sb, AuLock_FLUSH); + + /* branch id may be wrapped around */ + err = 0; + bindex = au_br_index(sb, nsi_lock->br_id); + if (bindex >= 0 && nsi_lock->sigen + AUFS_BRANCH_MAX > au_sigen(sb)) + goto out; /* success */ + + err = -ESTALE; + bindex = -1; + if (!nsi_lock->force_lock) + si_read_unlock(sb); + +out: + nsi_lock->bindex = bindex; + return err; +} + +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, 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, nsi_lock->bindex); + 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, nsi_lock->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: + 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; + struct au_branch *br; + ino_t ino, dir_ino; + 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 */ + br = NULL; + if (unlikely(si_nfsd_read_lock(sb, &nsi_lock))) + 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? */ + br = au_sbr(sb, nsi_lock.bindex); + atomic_inc(&br->br_count); + 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, 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 (!au_digen_test(dentry, au_sigen(sb)) + && dentry->d_inode->i_generation == fh[Fh_igen]) + goto out_unlock; /* success */ + + dput(dentry); + dentry = ERR_PTR(-ESTALE); +out_unlock: + if (br) + atomic_dec(&br->br_count); + 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; + } + + h_parent = NULL; + err = aufs_read_lock(dentry, AuLock_FLUSH | AuLock_IR | AuLock_GEN); + if (unlikely(err)) + goto out; + + inode = dentry->d_inode; + AuDebugOn(!inode); + sb = dentry->d_sb; +#ifdef CONFIG_AUFS_DEBUG + if (unlikely(!au_opt_test(au_mntflags(sb), XINO))) + AuWarn1("NFS-exporting requires xino\n"); +#endif + err = -EIO; + parent = dget_parent(dentry); + di_read_lock_parent(parent, !AuLock_IR); + 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 | AuLock_NOPLMW); + 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.38.orig/ubuntu/aufs/dentry.h +++ linux-2.6.38/ubuntu/aufs/dentry.h @@ -0,0 +1,237 @@ +/* + * Copyright (C) 2005-2011 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" + +struct au_hdentry { + struct dentry *hd_dentry; + aufs_bindex_t hd_id; +}; + +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_dentry(struct dentry *dentry, struct dentry *parent); +int au_reval_dpath(struct dentry *dentry, unsigned int sigen); + +/* dinfo.c */ +void au_di_init_once(void *_di); +struct au_dinfo *au_di_alloc(struct super_block *sb, unsigned int lsc); +void au_di_free(struct au_dinfo *dinfo); +void au_di_swap(struct au_dinfo *a, struct au_dinfo *b); +void au_di_cp(struct au_dinfo *dst, struct au_dinfo *src); +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); +int au_digen_test(struct dentry *dentry, unsigned int sigen); +int au_dbrange_test(struct dentry *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, + AuLsc_DI_TMP /* temp for replacing dinfo */ +}; + +/* + * 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(&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.38.orig/ubuntu/aufs/debug.h +++ linux-2.6.38/ubuntu/aufs/debug.h @@ -0,0 +1,245 @@ +/* + * Copyright (C) 2005-2011 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 + +#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); + +#define au_dbg_verify_dinode(d) __au_dbg_verify_dinode(d, __func__, __LINE__) +void __au_dbg_verify_dinode(struct dentry *dentry, const char *func, int line); +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_dinode, struct dentry *dentry) +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'); \ +} 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.38.orig/ubuntu/aufs/poll.c +++ linux-2.6.38/ubuntu/aufs/poll.c @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2005-2011 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 | AuLock_NOPLMW); + 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.38.orig/ubuntu/aufs/procfs.c +++ linux-2.6.38/ubuntu/aufs/procfs.c @@ -0,0 +1,169 @@ +/* + * Copyright (C) 2010-2011 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 + */ + +/* + * procfs interfaces + */ + +#include +#include "aufs.h" + +static int au_procfs_plm_release(struct inode *inode, struct file *file) +{ + struct au_sbinfo *sbinfo; + + sbinfo = file->private_data; + if (sbinfo) { + au_plink_maint_leave(sbinfo); + kobject_put(&sbinfo->si_kobj); + } + + return 0; +} + +static void au_procfs_plm_write_clean(struct file *file) +{ + struct au_sbinfo *sbinfo; + + sbinfo = file->private_data; + if (sbinfo) + au_plink_clean(sbinfo->si_sb, /*verbose*/0); +} + +static int au_procfs_plm_write_si(struct file *file, unsigned long id) +{ + int err; + struct super_block *sb; + struct au_sbinfo *sbinfo; + + err = -EBUSY; + if (unlikely(file->private_data)) + goto out; + + sb = NULL; + spin_lock(&au_sbilist.spin); + list_for_each_entry(sbinfo, &au_sbilist.head, si_list) + if (id == sysaufs_si_id(sbinfo)) { + kobject_get(&sbinfo->si_kobj); + sb = sbinfo->si_sb; + break; + } + spin_unlock(&au_sbilist.spin); + + err = -EINVAL; + if (unlikely(!sb)) + goto out; + + err = au_plink_maint_enter(sb); + if (!err) + /* keep kobject_get() */ + file->private_data = sbinfo; + else + kobject_put(&sbinfo->si_kobj); +out: + return err; +} + +/* + * Accept a valid "si=xxxx" only. + * Once it is accepted successfully, accept "clean" too. + */ +static ssize_t au_procfs_plm_write(struct file *file, const char __user *ubuf, + size_t count, loff_t *ppos) +{ + ssize_t err; + unsigned long id; + /* last newline is allowed */ + char buf[3 + sizeof(unsigned long) * 2 + 1]; + + err = -EACCES; + if (unlikely(!capable(CAP_SYS_ADMIN))) + goto out; + + err = -EINVAL; + if (unlikely(count > sizeof(buf))) + goto out; + + err = copy_from_user(buf, ubuf, count); + if (unlikely(err)) { + err = -EFAULT; + goto out; + } + buf[count] = 0; + + err = -EINVAL; + if (!strcmp("clean", buf)) { + au_procfs_plm_write_clean(file); + goto out_success; + } else if (unlikely(strncmp("si=", buf, 3))) + goto out; + + err = strict_strtoul(buf + 3, 16, &id); + if (unlikely(err)) + goto out; + + err = au_procfs_plm_write_si(file, id); + if (unlikely(err)) + goto out; + +out_success: + err = count; /* success */ +out: + return err; +} + +static const struct file_operations au_procfs_plm_fop = { + .write = au_procfs_plm_write, + .release = au_procfs_plm_release, + .owner = THIS_MODULE +}; + +/* ---------------------------------------------------------------------- */ + +static struct proc_dir_entry *au_procfs_dir; + +void au_procfs_fin(void) +{ + remove_proc_entry(AUFS_PLINK_MAINT_NAME, au_procfs_dir); + remove_proc_entry(AUFS_PLINK_MAINT_DIR, NULL); +} + +int __init au_procfs_init(void) +{ + int err; + struct proc_dir_entry *entry; + + err = -ENOMEM; + au_procfs_dir = proc_mkdir(AUFS_PLINK_MAINT_DIR, NULL); + if (unlikely(!au_procfs_dir)) + goto out; + + entry = proc_create(AUFS_PLINK_MAINT_NAME, S_IFREG | S_IWUSR, + au_procfs_dir, &au_procfs_plm_fop); + if (unlikely(!entry)) + goto out_dir; + + err = 0; + goto out; /* success */ + + +out_dir: + remove_proc_entry(AUFS_PLINK_MAINT_DIR, NULL); +out: + return err; +} --- linux-2.6.38.orig/ubuntu/aufs/super.c +++ linux-2.6.38/ubuntu/aufs/super.c @@ -0,0 +1,925 @@ +/* + * Copyright (C) 2005-2011 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 +#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) { + au_icntnr_init(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_cb(struct rcu_head *head) +{ + struct inode *inode = container_of(head, struct inode, i_rcu); + + INIT_LIST_HEAD(&inode->i_dentry); + au_cache_free_icntnr(container_of(inode, struct au_icntnr, vfs_inode)); +} + +static void aufs_destroy_inode(struct inode *inode) +{ + au_iinfo_fin(inode); + call_rcu(&inode->i_rcu, aufs_destroy_inode_cb); +} + +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", + jiffies_to_msecs(sbinfo->si_wbr_mfs.mfs_expire) + / MSEC_PER_SEC); + break; + case AuWbrCreate_PMFSV: + seq_printf(m, /*pat*/"pmfs:%lu", + jiffies_to_msecs(sbinfo->si_wbr_mfs.mfs_expire) + / MSEC_PER_SEC); + 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, + jiffies_to_msecs(sbinfo->si_wbr_mfs.mfs_expire) + / MSEC_PER_SEC); + 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; + 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); + + v = jiffies_to_msecs(sbinfo->si_rdcache) / MSEC_PER_SEC; + AuUInt(RDCACHE, rdcache, v); + + 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 path h_path; + 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_path.mnt = au_sbr_mnt(sb, bindex); + h_sb = h_path.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 */ + h_path.dentry = h_path.mnt->mnt_root; + err = vfs_statfs(&h_path, 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 path h_path; + 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 */ + h_path.mnt = au_sbr_mnt(sb, 0); + h_path.dentry = h_path.mnt->mnt_root; + err = vfs_statfs(&h_path, 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; +} + +/* ---------------------------------------------------------------------- */ + +/* 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; + + dbgaufs_si_fin(sbinfo); + kobject_put(&sbinfo->si_kobj); +} + +/* ---------------------------------------------------------------------- */ + +void au_array_free(void *array) +{ + if (array) { + if (!is_vmalloc_addr(array)) + kfree(array); + else + vfree(array); + } +} + +void *au_array_alloc(unsigned long long *hint, au_arraycb_t cb, void *arg) +{ + void *array; + unsigned long long n; + + array = NULL; + n = 0; + if (!*hint) + goto out; + + if (*hint > ULLONG_MAX / sizeof(array)) { + array = ERR_PTR(-EMFILE); + pr_err("hint %llu\n", *hint); + goto out; + } + + array = kmalloc(sizeof(array) * *hint, GFP_NOFS); + if (unlikely(!array)) + array = vmalloc(sizeof(array) * *hint); + if (unlikely(!array)) { + array = ERR_PTR(-ENOMEM); + goto out; + } + + n = cb(array, *hint, arg); + AuDebugOn(n > *hint); + +out: + *hint = n; + return array; +} + +static unsigned long long au_iarray_cb(void *a, + unsigned long long max __maybe_unused, + void *arg) +{ + unsigned long long n; + struct inode **p, *inode; + struct list_head *head; + + n = 0; + p = a; + head = arg; + spin_lock(&inode_lock); + list_for_each_entry(inode, head, i_sb_list) { + if (!is_bad_inode(inode) + && au_ii(inode)->ii_bstart >= 0) { + au_igrab(inode); + *p++ = inode; + n++; + AuDebugOn(n > max); + } + } + spin_unlock(&inode_lock); + + return n; +} + +struct inode **au_iarray_alloc(struct super_block *sb, unsigned long long *max) +{ + *max = atomic_long_read(&au_sbi(sb)->si_ninodes); + return au_array_alloc(max, au_iarray_cb, &sb->s_inodes); +} + +void au_iarray_free(struct inode **a, unsigned long long max) +{ + unsigned long long ull; + + for (ull = 0; ull < max; ull++) + iput(a[ull]); + au_array_free(a); +} + +/* ---------------------------------------------------------------------- */ + +/* + * refresh dentry and inode at remount time. + */ +/* todo: consolidate with simple_reval_dpath() and au_reval_for_attr() */ +static int au_do_refresh(struct dentry *dentry, unsigned int dir_flags, + struct dentry *parent) +{ + int err; + + di_write_lock_child(dentry); + di_read_lock_parent(parent, AuLock_IR); + err = au_refresh_dentry(dentry, parent); + if (!err && dir_flags) + au_hn_reset(dentry->d_inode, dir_flags); + di_read_unlock(parent, AuLock_IR); + di_write_unlock(dentry); + + return err; +} + +static int au_do_refresh_d(struct dentry *dentry, unsigned int sigen, + struct au_sbinfo *sbinfo, + const unsigned int dir_flags) +{ + int err; + struct dentry *parent; + struct inode *inode; + + err = 0; + parent = dget_parent(dentry); + if (!au_digen_test(parent, sigen) && au_digen_test(dentry, sigen)) { + inode = dentry->d_inode; + if (inode) { + if (!S_ISDIR(inode->i_mode)) + err = au_do_refresh(dentry, /*dir_flags*/0, + parent); + else { + err = au_do_refresh(dentry, dir_flags, parent); + if (unlikely(err)) + au_fset_si(sbinfo, FAILED_REFRESH_DIR); + } + } else + err = au_do_refresh(dentry, /*dir_flags*/0, parent); + AuDbgDentry(dentry); + } + dput(parent); + + AuTraceErr(err); + return err; +} + +static int au_refresh_d(struct super_block *sb) +{ + int err, i, j, ndentry, e; + unsigned int sigen; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries, *d; + struct au_sbinfo *sbinfo; + struct dentry *root = sb->s_root; + const unsigned int dir_flags = au_hi_flags(root->d_inode, /*isdir*/1); + + 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; + + sigen = au_sigen(sb); + sbinfo = au_sbi(sb); + 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]; + e = au_do_refresh_d(d, sigen, sbinfo, dir_flags); + if (unlikely(e && !err)) + err = e; + /* go on even err */ + } + } + +out_dpages: + au_dpages_free(&dpages); +out: + return err; +} + +static int au_refresh_i(struct super_block *sb) +{ + int err, e; + unsigned int sigen; + unsigned long long max, ull; + struct inode *inode, **array; + + array = au_iarray_alloc(sb, &max); + err = PTR_ERR(array); + if (IS_ERR(array)) + goto out; + + err = 0; + sigen = au_sigen(sb); + for (ull = 0; ull < max; ull++) { + inode = array[ull]; + if (au_iigen(inode) != sigen) { + ii_write_lock_child(inode); + e = au_refresh_hinode_self(inode); + ii_write_unlock(inode); + if (unlikely(e)) { + pr_err("error %d, i%lu\n", e, inode->i_ino); + if (!err) + err = e; + /* go on even if err */ + } + } + } + + au_iarray_free(array, max); + +out: + return err; +} + +static void au_remount_refresh(struct super_block *sb) +{ + int err, e; + unsigned int udba; + aufs_bindex_t bindex, bend; + struct dentry *root; + struct inode *inode; + struct au_branch *br; + + au_sigen_inc(sb); + au_fclr_si(au_sbi(sb), FAILED_REFRESH_DIR); + + root = sb->s_root; + DiMustNoWaiters(root); + inode = root->d_inode; + IiMustNoWaiters(inode); + + udba = au_opt_udba(sb); + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + err = au_hnotify_reset_br(udba, br, br->br_perm); + if (unlikely(err)) + AuIOErr("hnotify failed on br %d, %d, ignored\n", + bindex, err); + /* go on even if err */ + } + au_hn_reset(inode, au_hi_flags(inode, /*isdir*/1)); + + di_write_unlock(root); + err = au_refresh_d(sb); + e = au_refresh_i(sb); + if (unlikely(e && !err)) + err = e; + /* aufs_write_lock() calls ..._child() */ + di_write_lock_child(root); + + au_cpup_attr_all(inode, /*force*/1); + + if (unlikely(err)) + AuIOErr("refresh failed, ignored, %d\n", err); +} + +/* 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) { + err = si_write_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (!err) { + di_write_lock_child(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); + err = si_write_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out_mtx; + di_write_lock_child(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)) + au_remount_refresh(sb); + + 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); + +out_mtx: + 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); +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_d_op = &aufs_dop; + 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 struct dentry *aufs_mount(struct file_system_type *fs_type, int flags, + const char *dev_name __maybe_unused, + void *raw_data) +{ + struct dentry *root; + struct super_block *sb; + + /* all timestamps always follow the ones on the branch */ + /* mnt->mnt_flags |= MNT_NOATIME | MNT_NODIRATIME; */ + root = mount_nodev(fs_type, flags, raw_data, aufs_fill_super); + if (IS_ERR(root)) + goto out; + + sb = root->d_sb; + si_write_lock(sb, !AuLock_FLUSH); + sysaufs_brs_add(sb, 0); + si_write_unlock(sb); + au_sbilist_add(sb); + +out: + return root; +} + +static void aufs_kill_sb(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + sbinfo = au_sbi(sb); + if (sbinfo) { + au_sbilist_del(sb); + aufs_write_lock(sb->s_root); + if (sbinfo->si_wbr_create_ops->fin) + sbinfo->si_wbr_create_ops->fin(sb); + if (au_opt_test(sbinfo->si_mntflags, UDBA_HNOTIFY)) { + au_opt_set_udba(sbinfo->si_mntflags, UDBA_NONE); + au_remount_refresh(sb); + } + if (au_opt_test(sbinfo->si_mntflags, PLINK)) + au_plink_put(sb, /*verbose*/1); + au_xino_clr(sb); + aufs_write_unlock(sb->s_root); + au_nwt_flush(&sbinfo->si_nowait); + } + generic_shutdown_super(sb); +} + +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 */ + .mount = aufs_mount, + .kill_sb = aufs_kill_sb, + /* no need to __module_get() and module_put(). */ + .owner = THIS_MODULE, +}; --- linux-2.6.38.orig/ubuntu/aufs/cpup.h +++ linux-2.6.38/ubuntu/aufs/cpup.h @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2005-2011 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) \ + do { (flags) |= AuCpup_##name; } while (0) +#define au_fclr_cpup(flags, name) \ + do { (flags) &= ~AuCpup_##name; } while (0) + +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.38.orig/ubuntu/aufs/sysaufs.h +++ linux-2.6.38/ubuntu/aufs/sysaufs.h @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2005-2011 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_kset; +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.38.orig/ubuntu/aufs/dir.c +++ linux-2.6.38/ubuntu/aufs/dir.c @@ -0,0 +1,647 @@ +/* + * Copyright (C) 2005-2011 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); + + dentry = file->f_dentry; + err = au_alive_dir(dentry); + if (unlikely(err)) + goto out; + + 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); + +out: + 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(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 au_finfo *finfo; + struct au_fidir *fidir; + aufs_bindex_t bindex, bend; + + finfo = au_fi(file); + fidir = finfo->fi_hdir; + if (fidir) { + /* remove me from sb->s_files */ + file_sb_list_del(file); + + 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_alive_dir(dentry); + if (!err) + err = au_vdir_init(file); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + + if (!au_test_nfsd()) { + 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) \ + do { (flags) |= AuTestEmpty_##name; } while (0) +#define au_fclr_testempty(flags, name) \ + do { (flags) &= ~AuTestEmpty_##name; } while (0) + +#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, + .llseek = default_llseek, + .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.38.orig/ubuntu/aufs/aufs.h +++ linux-2.6.38/ubuntu/aufs/aufs.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2005-2011 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.38.orig/ubuntu/aufs/wbr_policy.c +++ linux-2.6.38/ubuntu/aufs/wbr_policy.c @@ -0,0 +1,700 @@ +/* + * Copyright (C) 2005-2011 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) \ + do { (flags) |= AuCpdown_##name; } while (0) +#define au_fclr_cpdown(flags, name) \ + do { (flags) &= ~AuCpdown_##name; } while (0) + +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_aufs(&dpages, parent, /*do_include*/0); + 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; + struct path h_path; + /* 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 */ + h_path.mnt = br->br_mnt; + h_path.dentry = h_path.mnt->mnt_root; + err = vfs_statfs(&h_path, 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.38.orig/ubuntu/aufs/magic.mk +++ linux-2.6.38/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.38.orig/ubuntu/aufs/i_op.c +++ linux-2.6.38/ubuntu/aufs/i_op.c @@ -0,0 +1,976 @@ +/* + * Copyright (C) 2005-2011 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, unsigned int flags, + 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, flags, + h_inode->i_op->check_acl); + } else { + /* AuLabel(h_inode->permission); */ + err = h_inode->i_op->permission(h_inode, mask, flags); + AuTraceErr(err); + } + + if (!err) + err = devcgroup_inode_permission(h_inode, mask); + if (!err) + 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, unsigned int flags) +{ + 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; + + /* todo: support rcu-walk? */ + if (flags & IPERM_FLAG_RCU) + return -ECHILD; + + sb = inode->i_sb; + si_read_lock(sb, AuLock_FLUSH); + ii_read_lock_child(inode); +#if 0 + err = au_iigen_test(inode, au_sigen(sb)); + if (unlikely(err)) + goto out; +#endif + + 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, flags, 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, flags, 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; + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + ret = ERR_PTR(err); + if (unlikely(err)) + goto out; + + ret = ERR_PTR(-ENAMETOOLONG); + if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN)) + goto out_si; + err = au_di_init(dentry); + ret = ERR_PTR(err); + if (unlikely(err)) + goto out_si; + + npositive = 0; /* suppress a warning */ + parent = dentry->d_parent; /* dir inode is locked */ + di_read_lock_parent(parent, AuLock_IR); + err = au_alive_dir(parent); + if (!err) + err = au_digen_test(parent, au_sigen(sb)); + if (!err) { + npositive = au_lkup_dentry(dentry, au_dbstart(parent), + /*type*/0, nd); + err = npositive; + } + di_read_unlock(parent, AuLock_IR); + 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); + iput(inode); + } + +out_unlock: + di_write_unlock(dentry); +out_si: + si_read_unlock(sb); +out: + 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) + 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); + + AuDbg("bcpup %d\n", bcpup); + if (!err) { + if (!dentry->d_inode) + au_set_h_dptr(dentry, bstart, NULL); + au_update_dbrange(dentry, /*do_put_zero*/0); + } + } + + if (!add_entry) + di_write_unlock(parent); + if (!err) + err = bcpup; /* success */ + + AuTraceErr(err); + 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 */ + + /* copyup the new parent into the branch we process */ + err = au_wr_dir_cpup(dentry, parent, add_entry, bcpup, bstart); + if (err >= 0) { + if (!dentry->d_inode) { + au_set_h_dptr(dentry, bstart, NULL); + au_set_dbstart(dentry, bcpup); + au_set_dbend(dentry, bcpup); + } + AuDebugOn(add_entry && !au_h_dptr(dentry, bcpup)); + } + +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 (p->h_mnt && 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, or + * if DI_LOCKED is not set, then p->parent may be different + * and h_parent can be NULL. + */ + if (unlikely(!p->hdir || !h_dir || !h_parent)) { + err = -EBUSY; + 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. + */ +/* todo: consolidate with do_refresh() and simple_reval_dpath() */ +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_test(dentry, sigen)) { + parent = dget_parent(dentry); + di_read_lock_parent(parent, AuLock_IR); + err = au_refresh_dentry(dentry, parent); + 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) \ + do { (flags) |= AuIcpup_##name; } while (0) +#define au_fclr_icpup(flags, name) \ + do { (flags) &= ~AuIcpup_##name; } while (0) + +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, ibstart; + 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 */ + ibstart = au_ibstart(inode); + if (bstart != ibstart && !au_test_ro(inode->i_sb, ibstart, inode)) + wr_dir_args.force_btgt = ibstart; + 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_unlinked(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; + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out_kfree; + + 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); + di_write_lock_child(dentry); + /* no d_unlinked(), to set UDBA_NONE for root */ + if (d_unhashed(dentry)) + a->udba = AuOpt_UDBA_NONE; + 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 */ + truncate_setsize(inode, ia->ia_size); + + 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); + if (unlikely(err)) + au_update_dbstart(dentry); +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); +out_kfree: + 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; + + sb = dentry->d_sb; + inode = dentry->d_inode; + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out; + mnt_flags = au_mntflags(sb); + udba_none = !!au_opt_test(mnt_flags, UDBA_NONE); + + /* support fstat(2) */ + if (!d_unlinked(dentry) && !udba_none) { + unsigned int sigen = au_sigen(sb); + err = au_digen_test(dentry, sigen); + if (!err) { + di_read_lock_child(dentry, AuLock_IR); + err = au_dbrange_test(dentry); + if (unlikely(err)) + goto out_unlock; + } else { + AuDebugOn(IS_ROOT(dentry)); + di_write_lock_child(dentry); + err = au_dbrange_test(dentry); + if (!err) + err = au_reval_for_attr(dentry, sigen); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + } + } 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 */ + } + AuTraceErr(err); + goto out_unlock; + +out_fill: + generic_fillattr(inode, st); +out_unlock: + di_read_unlock(dentry, AuLock_IR); + si_read_unlock(sb); +out: + AuTraceErr(err); + 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; + + err = aufs_read_lock(dentry, AuLock_IR | AuLock_GEN); + if (unlikely(err)) + goto out; + err = au_d_hashed_positive(dentry); + if (!err) + err = h_readlink(dentry, au_dbstart(dentry), buf, bufsiz); + aufs_read_unlock(dentry, AuLock_IR); + +out: + 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; + + err = aufs_read_lock(dentry, AuLock_IR | AuLock_GEN); + if (unlikely(err)) + goto out_name; + + err = au_d_hashed_positive(dentry); + if (!err) { + 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 */ + } + +out_name: + __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.38.orig/ubuntu/aufs/wkq.h +++ linux-2.6.38/ubuntu/aufs/wkq.h @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2005-2011 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) \ + do { (flags) |= AuWkq_##name; } while (0) +#define au_fclr_wkq(flags, name) \ + do { (flags) &= ~AuWkq_##name; } while (0) + +/* 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 void au_nwt_done(struct au_nowait_tasks *nwt) +{ + if (atomic_dec_and_test(&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.38.orig/ubuntu/aufs/whout.c +++ linux-2.6.38/ubuntu/aufs/whout.c @@ -0,0 +1,1062 @@ +/* + * Copyright (C) 2005-2011 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 + 1], + *name, *p; + /* strict atomic_t is unnecessary here */ + 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 + prefix->len - 1; + if (unlikely(prefix->len > DNAME_INLINE_LEN)) { + 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, "%.*x", 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); + si_write_unlock(a->sb); + au_nwt_done(&au_sbi(a->sb)->si_nowait); + 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->br = 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) +{ + if (whtmp->br) + atomic_dec(&whtmp->br->br_count); + 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); + } + + if (!err) { + if (au_ibstart(dir) == bindex) { + /* todo: dir->i_mutex is necessary */ + au_cpup_attr_timesizes(dir); + vfsub_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; + aufs_bindex_t bindex; + struct au_whtmp_rmdir *a = args; + struct super_block *sb; + struct dentry *h_parent; + struct inode *h_dir; + struct au_hinode *hdir; + + /* rmdir by nfsd may cause deadlock with this i_mutex */ + /* mutex_lock(&a->dir->i_mutex); */ + err = -EROFS; + sb = a->dir->i_sb; + si_read_lock(sb, !AuLock_FLUSH); + if (!au_br_writable(a->br->br_perm)) + goto out; + bindex = au_br_index(sb, a->br->br_id); + if (unlikely(bindex < 0)) + goto out; + + err = -EIO; + ii_write_lock_parent(a->dir); + h_parent = dget_parent(a->wh_dentry); + h_dir = h_parent->d_inode; + hdir = au_hi(a->dir, 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, + a->br); + if (!err) { + err = mnt_want_write(a->br->br_mnt); + if (!err) { + err = au_whtmp_rmdir(a->dir, bindex, a->wh_dentry, + &a->whlist); + mnt_drop_write(a->br->br_mnt); + } + } + au_hn_imtx_unlock(hdir); + dput(h_parent); + ii_write_unlock(a->dir); + +out: + /* mutex_unlock(&a->dir->i_mutex); */ + au_whtmp_rmdir_free(a); + si_read_unlock(sb); + au_nwt_done(&au_sbi(sb)->si_nowait); + 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; + struct super_block *sb; + + IMustLock(dir); + + /* all post-process will be done in do_rmdir_whtmp(). */ + sb = dir->i_sb; + args->dir = au_igrab(dir); + args->br = au_sbr(sb, bindex); + atomic_inc(&args->br->br_count); + args->wh_dentry = dget(wh_dentry); + wkq_err = au_wkq_nowait(call_rmdir_whtmp, args, 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.38.orig/ubuntu/aufs/i_op_del.c +++ linux-2.6.38/ubuntu/aufs/i_op_del.c @@ -0,0 +1,481 @@ +/* + * Copyright (C) 2005-2011 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 { + struct au_dinfo *dinfo, *tmp; + + need_wh = -ENOMEM; + dinfo = au_di(dentry); + tmp = au_di_alloc(sb, AuLsc_DI_TMP); + if (tmp) { + au_di_cp(tmp, dinfo); + au_di_swap(tmp, dinfo); + /* returns the number of positive dentries */ + need_wh = au_lkup_dentry(dentry, bstart + 1, /*type*/0, + /*nd*/NULL); + au_di_swap(tmp, dinfo); + au_rw_write_unlock(&tmp->di_rwsem); + au_di_free(tmp); + } + } + 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 (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 bindex, + 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, bindex) + }; + + rerr = au_wh_unlink_dentry(au_h_iptr(dir, bindex), &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); + + err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN); + if (unlikely(err)) + goto out; + err = au_d_hashed_positive(dentry); + if (unlikely(err)) + goto out_unlock; + inode = dentry->d_inode; + IMustLock(inode); + err = -EISDIR; + if (unlikely(S_ISDIR(inode->i_mode))) + goto out_unlock; /* possible? */ + + bstart = au_dbstart(dentry); + bwh = au_dbwh(dentry); + bindex = -1; + parent = dentry->d_parent; /* dir inode is locked */ + di_write_lock_parent(parent); + wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/0, &bindex, &dt, &pin); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_parent; + + 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) { + vfsub_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_unpin; /* success */ + } + + /* revert */ + if (wh_dentry) { + int rerr; + + rerr = do_revert(err, dir, bindex, bwh, wh_dentry, dentry, &dt); + if (rerr) + err = rerr; + } + +out_unpin: + au_unpin(&pin); + dput(wh_dentry); + dput(h_path.dentry); +out_parent: + di_write_unlock(parent); +out_unlock: + aufs_read_unlock(dentry, AuLock_DW); +out: + 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); + + err = aufs_read_lock(dentry, AuLock_DW | AuLock_FLUSH | AuLock_GEN); + if (unlikely(err)) + goto out; + + /* VFS already unhashes it */ + inode = dentry->d_inode; + err = -ENOENT; + if (unlikely(!inode || !inode->i_nlink + || IS_DEADDIR(inode))) + goto out_unlock; + IMustLock(inode); + err = -ENOTDIR; + if (unlikely(!S_ISDIR(inode->i_mode))) + goto out_unlock; /* possible? */ + + 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_parent; + + 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_parent; + + 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) { + vfsub_dead_dir(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, bindex, bwh, wh_dentry, dentry, &dt); + if (rerr) + err = rerr; + } + +out_unpin: + au_unpin(&pin); + dput(wh_dentry); + dput(h_dentry); +out_parent: + 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.38.orig/ubuntu/aufs/dir.h +++ linux-2.6.38/ubuntu/aufs/dir.h @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2005-2011 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.38.orig/ubuntu/aufs/f_op.c +++ linux-2.6.38/ubuntu/aufs/f_op.c @@ -0,0 +1,907 @@ +/* + * Copyright (C) 2005-2011 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); + + dentry = file->f_dentry; + err = au_d_alive(dentry); + if (unlikely(err)) + goto out; + + 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; */ + } + +out: + 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) { + /* remove me from sb->s_files */ + file_sb_list_del(file); + 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 | AuLock_NOPLMW); + 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; +} + +/* + * todo: very ugly + * it locks both of i_mutex and si_rwsem for read in safe. + * if the plink maintenance mode continues forever (that is the problem), + * may loop forever. + */ +static void au_mtx_and_read_lock(struct inode *inode) +{ + int err; + struct super_block *sb = inode->i_sb; + + while (1) { + mutex_lock(&inode->i_mutex); + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (!err) + break; + mutex_unlock(&inode->i_mutex); + si_read_lock(sb, AuLock_NOPLMW); + si_read_unlock(sb); + } +} + +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 file *h_file; + char __user *buf = (char __user *)ubuf; + + dentry = file->f_dentry; + inode = dentry->d_inode; + au_mtx_and_read_lock(inode); + + 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(inode->i_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 | AuLock_NOPLMW); + 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 file *file, *h_file; + + file = kio->ki_filp; + dentry = file->f_dentry; + inode = dentry->d_inode; + au_mtx_and_read_lock(inode); + + 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(inode->i_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 | AuLock_NOPLMW); + 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 file *h_file; + + dentry = file->f_dentry; + inode = dentry->d_inode; + au_mtx_and_read_lock(inode); + 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(inode->i_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 (au_fi(file) && 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_NOPLMW); + 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; + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out; + + err = 0; /* -EBADF; */ /* posix? */ + if (unlikely(!(file->f_mode & FMODE_WRITE))) + goto out_si; + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out_si; + + 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: + si_read_unlock(sb); +out: + 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; + + file = kio->ki_filp; + dentry = file->f_dentry; + inode = dentry->d_inode; + au_mtx_and_read_lock(inode); + + 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(inode->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 | AuLock_NOPLMW); + 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, */ + .llseek = default_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.38.orig/ubuntu/aufs/dcsub.h +++ linux-2.6.38/ubuntu/aufs/dcsub.h @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2005-2011 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 +#include +#include + +struct dentry; + +struct au_dpage { + int ndentry; + struct dentry **dentries; +}; + +struct au_dcsub_pages { + int ndpage; + struct au_dpage *dpages; +}; + +/* ---------------------------------------------------------------------- */ + +/* dcsub.c */ +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_dcsub_pages_rev_aufs(struct au_dcsub_pages *dpages, + struct dentry *dentry, int do_include); +int au_test_subdir(struct dentry *d1, struct dentry *d2); + +/* ---------------------------------------------------------------------- */ + +static inline int au_d_hashed_positive(struct dentry *d) +{ + int err; + struct inode *inode = d->d_inode; + err = 0; + if (unlikely(d_unhashed(d) || !inode || !inode->i_nlink)) + err = -ENOENT; + return err; +} + +static inline int au_d_alive(struct dentry *d) +{ + int err; + struct inode *inode; + err = 0; + if (!IS_ROOT(d)) + err = au_d_hashed_positive(d); + else { + inode = d->d_inode; + if (unlikely(d_unlinked(d) || !inode || !inode->i_nlink)) + err = -ENOENT; + } + return err; +} + +static inline int au_alive_dir(struct dentry *d) +{ + int err; + err = au_d_alive(d); + if (unlikely(err || IS_DEADDIR(d->d_inode))) + err = -ENOENT; + return err; +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DCSUB_H__ */ --- linux-2.6.38.orig/ubuntu/aufs/loop.c +++ linux-2.6.38/ubuntu/aufs/loop.c @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2005-2011 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_adding) +{ + struct super_block *h_sb; + struct loop_device *l; + + h_sb = h_adding->d_sb; + if (MAJOR(h_sb->s_dev) != LOOP_MAJOR) + return 0; + + l = h_sb->s_bdev->bd_disk->private_data; + h_adding = l->lo_backing_file->f_dentry; + /* + * h_adding can be local NFS. + * in this case aufs cannot detect the loop. + */ + if (unlikely(h_adding->d_sb == sb)) + return 1; + return !!au_test_subdir(h_adding, sb->s_root); +} + +/* true if a kernel thread named 'loop[0-9].*' accesses a file */ +int au_test_loopback_kthread(void) +{ + int ret; + struct task_struct *tsk = current; + + ret = 0; + if (tsk->flags & PF_KTHREAD) { + const char c = tsk->comm[4]; + ret = ('0' <= c && c <= '9' + && !strncmp(tsk->comm, "loop", 4)); + } + + return ret; +} --- linux-2.6.38.orig/ubuntu/aufs/whout.h +++ linux-2.6.38/ubuntu/aufs/whout.h @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2005-2011 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) \ + do { (flags) |= AuDiropq_##name; } while (0) +#define au_fclr_diropq(flags, name) \ + do { (flags) &= ~AuDiropq_##name; } while (0) + +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; + struct au_branch *br; + 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.38.orig/ubuntu/aufs/sbinfo.c +++ linux-2.6.38/ubuntu/aufs/sbinfo.c @@ -0,0 +1,344 @@ +/* + * Copyright (C) 2005-2011 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 +#include "aufs.h" + +/* + * they are necessary regardless sysfs is disabled. + */ +void au_si_free(struct kobject *kobj) +{ + struct au_sbinfo *sbinfo; + char *locked __maybe_unused; /* debug only */ + + sbinfo = container_of(kobj, struct au_sbinfo, si_kobj); + AuDebugOn(!list_empty(&sbinfo->si_plink.head)); + AuDebugOn(atomic_read(&sbinfo->si_nowait.nw_len)); + + au_rw_write_lock(&sbinfo->si_rwsem); + au_br_free(sbinfo); + au_rw_write_unlock(&sbinfo->si_rwsem); + + 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; + static struct lock_class_key aufs_si; + + 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); + au_rw_class(&sbinfo->si_rwsem, &aufs_si); + spin_lock_init(&sbinfo->au_si_pid.tree_lock); + INIT_RADIX_TREE(&sbinfo->au_si_pid.tree, GFP_ATOMIC | __GFP_NOFAIL); + + atomic_long_set(&sbinfo->si_ninodes, 0); + atomic_long_set(&sbinfo->si_nfiles, 0); + + 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 = au_opts_plink(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 = msecs_to_jiffies(AUFS_RDCACHE_DEF * MSEC_PER_SEC); + 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; + AuDebugOn(br_id < 0); + if (br_id && au_br_index(sb, br_id) < 0) + return br_id; + } + + return -1; +} + +/* ---------------------------------------------------------------------- */ + +/* it is ok that new 'nwt' tasks are appended while we are sleeping */ +int si_read_lock(struct super_block *sb, int flags) +{ + int err; + + err = 0; + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&au_sbi(sb)->si_nowait); + + si_noflush_read_lock(sb); + err = au_plink_maint(sb, flags); + if (unlikely(err)) + si_read_unlock(sb); + + return err; +} + +int si_write_lock(struct super_block *sb, int flags) +{ + int err; + + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&au_sbi(sb)->si_nowait); + + si_noflush_write_lock(sb); + err = au_plink_maint(sb, flags); + if (unlikely(err)) + si_write_unlock(sb); + + return err; +} + +/* dentry and super_block lock. call at entry point */ +int aufs_read_lock(struct dentry *dentry, int flags) +{ + int err; + struct super_block *sb; + + sb = dentry->d_sb; + err = si_read_lock(sb, flags); + if (unlikely(err)) + goto out; + + if (au_ftest_lock(flags, DW)) + di_write_lock_child(dentry); + else + di_read_lock_child(dentry, flags); + + if (au_ftest_lock(flags, GEN)) { + err = au_digen_test(dentry, au_sigen(sb)); + AuDebugOn(!err && au_dbrange_test(dentry)); + if (unlikely(err)) + aufs_read_unlock(dentry, flags); + } + +out: + return err; +} + +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, AuLock_FLUSH | AuLock_NOPLMW); + di_write_lock_child(dentry); +} + +void aufs_write_unlock(struct dentry *dentry) +{ + di_write_unlock(dentry); + si_write_unlock(dentry->d_sb); +} + +int aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int flags) +{ + int err; + unsigned int sigen; + struct super_block *sb; + + sb = d1->d_sb; + err = si_read_lock(sb, flags); + if (unlikely(err)) + goto out; + + di_write_lock2_child(d1, d2, au_ftest_lock(flags, DIR)); + + if (au_ftest_lock(flags, GEN)) { + sigen = au_sigen(sb); + err = au_digen_test(d1, sigen); + AuDebugOn(!err && au_dbrange_test(d1)); + if (!err) { + err = au_digen_test(d2, sigen); + AuDebugOn(!err && au_dbrange_test(d2)); + } + if (unlikely(err)) + aufs_read_and_write_unlock2(d1, d2); + } + +out: + return err; +} + +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, + /*any valid ptr*/sb); + 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); +} --- linux-2.6.38.orig/ubuntu/aufs/hfsnotify.c +++ linux-2.6.38/ubuntu/aufs/hfsnotify.c @@ -0,0 +1,247 @@ +/* + * Copyright (C) 2005-2011 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 DECLARE_WAIT_QUEUE_HEAD(au_hfsn_wq); + +static void au_hfsn_free_mark(struct fsnotify_mark *mark) +{ + struct au_hnotify *hn = container_of(mark, struct au_hnotify, + hn_mark); + AuDbg("here\n"); + hn->hn_mark_dead = 1; + smp_mb(); + wake_up_all(&au_hfsn_wq); +} + +static int au_hfsn_alloc(struct au_hinode *hinode) +{ + struct au_hnotify *hn; + struct super_block *sb; + struct au_branch *br; + struct fsnotify_mark *mark; + aufs_bindex_t bindex; + + hn = hinode->hi_notify; + sb = hn->hn_aufs_inode->i_sb; + bindex = au_br_index(sb, hinode->hi_id); + br = au_sbr(sb, bindex); + hn->hn_mark_dead = 0; + mark = &hn->hn_mark; + fsnotify_init_mark(mark, au_hfsn_free_mark); + mark->mask = AuHfsnMask; + /* + * by udba rename or rmdir, aufs assign a new inode to the known + * h_inode, so specify 1 to allow dups. + */ + return fsnotify_add_mark(mark, br->br_hfsn_group, hinode->hi_inode, + /*mnt*/NULL, /*allow_dups*/1); +} + +static void au_hfsn_free(struct au_hinode *hinode) +{ + struct au_hnotify *hn; + struct fsnotify_mark *mark; + + hn = hinode->hi_notify; + mark = &hn->hn_mark; + fsnotify_destroy_mark(mark); + fsnotify_put_mark(mark); + + /* TODO: bad approach */ + wait_event(au_hfsn_wq, hn->hn_mark_dead); +} + +/* ---------------------------------------------------------------------- */ + +static void au_hfsn_ctl(struct au_hinode *hinode, int do_set) +{ + struct fsnotify_mark *mark; + + mark = &hinode->hi_notify->hn_mark; + spin_lock(&mark->lock); + if (do_set) { + AuDebugOn(mark->mask & AuHfsnMask); + mark->mask |= AuHfsnMask; + } else { + AuDebugOn(!(mark->mask & AuHfsnMask)); + mark->mask &= ~AuHfsnMask; + } + spin_unlock(&mark->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_mark *inode_mark, + struct fsnotify_mark *vfsmount_mark, + struct fsnotify_event *event) +{ + int err; + struct au_hnotify *hnotify; + struct inode *h_dir, *h_inode; + __u32 mask; + struct qstr h_child_qstr = { + .name = event->file_name, + .len = event->name_len + }; + + AuDebugOn(event->data_type != FSNOTIFY_EVENT_INODE); + + err = 0; + /* if FS_UNMOUNT happens, there must be another bug */ + mask = event->mask; + AuDebugOn(mask & FS_UNMOUNT); + if (mask & (FS_IN_IGNORED | FS_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 + + AuDebugOn(!inode_mark); + hnotify = container_of(inode_mark, struct au_hnotify, hn_mark); + err = au_hnotify(h_dir, hnotify, mask, &h_child_qstr, h_inode); + +out: + return err; +} + +/* isn't it waste to ask every registered 'group'? */ +/* 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, + struct fsnotify_mark *inode_mark, + struct fsnotify_mark *vfsmount_mark, + __u32 mask, void *data, int data_type) +{ + mask = (mask & ~FS_EVENT_ON_CHILD); + return inode_mark->mask & mask; +} + +static struct fsnotify_ops au_hfsn_ops = { + .should_send_event = au_hfsn_should_send_event, + .handle_event = au_hfsn_handle_event +}; + +/* ---------------------------------------------------------------------- */ + +static void au_hfsn_fin_br(struct au_branch *br) +{ + if (br->br_hfsn_group) + fsnotify_put_group(br->br_hfsn_group); +} + +static int au_hfsn_init_br(struct au_branch *br, int perm) +{ + br->br_hfsn_group = NULL; + br->br_hfsn_ops = au_hfsn_ops; + return 0; +} + +static int au_hfsn_reset_br(unsigned int udba, struct au_branch *br, int perm) +{ + int err; + + err = 0; + if (udba != AuOpt_UDBA_HNOTIFY + || !au_br_hnotifyable(perm)) { + au_hfsn_fin_br(br); + br->br_hfsn_group = NULL; + goto out; + } + + if (br->br_hfsn_group) + goto out; + + br->br_hfsn_group = fsnotify_alloc_group(&br->br_hfsn_ops); + if (IS_ERR(br->br_hfsn_group)) { + err = PTR_ERR(br->br_hfsn_group); + pr_err("fsnotify_alloc_group() failed, %d\n", err); + br->br_hfsn_group = NULL; + } + +out: + AuTraceErr(err); + return err; +} + +const struct au_hnotify_op au_hnotify_op = { + .ctl = au_hfsn_ctl, + .alloc = au_hfsn_alloc, + .free = au_hfsn_free, + + .reset_br = au_hfsn_reset_br, + .fin_br = au_hfsn_fin_br, + .init_br = au_hfsn_init_br +}; --- linux-2.6.38.orig/ubuntu/aufs/cpup.c +++ linux-2.6.38/ubuntu/aufs/cpup.c @@ -0,0 +1,1063 @@ +/* + * Copyright (C) 2005-2011 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("hi%lu(i%lu) exists on b%d " + "but plink is disabled\n", + dst_inode->i_ino, inode->i_ino, bdst); + 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 not pseudo-linked\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; + if (file) { + h_d_start = hdp[0 + bstart].hd_dentry; + 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 (file) { + if (!err) + 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.38.orig/ubuntu/aufs/dentry.c +++ linux-2.6.38/ubuntu/aufs/dentry.c @@ -0,0 +1,1140 @@ +/* + * Copyright (C) 2005-2011 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) \ + do { (flags) |= AuLkup_##name; } while (0) +#define au_fclr_lkup(flags, name) \ + do { (flags) &= ~AuLkup_##name; } while (0) + +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)) { + err = -EIO; + AuIOErr("both of real entry and whiteout found, %.*s, err %d\n", + AuDLNPair(dentry), err); + } + +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("%.*s should be negative on b%d.\n", + AuDLNPair(h_dentry), bindex); + 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 + && !au_test_fs_remote(h_dentry->d_sb)) { + IMustLock(h_dir); + err = (h_dentry->d_parent->d_inode != h_dir); + } else if (udba != AuOpt_UDBA_NONE) + err = au_h_verify_dentry(h_dentry, h_parent, br); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_refresh_hdentry(struct dentry *dentry, struct dentry *parent) +{ + int err; + aufs_bindex_t new_bindex, bindex, bend, bwh, bdiropq; + struct au_hdentry tmp, *p, *q; + struct au_dinfo *dinfo; + struct super_block *sb; + + DiMustWriteLock(dentry); + + sb = dentry->d_sb; + dinfo = au_di(dentry); + bend = dinfo->di_bend; + bwh = dinfo->di_bwh; + bdiropq = dinfo->di_bdiropq; + p = dinfo->di_hdentry + dinfo->di_bstart; + for (bindex = dinfo->di_bstart; bindex <= bend; bindex++, p++) { + if (!p->hd_dentry) + continue; + + new_bindex = au_br_index(sb, p->hd_id); + if (new_bindex == bindex) + continue; + + 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--; + } + } + + 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; + + err = -EIO; + dinfo->di_bstart = -1; + dinfo->di_bend = -1; + bend = au_dbend(parent); + p = dinfo->di_hdentry; + for (bindex = 0; bindex <= bend; bindex++, p++) + if (p->hd_dentry) { + dinfo->di_bstart = bindex; + break; + } + + if (dinfo->di_bstart >= 0) { + p = dinfo->di_hdentry + bend; + for (bindex = bend; bindex >= 0; bindex--, p--) + if (p->hd_dentry) { + dinfo->di_bend = bindex; + err = 0; + break; + } + } + + return err; +} + +static void au_do_hide(struct dentry *dentry) +{ + struct inode *inode; + + inode = dentry->d_inode; + if (inode) { + if (!S_ISDIR(inode->i_mode)) { + if (inode->i_nlink && !d_unhashed(dentry)) + drop_nlink(inode); + } else { + clear_nlink(inode); + /* stop next lookup */ + inode->i_flags |= S_DEAD; + } + smp_mb(); /* necessary? */ + } + d_drop(dentry); +} + +static int au_hide_children(struct dentry *parent) +{ + int err, i, j, ndentry; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry *dentry; + + err = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_dcsub_pages(&dpages, parent, NULL, NULL); + if (unlikely(err)) + goto out_dpages; + + /* in reverse order */ + for (i = dpages.ndpage - 1; i >= 0; i--) { + dpage = dpages.dpages + i; + ndentry = dpage->ndentry; + for (j = ndentry - 1; j >= 0; j--) { + dentry = dpage->dentries[j]; + if (dentry != parent) + au_do_hide(dentry); + } + } + +out_dpages: + au_dpages_free(&dpages); +out: + return err; +} + +static void au_hide(struct dentry *dentry) +{ + int err; + struct inode *inode; + + AuDbgDentry(dentry); + inode = dentry->d_inode; + if (inode && S_ISDIR(inode->i_mode)) { + /* shrink_dcache_parent(dentry); */ + err = au_hide_children(dentry); + if (unlikely(err)) + AuIOErr("%.*s, failed hiding children, ignored %d\n", + AuDLNPair(dentry), err); + } + au_do_hide(dentry); +} + +/* + * By adding a dirty branch, a cached dentry may be affected in various ways. + * + * a dirty branch is added + * - on the top of layers + * - in the middle of layers + * - to the bottom of layers + * + * on the added branch there exists + * - a whiteout + * - a diropq + * - a same named entry + * + exist + * * negative --> positive + * * positive --> positive + * - type is unchanged + * - type is changed + * + doesn't exist + * * negative --> negative + * * positive --> negative (rejected by au_br_del() for non-dir case) + * - none + */ +static int au_refresh_by_dinfo(struct dentry *dentry, struct au_dinfo *dinfo, + struct au_dinfo *tmp) +{ + int err; + aufs_bindex_t bindex, bend; + struct { + struct dentry *dentry; + struct inode *inode; + mode_t mode; + } orig_h, tmp_h; + struct au_hdentry *hd; + struct inode *inode, *h_inode; + struct dentry *h_dentry; + + err = 0; + AuDebugOn(dinfo->di_bstart < 0); + orig_h.dentry = dinfo->di_hdentry[dinfo->di_bstart].hd_dentry; + orig_h.inode = orig_h.dentry->d_inode; + orig_h.mode = 0; + if (orig_h.inode) + orig_h.mode = orig_h.inode->i_mode & S_IFMT; + memset(&tmp_h, 0, sizeof(tmp_h)); + if (tmp->di_bstart >= 0) { + tmp_h.dentry = tmp->di_hdentry[tmp->di_bstart].hd_dentry; + tmp_h.inode = tmp_h.dentry->d_inode; + if (tmp_h.inode) + tmp_h.mode = tmp_h.inode->i_mode & S_IFMT; + } + + inode = dentry->d_inode; + if (!orig_h.inode) { + AuDbg("nagative originally\n"); + if (inode) { + au_hide(dentry); + goto out; + } + AuDebugOn(inode); + AuDebugOn(dinfo->di_bstart != dinfo->di_bend); + AuDebugOn(dinfo->di_bdiropq != -1); + + if (!tmp_h.inode) { + AuDbg("negative --> negative\n"); + /* should have only one negative lower */ + if (tmp->di_bstart >= 0 + && tmp->di_bstart < dinfo->di_bstart) { + AuDebugOn(tmp->di_bstart != tmp->di_bend); + AuDebugOn(dinfo->di_bstart != dinfo->di_bend); + au_set_h_dptr(dentry, dinfo->di_bstart, NULL); + au_di_cp(dinfo, tmp); + hd = tmp->di_hdentry + tmp->di_bstart; + au_set_h_dptr(dentry, tmp->di_bstart, + dget(hd->hd_dentry)); + } + au_dbg_verify_dinode(dentry); + } else { + AuDbg("negative --> positive\n"); + /* + * similar to the behaviour of creating with bypassing + * aufs. + * unhash it in order to force an error in the + * succeeding create operation. + * we should not set S_DEAD here. + */ + d_drop(dentry); + /* au_di_swap(tmp, dinfo); */ + au_dbg_verify_dinode(dentry); + } + } else { + AuDbg("positive originally\n"); + /* inode may be NULL */ + AuDebugOn(inode && (inode->i_mode & S_IFMT) != orig_h.mode); + if (!tmp_h.inode) { + AuDbg("positive --> negative\n"); + /* or bypassing aufs */ + au_hide(dentry); + if (tmp->di_bwh >= 0 && tmp->di_bwh <= dinfo->di_bstart) + dinfo->di_bwh = tmp->di_bwh; + if (inode) + err = au_refresh_hinode_self(inode); + au_dbg_verify_dinode(dentry); + } else if (orig_h.mode == tmp_h.mode) { + AuDbg("positive --> positive, same type\n"); + if (!S_ISDIR(orig_h.mode) + && dinfo->di_bstart > tmp->di_bstart) { + /* + * similar to the behaviour of removing and + * creating. + */ + au_hide(dentry); + if (inode) + err = au_refresh_hinode_self(inode); + au_dbg_verify_dinode(dentry); + } else { + /* fill empty slots */ + if (dinfo->di_bstart > tmp->di_bstart) + dinfo->di_bstart = tmp->di_bstart; + if (dinfo->di_bend < tmp->di_bend) + dinfo->di_bend = tmp->di_bend; + dinfo->di_bwh = tmp->di_bwh; + dinfo->di_bdiropq = tmp->di_bdiropq; + hd = tmp->di_hdentry; + bend = dinfo->di_bend; + for (bindex = tmp->di_bstart; bindex <= bend; + bindex++) { + if (au_h_dptr(dentry, bindex)) + continue; + h_dentry = hd[bindex].hd_dentry; + if (!h_dentry) + continue; + h_inode = h_dentry->d_inode; + AuDebugOn(!h_inode); + AuDebugOn(orig_h.mode + != (h_inode->i_mode + & S_IFMT)); + au_set_h_dptr(dentry, bindex, + dget(h_dentry)); + } + err = au_refresh_hinode(inode, dentry); + au_dbg_verify_dinode(dentry); + } + } else { + AuDbg("positive --> positive, different type\n"); + /* similar to the behaviour of removing and creating */ + au_hide(dentry); + if (inode) + err = au_refresh_hinode_self(inode); + au_dbg_verify_dinode(dentry); + } + } + +out: + return err; +} + +int au_refresh_dentry(struct dentry *dentry, struct dentry *parent) +{ + int err, ebrange; + unsigned int sigen; + struct au_dinfo *dinfo, *tmp; + struct super_block *sb; + struct inode *inode; + + DiMustWriteLock(dentry); + AuDebugOn(IS_ROOT(dentry)); + AuDebugOn(!parent->d_inode); + + sb = dentry->d_sb; + inode = dentry->d_inode; + sigen = au_sigen(sb); + err = au_digen_test(parent, sigen); + if (unlikely(err)) + goto out; + + dinfo = au_di(dentry); + err = au_di_realloc(dinfo, au_sbend(sb) + 1); + if (unlikely(err)) + goto out; + ebrange = au_dbrange_test(dentry); + if (!ebrange) + ebrange = au_do_refresh_hdentry(dentry, parent); + + if (d_unhashed(dentry) || ebrange) { + AuDebugOn(au_dbstart(dentry) < 0 && au_dbend(dentry) >= 0); + if (inode) + err = au_refresh_hinode_self(inode); + au_dbg_verify_dinode(dentry); + if (!err) + goto out_dgen; /* success */ + goto out; + } + + /* temporary dinfo */ + AuDbgDentry(dentry); + err = -ENOMEM; + tmp = au_di_alloc(sb, AuLsc_DI_TMP); + if (unlikely(!tmp)) + goto out; + au_di_swap(tmp, dinfo); + /* returns the number of positive dentries */ + /* + * if current working dir is removed, it returns an error. + * but the dentry is legal. + */ + err = au_lkup_dentry(dentry, /*bstart*/0, /*type*/0, /*nd*/NULL); + AuDbgDentry(dentry); + au_di_swap(tmp, dinfo); + if (err == -ENOENT) + err = 0; + if (err >= 0) { + /* compare/refresh by dinfo */ + AuDbgDentry(dentry); + err = au_refresh_by_dinfo(dentry, dinfo, tmp); + au_dbg_verify_dinode(dentry); + AuTraceErr(err); + } + au_rw_write_unlock(&tmp->di_rwsem); + au_di_free(tmp); + if (unlikely(err)) + goto out; + +out_dgen: + au_update_digen(dentry); +out: + if (unlikely(err && !(dentry->d_flags & DCACHE_NFSFS_RENAMED))) { + AuIOErr("failed refreshing %.*s, %d\n", + AuDLNPair(dentry), err); + AuDbgDentry(dentry); + } + AuTraceErr(err); + return err; +} + +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; + if (!(h_dentry->d_flags & DCACHE_OP_REVALIDATE)) + goto out; + reval = h_dentry->d_op->d_revalidate; + + 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 + * {FS,I}NOTIFY. + * But {fs,i}notify 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)); + spin_lock(&h_dentry->d_lock); + 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)); + spin_unlock(&h_dentry->d_lock); + goto err; + } + spin_unlock(&h_dentry->d_lock); + + 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; +} + +/* todo: consolidate with do_refresh() and au_reval_for_attr() */ +static int simple_reval_dpath(struct dentry *dentry, unsigned int sigen) +{ + int err; + struct dentry *parent; + + if (!au_digen_test(dentry, sigen)) + return 0; + + parent = dget_parent(dentry); + di_read_lock_parent(parent, AuLock_IR); + AuDebugOn(au_digen_test(parent, sigen)); + au_dbg_verify_gen(parent, sigen); + err = au_refresh_dentry(dentry, parent); + di_read_unlock(parent, AuLock_IR); + dput(parent); + AuTraceErr(err); + 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_DIR)) + return simple_reval_dpath(dentry, sigen); + + /* slow loop, keep it simple and stupid */ + /* cf: au_cpup_dirs() */ + err = 0; + parent = NULL; + while (au_digen_test(dentry, sigen)) { + d = dentry; + while (1) { + dput(parent); + parent = dget_parent(d); + if (!au_digen_test(parent, sigen)) + break; + d = parent; + } + + inode = d->d_inode; + if (d != dentry) + di_write_lock_child2(d); + + /* someone might update our dentry while we were sleeping */ + if (au_digen_test(d, sigen)) { + /* + * todo: consolidate with simple_reval_dpath(), + * do_refresh() and au_reval_for_attr(). + */ + di_read_lock_parent(parent, AuLock_IR); + err = au_refresh_dentry(d, parent); + 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; + + /* todo: support rcu-walk? */ + if (nd && (nd->flags & LOOKUP_RCU)) + return -ECHILD; + + valid = 0; + if (unlikely(!au_di(dentry))) + goto out; + + inode = dentry->d_inode; + if (inode && is_bad_inode(inode)) + goto out; + + valid = 1; + sb = dentry->d_sb; + /* + * todo: very ugly + * i_mutex of parent dir may be held, + * but we should not return 'invalid' due to busy. + */ + err = aufs_read_lock(dentry, AuLock_FLUSH | AuLock_DW | AuLock_NOPLM); + if (unlikely(err)) { + valid = err; + AuTraceErr(err); + goto out; + } + if (unlikely(au_dbrange_test(dentry))) { + err = -EINVAL; + AuTraceErr(err); + goto out_dgrade; + } + + sigen = au_sigen(sb); + if (au_digen_test(dentry, sigen)) { + AuDebugOn(IS_ROOT(dentry)); + err = au_reval_dpath(dentry, sigen); + if (unlikely(err)) { + AuTraceErr(err); + goto out_dgrade; + } + } + di_downgrade_lock(dentry, AuLock_IR); + + err = -EINVAL; + if (inode && (IS_DEADDIR(inode) || !inode->i_nlink)) + goto out_inval; + + do_udba = !au_opt_test(au_mntflags(sb), UDBA_NONE); + if (do_udba && inode) { + aufs_bindex_t bstart = au_ibstart(inode); + struct inode *h_inode; + + if (bstart >= 0) { + h_inode = au_h_iptr(inode, bstart); + if (h_inode && au_test_higen(inode, h_inode)) + goto out_inval; + } + } + + err = h_d_revalidate(dentry, inode, nd, do_udba); + if (unlikely(!err && do_udba && au_dbstart(dentry) < 0)) { + err = -EIO; + AuDbg("both of real entry and whiteout found, %.*s, err %d\n", + AuDLNPair(dentry), err); + } + goto out_inval; + +out_dgrade: + di_downgrade_lock(dentry, AuLock_IR); +out_inval: + aufs_read_unlock(dentry, AuLock_IR); + AuTraceErr(err); + valid = !err; +out: + if (!valid) { + AuDbg("%.*s invalid, %d\n", AuDLNPair(dentry), valid); + d_drop(dentry); + } + return valid; +} + +static void aufs_d_release(struct dentry *dentry) +{ + if (au_di(dentry)) { + 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.38.orig/ubuntu/aufs/vdir.c +++ linux-2.6.38/ubuntu/aufs/vdir.c @@ -0,0 +1,886 @@ +/* + * Copyright (C) 2005-2011 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) \ + do { (flags) |= AuFillVdir_##name; } while (0) +#define au_fclr_fillvdir(flags, name) \ + do { (flags) &= ~AuFillVdir_##name; } while (0) + +#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.38.orig/ubuntu/aufs/opts.c +++ linux-2.6.38/ubuntu/aufs/opts.c @@ -0,0 +1,1595 @@ +/* + * Copyright (C) 2005-2011 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 +#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"}, + +#ifdef CONFIG_PROC_FS + {Opt_plink, "plink"}, +#else + {Opt_ignore_silent, "plink"}, +#endif + + {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"}, +#endif +#endif + {-1, NULL} +}; + +static int noinline_for_stack udba_val(char *str) +{ + substring_t args[MAX_OPT_ARGS]; + + return match_token(str, udbalevel, args); +} + +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 && n <= AUFS_MFS_MAX_SEC) + 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_DEF_SEC; + 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], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + if (unlikely(n > AUFS_RDCACHE_MAX)) { + pr_err("rdcache must be smaller than %d\n", + AUFS_RDCACHE_MAX); + break; + } + opt->rdcache = n; + 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 + = msecs_to_jiffies(create->mfs_second * MSEC_PER_SEC); + 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, /*verbose*/1); + 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 + = msecs_to_jiffies(opt->rdcache * MSEC_PER_SEC); + 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); + } + 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); + } + 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); + } + 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 bindex, bend; + struct au_opt *opt; + struct au_opt_xino *opt_xino, xino; + struct au_sbinfo *sbinfo; + struct au_branch *br; + + 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 */ + tmp &= AuOptMask_UDBA; + sbinfo->si_mntflags &= ~AuOptMask_UDBA; + sbinfo->si_mntflags |= tmp; + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + err = au_hnotify_reset_br(tmp, br, br->br_perm); + if (unlikely(err)) + AuIOErr("hnotify failed on br %d, %d, ignored\n", + bindex, err); + /* go on even if err */ + } + 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) + && (opts->given_udba || au_opt_test(sbinfo->si_mntflags, XINO))) + au_fset_opts(opts->flags, REFRESH); + + 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.38.orig/ubuntu/dm-raid4-5/dm-memcache.h +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/dm-raid4-5.h +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/dm-raid45.h +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/Kconfig +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/dm-region-hash.h +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/BOM +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/dm-raid4-5.c +++ linux-2.6.38/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->bi_rw & REQ_FLUSH)) { + /* 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.38.orig/ubuntu/dm-raid4-5/dm-message.c +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/Makefile +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/dm-message.h +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/dm-memcache.c +++ linux-2.6.38/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.38.orig/ubuntu/dm-raid4-5/dm-region-hash.c +++ linux-2.6.38/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.38.orig/security/Kconfig +++ linux-2.6.38/security/Kconfig @@ -184,6 +184,7 @@ source security/smack/Kconfig source security/tomoyo/Kconfig source security/apparmor/Kconfig +source security/yama/Kconfig source security/integrity/ima/Kconfig @@ -193,6 +194,7 @@ 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 @@ -211,6 +213,9 @@ 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" @@ -222,6 +227,7 @@ 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.38.orig/security/capability.c +++ linux-2.6.38/security/capability.c @@ -358,6 +358,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; @@ -954,6 +957,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.38.orig/security/Makefile +++ linux-2.6.38/security/Makefile @@ -7,6 +7,7 @@ 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 @@ -21,6 +22,7 @@ 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.38.orig/security/device_cgroup.c +++ linux-2.6.38/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.38.orig/security/commoncap.c +++ linux-2.6.38/security/commoncap.c @@ -929,3 +929,4 @@ } return ret; } +EXPORT_SYMBOL(cap_file_mmap); --- linux-2.6.38.orig/security/security.c +++ linux-2.6.38/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); @@ -129,6 +141,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); } @@ -359,6 +377,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) { @@ -366,6 +385,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) { @@ -373,6 +393,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) @@ -381,14 +402,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) @@ -399,6 +427,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) { @@ -406,6 +435,7 @@ return 0; return security_ops->path_truncate(path); } +EXPORT_SYMBOL(security_path_truncate); int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, mode_t mode) @@ -414,6 +444,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) { @@ -421,6 +452,7 @@ return 0; return security_ops->path_chown(path, uid, gid); } +EXPORT_SYMBOL(security_path_chown); int security_path_chroot(struct path *path) { @@ -497,11 +529,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); } @@ -511,6 +549,7 @@ return 0; return security_ops->inode_permission(inode, mask); } +EXPORT_SYMBOL(security_inode_permission); int security_inode_exec_permission(struct inode *inode, unsigned int flags) { @@ -619,6 +658,7 @@ return fsnotify_perm(file, mask); } +EXPORT_SYMBOL(security_file_permission); int security_file_alloc(struct file *file) { @@ -646,6 +686,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) @@ -695,6 +736,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); @@ -807,6 +858,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.38.orig/security/yama/Kconfig +++ linux-2.6.38/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.38.orig/security/yama/Makefile +++ linux-2.6.38/security/yama/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_SECURITY_YAMA) := yama.o + +yama-y := yama_lsm.o --- linux-2.6.38.orig/security/yama/yama_lsm.c +++ linux-2.6.38/security/yama/yama_lsm.c @@ -0,0 +1,440 @@ +/* + * 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_bh(&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_bh(&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_bh(&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_bh(&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); + if (!thread_group_leader(parent)) + parent = parent->group_leader; + 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_bh(&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_bh(&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, 0, 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.38.orig/security/apparmor/net.c +++ linux-2.6.38/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.38.orig/security/apparmor/Kconfig +++ linux-2.6.38/security/apparmor/Kconfig @@ -29,3 +29,12 @@ 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.38.orig/security/apparmor/lsm.c +++ linux-2.6.38/security/apparmor/lsm.c @@ -31,6 +31,7 @@ #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" @@ -126,7 +127,7 @@ *inheritable = cred->cap_inheritable; *permitted = cred->cap_permitted; - if (!unconfined(profile)) { + if (!unconfined(profile) && !COMPLAIN_MODE(profile)) { *effective = cap_intersect(*effective, profile->caps.allow); *permitted = cap_intersect(*permitted, profile->caps.allow); } @@ -592,7 +593,8 @@ sa.aad.op = OP_SETPROCATTR; sa.aad.info = name; sa.aad.error = -EINVAL; - return aa_audit(AUDIT_APPARMOR_DENIED, NULL, GFP_KERNEL, + return aa_audit(AUDIT_APPARMOR_DENIED, + __aa_current_profile(), GFP_KERNEL, &sa, NULL); } } else if (strcmp(name, "exec") == 0) { @@ -619,6 +621,104 @@ 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", @@ -650,6 +750,19 @@ .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, --- linux-2.6.38.orig/security/apparmor/Makefile +++ linux-2.6.38/security/apparmor/Makefile @@ -4,17 +4,23 @@ 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 + 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) --- linux-2.6.38.orig/security/apparmor/match.c +++ linux-2.6.38/security/apparmor/match.c @@ -57,8 +57,17 @@ 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, @@ -134,11 +143,19 @@ 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; --- linux-2.6.38.orig/security/apparmor/policy_unpack.c +++ linux-2.6.38/security/apparmor/policy_unpack.c @@ -190,6 +190,19 @@ 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)) { @@ -468,7 +481,8 @@ { struct aa_profile *profile = NULL; const char *name = NULL; - int error = -EPROTO; + size_t size = 0; + int i, error = -EPROTO; kernel_cap_t tmpcap; u32 tmp; @@ -559,6 +573,38 @@ 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 (i >= 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)) { --- linux-2.6.38.orig/security/apparmor/apparmorfs.c +++ linux-2.6.38/security/apparmor/apparmorfs.c @@ -187,7 +187,11 @@ 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; } @@ -218,7 +222,17 @@ 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; --- linux-2.6.38.orig/security/apparmor/apparmorfs-24.c +++ linux-2.6.38/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.38.orig/security/apparmor/policy.c +++ linux-2.6.38/security/apparmor/policy.c @@ -745,6 +745,7 @@ 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); --- linux-2.6.38.orig/security/apparmor/include/apparmorfs.h +++ linux-2.6.38/security/apparmor/include/apparmorfs.h @@ -17,4 +17,10 @@ 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.38.orig/security/apparmor/include/net.h +++ linux-2.6.38/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.38.orig/security/apparmor/include/policy.h +++ linux-2.6.38/security/apparmor/include/policy.h @@ -27,6 +27,7 @@ #include "capability.h" #include "domain.h" #include "file.h" +#include "net.h" #include "resource.h" extern const char *profile_mode_names[]; @@ -145,6 +146,7 @@ * @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 @@ -181,6 +183,7 @@ struct aa_file_rules file; struct aa_caps caps; + struct aa_net net; struct aa_rlimit rlimits; }; --- linux-2.6.38.orig/security/tomoyo/file.c +++ linux-2.6.38/security/tomoyo/file.c @@ -927,7 +927,7 @@ struct path *path, const int flag) { const u8 acc_mode = ACC_MODE(flag); - int error = -ENOMEM; + int error = 0; struct tomoyo_path_info buf; struct tomoyo_request_info r; int idx; @@ -938,9 +938,6 @@ buf.name = NULL; r.mode = TOMOYO_CONFIG_DISABLED; idx = tomoyo_read_lock(); - if (!tomoyo_get_realpath(&buf, path)) - goto out; - error = 0; /* * If the filename is specified by "deny_rewrite" keyword, * we need to check "allow_rewrite" permission when the filename is not --- linux-2.6.38.orig/security/selinux/ss/policydb.c +++ linux-2.6.38/security/selinux/ss/policydb.c @@ -497,7 +497,7 @@ goto out; rc = flex_array_prealloc(p->type_val_to_struct_array, 0, - p->p_types.nprim - 1, GFP_KERNEL | __GFP_ZERO); + p->p_types.nprim, GFP_KERNEL | __GFP_ZERO); if (rc) goto out; @@ -514,7 +514,7 @@ goto out; rc = flex_array_prealloc(p->sym_val_to_name[i], - 0, p->symtab[i].nprim - 1, + 0, p->symtab[i].nprim, GFP_KERNEL | __GFP_ZERO); if (rc) goto out; @@ -2286,7 +2286,7 @@ goto bad; /* preallocate so we don't have to worry about the put ever failing */ - rc = flex_array_prealloc(p->type_attr_map_array, 0, p->p_types.nprim - 1, + rc = flex_array_prealloc(p->type_attr_map_array, 0, p->p_types.nprim, GFP_KERNEL | __GFP_ZERO); if (rc) goto bad;